vehicle_command topic: use uorb queuing with length 3

Just to make sure we don't lose any messages.
This commit is contained in:
Beat Küng
2016-09-07 18:47:12 +02:00
parent c1b73a068e
commit be4db3c5df
9 changed files with 29 additions and 19 deletions
@@ -395,7 +395,7 @@ CameraTrigger::test()
cmd.param5 = 1.0f;
orb_advert_t pub;
pub = orb_advertise(ORB_ID(vehicle_command), &cmd);
pub = orb_advertise_queue(ORB_ID(vehicle_command), &cmd, vehicle_command_s::ORB_QUEUE_LENGTH);
(void)orb_unadvertise(pub);
}
+1 -1
View File
@@ -825,7 +825,7 @@ PX4IO::init()
cmd.confirmation = 1;
/* send command once */
orb_advert_t pub = orb_advertise(ORB_ID(vehicle_command), &cmd);
orb_advert_t pub = orb_advertise_queue(ORB_ID(vehicle_command), &cmd, vehicle_command_s::ORB_QUEUE_LENGTH);
/* spin here until IO's state has propagated into the system */
do {
+8 -3
View File
@@ -302,9 +302,14 @@ void InputMavlinkCmdMount::_ack_vehicle_command(uint16_t command)
vehicle_command_ack.command = command;
vehicle_command_ack.result = vehicle_command_s::VEHICLE_CMD_RESULT_ACCEPTED;
int instance;
orb_publish_auto(ORB_ID(vehicle_command_ack), &_vehicle_command_ack_pub, &vehicle_command_ack,
&instance, ORB_PRIO_DEFAULT);
if (_vehicle_command_ack_pub == nullptr) {
_vehicle_command_ack_pub = orb_advertise_queue(ORB_ID(vehicle_command_ack), &vehicle_command_ack,
vehicle_command_ack_s::ORB_QUEUE_LENGTH);
} else {
orb_publish(ORB_ID(vehicle_command_ack), _vehicle_command_ack_pub, &vehicle_command_ack);
}
}
void InputMavlinkCmdMount::print_status()
+2 -1
View File
@@ -75,7 +75,8 @@ int OutputMavlink::update(const ControlData *control_data)
orb_publish(ORB_ID(vehicle_command), _vehicle_command_pub, &vehicle_command);
} else {
_vehicle_command_pub = orb_advertise_queue(ORB_ID(vehicle_command), &vehicle_command, 3);
_vehicle_command_pub = orb_advertise_queue(ORB_ID(vehicle_command), &vehicle_command,
vehicle_command_s::ORB_QUEUE_LENGTH);
}
}