Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r62b13b446d1826f58f423435aff88f490063c6f0 -r52921ebabd1262de9e242479fb29f6a648268cfa --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 62b13b446d1826f58f423435aff88f490063c6f0) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 52921ebabd1262de9e242479fb29f6a648268cfa) @@ -1145,18 +1145,19 @@ // Broadcast treatment state data at interval if ( ++treatmentStateBroadcastTimerCtr >= TREATMENT_STATE_DATA_PUB_INTERVAL ) { - DIALYSIS_STATE_T dialysisState = getDialysisState(); - UF_STATE_T uFState = getUltrafiltrationState(); - SALINE_BOLUS_STATE_T salineBolusInProgress = getSalineBolusState(); - TREATMENT_STOP_STATE_T stopState = getCurrentTreatmentStopState(); - BLOOD_PRIME_STATE_T bldPrimeState = getCurrentBloodPrimeState(); - RINSEBACK_STATE_T rBState = getCurrentRinsebackState(); - TREATMENT_RECIRC_STATE_T rCState = getCurrentTreatmentRecircState(); - TREATMENT_END_STATE_T endState = getCurrentTreatmentEndState(); - HEPARIN_STATE_T hepState = HEPARIN_STATE_OFF; // TODO - get Heparin state when implemented + TREATMENT_STATE_DATA_T payload; - broadcastTreatmentState( (U32)currentTreatmentState, (U32)uFState, (U32)salineBolusInProgress, - (U32)hepState, (U32)rBState, (U32)rCState, (U32)bldPrimeState, (U32)endState, (U32)stopState ); + payload.treatmentSubMode = (U32)currentTreatmentState; + payload.uFState = getUltrafiltrationState(); + payload.salineBolusState = getSalineBolusState(); + payload.txStopState = getCurrentTreatmentStopState(); + payload.bldPrimeState = getCurrentBloodPrimeState(); + payload.rinsebackState = getCurrentRinsebackState(); + payload.txStopState = getCurrentTreatmentRecircState(); + payload.txEndState = getCurrentTreatmentEndState(); + payload.heparinState = HEPARIN_STATE_OFF; // TODO - get Heparin state when implemented + + broadcastTreatmentState( payload ); treatmentStateBroadcastTimerCtr = 0; } } Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r3135defd5053f5724eac7375ffd56ad1d129d5ae -r52921ebabd1262de9e242479fb29f6a648268cfa --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 3135defd5053f5724eac7375ffd56ad1d129d5ae) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 52921ebabd1262de9e242479fb29f6a648268cfa) @@ -1042,39 +1042,19 @@ * be broadcast and queues the msg for transmit on the appropriate CAN channel. * @details Inputs: none * @details Outputs: treatment state msg constructed and queued - * @param subMode Current state (sub-mode) of treatment - * @param uFState Current state of ultrafiltration - * @param salineBolusState 1=saline bolus in progress, 0=not, 2=max bolus volume reached - * @param hepState Current state of Heparin controller - * @param rinsebackState Current state of rinseback sub-mode - * @param txRecircState Current state of treatment re-circulate sub-mode - * @param bldPrimeState Current state of blood prime sub-mode - * @param txEndState Current state of treatment end sub-mode - * @param txStopState Current state of treatment stop sub-mode + * @param payload Record with treatment state data * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL broadcastTreatmentState( U32 subMode, U32 uFState, U32 salineBolusState, U32 hepState, U32 rinsebackState, U32 txRecircState, U32 bldPrimeState, U32 txEndState, U32 txStopState ) +BOOL broadcastTreatmentState( TREATMENT_STATE_DATA_T payload ) { BOOL result; MESSAGE_T msg; U08 *payloadPtr = msg.payload; - TREATMENT_STATE_DATA_T payload; - // Create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_TREATMENT_STATE; msg.hdr.payloadLen = sizeof( TREATMENT_STATE_DATA_T ); - payload.treatmentSubMode = subMode; - payload.uFState = uFState; - payload.salineBolusState = salineBolusState; - payload.heparinState = hepState; - payload.rinsebackState = rinsebackState; - payload.txRecircState = txRecircState; - payload.bldPrimeState = bldPrimeState; - payload.txEndState = txEndState; - payload.txStopState = txStopState; - memcpy( payloadPtr, &payload, sizeof( TREATMENT_STATE_DATA_T ) ); // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r3135defd5053f5724eac7375ffd56ad1d129d5ae -r52921ebabd1262de9e242479fb29f6a648268cfa --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 3135defd5053f5724eac7375ffd56ad1d129d5ae) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 52921ebabd1262de9e242479fb29f6a648268cfa) @@ -237,7 +237,7 @@ BOOL broadcastTreatmentTime( U32 secsTotTreatment, U32 secsElapsed, U32 secsRemaining ); // MSG_ID_TREATMENT_STATE -BOOL broadcastTreatmentState( U32 subMode, U32 uFState, U32 salineBolusState, U32 hepState, U32 rinsebackState, U32 txRecircState, U32 bldPrimeState, U32 txEndState, U32 txStopState ); +BOOL broadcastTreatmentState( TREATMENT_STATE_DATA_T payload ); // MSG_ID_POWER_OFF_WARNING BOOL broadcastPowerOffWarning( void );