aboutsummaryrefslogtreecommitdiff
path: root/src/modules/mavlink/mavlink_mission.cpp
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2014-07-24 19:31:25 +0200
committerAnton Babushkin <anton.babushkin@me.com>2014-07-24 19:31:25 +0200
commitb31ddc193c0e3dff3a8e4b4c343848f0f64e61ed (patch)
tree52381db977660781b5725c6a393ba0daf3f942d7 /src/modules/mavlink/mavlink_mission.cpp
parent897984c4f4a43136320c39f75fef106d3447ce47 (diff)
downloadpx4-firmware-b31ddc193c0e3dff3a8e4b4c343848f0f64e61ed.tar.gz
px4-firmware-b31ddc193c0e3dff3a8e4b4c343848f0f64e61ed.tar.bz2
px4-firmware-b31ddc193c0e3dff3a8e4b4c343848f0f64e61ed.zip
mavlink: tix mission manager to use MavlinkStream API
Diffstat (limited to 'src/modules/mavlink/mavlink_mission.cpp')
-rw-r--r--src/modules/mavlink/mavlink_mission.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/modules/mavlink/mavlink_mission.cpp b/src/modules/mavlink/mavlink_mission.cpp
index d17ccc6f9..7a761588a 100644
--- a/src/modules/mavlink/mavlink_mission.cpp
+++ b/src/modules/mavlink/mavlink_mission.cpp
@@ -59,8 +59,7 @@
static const int ERROR = -1;
-MavlinkMissionManager::MavlinkMissionManager(Mavlink *mavlink) :
- _mavlink(mavlink),
+MavlinkMissionManager::MavlinkMissionManager(Mavlink *mavlink) : MavlinkStream(mavlink),
_state(MAVLINK_WPM_STATE_IDLE),
_time_last_recv(0),
_time_last_sent(0),
@@ -79,9 +78,8 @@ MavlinkMissionManager::MavlinkMissionManager(Mavlink *mavlink) :
_offboard_mission_sub(-1),
_mission_result_sub(-1),
_offboard_mission_pub(-1),
- _slow_rate_limiter(2000000.0f / mavlink->get_rate_mult()),
+ _slow_rate_limiter(_interval / 10.0f),
_verbose(false),
- _channel(mavlink->get_channel()),
_comp_id(MAV_COMP_ID_MISSIONPLANNER)
{
_offboard_mission_sub = orb_subscribe(ORB_ID(offboard_mission));
@@ -96,6 +94,20 @@ MavlinkMissionManager::~MavlinkMissionManager()
close(_mission_result_sub);
}
+unsigned
+MavlinkMissionManager::get_size()
+{
+ if (_state == MAVLINK_WPM_STATE_SENDLIST) {
+ return MAVLINK_MSG_ID_MISSION_ITEM_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES;
+
+ } else if (_state == MAVLINK_WPM_STATE_GETLIST) {
+ return MAVLINK_MSG_ID_MISSION_REQUEST + MAVLINK_NUM_NON_PAYLOAD_BYTES;
+
+ } else {
+ return 0;
+ }
+}
+
void
MavlinkMissionManager::init_offboard_mission()
{
@@ -275,9 +287,10 @@ MavlinkMissionManager::send_mission_item_reached(uint16_t seq)
void
-MavlinkMissionManager::eventloop()
+MavlinkMissionManager::send(const hrt_abstime now)
{
- hrt_abstime now = hrt_absolute_time();
+ /* update interval for slow rate limiter */
+ _slow_rate_limiter.set_interval(_interval * 10 / _mavlink->get_rate_mult());
bool updated = false;
orb_check(_mission_result_sub, &updated);