From ebf2732898fa68aed9fd03e033073e146d6adf97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberto=20Garci=CC=81a=20Hierro?= Date: Tue, 28 Nov 2017 13:20:45 +0000 Subject: [PATCH] Change MSP_SET_RTC to accept seconds and milliseconds This makes it compatible with INAV, which was already using this MSP code and has already released some versions using it. --- src/main/interface/msp.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/interface/msp.c b/src/main/interface/msp.c index 2ad9d45159..0ba7a3d458 100644 --- a/src/main/interface/msp.c +++ b/src/main/interface/msp.c @@ -1979,15 +1979,13 @@ static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src) #ifdef USE_RTC_TIME case MSP_SET_RTC: { - dateTime_t dt; - dt.year = sbufReadU16(src); - dt.month = sbufReadU8(src); - dt.day = sbufReadU8(src); - dt.hours = sbufReadU8(src); - dt.minutes = sbufReadU8(src); - dt.seconds = sbufReadU8(src); - dt.millis = 0; - rtcSetDateTime(&dt); + // Use seconds and milliseconds to make senders + // easier to implement. Generating a 64 bit value + // might not be trivial in some platforms. + int32_t secs = (int32_t)sbufReadU32(src); + uint16_t millis = sbufReadU16(src); + rtcTime_t t = rtcTimeMake(secs, millis); + rtcSet(&t); } break;