diff --git a/msg/camera_trigger.msg b/msg/camera_trigger.msg index 6c3ffdeb94f768167b448bfd82c9e37810e92d6e..b61d331c31dffae38fa5f3b10486478fa6b485bf 100644 --- a/msg/camera_trigger.msg +++ b/msg/camera_trigger.msg @@ -3,3 +3,5 @@ uint64 timestamp_utc # UTC timestamp uint32 seq # Image sequence number bool feedback # Trigger feedback from camera + +# TOPICS camera_trigger camera_trigger_feedback \ No newline at end of file diff --git a/src/drivers/camera_capture/camera_capture.cpp b/src/drivers/camera_capture/camera_capture.cpp index 7a9e0edd8afc270b432c92d9ae0a8989e470d4fb..8aed49cbef28f63bcc6611a662347a31d28ee8e4 100644 --- a/src/drivers/camera_capture/camera_capture.cpp +++ b/src/drivers/camera_capture/camera_capture.cpp @@ -54,7 +54,6 @@ CameraCapture::CameraCapture() : _command_ack_pub(nullptr), _command_sub(-1), _trig_buffer(nullptr), - _camera_capture_feedback(false), _camera_capture_mode(0), _camera_capture_edge(0), _capture_seq(0), @@ -69,9 +68,6 @@ CameraCapture::CameraCapture() : _p_strobe_delay = param_find("CAM_CAP_DELAY"); param_get(_p_strobe_delay, &_strobe_delay); - _p_camera_capture_feedback = param_find("CAM_CAP_FBACK"); - param_get(_p_camera_capture_feedback, &_camera_capture_feedback); - _p_camera_capture_mode = param_find("CAM_CAP_MODE"); param_get(_p_camera_capture_mode, &_camera_capture_mode); @@ -137,15 +133,13 @@ CameraCapture::publish_trigger() trigger.seq = _capture_seq++; trigger.feedback = true; - if (_camera_capture_feedback) { - if (_trigger_pub == nullptr) { + if (_trigger_pub == nullptr) { - _trigger_pub = orb_advertise(ORB_ID(camera_trigger), &trigger); + _trigger_pub = orb_advertise(ORB_ID(camera_trigger_feedback), &trigger); - } else { + } else { - orb_publish(ORB_ID(camera_trigger), _trigger_pub, &trigger); - } + orb_publish(ORB_ID(camera_trigger_feedback), _trigger_pub, &trigger); } _last_exposure_time = trig.edge_time - _last_fall_time; diff --git a/src/drivers/camera_capture/camera_capture.hpp b/src/drivers/camera_capture/camera_capture.hpp index 812baaf5d832dae686759b038fe6ff99e0acc05c..99798dba5f9f5541f2cf7c749ebc1c05f020e808 100644 --- a/src/drivers/camera_capture/camera_capture.hpp +++ b/src/drivers/camera_capture/camera_capture.hpp @@ -127,8 +127,6 @@ private: // Parameters param_t _p_strobe_delay; float _strobe_delay; - param_t _p_camera_capture_feedback; - int32_t _camera_capture_feedback; param_t _p_camera_capture_mode; int32_t _camera_capture_mode; param_t _p_camera_capture_edge; diff --git a/src/drivers/camera_trigger/camera_trigger.cpp b/src/drivers/camera_trigger/camera_trigger.cpp index a5db64b3efeb71d18b9b35b249724a466887fa0d..f8a9da7d727c2728d58f17fd893f54ef9464dfe9 100644 --- a/src/drivers/camera_trigger/camera_trigger.cpp +++ b/src/drivers/camera_trigger/camera_trigger.cpp @@ -171,7 +171,6 @@ private: bool _turning_on; matrix::Vector2f _last_shoot_position; bool _valid_position; - int32_t _camera_capture_feedback; int _command_sub; int _lpos_sub; @@ -184,7 +183,6 @@ private: param_t _p_interval; param_t _p_distance; param_t _p_interface; - param_t _p_camera_capture_feedback; trigger_mode_t _trigger_mode; @@ -248,7 +246,6 @@ CameraTrigger::CameraTrigger() : _turning_on(false), _last_shoot_position(0.0f, 0.0f), _valid_position(false), - _camera_capture_feedback(false), _command_sub(-1), _lpos_sub(-1), _trigger_pub(nullptr), @@ -272,14 +269,12 @@ CameraTrigger::CameraTrigger() : _p_activation_time = param_find("TRIG_ACT_TIME"); _p_mode = param_find("TRIG_MODE"); _p_interface = param_find("TRIG_INTERFACE"); - _p_camera_capture_feedback = param_find("CAM_CAP_FBACK"); param_get(_p_activation_time, &_activation_time); param_get(_p_interval, &_interval); param_get(_p_distance, &_distance); param_get(_p_mode, (int32_t *)&_trigger_mode); param_get(_p_interface, (int32_t *)&_camera_interface_mode); - param_get(_p_camera_capture_feedback, &_camera_capture_feedback); switch (_camera_interface_mode) { #ifdef __PX4_NUTTX @@ -318,11 +313,9 @@ CameraTrigger::CameraTrigger() : param_set_no_notification(_p_activation_time, &(_activation_time)); } - if (!_camera_capture_feedback) { - // Advertise critical publishers here, because we cannot advertise in interrupt context - struct camera_trigger_s trigger = {}; - _trigger_pub = orb_advertise(ORB_ID(camera_trigger), &trigger); - } + // Advertise critical publishers here, because we cannot advertise in interrupt context + struct camera_trigger_s trigger = {}; + _trigger_pub = orb_advertise(ORB_ID(camera_trigger), &trigger); } @@ -750,7 +743,7 @@ CameraTrigger::engage(void *arg) // Trigger the camera trig->_camera_interface->trigger(true); - if (trig->_test_shot || trig->_camera_capture_feedback) { + if (trig->_test_shot) { // do not send messages or increment frame count for test shots return; } diff --git a/src/modules/camera_feedback/camera_feedback.cpp b/src/modules/camera_feedback/camera_feedback.cpp index ef9996af51afcbc9277e804d489891a8ccbc713d..5536b2b9765f9247558056e6db325a96af56f2cb 100644 --- a/src/modules/camera_feedback/camera_feedback.cpp +++ b/src/modules/camera_feedback/camera_feedback.cpp @@ -122,8 +122,9 @@ CameraFeedback::stop() void CameraFeedback::task_main() { - if(!_camera_capture_feedback){ + if (!_camera_capture_feedback) { _trigger_sub = orb_subscribe(ORB_ID(camera_trigger)); + } else { _trigger_sub = orb_subscribe(ORB_ID(camera_trigger_feedback)); }