Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -re69a109cc497124ac5f438264647666b17276bf4 -r059eb49a6f8fd2e2277b98b4aee986eb4519820a --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision e69a109cc497124ac5f438264647666b17276bf4) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 059eb49a6f8fd2e2277b98b4aee986eb4519820a) @@ -52,6 +52,9 @@ #define MSG_NOT_ACKED_MAX_RETRIES 3 ///< maximum number of times a message that requires ACK that was not ACK'd can be re-sent before alarm #define PENDING_ACK_LIST_SIZE 25 ///< maximum number of Delanli messages that can be pending ACK at any given time +#define MAX_FPGA_CLOCK_SPEED_ERRORS 3 ///< maximum number of FPGA clock speed errors within window period before alarm +#define MAX_FPGA_CLOCK_SPEED_ERROR_WINDOW_MS (10 * SEC_PER_MIN * MS_PER_SECOND) ///< FPGA clock speed error window + #pragma pack(push, 1) /// Record for transmitted message that is pending acknowledgement from receiver. @@ -136,6 +139,9 @@ // initialize bad message CRC time windowed count initTimeWindowedCount( TIME_WINDOWED_COUNT_BAD_MSG_CRC, MAX_COMM_CRC_FAILURES, MAX_COMM_CRC_FAILURE_WINDOW_MS ); + // initialize FPGA clock speed error time windowed count + initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_CLOCK_SPEED_ERROR, MAX_FPGA_CLOCK_SPEED_ERRORS, MAX_FPGA_CLOCK_SPEED_ERROR_WINDOW_MS); + // initialize pending ACK list for ( i = 0; i < PENDING_ACK_LIST_SIZE; i++ ) { @@ -876,7 +882,7 @@ handleDGPOSTResultRequest( message ); break; - case MSG_ID_UI_REQUEST_SERVICE_INFO: + case MSG_ID_HD_REQUEST_DG_SERVICE_RECORD: handleDGServiceScheduleRequest( message ); break; @@ -892,6 +898,10 @@ handleServiceModeRequest( message ); break; + case MSG_ID_HD_REQUEST_DG_USAGE_INFO: + handleHDRequestDGUsageInfo( message ); + break; + case MSG_ID_REQUEST_CPLD_STATUS: handleCpldStatusRequest( message ); break; @@ -944,20 +954,16 @@ handleTestPressureDataBroadcastIntervalOverrideRequest( message ); break; - case MSG_ID_RO_MEASURED_FLOW_OVERRIDE: - handleTestROMeasuredFlowOverrideRequest( message ); + case MSG_ID_MEASURED_FLOW_SENSORS_OVERRIDE: + handleTestMeasuredFlowOverrideRequest( message ); break; - case MSG_ID_DIALYSATE_MEASURED_FLOW_OVERRIDE: - handleTestDialysateMeasuredFlowOverrideRequest( message ); - break; - case MSG_ID_RO_PUMP_SEND_INTERVAL_OVERRIDE: handleTestROPumpDataBroadcastIntervalOverrideRequest( message ); break; - case MSG_ID_DIALYSATE_FLOW_SEND_INTERVAL_OVERRIDE: - handleTestDialysateFlowDataBroadcastIntervalOverrideRequest( message ); + case MSG_ID_FLOW_DATA_PUBLISH_INTERVAL_OVERRIDE: + handleTestFlowSensorsDataBroadcastIntervalOverrideRequest( message ); break; case MSG_ID_DRAIN_PUMP_SET_RPM: @@ -1068,10 +1074,6 @@ handleTestROPumpDutyCycleOverride( message ); break; - case MSG_ID_DG_RO_FLOW_RATE_OVERRIDE: - handleTestROMeasuredFlowOverrideRequest( message ); - break; - case MSG_ID_DG_SET_RO_PUMP_TARGET_FLOW: handleTestROPumpTargetFlowOverride( message ); break; @@ -1137,11 +1139,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: @@ -1152,10 +1154,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; @@ -1168,6 +1166,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; @@ -1200,18 +1202,19 @@ handleSetDGUsageInfoRecord( message ); break; - case MSG_ID_HD_REQUEST_DG_ALARMS: - handleResendAllAlarmsCommand( message ); - break; - case MSG_ID_DG_SET_OP_MODE_REQUEST: handleTestSetOpModeRequest( message ); break; case MSG_ID_DG_RESERVOIR_TARE_REQUEST: handleTestTareReservoirRequest( message ); + break; + case MSG_ID_HD_REQUEST_DG_ALARMS: + handleResendAllAlarmsCommand( message ); + break; + default: // TODO - unrecognized message ID received - ignore break;