Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -r124b3745d056ac667280cfa0ae1fab8610d44ed2 -ra31707ccbf01a1b40f8500bc491dc9c616e7a163 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 124b3745d056ac667280cfa0ae1fab8610d44ed2) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision a31707ccbf01a1b40f8500bc491dc9c616e7a163) @@ -77,6 +77,8 @@ collectTreatmentLogData(); sendTreatmentLogDataToUI(); } + + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_SUB_MODE_CHANGE, 0, 0 ) } /*********************************************************************//** Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r8f217e3f4f171dba78c9ac69a3470af442941a89 -ra31707ccbf01a1b40f8500bc491dc9c616e7a163 --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 8f217e3f4f171dba78c9ac69a3470af442941a89) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision a31707ccbf01a1b40f8500bc491dc9c616e7a163) @@ -106,6 +106,8 @@ setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, FALSE ); setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, FALSE ); setAlarmUserActionEnabled( ALARM_USER_ACTION_END_TREATMENT, FALSE ); + + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_SUB_MODE_CHANGE, 0, 0 ) } /*********************************************************************//** @@ -131,6 +133,7 @@ { case POST_STATE_START: sendUIVersionRequest(); + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_STARTUP, 0, 0 ) postState = POST_STATE_FW_INTEGRITY; break; Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r1c628bfd5d6414b74b8cbd083f66839888a8236b -ra31707ccbf01a1b40f8500bc491dc9c616e7a163 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 1c628bfd5d6414b74b8cbd083f66839888a8236b) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision a31707ccbf01a1b40f8500bc491dc9c616e7a163) @@ -118,6 +118,7 @@ void transitionToPostTreatmentMode( void ) { initPostTreatmentMode(); + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_SUB_MODE_CHANGE, 0, HD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE ) // Stop any DG fill that may be in progress from an aborted treatment cmdStopDGFill(); Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -ra31707ccbf01a1b40f8500bc491dc9c616e7a163 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision a31707ccbf01a1b40f8500bc491dc9c616e7a163) @@ -317,6 +317,8 @@ *************************************************************************/ static void transitionToNewOperationMode( HD_OP_MODE_T newMode ) { + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_OP_MODE_CHANGE, lastMode, newMode ) + // Setup for new operating mode switch ( newMode ) { Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r028345aae95254cd8ff027d0da533b345da06b4f -ra31707ccbf01a1b40f8500bc491dc9c616e7a163 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 028345aae95254cd8ff027d0da533b345da06b4f) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision a31707ccbf01a1b40f8500bc491dc9c616e7a163) @@ -1005,8 +1005,9 @@ { RINSEBACK_DATA_PAYLOAD_T data; U32 timeout = MAX_RINSEBACK_TIME / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); - U32 countdown = ( getRinsebackVolume() >= TARGET_RINSEBACK_VOLUME_ML ? MAX_RINSEBACK_TIME : MAX_RINSEBACK_DONE_TIME ); + U32 countdown = ( getRinsebackVolume() >= TARGET_RINSEBACK_VOLUME_ML ? MAX_RINSEBACK_DONE_TIME : MAX_RINSEBACK_TIME ); + countdown -= rinsebackTimerCtr; // Handle countdown past zero if ( countdown > MAX_RINSEBACK_DONE_TIME ) { Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r844f98879b7425c207b58562e623ab960adbc357 -ra31707ccbf01a1b40f8500bc491dc9c616e7a163 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 844f98879b7425c207b58562e623ab960adbc357) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision a31707ccbf01a1b40f8500bc491dc9c616e7a163) @@ -321,6 +321,41 @@ return result; } + +/*********************************************************************//** + * @brief + * The sendEvent function constructs an HD event message to the UI and + * queues the msg for transmit on the appropriate CAN channel. + * @details Inputs: none + * @details Outputs: HD event msg constructed and queued. + * @param event Enumeration of event type that occurred + * @param dat1 First data associated with event + * @param dat2 Second data associated with event + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL sendEvent( EVENT_ID_T event, EVENT_DATA_T dat1, EVENT_DATA_T dat2 ) +{ + BOOL result; + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + U32 e = (U32)event; + + // Create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_HD_EVENT; + msg.hdr.payloadLen = sizeof( U32 ) + sizeof( EVENT_DATA_T ) * 2; + + memcpy( payloadPtr, &e, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &dat1, sizeof( EVENT_DATA_T ) ); + payloadPtr += sizeof( EVENT_DATA_T ); + memcpy( payloadPtr, &dat2, sizeof( EVENT_DATA_T ) ); + + // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer + result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_2_UI, ACK_REQUIRED ); + + return result; +} /*********************************************************************//** * @brief @@ -1025,7 +1060,7 @@ * @param newValue parameter change event new data value * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL sendTreatmentLogEventData( EVENT_ID_T event, F32 oldValue, F32 newValue ) +BOOL sendTreatmentLogEventData( TX_EVENT_ID_T event, F32 oldValue, F32 newValue ) { MESSAGE_T msg; U08 *payloadPtr = msg.payload; Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r844f98879b7425c207b58562e623ab960adbc357 -ra31707ccbf01a1b40f8500bc491dc9c616e7a163 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 844f98879b7425c207b58562e623ab960adbc357) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision a31707ccbf01a1b40f8500bc491dc9c616e7a163) @@ -92,6 +92,9 @@ // MSG_ID_HD_DG_POST_RESULT_REQUEST BOOL sendDGPOSTResultRequest( void ); +// MSG_ID_HD_EVENT +BOOL sendEvent( EVENT_ID_T event, EVENT_DATA_T dat1, EVENT_DATA_T dat2 ); + // MSG_ID_OFF_BUTTON_PRESS BOOL sendOffButtonMsgToUI( U08 cmd ); void handleOffButtonConfirmMsgFromUI( MESSAGE_T *message ); @@ -325,7 +328,7 @@ BOOL sendTreatmentLogAlarmEventData( ALARM_ID_T alarmID, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ); // MSG_ID_HD_TREATMENT_LOG_EVENT -BOOL sendTreatmentLogEventData( EVENT_ID_T event, F32 oldValue, F32 newValue ); +BOOL sendTreatmentLogEventData( TX_EVENT_ID_T event, F32 oldValue, F32 newValue ); // *********** public DG command functions **********