Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -r41a41275952290677df1fb0d27db3f354be26dd8 -r2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 41a41275952290677df1fb0d27db3f354be26dd8) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff) @@ -92,6 +92,9 @@ #define BLOOD_LEAK_FPGA_ERROR_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Blood leak embedded mode FPGA error timeout in milliseconds. #define BLOOD_LEAK_RXFIFO_COUNT_MASK 0x03FF ///< Mask high order bits of blood leak sensor rx count +#define MAX_BLOOD_LEAK_COMM_FAILURES_WINDOW_MS ( 1 * SEC_PER_MIN * MS_PER_SECOND ) ///< Blood Leak comm failures window +#define MAX_BLOOD_LEAK_COMM_FAILURES 3 ///< Blood Leak maximum comm failures per MAX_BLOOD_LEAK_COMM_FAILURES_WINDOW_MS + /// Defined states for the blood leak detector state machine. typedef enum BloodLeakStates { @@ -261,12 +264,13 @@ // Initialize the blood leak embedded mode command sequence memset( bloodLeakEmbModeCmdSeq, 0x0, BLOOD_LEAK_EMB_MODE_CMD_SEQ_LENGTH ); - initFPGAPersistentAlarm( FPGA_PERS_ERROR_BLOOD_LEAK_SENSOR, ALARM_ID_HD_BLOOD_LEAK_FPGA_FAULT, - BLOOD_LEAK_FPGA_ERROR_TIMEOUT_MS, BLOOD_LEAK_FPGA_ERROR_TIMEOUT_MS ); - // Enqueue the commands to set the embedded mode and request the set point of the blood leak sensor enqueueEmbModeCmd( CS_EMB_MODE_CMD ); enqueueEmbModeCmd( D_EMB_MODE_CMD ); + + // initialize FPGA comm failures windowed timer count + initTimeWindowedCount( TIME_WINDOWED_COUNT_BLOOD_LEAK_COMM_ERROR, MAX_BLOOD_LEAK_COMM_FAILURES, MAX_BLOOD_LEAK_COMM_FAILURES_WINDOW_MS); + } /*********************************************************************//** @@ -315,8 +319,6 @@ enqueueInfoEmbModeCmds(); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_BLOOD_LEAK_SENSOR, getFPGABloodLeakRxErrorCount() ); - // Publish blood leak data if due publishBloodLeakData(); } @@ -1054,6 +1056,11 @@ bloodLeakEmbModeRqstedCmd = NU_EMB_MODE_CMD; state = BLOOD_LEAK_EMB_MODE_WAIT_FOR_COMAND_STATE; + + if ( TRUE == incTimeWindowedCount( TIME_WINDOWED_COUNT_BLOOD_LEAK_COMM_ERROR ) ) + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_BLOOD_LEAK_FPGA_FAULT, MAX_BLOOD_LEAK_COMM_FAILURES, (U32)MAX_BLOOD_LEAK_COMM_FAILURES_WINDOW_MS ) + } } return state; Index: firmware/App/Controllers/BloodLeak.h =================================================================== diff -u -r41a41275952290677df1fb0d27db3f354be26dd8 -r2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff --- firmware/App/Controllers/BloodLeak.h (.../BloodLeak.h) (revision 41a41275952290677df1fb0d27db3f354be26dd8) +++ firmware/App/Controllers/BloodLeak.h (.../BloodLeak.h) (revision 2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff) @@ -61,7 +61,7 @@ SELF_TEST_STATUS_T execBloodLeakSelfTest( void ); BLOOD_LEAK_STATUS_T getBloodLeakStatus( void ); -SELF_TEST_STATUS_T getBloodLeakSelfTestStatus( void ); +SELF_TEST_STATUS_T getBloodLeakSelfTestStatus( void ); BOOL testSetBloodLeakDataPublishIntervalOverride( U32 value ); BOOL testResetBloodLeakDataPublishIntervalOverride( void ); Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r41a41275952290677df1fb0d27db3f354be26dd8 -r2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 41a41275952290677df1fb0d27db3f354be26dd8) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff) @@ -460,14 +460,14 @@ /*********************************************************************//** * @brief - * The getDialysateTemperature function gets the latest dialysate temperature. - * @details Inputs: dgDialysateTemp + * The getDGDisinfectsStates function returns the DG disinfects readings. + * @details Inputs: none * @details Outputs: none - * @return the current dialysate temperature + * @return the current DG disinfects readings *************************************************************************/ -F32 getDialysateTemperature( void ) +DG_DISINFECT_UI_STATES_T getDGDisinfectsStates( void ) { - return dgDialysateTemp; + return disinfectsStatus; } /*********************************************************************//** @@ -501,11 +501,11 @@ * The getDGDisinfectsStates function returns the DG disinfects readings. * @details Inputs: none * @details Outputs: none - * @return the current DG disinfects readings + * @return the current dialysate temperature *************************************************************************/ -DG_DISINFECT_UI_STATES_T getDGDisinfectsStates( void ) +F32 getDialysateTemperature( void ) { - return disinfectsStatus; + return dgDialysateTemp; } /*********************************************************************//** Index: firmware/App/Controllers/DGInterface.h =================================================================== diff -u -r41a41275952290677df1fb0d27db3f354be26dd8 -r2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff --- firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision 41a41275952290677df1fb0d27db3f354be26dd8) +++ firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision 2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff) @@ -121,6 +121,7 @@ F32 getHeatDisinfectTemperatureSensorValue( void ); BOOL getTrimmerHeaterCommandedOn( void ); DG_DISINFECT_UI_STATES_T getDGDisinfectsStates( void ); +F32 getDialysateTemperature( void ); DG_MIXING_RATIOS_T getDGMixingRatios( void ); void getHDVersionDGServiceAndUsageData( DG_SERVICE_AND_USAGE_DATA_T* data ); Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r41a41275952290677df1fb0d27db3f354be26dd8 -r2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 41a41275952290677df1fb0d27db3f354be26dd8) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff) @@ -76,6 +76,7 @@ static OVERRIDE_U32_T standbyModePublishInterval = { DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, DISINFECTS_DATA_PUB_INTERVAL, 0 }; static const U32 SERVICE_TIME_INTERVAL_S = (U32)( 365 * 0.5 * SECONDS_IN_A_DAY ); ///< HD/DG 6-month service interval in seconds. +static BOOL homingInitiated; ///< Flag indicates actuator homing has been initiated from standby mode. // ********** private function prototypes ********** Index: firmware/App/Modes/ModeStandby.h =================================================================== diff -u -r0b084a3430750d40473bbd5dc3cdc2d73f4163d2 -r2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff --- firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision 0b084a3430750d40473bbd5dc3cdc2d73f4163d2) +++ firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision 2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff) @@ -39,10 +39,11 @@ BOOL signalUserInitiateTreatment( void ); // User has initiated a treatment - go to treatment parameters mode void signalAlarmActionToStandbyMode( ALARM_ACTION_T action ); // Execute alarm action as appropriate for Standby mode -BOOL signalUserInitiateFlushMode( void ); -BOOL signalUserInitiateHeatDisinfectMode( void ); -BOOL signalUserInitiateChemicalDisinfectMode( void ); -BOOL signalUserInitiateChemcialDisinfectFlushMode( void ); +BOOL signalUserInitiateFlushMode( void ); // User has requested to start flush +BOOL signalUserInitiateHeatDisinfectMode( void ); // User has requested to start heat disinfection +BOOL signalUserInitiateChemicalDisinfectMode( void ); // User has requested to start chem disinfection +BOOL signalUserInitiateChemcialDisinfectFlushMode( void ); // User has requested to start chem flush +BOOL signalInitiateStandbyDisinfectSubmode( U32 cmd ); // UI has signaled user will be selecting a cleaning operation to perform BOOL signalUserInitiateROPermeateSampleMode( void ); BOOL signalInitiateStandbyDisinfectSubmode( U32 cmd ); Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r41a41275952290677df1fb0d27db3f354be26dd8 -r2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 41a41275952290677df1fb0d27db3f354be26dd8) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff) @@ -5397,6 +5397,7 @@ if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) { memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); + if ( FALSE == payload.reset ) { result = testSetBatteryRemainingCapacityOverride( payload.state.f32 ); Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r41a41275952290677df1fb0d27db3f354be26dd8 -r2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 41a41275952290677df1fb0d27db3f354be26dd8) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 2de8d8e0962237bc863ec0c8b69ac7e6ee50e9ff) @@ -932,9 +932,6 @@ // MSG_ID_HD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE BOOL sendBloodLeakEmbeddedModeCommandResponse( U08 cmd, U32 responseLen, U08* response ); -// MSG_ID_HD_SEND_ALARMS_COMMAND -void handleResendAllAlarmsCommand( MESSAGE_T* message ); - // MSG_ID_HD_BLOOD_PUMP_SET_PWM void handleTestBloodPumpSetPWM( MESSAGE_T* message );