Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r98a1a2a624373a1d140daed0136522ab6e635237 -r46bf7baaa9d8095e0405b018fcd4bc594907797e --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 98a1a2a624373a1d140daed0136522ab6e635237) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 46bf7baaa9d8095e0405b018fcd4bc594907797e) @@ -26,6 +26,7 @@ #include "Pressures.h" #include "Reservoirs.h" #include "ROPump.h" +#include "RTC.h" #include "SystemComm.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" @@ -192,7 +193,7 @@ else if ( TRUE == pendingStartDGRequest ) { pendingStartDGRequest = FALSE; - + signalSyncToHD(); requestNewOperationMode( DG_MODE_GENE ); } else if ( TRUE == pendingStartDGFlushRequest ) Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -ra4669c80291e85fa5ce17d77ebcfd0c882831202 -r46bf7baaa9d8095e0405b018fcd4bc594907797e --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision a4669c80291e85fa5ce17d77ebcfd0c882831202) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 46bf7baaa9d8095e0405b018fcd4bc594907797e) @@ -811,6 +811,10 @@ handleAlarmClear( message ); break; + case MSG_ID_RTC_EPOCH: + handleRTCSyncFromHD( message ); + break; + case MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS: handleSetDialysateTemperatureCmd( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r98a1a2a624373a1d140daed0136522ab6e635237 -r46bf7baaa9d8095e0405b018fcd4bc594907797e --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 98a1a2a624373a1d140daed0136522ab6e635237) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 46bf7baaa9d8095e0405b018fcd4bc594907797e) @@ -393,6 +393,30 @@ /*********************************************************************//** * @brief + * The handleRTCSyncFromHD function handles an HD date/time broadcast message + * from the HD. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleRTCSyncFromHD( MESSAGE_T *message ) +{ + // Only sync RTC to HD date/time when ... + if ( TRUE == syncDG2HDDateTime() ) + { + if ( sizeof( RTC_DATA_T ) == message->hdr.payloadLen ) + { + RTC_DATA_T epoch; + + memcpy( &epoch, message->payload, sizeof( RTC_DATA_T ) ); + setRTCEpoch( epoch.epochTime ); + } + } +} + +/*********************************************************************//** + * @brief * The handleAlarmClear function handles a clear alarm message from the HD. * @details Inputs: none * @details Outputs: message handled Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r0f6b35ef8da4d30793a181750d0a6d5898118120 -r46bf7baaa9d8095e0405b018fcd4bc594907797e --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 0f6b35ef8da4d30793a181750d0a6d5898118120) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 46bf7baaa9d8095e0405b018fcd4bc594907797e) @@ -80,6 +80,9 @@ // MSG_ID_POWER_OFF_WARNING void handlePowerOffWarning( MESSAGE_T *message ); +// MSG_ID_RTC_EPOCH +void handleRTCSyncFromHD( MESSAGE_T *message ); + // MSG_ID_ALARM_CLEARED void handleAlarmClear( MESSAGE_T *message );