Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r5d182b5d0c3ec20904cde60dc950d57948e4b189 -r17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 5d182b5d0c3ec20904cde60dc950d57948e4b189) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9) @@ -26,6 +26,7 @@ #include "PresOccl.h" #include "ModePostTreat.h" #include "ModeTreatmentParams.h" +#include "SystemCommMessages.h" #include "Timers.h" #include "Valves.h" @@ -60,6 +61,8 @@ static HD_POST_TREATMENT_STATE_T currentPostTreatmentState; ///< Current state of post-treatment mode state machine. static DRAIN_STATE_T currentDrainReservoirState; ///< Current drain reservoir state. +static TREATMENT_LOG_DATA_PAYLOAD_T treatmentLogData; ///< Treatment parameters record for logging. + // ********** private function prototypes ********** static HD_POST_TREATMENT_STATE_T handlePostTreatmentPatientDisconnectionState( void ); @@ -86,6 +89,8 @@ isDrainStarted = FALSE; currentPostTreatmentState = HD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE; currentDrainReservoirState = DRAIN_RESERVOIR_ONE_STATE; + + memset( &treatmentLogData, 0x0, sizeof( TREATMENT_LOG_DATA_PAYLOAD_T ) ); } /*********************************************************************//** @@ -123,6 +128,9 @@ // TODO: Enable when have syringe pump driver // stopSyringePump(); + + // Send treatment log data to UI + sendTreatmentLogData( &treatmentLogData ); } /*********************************************************************//** Index: firmware/App/Modes/ModePostTreat.h =================================================================== diff -u -r5d182b5d0c3ec20904cde60dc950d57948e4b189 -r17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9 --- firmware/App/Modes/ModePostTreat.h (.../ModePostTreat.h) (revision 5d182b5d0c3ec20904cde60dc950d57948e4b189) +++ firmware/App/Modes/ModePostTreat.h (.../ModePostTreat.h) (revision 17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9) @@ -73,7 +73,7 @@ U32 endTreatmentEarlyAlarm; ///< Alarm that causes treatment to end early U32 deviceID; ///< Serial number or UID U32 waterSampleTestResult; ///< Pass or fail -} TREATMENT_LOG_PARAMS_DATA_PAYLOAD_T; +} TREATMENT_LOG_DATA_PAYLOAD_T; // ********** public function prototypes ********** Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rb8f8a3fdf24e26c0268b3f566061d8c6d7cd44e7 -r17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision b8f8a3fdf24e26c0268b3f566061d8c6d7cd44e7) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9) @@ -1211,7 +1211,7 @@ handlePatientDisconnectionConfirmCmd( message ); break; - case MSG_ID_HD_DISPOSABLE_REMOVAL_CONFIRM: + case MSG_ID_UI_DISPOSABLE_REMOVAL_CONFIRM: handleDisposableRemovalConfirmCmd( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rb8f8a3fdf24e26c0268b3f566061d8c6d7cd44e7 -r17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision b8f8a3fdf24e26c0268b3f566061d8c6d7cd44e7) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9) @@ -514,6 +514,30 @@ sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_HD_2_UI, FALSE ); } + +/*********************************************************************//** + * @brief + * The sendTreatmentLogData function constructs a treatment log data message + * for UI and queues the msg for transmit on the appropriate CAN channel. + * @details Inputs: none + * @details Outputs: Treatment log data msg constructed and queued. + * @param logDataPtr treatment log data record pointer + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL sendTreatmentLogData( TREATMENT_LOG_DATA_PAYLOAD_T *logDataPtr ) +{ + MESSAGE_T msg; + + // Create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_HD_TREATMENT_LOG_DATA; + msg.hdr.payloadLen = sizeof( TREATMENT_LOG_DATA_PAYLOAD_T ); + + memcpy( msg.payload, logDataPtr, sizeof( TREATMENT_LOG_DATA_PAYLOAD_T ) ); + + // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer + return serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_2_UI, ACK_REQUIRED ); +} /*********************************************************************//** * @brief Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rb8f8a3fdf24e26c0268b3f566061d8c6d7cd44e7 -r17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision b8f8a3fdf24e26c0268b3f566061d8c6d7cd44e7) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 17b1e8df35d294dfa84a6ee9c23c1b4de956c4e9) @@ -26,7 +26,8 @@ #include "DialInFlow.h" #include "DialOutFlow.h" #include "Dialysis.h" -#include "Prime.h" +#include "Prime.h" +#include "ModePostTreat.h" #include "ModeTreatment.h" #include "MsgQueues.h" #include "NVDataMgmt.h" @@ -186,6 +187,9 @@ // MSG_ID_HD_DISPOSABLE_REMOVAL_CONFIRM void handleDisposableRemovalConfirmCmd( MESSAGE_T *message ); +// MSG_ID_HD_TREATMENT_LOG_DATA +BOOL sendTreatmentLogData( TREATMENT_LOG_DATA_PAYLOAD_T *logDataPtr ); + // MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS BOOL sendDialysateTempTargetsToDG( F32 primary, F32 trimmer );