Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -r16c0f816fadfa45b51467c5292ba9ecf7a3914bd -r1da5fe992c0b461115912698afc9cc7039ad2df3 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 16c0f816fadfa45b51467c5292ba9ecf7a3914bd) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 1da5fe992c0b461115912698afc9cc7039ad2df3) @@ -641,7 +641,7 @@ // Park concentrate pump too if requested #ifndef _RELEASE_ - if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_CONCENTRATE_PUMPS_PARK ) != SW_CONFIG_ENABLE_VALUE ) + if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_CONCENTRATE_PUMPS_PARK ) ) { if ( HW_CONFIG_BETA == getHardwareConfigStatus() ) { Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -r51d67532a86df4c88bebe57d224a9c81c029c08b -r1da5fe992c0b461115912698afc9cc7039ad2df3 --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 51d67532a86df4c88bebe57d224a9c81c029c08b) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 1da5fe992c0b461115912698afc9cc7039ad2df3) @@ -24,6 +24,7 @@ #include "ModeFill.h" #include "OperationModes.h" #include "PersistentAlarm.h" +#include "Reservoirs.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "TaskPriority.h" @@ -317,18 +318,19 @@ /*********************************************************************//** * @brief * The checkInletWaterConductivity function checks inlet water conductivity value - * and triggers an alarm when conductivity value is not within the specified - * values. + * and triggers an alarm when conductivity value is out of allowed range. * @details Inputs: CPi sensor conductivity - * @details Outputs: Trigger warning alarm if conductivity is in the warning - * range. Trigger alarm if conductivity is below minimum conductivity. + * @details Outputs: Trigger alarms when conductivity is out of allowed range * @return none *************************************************************************/ void checkInletWaterConductivity( void ) { F32 conductivity = getConductivityValue( CONDUCTIVITYSENSORS_CPI_SENSOR ); + HD_MODE_SUB_MODE_T opMode; + getHDOperationMode( &opMode ); - if ( VALVE_STATE_OPEN == getValveStateName( VPI ) ) + + if ( VALVE_STATE_OPEN == getValveStateName( VPI ) && ( opMode.hdMode <= MODE_TREA ) ) { #ifndef _RELEASE_ if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_WATER_QUALITY_CHECK ) != SW_CONFIG_ENABLE_VALUE ) Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r51d67532a86df4c88bebe57d224a9c81c029c08b -r1da5fe992c0b461115912698afc9cc7039ad2df3 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 51d67532a86df4c88bebe57d224a9c81c029c08b) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 1da5fe992c0b461115912698afc9cc7039ad2df3) @@ -191,6 +191,7 @@ if( heater < NUM_OF_DG_HEATERS ) { +#ifndef DISABLE_HEATERS_AND_TEMPS // Assume the target temperature has not changed heatersStatus[ heater ].hasTargetTempChanged = FALSE; @@ -201,6 +202,7 @@ heatersStatus[ heater ].hasTargetTempChanged = TRUE; result = TRUE; } +#endif } else { @@ -246,6 +248,7 @@ { BOOL status = FALSE; + if( heater < NUM_OF_DG_HEATERS ) { if ( HEATER_EXEC_STATE_OFF == heatersStatus[ heater ].state ) Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -r51d67532a86df4c88bebe57d224a9c81c029c08b -r1da5fe992c0b461115912698afc9cc7039ad2df3 --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 51d67532a86df4c88bebe57d224a9c81c029c08b) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 1da5fe992c0b461115912698afc9cc7039ad2df3) @@ -56,13 +56,13 @@ #define MIN_VALID_BARO_PRESSURE_PSIA 10.1F ///< Minimum valid barometric pressure in psia. #define MAX_VALID_BARO_PRESSURE_PSIA 15.4F ///< Maximum valid barometric pressure in psia. -#define MAX_INLET_WATER_PRESSURE_WARNING_LOW_PSIG 14.0F ///< Maximum allowed low pressure value in psig. +#define MAX_INLET_WATER_PRESSURE_WARNING_LOW_PSIG 23.0F ///< Maximum allowed low pressure value in psig. #define MIN_INLET_WATER_PRESSURE_WARNING_LOW_PSIG 30.0F ///< Minimum allowed low pressure value in psig. #define MAX_INLET_WATER_PRESSURE_WARNING_HIGH_PSIG 80.0F ///< Maximum allowed high pressure value in psig. #define MIN_INLET_WATER_PRESSURE_WARNING_HIGH_PSIG 78.0F ///< Minimum allowed high pressure value in psig. -#define INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS ( 30 * MS_PER_SECOND ) ///< Persistence period for pressure out of range error in milliseconds. +#define INLET_WATER_PRES_OUT_OF_RANGE_TIMEOUT_MS ( 20 * MS_PER_SECOND ) ///< Persistence period for pressure out of range error in milliseconds. #define INLET_WATER_PRES_OUT_OF_RANGE_CLEAR_MS ( 1 * MS_PER_SECOND ) ///< Persistence period for pressure out of range clear in milliseconds. #define PRESSURE_OUT_OF_RANGE_TIMEOUT_MS ( 5 * MS_PER_SECOND ) ///< Pressure out of range persistence period in milliseconds. #define PRESSURES_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Interval (ms/task time) at which the pressures data is published on the CAN bus. Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -r16c0f816fadfa45b51467c5292ba9ecf7a3914bd -r1da5fe992c0b461115912698afc9cc7039ad2df3 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 16c0f816fadfa45b51467c5292ba9ecf7a3914bd) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 1da5fe992c0b461115912698afc9cc7039ad2df3) @@ -80,7 +80,7 @@ // 2m long tubing to cap = 19.5 mL (acid line) + 7.92 mL/m * 2 m (tubing to cap) + 20.82 mL (straw) = 56.15 mL // Prime time in seconds = ( 56.15 mL / 48 mL/min ) x 60 second/min + 25 seconds margin time = 95 seconds. -#define PRIME_CONCENTRATE_LINES_TIME_OUT_MS ( 95 * MS_PER_SECOND ) ///< Time required to prime the concentrate lines. +#define PRIME_CONCENTRATE_LINES_TIME_OUT_MS ( 60 * MS_PER_SECOND ) ///< Time required to prime the concentrate lines. #define FLUSH_BUBBLES_PUMP_TIME_OUT_MS ( 2 * MS_PER_SECOND ) ///< RO pump on during flush bubble interval in ms. #define DIALYSATE_TEMPERATURE_TOLERANCE_C 2.0F ///< Dialysate temperature tolerance in degree C. #define DATA_PUBLISH_COUNTER_START_COUNT 63 ///< Data publish counter start count. Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rf910ec24ca3b5b5756aafa88d9121317433ec1f3 -r1da5fe992c0b461115912698afc9cc7039ad2df3 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision f910ec24ca3b5b5756aafa88d9121317433ec1f3) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 1da5fe992c0b461115912698afc9cc7039ad2df3) @@ -1199,11 +1199,11 @@ break; case MSG_ID_FILTER_FLUSH_TIME_PERIOD_OVERRIDE: - handleFilterFlushTimePeriodOverride( message ); + handleFilterFlushTimePeriodOverride(message); break; - case MSG_ID_DG_FANS_RPM_OVERRIDE: - handleFansRPMOverride( message ); + case MSG_ID_DG_BLOCK_MESSAGE_TRANSMISSION: + handleTestBlockMessagesRequest( message ); break; case MSG_ID_DG_STOP_RTC_CLOCK: @@ -1214,10 +1214,6 @@ handleSetDrainPumpMeasuredRPMOverrideRequest( message ); break; - case MSG_ID_DG_BLOCK_MESSAGE_TRANSMISSION: - handleTestBlockMessagesRequest( message ); - break; - case MSG_ID_DG_SUPER_CLEAR_ALARMS_CMD: handleTestSuperClearAlarmsRequest( message ); break; @@ -1230,6 +1226,10 @@ handleTestFansRPMAlarmStartTimeOffsetRequest( message ); break; + case MSG_ID_DG_FANS_RPM_OVERRIDE: + handleFansRPMOverride( message ); + break; + case MSG_ID_DG_USED_ACID_VOLUME_ML_OVERRIDE: handleTestUsedAcidVolumeMLOverrideRequest( message ); break; @@ -1276,14 +1276,14 @@ handleTestTareReservoirRequest( message ); break; - case MSG_ID_DG_DRAIN_PUMP_CURRENT_OVERRIDE: - handleTestDrainPumpMeasuredCurrentOverride( message ); - break; - case MSG_ID_DG_GEN_IDLE_PUBLISH_INTERVAL_OVERRIDE: handleTestGenIdlePublishIntervalOverride( message ); break; + case MSG_ID_DG_DRAIN_PUMP_CURRENT_OVERRIDE: + handleSetDrainPumpMeasuredRPMOverrideRequest( message ); + break; + case MSG_ID_DG_DRAIN_PUMP_DIRECTION_OVERRIDE: handleTestDGDrainPumpDirectionOverrideRequest( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r16c0f816fadfa45b51467c5292ba9ecf7a3914bd -r1da5fe992c0b461115912698afc9cc7039ad2df3 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 16c0f816fadfa45b51467c5292ba9ecf7a3914bd) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 1da5fe992c0b461115912698afc9cc7039ad2df3) @@ -423,7 +423,6 @@ return result; } - // *********************************************************************** // **************** Message Handling Helper Functions ******************** // *********************************************************************** @@ -3636,37 +3635,6 @@ } /*********************************************************************//** - * @brief - * The handleFansRPMOverride function handles a request to override a fans RPM value. - * @details Inputs: none - * @details Outputs: message handled - * @param message a pointer to the message to handle - * @return none - *************************************************************************/ -void handleFansRPMOverride( MESSAGE_T *message ) -{ - TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; - BOOL result = FALSE; - - // verify payload length - if ( sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) == message->hdr.payloadLen ) - { - memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) ); - if ( FALSE == payload.reset ) - { - result = testSetFanRPMOverride( payload.index, payload.state.f32 ); - } - else - { - result = testResetFanRPMOverride( payload.index ); - } - } - - // respond to request - sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); -} - -/*********************************************************************//** * @brief * The handleStopDGRTCClock function handles a request to stop the RTC clock. * @details Inputs: none @@ -3805,10 +3773,41 @@ /*********************************************************************//** * @brief - * The handleTestFansRPMAlarmStartTimeOffsetRequest function handles a - * request to set the fans RPM alarm start time offset. + * The handleFansRPMOverride function handles a request to override a fans RPM value. * @details Inputs: none * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleFansRPMOverride( MESSAGE_T *message ) +{ + TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + BOOL result = FALSE; + + // verify payload length + if ( sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) ); + if ( FALSE == payload.reset ) + { + result = testSetFanRPMOverride( payload.index, payload.state.f32 ); + } + else + { + result = testResetFanRPMOverride( payload.index ); + } + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + +/*********************************************************************//** + * @brief + * The handleTestFansRPMAlarmStartTimeOverrideRequest function handles a + * request to override the fan RPM alarm start time. + * @details Inputs: none + * @details Outputs: message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ @@ -3831,7 +3830,6 @@ } /*********************************************************************//** - * @brief * The handleTestUsedAcidVolumeMLOverrideRequest function handles a * request to override the acid volume. * @details Inputs: none Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r16c0f816fadfa45b51467c5292ba9ecf7a3914bd -r1da5fe992c0b461115912698afc9cc7039ad2df3 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 16c0f816fadfa45b51467c5292ba9ecf7a3914bd) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 1da5fe992c0b461115912698afc9cc7039ad2df3) @@ -170,6 +170,12 @@ // MSG_ID_DG_RESPONSE_SERVICE_MODE_REQUEST BOOL sendServiceModeResponse( BOOL accepted, U32 rejCode ); +// MSG_ID_HD_OP_MODE +BOOL handleSetHDOperationMode( MESSAGE_T *message ); + +// MSG_ID_HD_REQUEST_DG_USAGE_INFO +void handleHDRequestDGUsageInfo( MESSAGE_T * message ); + // MSG_ID_DG_SET_SERVICE_TIME void handleSetDGServiceTime( MESSAGE_T *message ); @@ -399,6 +405,12 @@ // MSG_ID_DG_DRAIN_PUMP_MEASURED_RPM_OVERRIDE void handleSetDrainPumpMeasuredRPMOverrideRequest( MESSAGE_T *message ); +// MSG_ID_DG_ALARM_INFO_SEND_INTERVAL_OVERRIDE +void handleTestAlarmInfoSendIntervalOverrideRequest( MESSAGE_T *message ); + +// MSG_ID_DG_SUPER_CLEAR_ALARMS_CMD +void handleTestSuperClearAlarmsRequest( MESSAGE_T *message ); + // MSG_ID_DG_SET_FANS_RPM_ALARM_START_TIME_OFFSET void handleTestFansRPMAlarmStartTimeOffsetRequest( MESSAGE_T *message ); @@ -419,21 +431,27 @@ void handleSetDGSoftwareConfigRecord( MESSAGE_T *message ); #endif +// MSG_ID_HD_REQUEST_DG_ALARMS +void handleResendAllAlarmsCommand( MESSAGE_T *message ); + // MSG_ID_DG_HD_COMMUNICATION_STATUS void handleTestHDCommunicationStatusOverrideRequest( MESSAGE_T *message ); // MSG_ID_DG_SET_PRIMARY_AND_TRIMMER_HEATERS_TARGET_TEMP void handleSetPrimaryAndTrimmerHeatersTargetTemperature( MESSAGE_T *message ); +// MSG_ID_DG_USED_ACID_VOLUME_ML_OVERRIDE +void handleTestUsedAcidVolumeMLOverrideRequest(MESSAGE_T *message); + +// MSG_ID_DG_USED_BICARB_VOLUME_ML_OVERRIDE +void handleTestUsedBicarbVolumeMLOverrideRequest(MESSAGE_T *message); + // MSG_ID_DG_GET_USAGE_INFO_RECORD void handleGetDGUsageInfoRecord( MESSAGE_T *message ); // MSG_ID_DG_SET_USAGE_INFO_RECORD void handleSetDGUsageInfoRecord( MESSAGE_T *message ); -// MSG_ID_HD_REQUEST_DG_ALARMS -void handleResendAllAlarmsCommand( MESSAGE_T *message ); - // MSG_ID_DG_SET_OP_MODE_REQUEST void handleTestSetOpModeRequest( MESSAGE_T *message );