diff --git a/_locales/en/messages.json b/_locales/en/messages.json index d0014f77..8c294646 100755 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -3124,6 +3124,9 @@ "missionDefaultSettingsHead": { "message": "Default settings" }, + "missionSafehomeHead": { + "message": "Safe Home manager" + }, "missionTemplateHead": { "message": "Mission template" }, @@ -3594,5 +3597,20 @@ }, "MissionPlannerHeadSettingsCheck": { "message": "Heading value is incorrect : Check it again !" + }, + "SafehomeSelected": { + "message": "" + }, + "SafehomeId": { + "message": "#" + }, + "SafehomeEnabled": { + "message": "Enabled" + }, + "SafehomeLon": { + "message": "Lon" + }, + "SafehomeLat": { + "message": "Lat" } } diff --git a/images/icons/cf_icon_MP_safehome_green.svg b/images/icons/cf_icon_MP_safehome_green.svg new file mode 100644 index 00000000..327dc99d --- /dev/null +++ b/images/icons/cf_icon_MP_safehome_green.svg @@ -0,0 +1,159 @@ + + diff --git a/images/icons/cf_icon_MP_safehome_grey.svg b/images/icons/cf_icon_MP_safehome_grey.svg new file mode 100644 index 00000000..8bb9a326 --- /dev/null +++ b/images/icons/cf_icon_MP_safehome_grey.svg @@ -0,0 +1,152 @@ + + diff --git a/images/icons/cf_icon_MP_safehome_red.svg b/images/icons/cf_icon_MP_safehome_red.svg new file mode 100644 index 00000000..f4df0751 --- /dev/null +++ b/images/icons/cf_icon_MP_safehome_red.svg @@ -0,0 +1,159 @@ + + diff --git a/images/icons/cf_icon_MP_safehome_white.svg b/images/icons/cf_icon_MP_safehome_white.svg new file mode 100644 index 00000000..9ed25ce9 --- /dev/null +++ b/images/icons/cf_icon_MP_safehome_white.svg @@ -0,0 +1,159 @@ + + diff --git a/images/icons/cf_icon_safehome_white.svg b/images/icons/cf_icon_safehome_white.svg new file mode 100644 index 00000000..1f92d3bc --- /dev/null +++ b/images/icons/cf_icon_safehome_white.svg @@ -0,0 +1,60 @@ + + diff --git a/js/fc.js b/js/fc.js index ce650393..4b3a744a 100644 --- a/js/fc.js +++ b/js/fc.js @@ -60,7 +60,8 @@ var CONFIG, BATTERY_CONFIG, OUTPUT_MAPPING, SETTINGS, - BRAKING_CONFIG; + BRAKING_CONFIG, + SAFEHOME; var FC = { MAX_SERVO_RATE: 125, @@ -544,6 +545,13 @@ var FC = { OUTPUT_MAPPING = new OutputMappingCollection(); SETTINGS = {}; + + SAFEHOME = { + number: 0, + enabled: 0, + lon: 0, + lat: 0 + }; }, getOutputUsages: function() { return { diff --git a/js/msp/MSPCodes.js b/js/msp/MSPCodes.js index 028386f6..5e3f2732 100644 --- a/js/msp/MSPCodes.js +++ b/js/msp/MSPCodes.js @@ -215,5 +215,8 @@ var MSPCodes = { MSP2_PID: 0x2030, MSP2_SET_PID: 0x2031, - MSP2_INAV_OPFLOW_CALIBRATION: 0x2032 + MSP2_INAV_OPFLOW_CALIBRATION: 0x2032, + + MSP2_INAV_SAFEHOME: 0x2038, + MSP2_INAV_SET_SAFEHOME: 0x2039 }; diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index 9107e1f5..cc183618 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -65,8 +65,7 @@ var mspHelper = (function (gui) { flags, colorCount, color; - - if (!dataHandler.unsupported) switch (dataHandler.code) { + if (!dataHandler.unsupported || dataHandler.unsupported) switch (dataHandler.code) { case MSPCodes.MSP_IDENT: //FIXME remove this frame when proven not needed console.log('Using deprecated msp command: MSP_IDENT'); @@ -1462,7 +1461,13 @@ var mspHelper = (function (gui) { SENSOR_DATA.temperature[i] = temp_decidegrees / 10; // °C } break; - + case MSPCodes.MSP2_INAV_SAFEHOME: + console.log(MSPCodes.MSP2_INAV_SAFEHOME); + SAFEHOME.number = data.getUint8(0); + SAFEHOME.enable = data.getUint8(1); + SAFEHOME.lon = data.getInt32(2); + SAFEHOME.lat = data.getInt32(3); + break; default: console.log('Unknown code detected: ' + dataHandler.code); } else { @@ -2138,6 +2143,9 @@ var mspHelper = (function (gui) { buffer.push(BRAKING_CONFIG.bankAngle); break; + + case MSPCodes.MSP2_INAV_SET_SAFEHOME: + break; default: return false; diff --git a/src/css/tabs/mission_planer.css b/src/css/tabs/mission_planer.css index 1c147c71..a8fe1f35 100644 --- a/src/css/tabs/mission_planer.css +++ b/src/css/tabs/mission_planer.css @@ -221,7 +221,13 @@ .ol-touch .mission-control-settings { top: 80px; } - +.mission-control-safehome { + top: 85px; + left: .5em; +} +.ol-touch .mission-control-safehome { + top: 100px; +} .mission-control-template { top: 85px; left: .5em; diff --git a/tabs/mission_control.html b/tabs/mission_control.html index a767d9a6..29786174 100644 --- a/tabs/mission_control.html +++ b/tabs/mission_control.html @@ -26,6 +26,34 @@ +
+