From 89831dd1d7ddf3a0a6dbcb88d0fc1680c69b33d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Garci=CC=81a=20Hierro?= Date: Tue, 31 Oct 2017 10:48:10 +0000 Subject: [PATCH] Add MSPHelper.getRTC() and MSPHelper.setRTC() Functions for getting and setting the RTC. Not used for now, but can be manually called from the debug console for testing RTC related changes. --- js/msp/MSPCodes.js | 3 +++ js/msp/MSPHelper.js | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/js/msp/MSPCodes.js b/js/msp/MSPCodes.js index adf310f4..10d831f3 100644 --- a/js/msp/MSPCodes.js +++ b/js/msp/MSPCodes.js @@ -122,6 +122,9 @@ var MSPCodes = { MSP_SERVO_MIX_RULES: 241, MSP_SET_SERVO_MIX_RULE: 242, + MSP_RTC: 246, + MSP_SET_RTC: 247, + MSP_EEPROM_WRITE: 250, MSP_DEBUGMSG: 253, diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index 0fb97e74..5d6e9da9 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -412,6 +412,16 @@ var mspHelper = (function (gui) { case MSPCodes.MSP_SET_SERVO_CONFIGURATION: console.log('Servo Configuration saved'); break; + case MSPCodes.MSP_RTC: + if (data.length >= 6) { + var seconds = data.getInt32(0, true); + var millis = data.getUint16(4, true); + console.log("RTC received: " + new Date(seconds * 1000 + millis)); + } + break; + case MSPCodes.MSP_SET_RTC: + console.log('RTC set'); + break; case MSPCodes.MSP_EEPROM_WRITE: console.log('Settings Saved in EEPROM'); break; @@ -2368,5 +2378,33 @@ var mspHelper = (function (gui) { }); }; + self.getRTC = function(callback) { + if (semver.gt(CONFIG.flightControllerVersion, "1.7.3")) { + MSP.send_message(MSPCodes.MSP_RTC, false, false, function(resp) { + var seconds = resp.data.read32(); + var millis = resp.data.readU16(); + if (callback) { + callback(seconds, millis); + } + }); + } else if (callback) { + callback(0, 0); + } + }; + + self.setRTC = function(callback) { + if (semver.gt(CONFIG.flightControllerVersion, "1.7.3")) { + var now = Date.now(); + var secs = now / 1000; + var millis = now % 1000; + var data = []; + data.push32(secs); + data.push16(millis); + MSP.send_message(MSPCodes.MSP_SET_RTC, data, false, callback); + } else if (callback) { + callback(); + } + }; + return self; })(GUI);