Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r79a5884a9d7d6123dab6504940ec92f72093665c -rc2e547d07b8fdadafd2cee283c77a10ff06ebcfa --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 79a5884a9d7d6123dab6504940ec92f72093665c) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision c2e547d07b8fdadafd2cee283c77a10ff06ebcfa) @@ -902,7 +902,7 @@ payload.measMCCurr = getMeasuredBloodPumpMCCurrent(); payload.pwmDC = bloodPumpPWMDutyCyclePctSet * FRACTION_TO_PERCENT_FACTOR; payload.flowSigStrength = getMeasuredBloodFlowSignalStrength() * 100.0; - broadcastBloodFlowData( payload ); + broadcastBloodFlowData( &payload ); bloodFlowDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -r79a5884a9d7d6123dab6504940ec92f72093665c -rc2e547d07b8fdadafd2cee283c77a10ff06ebcfa --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 79a5884a9d7d6123dab6504940ec92f72093665c) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision c2e547d07b8fdadafd2cee283c77a10ff06ebcfa) @@ -868,7 +868,7 @@ payload.measMCCurr = getMeasuredDialInPumpMCCurrent(); payload.pwmDC = dialInPumpPWMDutyCyclePctSet * FRACTION_TO_PERCENT_FACTOR; payload.flowSigStrength = getMeasuredDialInFlowSignalStrength() * 100.0; - broadcastDialInFlowData( payload ); + broadcastDialInFlowData( &payload ); dialInFlowDataPublicationTimerCounter = 0; } } Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -ra21a04cc7f2624b9c74992a8e918b71933802dd6 -rc2e547d07b8fdadafd2cee283c77a10ff06ebcfa --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision c2e547d07b8fdadafd2cee283c77a10ff06ebcfa) @@ -51,11 +51,14 @@ #define PREVENT_UF_VOL_CHANGE_IF_NEARLY_DONE_SEC ( 10 * SEC_PER_MIN ) ///< Prevent UF volume change if treatment within this much time from end of treatment (in seconds). #define TREATMENT_TIME_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the treatment time & state data is published on the CAN bus. -#define TREATMENT_SETTINGS_RANGES_PUB_INTERVAL ( ( 60 * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which updated, valid treatment setting ranges are published on the CAN bus. +/// Interval (ms/task time) at which updated, valid treatment setting ranges are published on the CAN bus. +#define TREATMENT_SETTINGS_RANGES_PUB_INTERVAL ( ( 60 * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ) -#define CALC_ELAPSED_TREAT_TIME_IN_SECS() ( treatmentTimeMS / MS_PER_SECOND ) ///< Macro to calculate the elapsed treatment time in seconds. -#define CALC_ELAPSED_TREAT_TIME_IN_MIN() ( ( treatmentTimeMS / MS_PER_SECOND ) / SEC_PER_MIN ) ///< Macro to calculate the elapsed treatment time in minutes. -#define CALC_TREAT_TIME_REMAINING_IN_SECS() ( (S32)presTreatmentTimeSecs - (S32)( treatmentTimeMS / MS_PER_SECOND ) ) ///< Macro to calculate the remaining treatment time in seconds. +#define CALC_ELAPSED_TREAT_TIME_IN_SECS() ( treatmentTimeMS / MS_PER_SECOND ) ///< Macro to calculate the elapsed treatment time in seconds. +/// Macro to calculate the elapsed treatment time in minutes. +#define CALC_ELAPSED_TREAT_TIME_IN_MIN() ( ( treatmentTimeMS / MS_PER_SECOND ) / SEC_PER_MIN ) +/// Macro to calculate the remaining treatment time in seconds. +#define CALC_TREAT_TIME_REMAINING_IN_SECS() ( (S32)presTreatmentTimeSecs - (S32)( treatmentTimeMS / MS_PER_SECOND ) ) // ********** private data ********** @@ -71,9 +74,9 @@ static U32 lastTreatmentTimeStamp; ///< Last time elapsed treatment time was recorded (a timestamp in ms). static U32 treatmentTimeBroadcastTimerCtr; ///< Treatment data broadcast timer counter used to schedule when to transmit data. static U32 treatmentParamsRangesBroadcastTimerCtr; ///< Treatment parameter ranges broadcast timer counter used to schedule when to transmit updated ranges. +// TODO - test code - remove later +static BUTTON_STATE_T lastOffButtonState = BUTTON_STATE_RELEASED; -static BUTTON_STATE_T lastOffButtonState = BUTTON_STATE_RELEASED; // TODO - test code - remove later - static BOOL pendingUserEndTreatmentRequest; ///< Flag indicates user has requested treatment end. static U32 pendingParamChangesTimer; ///< User required to confirm UF volume change within 1 minute. Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -ra21a04cc7f2624b9c74992a8e918b71933802dd6 -rc2e547d07b8fdadafd2cee283c77a10ff06ebcfa --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c2e547d07b8fdadafd2cee283c77a10ff06ebcfa) @@ -825,7 +825,7 @@ * @param bloodData blood pump and flow data record * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL broadcastBloodFlowData( BLOOD_PUMP_STATUS_PAYLOAD_T bloodData ) +BOOL broadcastBloodFlowData( BLOOD_PUMP_STATUS_PAYLOAD_T *bloodData ) { BOOL result; MESSAGE_T msg; @@ -836,7 +836,7 @@ msg.hdr.msgID = MSG_ID_BLOOD_FLOW_DATA; msg.hdr.payloadLen = sizeof( BLOOD_PUMP_STATUS_PAYLOAD_T ); - memcpy( payloadPtr, &bloodData, sizeof( BLOOD_PUMP_STATUS_PAYLOAD_T ) ); + memcpy( payloadPtr, bloodData, sizeof( BLOOD_PUMP_STATUS_PAYLOAD_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_BROADCAST, ACK_NOT_REQUIRED ); @@ -854,7 +854,7 @@ * @param dialInData Dialysate inlet pump and flow data record * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL broadcastDialInFlowData( DIALIN_PUMP_STATUS_PAYLOAD_T dialInData ) +BOOL broadcastDialInFlowData( DIALIN_PUMP_STATUS_PAYLOAD_T *dialInData ) { BOOL result; MESSAGE_T msg; @@ -865,7 +865,7 @@ msg.hdr.msgID = MSG_ID_DIALYSATE_FLOW_DATA; msg.hdr.payloadLen = sizeof( DIALIN_PUMP_STATUS_PAYLOAD_T ); - memcpy( payloadPtr, &dialInData, sizeof( DIALIN_PUMP_STATUS_PAYLOAD_T ) ); + memcpy( payloadPtr, dialInData, sizeof( DIALIN_PUMP_STATUS_PAYLOAD_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_BROADCAST, ACK_NOT_REQUIRED ); Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -ra21a04cc7f2624b9c74992a8e918b71933802dd6 -rc2e547d07b8fdadafd2cee283c77a10ff06ebcfa --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision c2e547d07b8fdadafd2cee283c77a10ff06ebcfa) @@ -177,10 +177,10 @@ BOOL broadcastAlarmCleared( U16 alarm ); // MSG_ID_BLOOD_FLOW_DATA -BOOL broadcastBloodFlowData( BLOOD_PUMP_STATUS_PAYLOAD_T bloodData ); +BOOL broadcastBloodFlowData( BLOOD_PUMP_STATUS_PAYLOAD_T *bloodData ); // MSG_ID_DIALYSATE_FLOW_DATA -BOOL broadcastDialInFlowData( DIALIN_PUMP_STATUS_PAYLOAD_T dialInData ); +BOOL broadcastDialInFlowData( DIALIN_PUMP_STATUS_PAYLOAD_T *dialInData ); // MSG_ID_DIALYSATE_OUT_FLOW_DATA BOOL broadcastDialOutFlowData( DIAL_OUT_FLOW_DATA_T *dialOutFlowData );