From 3af13f1bc5842c6bc7404579ae8d0ad6b7d0f7b6 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 29 May 2022 16:46:19 +0200 Subject: tracker/trackhat: implement LED tracking indicator --- tracker-trackhat/camera.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'tracker-trackhat/camera.cpp') diff --git a/tracker-trackhat/camera.cpp b/tracker-trackhat/camera.cpp index d518621f..74e35423 100644 --- a/tracker-trackhat/camera.cpp +++ b/tracker-trackhat/camera.cpp @@ -1,5 +1,6 @@ #include "trackhat.hpp" #include "compat/sleep.hpp" +#include #include namespace trackhat_impl { @@ -83,6 +84,15 @@ pt_camera::result trackhat_camera::get_frame(pt_frame& frame_) goto error; auto& frame = *frame_.as(); frame.init_points(points, t.min_pt_size, t.max_pt_size); + + using trackhat_impl::led_state; + int count = + std::count_if(frame.points.cbegin(), frame.points.cend(), + [](const point& pt) { return pt.ok; }); + led.update(&*device, *t.led, + count == 3 + ? led_state::tracking + : led_state::not_tracking); } return {true, get_desired()}; @@ -117,10 +127,14 @@ bool trackhat_camera::start(const pt_settings&) set_pt_options(); + led.update(&*device, *t.led, trackhat_impl::led_state::stopped); + return true; } void trackhat_camera::stop() { + if (device) + led.update(&*device, *t.led, trackhat_impl::led_state::stopped); device.disconnect(); } -- cgit v1.2.3