From d771017c251d2f55d640e50c61f864f862fcb212 Mon Sep 17 00:00:00 2001 From: Niti Rohilla Date: Mon, 18 Apr 2016 12:42:40 +0530 Subject: [PATCH] AP_Mission: support MAV_CMD_NAV_DELAY command --- libraries/AP_Mission/AP_Mission.cpp | 14 ++++++++++++++ libraries/AP_Mission/AP_Mission.h | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/libraries/AP_Mission/AP_Mission.cpp b/libraries/AP_Mission/AP_Mission.cpp index 089af90be1..5bb2d93c45 100644 --- a/libraries/AP_Mission/AP_Mission.cpp +++ b/libraries/AP_Mission/AP_Mission.cpp @@ -585,6 +585,13 @@ MAV_MISSION_RESULT AP_Mission::mavlink_int_to_mission_cmd(const mavlink_mission_ cmd.p1 = packet.param1; // on/off. >0.5 means "on", hand-over control to external controller break; + case MAV_CMD_NAV_DELAY: // MAV ID: 94 + cmd.content.nav_delay.seconds = packet.param1; // delay in seconds + cmd.content.nav_delay.hour_utc = packet.param2;// absolute time's hour (utc) + cmd.content.nav_delay.min_utc = packet.param3;// absolute time's min (utc) + cmd.content.nav_delay.sec_utc = packet.param4; // absolute time's second (utc) + break; + case MAV_CMD_CONDITION_DELAY: // MAV ID: 112 cmd.content.delay.seconds = packet.param1; // delay in seconds break; @@ -1007,6 +1014,13 @@ bool AP_Mission::mission_cmd_to_mavlink_int(const AP_Mission::Mission_Command& c packet.param1 = cmd.p1; // on/off. >0.5 means "on", hand-over control to external controller break; + case MAV_CMD_NAV_DELAY: // MAV ID: 94 + packet.param1 = cmd.content.nav_delay.seconds; // delay in seconds + packet.param2 = cmd.content.nav_delay.hour_utc; // absolute time's day of week (utc) + packet.param3 = cmd.content.nav_delay.min_utc; // absolute time's hour (utc) + packet.param4 = cmd.content.nav_delay.sec_utc; // absolute time's min (utc) + break; + case MAV_CMD_CONDITION_DELAY: // MAV ID: 112 packet.param1 = cmd.content.delay.seconds; // delay in seconds break; diff --git a/libraries/AP_Mission/AP_Mission.h b/libraries/AP_Mission/AP_Mission.h index 3a931b91d2..6e6af7a83d 100644 --- a/libraries/AP_Mission/AP_Mission.h +++ b/libraries/AP_Mission/AP_Mission.h @@ -161,6 +161,14 @@ public: uint8_t target_state; }; + // navigation delay command structure + struct PACKED Navigation_Delay_Command { + float seconds; // period of delay in seconds + int8_t hour_utc; // absolute time's hour (utc) + int8_t min_utc; // absolute time's min (utc) + int8_t sec_utc; // absolute time's sec (utc) + }; + union PACKED Content { // jump structure Jump_Command jump; @@ -216,6 +224,9 @@ public: // location Location location; // Waypoint location + // navigation delay + Navigation_Delay_Command nav_delay; + // raw bytes, for reading/writing to eeprom. Note that only 10 bytes are available // if a 16 bit command ID is used uint8_t bytes[12];