Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -384,10 +384,12 @@ // Publish air trap data on interval if ( ++airTrapDataPublicationTimerCounter >= getU32OverrideValue( &airTrapDataPublishInterval ) ) { - AIR_TRAP_LEVELS_T lowLevel = getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ); - AIR_TRAP_LEVELS_T highLevel = getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ); + AIR_TRAP_PAYLOAD_T data; - broadcastAirTrapData( lowLevel, highLevel ); + data.lowerLevel = getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ); + data.upperLevel = getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ); + + broadcastData( MSG_ID_HD_AIR_TRAP_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( AIR_TRAP_PAYLOAD_T ) ); airTrapDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/AirTrap.h =================================================================== diff -u -r42fe309ff246de72d1ed42fba291e792630d1e12 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/AirTrap.h (.../AirTrap.h) (revision 42fe309ff246de72d1ed42fba291e792630d1e12) +++ firmware/App/Controllers/AirTrap.h (.../AirTrap.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -48,6 +48,13 @@ NUM_OF_AIR_TRAP_LEVELS ///< Number of air trap level sensor levels } AIR_TRAP_LEVELS_T; +/// Payload record structure for air trap data broadcast message +typedef struct +{ + U32 lowerLevel; ///< Lower air trap level sensor state + U32 upperLevel; ///< Upper air trap level sensor state +} AIR_TRAP_PAYLOAD_T; + // ********** public function prototypes ********** void initAirTrap( void ); Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -rd80c4a21ab700d8197e292f34c86dad61828c45a -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision d80c4a21ab700d8197e292f34c86dad61828c45a) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -982,7 +982,7 @@ #endif payload.pwmDC = bloodPumpPWMDutyCyclePctSet * FRACTION_TO_PERCENT_FACTOR; payload.flowSigStrength = getMeasuredBloodFlowSignalStrength() * FRACTION_TO_PERCENT_FACTOR; - broadcastBloodFlowData( &payload ); + broadcastData( MSG_ID_BLOOD_FLOW_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&payload, sizeof( BLOOD_PUMP_STATUS_PAYLOAD_T ) ); bloodFlowDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -r7a7bf19d0cf16745566956f45cef57f8eb5df445 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 7a7bf19d0cf16745566956f45cef57f8eb5df445) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -327,9 +327,11 @@ // Publish blood leak data on interval if ( ++bloodLeakDataPublicationTimerCounter >= getU32OverrideValue( &bloodLeakDataPublishInterval ) ) { - BLOOD_LEAK_STATUS_T status = getBloodLeakStatus(); + BLOOD_LEAK_DATA_T bloodLeakData; - broadcastBloodLeakData( status, (U32)bloodLeakState ); + bloodLeakData.bloodLeakStatus = (U32)getBloodLeakStatus(); + bloodLeakData.bloodLeakState = (U32)bloodLeakState; + broadcastData( MSG_ID_HD_BLOOD_LEAK_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&bloodLeakData, sizeof( BLOOD_LEAK_DATA_T ) ); bloodLeakDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/BloodLeak.h =================================================================== diff -u -r47eb930c3f010b7933ddf1b5d2d9f1a95be90c58 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/BloodLeak.h (.../BloodLeak.h) (revision 47eb930c3f010b7933ddf1b5d2d9f1a95be90c58) +++ firmware/App/Controllers/BloodLeak.h (.../BloodLeak.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -41,6 +41,13 @@ NUM_OF_BLOOD_LEAK_STATUS ///< Number of blood leak detector status } BLOOD_LEAK_STATUS_T; +/// Blood leak detector data publish +typedef struct +{ + U32 bloodLeakStatus; ///< Blood leak detector status + U32 bloodLeakState; ///< Blood leak detector state +} BLOOD_LEAK_DATA_T; + // ********** public function prototypes ********** void initBloodLeak( void ); Index: firmware/App/Controllers/Bubble.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/Bubble.c (.../Bubble.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Controllers/Bubble.c (.../Bubble.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -339,10 +339,13 @@ // Publish air bubble detectors data on interval if ( ++bubblesDataPublicationTimerCounter >= getU32OverrideValue( &bubblesDataPublishInterval ) ) { - BUBBLE_STATUS_T statusADA = getBubbleStatus( ADA ); - BUBBLE_STATUS_T statusADV = getBubbleStatus( ADV ); + BUBBLES_DATA_T bubbleData; - broadcastBubblesData( (U32)statusADA, (U32)bubblesState[ ADA ], (U32)statusADV, (U32)bubblesState[ ADV ] ); + bubbleData.statusADA = (U32)getBubbleStatus( ADA ); + bubbleData.stateADA = (U32)bubblesState[ ADA ]; + bubbleData.statusADV = (U32)getBubbleStatus( ADV ); + bubbleData.stateADV = (U32)bubblesState[ ADV ]; + broadcastData( MSG_ID_HD_BUBBLES_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&bubbleData, sizeof( BUBBLES_DATA_T ) ); bubblesDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/Bubble.h =================================================================== diff -u -r3d30c9829d316b8c5e632c0201a59c8d14b3486e -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/Bubble.h (.../Bubble.h) (revision 3d30c9829d316b8c5e632c0201a59c8d14b3486e) +++ firmware/App/Controllers/Bubble.h (.../Bubble.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -37,19 +37,28 @@ /// Enumeration of air bubble detectors status. typedef enum BubblesStatus { - BUBBLE_DETECTED = 0, ///< Air bubble detector senses bubble - BUBBLE_NOT_DETECTED, ///< Air bubble detector does not sense any bubble - NUM_OF_BUBBLE_STATUS ///< Number of air bubble detector status + BUBBLE_DETECTED = 0, ///< Air bubble detector senses bubble + BUBBLE_NOT_DETECTED, ///< Air bubble detector does not sense any bubble + NUM_OF_BUBBLE_STATUS ///< Number of air bubble detector status } BUBBLE_STATUS_T; /// Air bubble detectors names typedef enum bubblesNames { - ADA = 0, ///< Arterial air bubble detector - ADV, ///< Venous air bubble detector - NUM_OF_BUBBLES ///< Number of air bubble detectors + ADA = 0, ///< Arterial air bubble detector + ADV, ///< Venous air bubble detector + NUM_OF_BUBBLES ///< Number of air bubble detectors } BUBBLES_T; +/// Bubble detectors data publish +typedef struct +{ + U32 statusADA; ///< Arterial bubble detector status + U32 stateADA; ///< Arterial bubble detector state + U32 statusADV; ///< Venous bubble detector status + U32 stateADV; ///< Venous bubble detector state +} BUBBLES_DATA_T; + // ********** public function prototypes ********** void initBubbles( void ); Index: firmware/App/Controllers/Buttons.c =================================================================== diff -u -r1c628bfd5d6414b74b8cbd083f66839888a8236b -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/Buttons.c (.../Buttons.c) (revision 1c628bfd5d6414b74b8cbd083f66839888a8236b) +++ firmware/App/Controllers/Buttons.c (.../Buttons.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -297,7 +297,7 @@ // If we are in a mode that allows power off, initiate power off sequence if ( TRUE == isCurrentOpModeOkToTurnOff() ) { - broadcastPowerOffWarning(); + broadcastData( MSG_ID_POWER_OFF_WARNING, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)0, 0 ); signalPowerOffWarning(); offButtonPressPending = TRUE; offRequestPulseCount = OFF_REQUEST_PULSE_COUNT; Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -r50fc6ca962c381ac98c9f032115973a5fff2a761 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 50fc6ca962c381ac98c9f032115973a5fff2a761) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -967,7 +967,7 @@ payload.measMCCurr = getMeasuredDialInPumpMCCurrent(); payload.pwmDC = dialInPumpPWMDutyCyclePctSet * FRACTION_TO_PERCENT_FACTOR; payload.flowSigStrength = getMeasuredDialInFlowSignalStrength() * FRACTION_TO_PERCENT_FACTOR; - broadcastDialInFlowData( &payload ); + broadcastData( MSG_ID_DIALYSATE_FLOW_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&payload, sizeof( DIALIN_PUMP_STATUS_PAYLOAD_T ) ); dialInFlowDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/DialOutFlow.c =================================================================== diff -u -r50fc6ca962c381ac98c9f032115973a5fff2a761 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision 50fc6ca962c381ac98c9f032115973a5fff2a761) +++ firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -707,7 +707,7 @@ dialOutBroadCastVariables.measMCCurrmA = getMeasuredDialOutPumpMCCurrent(); dialOutBroadCastVariables.setPWMpct = dialOutPumpPWMDutyCyclePctSet * FRACTION_TO_PERCENT_FACTOR; - broadcastDialOutFlowData( &dialOutBroadCastVariables); + broadcastData( MSG_ID_DIALYSATE_OUT_FLOW_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&dialOutBroadCastVariables, sizeof( DIAL_OUT_FLOW_DATA_T ) ); dialOutFlowDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/Fans.c =================================================================== diff -u -r4a9872d81bae53492c124d0378028ece422f1b4d -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/Fans.c (.../Fans.c) (revision 4a9872d81bae53492c124d0378028ece422f1b4d) +++ firmware/App/Controllers/Fans.c (.../Fans.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -416,9 +416,7 @@ if ( TRUE == isAlarmTriggered ) { - ALARM_DATA_T alarmData; - alarmData.data.flt.data = rpm; - activateAlarm1Data( ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE, alarmData ); + SET_ALARM_WITH_1_F32_DATA( ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE, rpm ) hasAlarmBeenRaised = TRUE; } @@ -474,7 +472,7 @@ fansData.fansTargetRPM = fansStatus.targetRPM; fansData.fanInlet1RPM = getMeasuredFanRPM( FAN_INLET_1 ); - broadcastFansData( &fansData ); + broadcastData( MSG_ID_HD_FANS_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&fansData, sizeof( FANS_DATA_T ) ); fansPublishCounter = 0; } Index: firmware/App/Controllers/FluidLeak.c =================================================================== diff -u -r7a7bf19d0cf16745566956f45cef57f8eb5df445 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/FluidLeak.c (.../FluidLeak.c) (revision 7a7bf19d0cf16745566956f45cef57f8eb5df445) +++ firmware/App/Controllers/FluidLeak.c (.../FluidLeak.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -130,9 +130,9 @@ // Publish fluid leak state on interval if ( ++fluidLeakStatePublicationTimerCounter >= getU32OverrideValue( &fluidLeakStatePublishInterval ) ) { - FLUID_LEAK_STATES_T state = getFluidLeakState(); + U32 state = (U32)getFluidLeakState(); - broadcastFluidLeakState( state ); + broadcastData( MSG_ID_HD_FLUID_LEAK_STATE, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&state, sizeof( U32 ) ); fluidLeakStatePublicationTimerCounter = 0; } } Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r42fe309ff246de72d1ed42fba291e792630d1e12 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 42fe309ff246de72d1ed42fba291e792630d1e12) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -872,7 +872,7 @@ data.diPumpOcclusion = getMeasuredDialInPumpOcclusion(); data.doPumpOcclusion = getMeasuredDialOutPumpOcclusion(); - broadcastPresOcclData( data ); + broadcastData( MSG_ID_PRESSURE_OCCLUSION_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( PRESSURE_OCCLUSION_DATA_T ) ); presOcclDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/Switches.c =================================================================== diff -u -r4a9872d81bae53492c124d0378028ece422f1b4d -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/Switches.c (.../Switches.c) (revision 4a9872d81bae53492c124d0378028ece422f1b4d) +++ firmware/App/Controllers/Switches.c (.../Switches.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -164,7 +164,7 @@ switchesDataPublicationCounter = 0; - broadcastSwitchesData( &data ); + broadcastData( MSG_ID_HD_SWITCHES_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( SWITCHES_DATA_T ) ); } } Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -r1c628bfd5d6414b74b8cbd083f66839888a8236b -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 1c628bfd5d6414b74b8cbd083f66839888a8236b) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -1841,8 +1841,8 @@ ( (U32)getSyringePumpADCandDACStatus() << SHIFT_8_BITS_FOR_BYTE_SHIFT ) | ( (U32)getSyringePumpADCReadCounter() ); - broadcastSyringePumpData( data ); - broadcastHeparinData( data.syringePumpVolumeDelivered ); + broadcastData( MSG_ID_HD_SYRINGE_PUMP_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( SYRINGE_PUMP_DATA_PAYLOAD_T ) ); + broadcastData( MSG_ID_HD_HEPARIN_DATA_BROADCAST, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data.syringePumpVolumeDelivered, sizeof( F32 ) ); syringePumpDataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/Temperatures.c =================================================================== diff -u -r4a9872d81bae53492c124d0378028ece422f1b4d -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/Temperatures.c (.../Temperatures.c) (revision 4a9872d81bae53492c124d0378028ece422f1b4d) +++ firmware/App/Controllers/Temperatures.c (.../Temperatures.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -264,9 +264,7 @@ if ( TRUE == isAlarmTriggered ) { - ALARM_DATA_T alarmData; - alarmData.data.flt.data = temperature; - activateAlarm1Data( ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE, alarmData ); + SET_ALARM_WITH_1_F32_DATA( ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE, temperature ) } } @@ -401,7 +399,7 @@ sensorsData.pbaADCTempSensor = getTemperatureValue( TEMPSENSOR_PBA_ADC_SENSOR ); // Broadcast the temperatures data - broadcastTemperaturesData( &sensorsData ); + broadcastData( MSG_ID_HD_TEMPERATURES_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&sensorsData, sizeof( TEMPERATURES_DATA_T ) ); // Reset the counter dataPublishCounter = 0; Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -r1c628bfd5d6414b74b8cbd083f66839888a8236b -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision 1c628bfd5d6414b74b8cbd083f66839888a8236b) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -1223,6 +1223,7 @@ if ( ++valvesStatus[ valve ].dataPublishCounter >= getU32OverrideValue( &valvesDataPublishInterval ) ) { HD_VALVE_DATA_T valveData; + valveData.valveID = (U32)valve; valveData.state = (U32)valvesStatus[ valve ].execState; valveData.currentPosID = (U32)getValvePosition( valve ); @@ -1235,7 +1236,7 @@ valveData.pwm = valvesStatus[ valve ].bypassModeStatus.currentPWMInPercent; valveData.airTrapValve = (U32)getValveAirTrapStatus(); - broadcastHDValves( &valveData ); + broadcastData( MSG_ID_HD_VALVES_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&valveData, sizeof( HD_VALVE_DATA_T ) ); valvesStatus[ valve ].dataPublishCounter = 0; } Index: firmware/App/Controllers/Voltages.c =================================================================== diff -u -r8f217e3f4f171dba78c9ac69a3470af442941a89 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Controllers/Voltages.c (.../Voltages.c) (revision 8f217e3f4f171dba78c9ac69a3470af442941a89) +++ firmware/App/Controllers/Voltages.c (.../Voltages.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -288,7 +288,7 @@ data.fpgaVaux = getMonitoredLineLevel( MONITORED_LINE_FPGA_AUX_V ); data.fpgaVpvn = getMonitoredLineLevel( MONITORED_LINE_FPGA_PVN_V ); - broadcastVoltagesData( data ); + broadcastData( MSG_ID_HD_VOLTAGES_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( VOLTAGES_DATA_PAYLOAD_T ) ); voltagesDataPublicationTimerCounter = 0; } } Index: firmware/App/Modes/BloodPrime.c =================================================================== diff -u -r1c628bfd5d6414b74b8cbd083f66839888a8236b -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision 1c628bfd5d6414b74b8cbd083f66839888a8236b) +++ firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -332,7 +332,7 @@ data.targetBloodPrimeVolumeMl = TARGET_BLOOD_PRIME_VOLUME_ML; data.deliveredBloodPrimeVolumeMl = getBloodPrimeVolume(); data.indDeliveredBloodPrimeVolumeMl = getBloodPrimeSafetyVolume(); - broadcastBloodPrimeData( data ); + broadcastData( MSG_ID_HD_BLOOD_PRIME_PROGRESS, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( BLOOD_PRIME_DATA_PAYLOAD_T ) ); } } Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -re64816def7cd98e7dcb6d133b3a56c9fea835af3 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision e64816def7cd98e7dcb6d133b3a56c9fea835af3) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -1025,7 +1025,7 @@ data.tgtSalineVolumeMl = getTreatmentParameterU32( TREATMENT_PARAM_SALINE_BOLUS_VOLUME ); data.cumSalineVolumeMl = totalSalineVolumeDelivered; data.bolSalineVolumeMl = bolusSalineVolumeDelivered; - broadcastSalineBolusData( data ); + broadcastData( MSG_ID_SALINE_BOLUS_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( SALINE_BOLUS_DATA_PAYLOAD_T ) ); salineBolusBroadcastTimerCtr = 0; } } Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r50fc6ca962c381ac98c9f032115973a5fff2a761 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 50fc6ca962c381ac98c9f032115973a5fff2a761) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -182,7 +182,9 @@ if ( ++postTreatmentPublishTimerCounter >= getU32OverrideValue( &postTreatmentModePublishInterval ) ) { - broadcastPostTreatmentState( currentPostTreatmentState ); + U32 state = (U32)currentPostTreatmentState; + + broadcastData( MSG_ID_HD_POST_TREATMENT_STATE, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&state, sizeof( U32 ) ); postTreatmentPublishTimerCounter = 0; } Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -rf2cecb1dae0cfccc768b321f1d0cdec9a73c5824 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision f2cecb1dae0cfccc768b321f1d0cdec9a73c5824) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -432,7 +432,7 @@ preTreatmentData.recircState = getPreTreatmentRecircState(); preTreatmentData.patientConnectionState = 0; - broadcastPreTreatmentState( &preTreatmentData ); + broadcastData( MSG_ID_PRE_TREATMENT_STATE, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&preTreatmentData, sizeof( PRE_TREATMENT_STATE_DATA_T ) ); preTreatmentPublishTimerCounter = 0; } } Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r6d500da57b7590f105f7b39261af4321998d2175 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 6d500da57b7590f105f7b39261af4321998d2175) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -662,7 +662,7 @@ data.disinfectSubModeHDState = (U32)dgDisinfectState; - broadcastDisinfectsData( &data ); + broadcastData( MSG_ID_HD_DISINFECT_STANDBY_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( DISINFECTS_DATA_T ) ); dataPublishCounter = 0; } Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rcbb126cfd3a02c08436a66ffecb2bdf926263705 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision cbb126cfd3a02c08436a66ffecb2bdf926263705) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -1374,16 +1374,15 @@ // Broadcast treatment time data at interval if ( ++treatmentTimeBroadcastTimerCtr >= getU32OverrideValue( &treatmentTimePublishInterval ) ) { + TREATMENT_TIME_DATA_T data = { 0, 0, 0 }; + if ( isTreatmentCompleted() != TRUE ) { - U32 timeRemaining = presTreatmentTimeSecs - elapsedTreatmentTimeInSecs; - - broadcastTreatmentTime( presTreatmentTimeSecs, elapsedTreatmentTimeInSecs, timeRemaining ); + data.treatmentTimePrescribedinSec = presTreatmentTimeSecs; + data.treatmentTimeElapsedinSec = elapsedTreatmentTimeInSecs; + data.treatmentTimeRemaininginSec = presTreatmentTimeSecs - elapsedTreatmentTimeInSecs; } - else // If treatment is completed, send zeroes to UI - { - broadcastTreatmentTime( 0, 0, 0 ); - } + broadcastData( MSG_ID_TREATMENT_TIME, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( TREATMENT_TIME_DATA_T ) ); treatmentTimeBroadcastTimerCtr = 0; } // Broadcast treatment state data at interval @@ -1402,7 +1401,7 @@ payload.heparinState = getHeparinState(); payload.dialysisState = getDialysisState(); - broadcastTreatmentState( payload ); + broadcastData( MSG_ID_TREATMENT_STATE, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&payload, sizeof( TREATMENT_STATE_DATA_T ) ); treatmentStateBroadcastTimerCtr = 0; } } Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r50fc6ca962c381ac98c9f032115973a5fff2a761 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 50fc6ca962c381ac98c9f032115973a5fff2a761) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -375,8 +375,12 @@ { if ( ++broadcastModeIntervalCtr >= getU32OverrideValue( &opModePublishInterval ) ) { + OP_MODE_PAYLOAD_T data; + broadcastModeIntervalCtr = 0; - broadcastHDOperationMode( (U32)currentMode, currentSubMode ); + data.opMode = (U32)currentMode; + data.subMode = currentSubMode; + broadcastData( MSG_ID_HD_OP_MODE, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( OP_MODE_PAYLOAD_T ) ); } } Index: firmware/App/Modes/OperationModes.h =================================================================== diff -u -r7a7bf19d0cf16745566956f45cef57f8eb5df445 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/OperationModes.h (.../OperationModes.h) (revision 7a7bf19d0cf16745566956f45cef57f8eb5df445) +++ firmware/App/Modes/OperationModes.h (.../OperationModes.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -31,6 +31,13 @@ // ********** public definitions ********** +/// Payload record structure for op mode broadcast message +typedef struct +{ + U32 opMode; ///< Current operating mode + U32 subMode; ///< Current sub-mode of current operating mode +} OP_MODE_PAYLOAD_T; + // ********** public function prototypes ********** void initOperationModes( void ); // Initialize this module Index: firmware/App/Modes/Prime.c =================================================================== diff -u -re5d1d67106a93a6cd1b5692b586625d715732e2f -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/Prime.c (.../Prime.c) (revision e5d1d67106a93a6cd1b5692b586625d715732e2f) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -318,7 +318,7 @@ primeData.totalTime = MAX_PRIME_TIME; primeData.remainingTime = MAX_PRIME_TIME - elapsedPrimeTimeInSecs; - broadcastPrimeData( &primeData ); + broadcastData( MSG_ID_HD_PRIMING_STATUS_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&primeData, sizeof( PRIMING_DATA_PAYLOAD_T ) ); primeStatusBroadcastTimerCounter = 0; } } Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r3969e8aaa110f89c8fa67553517498627be84c66 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 3969e8aaa110f89c8fa67553517498627be84c66) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -1051,7 +1051,7 @@ } data.timeout = timeout; data.countdown = countdown; - broadcastRinsebackData( data ); + broadcastData( MSG_ID_HD_RINSEBACK_PROGRESS, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( RINSEBACK_DATA_PAYLOAD_T ) ); } } Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r38a89cb53b4ed2e467f51d41e30d43010fdd23e3 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 38a89cb53b4ed2e467f51d41e30d43010fdd23e3) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -312,7 +312,11 @@ if ( elapsedSelfTestTimeInSecs <= MAX_NO_CARTRIDGE_SELF_TEST_TIME ) { - broadcastNoCartSelfTestTime( MAX_NO_CARTRIDGE_SELF_TEST_TIME, ( MAX_NO_CARTRIDGE_SELF_TEST_TIME - elapsedSelfTestTimeInSecs ) ); + SELF_TEST_NO_CARTRIDGE_PAYLOAD_T data; + + data.timeout = MAX_NO_CARTRIDGE_SELF_TEST_TIME; + data.countdown = ( MAX_NO_CARTRIDGE_SELF_TEST_TIME - elapsedSelfTestTimeInSecs ); + broadcastData( MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( SELF_TEST_NO_CARTRIDGE_PAYLOAD_T ) ); } else { @@ -443,7 +447,11 @@ if ( elapsedSelfTestTimeInSecs <= MAX_DRY_SELF_TEST_TIME ) { - broadcastDrySelfTestTime( MAX_DRY_SELF_TEST_TIME, ( MAX_DRY_SELF_TEST_TIME - elapsedSelfTestTimeInSecs ) ); + SELF_TEST_DRY_PAYLOAD_T data; + + data.timeout = MAX_DRY_SELF_TEST_TIME; + data.countdown = ( MAX_DRY_SELF_TEST_TIME - elapsedSelfTestTimeInSecs ); + broadcastData( MSG_ID_HD_DRY_SELF_TEST_PROGRESS, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( SELF_TEST_DRY_PAYLOAD_T ) ); } else { Index: firmware/App/Modes/SelfTests.h =================================================================== diff -u -r125a27d5a3a116e7b7473ff180daf247270d8e57 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/SelfTests.h (.../SelfTests.h) (revision 125a27d5a3a116e7b7473ff180daf247270d8e57) +++ firmware/App/Modes/SelfTests.h (.../SelfTests.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -31,6 +31,20 @@ // ********** public definitions ********** +/// Payload record structure for no cartridge self-test data broadcast message +typedef struct +{ + U32 timeout; ///< No cartridge self-test timeout (in seconds) + U32 countdown; ///< No cartridge self-test timeout countdown (in seconds) +} SELF_TEST_NO_CARTRIDGE_PAYLOAD_T; + +/// Payload record structure for dry self-test data broadcast message +typedef struct +{ + U32 timeout; ///< Dry self-test timeout (in seconds) + U32 countdown; ///< Dry self-test timeout countdown (in seconds) +} SELF_TEST_DRY_PAYLOAD_T; + // ********** public function prototypes ********** void initSelfTests( void ); Index: firmware/App/Modes/TreatmentRecirc.c =================================================================== diff -u -r3969e8aaa110f89c8fa67553517498627be84c66 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/TreatmentRecirc.c (.../TreatmentRecirc.c) (revision 3969e8aaa110f89c8fa67553517498627be84c66) +++ firmware/App/Modes/TreatmentRecirc.c (.../TreatmentRecirc.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -477,11 +477,13 @@ { if ( ++recircPublishTimerCtr >= RECIRC_DATA_PUBLISH_INTERVAL ) { - U32 timeout = RECIRC_TIMEOUT / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); - U32 countdown = ( recircTimerCtr >= RECIRC_TIMEOUT ? 0 : ( RECIRC_TIMEOUT - recircTimerCtr ) / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); + TREATMENT_RECIRC_PAYLOAD_T data; + data.timeout = RECIRC_TIMEOUT / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); + data.countdown = ( recircTimerCtr >= RECIRC_TIMEOUT ? 0 : ( RECIRC_TIMEOUT - recircTimerCtr ) / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); + recircPublishTimerCtr = 0; - broadcastRecircData( timeout, countdown ); + broadcastData( MSG_ID_HD_RECIRC_PROGRESS, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( TREATMENT_RECIRC_PAYLOAD_T ) ); } } Index: firmware/App/Modes/TreatmentRecirc.h =================================================================== diff -u -r89f4c7f0995e2094b3f26fc7e7e12371e847abac -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/TreatmentRecirc.h (.../TreatmentRecirc.h) (revision 89f4c7f0995e2094b3f26fc7e7e12371e847abac) +++ firmware/App/Modes/TreatmentRecirc.h (.../TreatmentRecirc.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -31,6 +31,15 @@ * @{ */ +// ********** public definitions ********** + +/// Payload record structure for treatment recirculate mode data broadcast message +typedef struct +{ + U32 timeout; ///< Recirculation timeout time (in seconds) + U32 countdown; ///< Recirculation timeout countdown (in seconds) +} TREATMENT_RECIRC_PAYLOAD_T; + // ********** public function prototypes ********** void initTreatmentRecirc( void ); Index: firmware/App/Modes/TreatmentStop.c =================================================================== diff -u -r3969e8aaa110f89c8fa67553517498627be84c66 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/TreatmentStop.c (.../TreatmentStop.c) (revision 3969e8aaa110f89c8fa67553517498627be84c66) +++ firmware/App/Modes/TreatmentStop.c (.../TreatmentStop.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -239,11 +239,13 @@ { if ( ++stopPublishTimerCtr >= getU32OverrideValue( &treatmentStopPublishInterval ) ) { - U32 timeout = MAX_TIME_BLOOD_SITTING / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); - U32 countdown = ( bloodSittingTimerCtr >= MAX_TIME_BLOOD_SITTING ? 0 : ( MAX_TIME_BLOOD_SITTING - bloodSittingTimerCtr ) / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); + TREATMENT_STOP_PAYLOAD_T data; + data.timeout = MAX_TIME_BLOOD_SITTING / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); + data.countdown = ( bloodSittingTimerCtr >= MAX_TIME_BLOOD_SITTING ? 0 : ( MAX_TIME_BLOOD_SITTING - bloodSittingTimerCtr ) / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); + stopPublishTimerCtr = 0; - broadcastTreatmentStopData( timeout, countdown ); + broadcastData( MSG_ID_HD_TREATMENT_STOP_TIMER_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( TREATMENT_STOP_PAYLOAD_T ) ); } } Index: firmware/App/Modes/TreatmentStop.h =================================================================== diff -u -rc65ad0538ff99c3e13d7d7866ac15e38a1ef6002 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Modes/TreatmentStop.h (.../TreatmentStop.h) (revision c65ad0538ff99c3e13d7d7866ac15e38a1ef6002) +++ firmware/App/Modes/TreatmentStop.h (.../TreatmentStop.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -34,6 +34,13 @@ // ********** public definitions ****************** +/// Payload record for treatment stop mode broadcast message +typedef struct +{ + U32 timeout; ///< Blood sitting timeout (in seconds) + U32 countdown; ///< Blood sitting timeout countdown (in seconds) +} TREATMENT_STOP_PAYLOAD_T; + // ********** public function prototypes ********** void initTreatmentStop( void ); Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -re64816def7cd98e7dcb6d133b3a56c9fea835af3 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision e64816def7cd98e7dcb6d133b3a56c9fea835af3) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -336,8 +336,13 @@ { // Broadcast alarm and data if alarm not already active if ( FALSE == alarmIsActive[ alarm ] ) - { - broadcastAlarmTriggered( alarm, alarmData1, alarmData2 ); + { + ALARM_TRIGGERED_PAYLOAD_T data; + + data.alarm = (U32)alarm; + data.almData1 = alarmData1; + data.almData2 = alarmData2; + broadcastData( MSG_ID_ALARM_TRIGGERED, COMM_BUFFER_OUT_CAN_HD_ALARM, (U08*)&data, sizeof( ALARM_TRIGGERED_PAYLOAD_T ) ); // Send information for UI to log to treatment log if ( ( TRUE == ALARM_TABLE[ alarm ].alarmTreatmentLog ) && ( MODE_TREA == getCurrentOperationMode() ) ) { @@ -364,8 +369,10 @@ // Clear alarm condition and broadcast alarm condition clear if not already cleared if ( TRUE == alarmIsDetected[ alarm ] ) { + U32 a = (U32)alarm; + alarmIsDetected[ alarm ] = FALSE; - broadcastAlarmConditionCleared( alarm ); + broadcastData( MSG_ID_ALARM_CONDITION_CLEARED, COMM_BUFFER_OUT_CAN_HD_ALARM, (U08*)&a, sizeof( U32 ) ); } } } @@ -390,8 +397,10 @@ { // Clear alarm and broadcast alarm clear if not already cleared if ( TRUE == alarmIsActive[ alarm ] ) - { - broadcastAlarmCleared( alarm ); + { + U32 a = (U32)alarm; + + broadcastData( MSG_ID_ALARM_CLEARED, COMM_BUFFER_OUT_CAN_HD_ALARM, (U08*)&a, sizeof( U32 ) ); alarmIsActive[ alarm ] = FALSE; clearAlarmCondition( alarm ); @@ -1175,7 +1184,7 @@ data.backupAudioCurr = getAlarmAudioBackupCurrent(); data.safetyShutdown = isSafetyShutdownActivated(); - broadcastAlarmInfo( data ); + broadcastData( MSG_ID_HD_ALARM_INFORMATION, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( ALARM_INFO_PAYLOAD_T ) ); alarmInfoPublicationTimerCounter = 0; } } @@ -1472,7 +1481,9 @@ { if ( TRUE == alarmIsActive[ a ] ) { - broadcastAlarmCleared( a ); + U32 al = (U32)a; + + broadcastData( MSG_ID_ALARM_CLEARED, COMM_BUFFER_OUT_CAN_HD_ALARM, (U08*)&al, sizeof( U32 ) ); alarmIsActive[ a ] = FALSE; alarmStartedAt[ a ].data = 0; // Clear FIFO if this alarm was in it Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -121,13 +121,21 @@ /// Payload record structure for the alarm info message. typedef struct { - U32 audioVolume; ///< Audio volume level (1..5) - F32 audioCurrHG; ///< Primary alarm audio current - high gain (mA) - F32 audioCurrLG; ///< Primary alarm audio current - low gain (mA) - F32 backupAudioCurr; ///< Backup alarm audio current (mA) - BOOL safetyShutdown; ///< Safety shutdown activated? (T/F) + U32 audioVolume; ///< Audio volume level (1..5) + F32 audioCurrHG; ///< Primary alarm audio current - high gain (mA) + F32 audioCurrLG; ///< Primary alarm audio current - low gain (mA) + F32 backupAudioCurr; ///< Backup alarm audio current (mA) + BOOL safetyShutdown; ///< Safety shutdown activated? (T/F) } ALARM_INFO_PAYLOAD_T; +/// Payload record structure for the alarm triggered message. +typedef struct +{ + U32 alarm; ///< ID of alarm that was triggered + ALARM_DATA_T almData1; ///< Supporting data #1 + ALARM_DATA_T almData2; ///< Supporting data #2 +} ALARM_TRIGGERED_PAYLOAD_T; + #pragma pack(pop) #pragma pack(push, 2) Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r61222dea4dcdad959cf343b65a6f92216b252f30 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 61222dea4dcdad959cf343b65a6f92216b252f30) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -49,9 +49,6 @@ // ********** private definitions ********** -#define ACK_REQUIRED TRUE ///< Macro for functions that want to know if an outgoing message requires acknowledgement from receiver. -#define ACK_NOT_REQUIRED FALSE ///< Macro for functions that want to know if an outgoing message requires acknowledgement from receiver. - #ifdef DEBUG_ENABLED #define DEBUG_EVENT_MAX_TEXT_LEN 40 #endif @@ -75,7 +72,6 @@ // ********** private function prototypes ********** -static U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ); static BOOL sendTestAckResponseMsg( MSG_ID_T msgID, BOOL ack ); static BOOL sendAckResponseMsg( MSG_ID_T msgID, COMM_BUFFER_T buffer, BOOL ack ); static BOOL sendUIResponseMsg( MSG_ID_T msgID, BOOL accepted, U32 reason ); @@ -94,7 +90,7 @@ * @param ackReq is an acknowledgement from receiver required? * @return size (in bytes) of serialized message populated in given data array. *************************************************************************/ -static U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ) +U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ) { BOOL result = 0; BOOL error = FALSE; @@ -119,7 +115,7 @@ } } } - // If transmission of this message is blocked, don't serialize/queue message + // Serialize and queue message for transmission unless this message is blocked if ( blocked != TRUE ) { // Prefix data with message sync byte @@ -1775,52 +1771,6 @@ return result; } -/*********************************************************************//** - * @brief - * The broadcastAccelData function constructs an accelerometer data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: accelerometer data broadcast msg constructed and queued. - * @param x X axis vector magnitude (in g) - * @param y Y axis vector magnitude (in g) - * @param z Z axis vector magnitude (in g) - * @param xm max X axis vector magnitude (in g) - * @param ym max Y axis vector magnitude (in g) - * @param zm max Z axis vector magnitude (in g) - * @param xt X axis tilt (in degrees) - * @param yt Y axis tilt (in degrees) - * @param zt Z axis tilt (in degrees) - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastAccelData( F32 x, F32 y, F32 z, F32 xm, F32 ym, F32 zm, F32 xt, F32 yt, F32 zt ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - ACCEL_DATA_PAYLOAD_T payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_ACCELEROMETER_DATA; - msg.hdr.payloadLen = sizeof( ACCEL_DATA_PAYLOAD_T ); - payload.x = x; - payload.y = y; - payload.z = z; - payload.xMax = xm; - payload.yMax = ym; - payload.zMax = zm; - payload.xTilt = xt; - payload.yTilt = yt; - payload.zTilt = zt; - - memcpy( payloadPtr, &payload, sizeof( ACCEL_DATA_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 ); - - return result; -} - /*********************************************************************//** * @brief * The broadcastAlarmStatus function constructs an alarm status msg to @@ -1833,15 +1783,8 @@ BOOL broadcastAlarmStatus( COMP_ALARM_STATUS_T almStatus ) { BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; ALARM_COMP_STATUS_PAYLOAD_T payload; - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_ALARM_STATUS; - msg.hdr.payloadLen = sizeof( ALARM_COMP_STATUS_PAYLOAD_T ); - payload.alarmState = (U32)almStatus.alarmsState; payload.alarmTop = (U32)almStatus.alarmTop; payload.silenceExpiresIn = almStatus.alarmsSilenceExpiresIn; @@ -1860,925 +1803,14 @@ payload.alarmsFlags |= ( almStatus.lampOn ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_LAMP_ON) : 0 ); payload.alarmsFlags |= ( almStatus.noMinimize ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_NO_MINIMIZE) : 0 ); payload.alarmsFlags |= ( almStatus.topAlarmConditionDetected ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_TOP_CONDITION) : 0 ); - - memcpy( payloadPtr, &payload, sizeof( ALARM_COMP_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_ALARM, ACK_NOT_REQUIRED ); - - return result; -} -/*********************************************************************//** - * @brief - * The broadcastAlarmInfo function constructs an alarm information msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: alarm information msg constructed and queued. - * @param data alarm information record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastAlarmInfo( ALARM_INFO_PAYLOAD_T data ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_ALARM_INFORMATION; - msg.hdr.payloadLen = sizeof( ALARM_INFO_PAYLOAD_T ); - - memcpy( payloadPtr, &data, sizeof( ALARM_INFO_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 ); - - return result; -} + result = broadcastData( MSG_ID_ALARM_STATUS, COMM_BUFFER_OUT_CAN_HD_ALARM, (U08*)&payload, sizeof( ALARM_COMP_STATUS_PAYLOAD_T ) ); -/*********************************************************************//** - * @brief - * The broadcastAlarmTriggered function constructs an alarm triggered msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: alarm triggered msg constructed and queued. - * @param alarm ID of alarm triggered - * @param almData1 1st data associated with alarm - * @param almData2 2nd data associated with alarm - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastAlarmTriggered( U32 alarm, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_ALARM_TRIGGERED; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ) * 2 * 2; // 2 alarm data recs w/ 2 32-bit values each - - memcpy( payloadPtr, &alarm, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &almData1.dataType, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &almData1.data, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &almData2.dataType, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &almData2.data, sizeof( U32 ) ); - - // 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_ALARM, ACK_REQUIRED ); - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastAlarmCleared function constructs an alarm cleared msg to be - * broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: alarm cleared msg constructed and queued. - * @param alarm ID of alarm cleared - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastAlarmCleared( U32 alarm ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_ALARM_CLEARED; - msg.hdr.payloadLen = sizeof( U32 ); - - memcpy( payloadPtr, &alarm, sizeof( U32 ) ); - - // 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_ALARM, ACK_REQUIRED ); - - return result; } /*********************************************************************//** * @brief - * The broadcastAlarmConditionCleared function constructs an alarm condition - * cleared msg to be broadcast and queues the msg for transmit on the - * appropriate CAN channel. - * @details Inputs: none - * @details Outputs: alarm condition cleared msg constructed and queued. - * @param alarm ID of alarm that has had its condition cleared - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastAlarmConditionCleared( U32 alarm ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_ALARM_CONDITION_CLEARED; - msg.hdr.payloadLen = sizeof( U32 ); - - memcpy( payloadPtr, &alarm, sizeof( U32 ) ); - - // 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_ALARM, ACK_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastBloodFlowData function constructs a blood flow data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: blood flow data msg constructed and queued. - * @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 result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - 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 ) ); - - // 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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastDialInFlowData function constructs a dialysate flow data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: dialysate flow data msg constructed and queued. - * @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 result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - 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 ) ); - - // 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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastDialInFlowData function constructs a dialysate outlet flow data - * msg to be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: dialysate out flow data msg constructed and queued. - * @param dialOutFlowData Pointer to the dialysate out flow data record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastDialOutFlowData( DIAL_OUT_FLOW_DATA_T *dialOutFlowData ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_DIALYSATE_OUT_FLOW_DATA; - msg.hdr.payloadLen = sizeof( DIAL_OUT_FLOW_DATA_T ); - - memcpy( payloadPtr, dialOutFlowData, sizeof( DIAL_OUT_FLOW_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastSyringePumpData function constructs a syringe pump data - * msg to be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: syringe pump data msg constructed and queued. - * @param data syringe pump data record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastSyringePumpData( SYRINGE_PUMP_DATA_PAYLOAD_T data ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_SYRINGE_PUMP_DATA; - msg.hdr.payloadLen = sizeof( SYRINGE_PUMP_DATA_PAYLOAD_T ); - - memcpy( payloadPtr, &data, sizeof( SYRINGE_PUMP_DATA_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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastHeparinData function constructs a Heparin data message - * to be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: Heparin data msg constructed and queued. - * @param data Heparin data record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastHeparinData( F32 volume ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_HEPARIN_DATA_BROADCAST; - msg.hdr.payloadLen = sizeof( F32 ); - - memcpy( payloadPtr, &volume, sizeof( F32 ) ); - - // 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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastPresOcclData function constructs a pres/occl data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: pressure/occlusion data msg constructed and queued. - * @param data Latest measured pressures and occlusion values. - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastPresOcclData( PRESSURE_OCCLUSION_DATA_T data ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_PRESSURE_OCCLUSION_DATA; - msg.hdr.payloadLen = sizeof( PRESSURE_OCCLUSION_DATA_T ); - - memcpy( payloadPtr, &data, sizeof( PRESSURE_OCCLUSION_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastVoltagesData function constructs a monitored voltages data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: monitored voltages data msg constructed and queued. - * @param data Latest monitored voltage values. - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastVoltagesData( VOLTAGES_DATA_PAYLOAD_T data ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_VOLTAGES_DATA; - msg.hdr.payloadLen = sizeof( VOLTAGES_DATA_PAYLOAD_T ); - - memcpy( payloadPtr, &data, sizeof( VOLTAGES_DATA_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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastRTCEpoch function constructs an epoch msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: RTC time and date in epoch - * @param epoch Current time and date in epoch - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastRTCEpoch( U32 epoch ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_RTC_EPOCH; - msg.hdr.payloadLen = sizeof( U32 ); - - memcpy( payloadPtr, &epoch, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastTreatmentTime function constructs a treatment time msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: treatment time data msg constructed and queued - * @param secsTotTreatment Total treatment time prescribed (in seconds) - * @param secsElapsed Treatment time elapsed (in seconds) - * @param secsRemaining Treatment time remaining (in seconds) - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastTreatmentTime( U32 secsTotTreatment, U32 secsElapsed, U32 secsRemaining ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - TREATMENT_TIME_DATA_T payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_TREATMENT_TIME; - msg.hdr.payloadLen = sizeof( TREATMENT_TIME_DATA_T ); - - payload.treatmentTimePrescribedinSec = secsTotTreatment; - payload.treatmentTimeElapsedinSec = secsElapsed; - payload.treatmentTimeRemaininginSec = secsRemaining; - - memcpy( payloadPtr, &payload, sizeof( TREATMENT_TIME_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastTreatmentState function constructs a treatment state msg to - * 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 payload Record with treatment state data - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastTreatmentState( TREATMENT_STATE_DATA_T payload ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_TREATMENT_STATE; - msg.hdr.payloadLen = sizeof( TREATMENT_STATE_DATA_T ); - - 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 - result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastPostTreatmentState function constructs a post treatment state msg - * to be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: post-treatment state msg constructed and queued - * @param postTreatmentSubMode post-treatment state sub-mode - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastPostTreatmentState( U32 postTreatmentSubMode ) -{ - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_POST_TREATMENT_STATE; - msg.hdr.payloadLen = sizeof( U32 ); - - memcpy( payloadPtr, &postTreatmentSubMode, sizeof( U32 ) ); - - // 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_BROADCAST, ACK_NOT_REQUIRED ); -} - -/*********************************************************************//** - * @brief - * The broadcastPreTreatmentState function constructs a pre-treatment state msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: pre-treatment state msg constructed and queued - * @param preTreatmentDataPtr pointer to pre-treatment data record to broadcast - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastPreTreatmentState( PRE_TREATMENT_STATE_DATA_T *preTreatmentDataPtr ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_PRE_TREATMENT_STATE; - msg.hdr.payloadLen = sizeof( PRE_TREATMENT_STATE_DATA_T ); - - memcpy( payloadPtr, preTreatmentDataPtr, sizeof( PRE_TREATMENT_STATE_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastPowerOffWarning function constructs a power off warning msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: power off warning msg constructed and queued - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastPowerOffWarning( void ) -{ - BOOL result; - MESSAGE_T msg; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_POWER_OFF_WARNING; - msg.hdr.payloadLen = 0; - - // 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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastHDOperationMode function constructs an HD operation mode - * broadcast message and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: HD operation mode msg constructed and queued - * @param mode current HD operation mode - * @param subMode current HD operation sub-mode - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastHDOperationMode( U32 mode, U32 subMode ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_OP_MODE; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - - memcpy( payloadPtr, &mode, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &subMode, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastHDValves function constructs an HD valves msg to \n - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: HD valves msg constructed and queued - * @param valveData valve data record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastHDValves( HD_VALVE_DATA_T *valveData ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_VALVES_DATA; - msg.hdr.payloadLen = sizeof( HD_VALVE_DATA_T ); - - memcpy( payloadPtr, valveData, sizeof( HD_VALVE_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastSalineBolusData function constructs a saline bolus data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: saline bolus data msg constructed and queued - * @param data saline bolus data record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastSalineBolusData( SALINE_BOLUS_DATA_PAYLOAD_T data ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_SALINE_BOLUS_DATA; - msg.hdr.payloadLen = sizeof( SALINE_BOLUS_DATA_PAYLOAD_T ); - - memcpy( payloadPtr, &data, sizeof( SALINE_BOLUS_DATA_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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastTreatmentStopData function constructs a treatment stop data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: treatment stop data msg constructed and queued - * @param timeout treatment stop timeout (in sec) - * @param countdown treatment stop timeout count down (in sec) - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastTreatmentStopData( U32 timeout, U32 countdown ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_TREATMENT_STOP_TIMER_DATA; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - - memcpy( payloadPtr, &timeout, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &countdown, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastRinsebackData function constructs a rinseback data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: rinseback data msg constructed and queued - * @param data rinseback data record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastRinsebackData( RINSEBACK_DATA_PAYLOAD_T data ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_RINSEBACK_PROGRESS; - msg.hdr.payloadLen = sizeof( RINSEBACK_DATA_PAYLOAD_T ); - - memcpy( payloadPtr, &data, sizeof( RINSEBACK_DATA_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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastRecircData function constructs a treatment re-circ data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: treatment re-circ data msg constructed and queued - * @param timeout re-circulation timeout (in sec) - * @param countdown re-circulation timeout count down (in sec) - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastRecircData( U32 timeout, U32 countdown ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_RECIRC_PROGRESS; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - - memcpy( payloadPtr, &timeout, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &countdown, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastBloodPrimeData function constructs a blood prime data msg to - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: blood prime data msg constructed and queued - * @param data blood prime data record - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastBloodPrimeData( BLOOD_PRIME_DATA_PAYLOAD_T data ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_BLOOD_PRIME_PROGRESS; - msg.hdr.payloadLen = sizeof( BLOOD_PRIME_DATA_PAYLOAD_T ); - - memcpy( payloadPtr, &data, sizeof( BLOOD_PRIME_DATA_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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastAirTrapData function constructs an HD air trap data msg to \n - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: air trap data msg constructed and queued - * @param lowerLevel air trap lower level data - * @param upperLevel air trap upper level data - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastAirTrapData( AIR_TRAP_LEVELS_T lowerLevel, AIR_TRAP_LEVELS_T upperLevel ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - U32 lower = (U32)lowerLevel; - U32 upper = (U32)upperLevel; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_AIR_TRAP_DATA; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - - memcpy( payloadPtr, &lower, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &upper, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastNoCartSelfTestTime function sends out the no cartridge self-test - * progress data. - * @details Inputs: none - * @details Outputs: no cartridge self-test time data msg constructed and queued - * @param timeout no cartridge self-test timeout (in sec) - * @param countdown no cartridge self-test timeout count down (in sec) - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastNoCartSelfTestTime( U32 timeout, U32 countdown ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - - memcpy( payloadPtr, &timeout, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &countdown, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastDrySelfTestTime function sends out the dry self-test progress data. - * @details Inputs: none - * @details Outputs: dry self-test time data msg constructed and queued - * @param timeout dry self-test timeout (in sec) - * @param countdown dry self-test timeout count down (in sec) - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastDrySelfTestTime( U32 timeout, U32 countdown ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_DRY_SELF_TEST_PROGRESS; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - - memcpy( payloadPtr, &timeout, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &countdown, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastFluidLeakState function constructs an HD fluid leak state msg to \n - * be broadcasted and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: fluid leak state msg constructed and queued - * @param state fluid leak state - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastFluidLeakState( FLUID_LEAK_STATES_T state ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - U32 leakState = (U32)state; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_FLUID_LEAK_STATE; - msg.hdr.payloadLen = sizeof( U32 ); - - memcpy( payloadPtr, &leakState, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastBloodLeakData function constructs an HD blood leak data msg to \n - * be broadcasted and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: blood leak data msg constructed and queued - * @param status blood leak status - * @param state blood leak state - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastBloodLeakData( BLOOD_LEAK_STATUS_T status, U32 state ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - U32 leakStatus = (U32)status; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_BLOOD_LEAK_DATA; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); - - memcpy( payloadPtr, &leakStatus, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &state, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastBubblesData function constructs an HD air bubble data msg to \n - * be broadcasted and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: air bubbles data msg constructed and queued - * @param status air bubbles status - * @param state air bubbles states - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastBubblesData( U32 statusADA, U32 stateADA, U32 statusADV, U32 stateADV ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_BUBBLES_DATA; - msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ) + sizeof( U32 ) + sizeof( U32 ); - - memcpy( payloadPtr, &statusADA, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &stateADA, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &statusADV, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( payloadPtr, &stateADV, sizeof( U32 ) ); - - // 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 ); - - return result; -} - -/***********************************************************************//** - * @brief - * The broadcastPrimeData function constructs a prime data msg to \n - * be broadcast and queues the msg for transmit on the appropriate CAN channel. - * @details Inputs: none - * @details Outputs: prime data msg constructed and queued - * @param primeDataPtr prime data record pointer - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastPrimeData( PRIMING_DATA_PAYLOAD_T *primeDataPtr ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_PRIMING_STATUS_DATA; - msg.hdr.payloadLen = sizeof( PRIMING_DATA_PAYLOAD_T ); - - memcpy( payloadPtr, primeDataPtr, sizeof( PRIMING_DATA_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 ); - - return result; -} - -/*********************************************************************//** - * @brief * The sendHDCalibrationRecord function sends out the HD calibration * record. * @details Inputs: none @@ -2895,114 +1927,6 @@ return result; } -/*********************************************************************//** - * @brief - * The broadcastDisinfectsData function sends out the disinfects data. - * @details Inputs: none - * @details Outputs: disinfects data msg constructed and queued - * @param disinfectsData which is disinfects msg constructed and queued - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastDisinfectsData( DISINFECTS_DATA_T *disinfectsData ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_DISINFECT_STANDBY_DATA; - msg.hdr.payloadLen = sizeof( DISINFECTS_DATA_T ); - - memcpy( payloadPtr, disinfectsData, sizeof( DISINFECTS_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastSwitchesData function sends out switches data. - * @details Inputs: none - * @details Outputs: switches data msg constructed and queued - * @param SWITCHES_DATA_T which is switches msg constructed and queued - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastSwitchesData( SWITCHES_DATA_T *switchesData ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_SWITCHES_DATA; - msg.hdr.payloadLen = sizeof( SWITCHES_DATA_T ); - - memcpy( payloadPtr, switchesData, sizeof( SWITCHES_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastTemperaturesData function sends out the temperatures data. - * @details Inputs: none - * @details Outputs: temperatures data msg constructed and queued - * @param temperaturesData which is the temperatures msg constructed and queued - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastTemperaturesData( TEMPERATURES_DATA_T *temperaturesData ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_TEMPERATURES_DATA; - msg.hdr.payloadLen = sizeof( TEMPERATURES_DATA_T ); - - memcpy( payloadPtr, temperaturesData, sizeof( TEMPERATURES_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - -/*********************************************************************//** - * @brief - * The broadcastFansData function sends out the fans data. - * @details Inputs: none - * @details Outputs: fans data msg constructed and queued - * @param fansData which is the fans msg constructed and queued - * @return TRUE if msg successfully queued for transmit, FALSE if not - *************************************************************************/ -BOOL broadcastFansData( FANS_DATA_T *fansData ) -{ - BOOL result; - MESSAGE_T msg; - U08 *payloadPtr = msg.payload; - - // Create a message record - blankMessage( &msg ); - msg.hdr.msgID = MSG_ID_HD_FANS_DATA; - msg.hdr.payloadLen = sizeof( FANS_DATA_T ); - - memcpy( payloadPtr, fansData, sizeof( FANS_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_BROADCAST, ACK_NOT_REQUIRED ); - - return result; -} - #ifdef EMC_TEST_BUILD BOOL broadcastCANErrorCount( U32 count ) { Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r61222dea4dcdad959cf343b65a6f92216b252f30 -re4cc37257141c5227186ac6d8ca3d6c87d009042 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 61222dea4dcdad959cf343b65a6f92216b252f30) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision e4cc37257141c5227186ac6d8ca3d6c87d009042) @@ -30,7 +30,7 @@ #include "Fans.h" #include "FluidLeak.h" #include "HDCommon.h" -#include "Prime.h" +#include "MessageSupport.h" #include "ModeInitPOST.h" #include "ModePostTreat.h" #include "ModePreTreat.h" @@ -39,6 +39,7 @@ #include "MsgQueues.h" #include "NVDataMgmt.h" #include "PresOccl.h" +#include "Prime.h" #include "Rinseback.h" #include "Switches.h" #include "SyringePump.h" @@ -57,8 +58,14 @@ // ********** public definitions ********** +#define ACK_REQUIRED TRUE ///< Macro for functions that want to know if an outgoing message requires acknowledgement from receiver. +#define ACK_NOT_REQUIRED FALSE ///< Macro for functions that want to know if an outgoing message requires acknowledgement from receiver. + // ********** public function prototypes ********** - + +// Serialize message +U32 serializeMessage( MESSAGE_T msg, COMM_BUFFER_T buffer, BOOL ackReq ); + // ACK MSG BOOL sendACKMsg( MESSAGE_T *message ); @@ -374,113 +381,9 @@ // MSG_ID_DG_START_STOP_CHEM_DISINFECT BOOL sendDGStartChemicalDisinfectModeCommand( BOOL start ); -// *********** public data broad cast functions ********** - -// MSG_ID_HD_ACCELEROMETER_DATA -BOOL broadcastAccelData( F32 x, F32 y, F32 z, F32 xm, F32 ym, F32 zm, F32 xt, F32 yt, F32 zt ); - // MSG_ID_ALARM_STATUS BOOL broadcastAlarmStatus( COMP_ALARM_STATUS_T almStatus ); -// MSG_ID_HD_ALARM_INFORMATION -BOOL broadcastAlarmInfo( ALARM_INFO_PAYLOAD_T data ); - -// MSG_ID_ALARM_TRIGGERED -BOOL broadcastAlarmTriggered( U32 alarm, ALARM_DATA_T almData1, ALARM_DATA_T almData2 ); - -// MSG_ID_ALARM_CLEARED -BOOL broadcastAlarmCleared( U32 alarm ); - -// MSG_ID_ALARM_CONDITION_CLEARED -BOOL broadcastAlarmConditionCleared( U32 alarm ); - -// MSG_ID_BLOOD_FLOW_DATA -BOOL broadcastBloodFlowData( BLOOD_PUMP_STATUS_PAYLOAD_T *bloodData ); - -// MSG_ID_DIALYSATE_FLOW_DATA -BOOL broadcastDialInFlowData( DIALIN_PUMP_STATUS_PAYLOAD_T *dialInData ); - -// MSG_ID_DIALYSATE_OUT_FLOW_DATA -BOOL broadcastDialOutFlowData( DIAL_OUT_FLOW_DATA_T *dialOutFlowData ); - -// MSG_ID_HD_SYRINGE_PUMP_DATA -BOOL broadcastSyringePumpData( SYRINGE_PUMP_DATA_PAYLOAD_T data ); - -// MSG_ID_HD_HEPARIN_DATA_BROADCAST -BOOL broadcastHeparinData( F32 volume ); - -// MSG_ID_PRESSURE_OCCLUSION_DATA -BOOL broadcastPresOcclData( PRESSURE_OCCLUSION_DATA_T data ); - -// MSG_ID_HD_VOLTAGES_DATA -BOOL broadcastVoltagesData( VOLTAGES_DATA_PAYLOAD_T data ); - -// MSG_ID_RTC_EPOCH -BOOL broadcastRTCEpoch( U32 epoch ); - -// MSG_ID_TREATMENT_TIME -BOOL broadcastTreatmentTime( U32 secsTotTreatment, U32 secsElapsed, U32 secsRemaining ); - -// MSG_ID_TREATMENT_STATE -BOOL broadcastTreatmentState( TREATMENT_STATE_DATA_T payload ); - -// MSG_ID_HD_POST_TREATMENT_STATE -BOOL broadcastPostTreatmentState( U32 postTreatmentSubMode ); - -// MSG_ID_PRE_TREATMENT_STATE -BOOL broadcastPreTreatmentState( PRE_TREATMENT_STATE_DATA_T *preTreatmentDataPtr ); - -// MSG_ID_POWER_OFF_WARNING -BOOL broadcastPowerOffWarning( void ); - -// MSG_ID_HD_OP_MODE -BOOL broadcastHDOperationMode( U32 mode, U32 subMode ); - -// MSG_ID_HD_VALVES_DATA -BOOL broadcastHDValves( HD_VALVE_DATA_T *valveData ); - -// MSG_ID_SALINE_BOLUS_DATA -BOOL broadcastSalineBolusData( SALINE_BOLUS_DATA_PAYLOAD_T data ); - -// MSG_ID_HD_TREATMENT_STOP_TIMER_DATA -BOOL broadcastTreatmentStopData( U32 timeout, U32 countdown ); - -// MSG_ID_HD_RINSEBACK_PROGRESS -BOOL broadcastRinsebackData( RINSEBACK_DATA_PAYLOAD_T data ); - -// MSG_ID_HD_RECIRC_PROGRESS -BOOL broadcastRecircData( U32 timeout, U32 countdown ); - -// MSG_ID_HD_BLOOD_PRIME_PROGRESS -BOOL broadcastBloodPrimeData( BLOOD_PRIME_DATA_PAYLOAD_T data ); - -// MSG_ID_HD_AIR_TRAP_DATA -BOOL broadcastAirTrapData( AIR_TRAP_LEVELS_T lowerLevel, AIR_TRAP_LEVELS_T upperLevel ); - -// MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS -BOOL broadcastNoCartSelfTestTime( U32 timeout, U32 countdown ); - -// MSG_ID_HD_DRY_SELF_TEST_PROGRESS -BOOL broadcastDrySelfTestTime( U32 timeout, U32 countdown ); - -// MSG_ID_HD_FLUID_LEAK_STATE -BOOL broadcastFluidLeakState( FLUID_LEAK_STATES_T state ); - -// MSG_ID_HD_BLOOD_LEAK_DATA -BOOL broadcastBloodLeakData( BLOOD_LEAK_STATUS_T status, U32 state ); - -// MSG_ID_HD_BUBBLES_DATA -BOOL broadcastBubblesData( U32 statusADA, U32 stateADA, U32 statusADV, U32 stateADV ); - -// MSG_ID_HD_PRIMING_STATUS_DATA -BOOL broadcastPrimeData( PRIMING_DATA_PAYLOAD_T *primeDataPtr ); - -// MSG_ID_HD_DISINFECT_STANDBY_DATA -BOOL broadcastDisinfectsData( DISINFECTS_DATA_T *disinfectsData ); - -// MSG_ID_HD_SWITCHES_DATA -BOOL broadcastSwitchesData( SWITCHES_DATA_T *switchesData ); - // MSG_ID_HD_SEND_CALIBRATION_RECORD BOOL sendHDCalibrationRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* calRcrdAddress ); @@ -490,15 +393,6 @@ // MSG_ID_Hd_SEND_SERVICE_RECORD BOOL sendHDServiceRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* srvcRcrdAddress ); -// MSG_ID_HD_DISINFECT_STANDBY_DATA -BOOL broadcastDisinfectsData( DISINFECTS_DATA_T *disinfectsData ); - -// MSG_ID_HD_TEMPERATURES_DATA -BOOL broadcastTemperaturesData( TEMPERATURES_DATA_T *temperaturesData ); - -// MSG_ID_HD_FANS_DATA -BOOL broadcastFansData( FANS_DATA_T *fansData ); - #ifdef EMC_TEST_BUILD // MSG_ID_CAN_ERROR_COUNT BOOL broadcastCANErrorCount( U32 count );