diff --git a/msg/camera_trigger.msg b/msg/camera_trigger.msg index 384e9aa61c..20eacded55 100644 --- a/msg/camera_trigger.msg +++ b/msg/camera_trigger.msg @@ -1,3 +1,4 @@ +uint32 seq # Image sequence number -uint32 seq # Image sequence +uint32 ORB_QUEUE_LENGTH = 3 diff --git a/src/drivers/camera_trigger/camera_trigger.cpp b/src/drivers/camera_trigger/camera_trigger.cpp index a053d1d485..0f712f51dd 100644 --- a/src/drivers/camera_trigger/camera_trigger.cpp +++ b/src/drivers/camera_trigger/camera_trigger.cpp @@ -631,8 +631,14 @@ CameraTrigger::engage(void *arg) report.seq = trig->_trigger_seq++; - int instance_id = 0; - orb_publish_auto(ORB_ID(camera_trigger), &trig->_trigger_pub, &report, &instance_id, ORB_PRIO_DEFAULT); + if (trig->_trigger_pub == nullptr) { + trig->_trigger_pub = orb_advertise_queue(ORB_ID(camera_trigger), &report, + camera_trigger_s::ORB_QUEUE_LENGTH); + + } else { + orb_publish(ORB_ID(camera_trigger), trig->_trigger_pub, &report); + + } } void