Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rc65ad0538ff99c3e13d7d7866ac15e38a1ef6002 -r8466e63f95f65a3ffb18c3af85ac99328e41167b --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision c65ad0538ff99c3e13d7d7866ac15e38a1ef6002) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) @@ -394,8 +394,8 @@ } else { - // Should not get here - not an active message box - // TODO - s/w fault? + // Should not get here - not an active message box + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CAN_MESSAGE_BOX, srcCANBox ) } } @@ -997,8 +997,6 @@ } } - // TODO - if no open slot found, s/w fault - return result; } @@ -1060,8 +1058,8 @@ { U16 msgID; - memcpy( &msgID, (U08*)&pendingAckList[ i ].msg[ sizeof( U08 ) + sizeof( U16) ], sizeof( U16 ) ); - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_CAN_MESSAGE_NOT_ACKED, (U32)msgID ); + memcpy( &msgID, (U08*)&pendingAckList[ i ].msg[ sizeof( U08 ) + sizeof( U16) ], sizeof( U16 ) ); + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_CAN_MESSAGE_NOT_ACKED, (U32)msgID ); pendingAckList[ i ].used = FALSE; // Take pending message off of list } } @@ -1137,6 +1135,7 @@ case MSG_ID_REQUEST_FW_VERSIONS: handleFWVersionRequest( message ); + handleHDSerialNumberRequest(); break; case MSG_ID_DG_VERSION: @@ -1255,10 +1254,26 @@ handleUITreatmentLogDataRequest( message ); break; + case MSG_ID_UI_DISINFECT_REQUEST: + handleUIDisinfectRequest( message ); + break; + case MSG_ID_DG_COMMAND_RESPONSE: handleDGCmdResp( message ); break; + case MSG_ID_DG_FLUSH_DATA: + handleFlushUIStateReadingFromDG( message ); + break; + + case MSG_ID_DG_HEAT_DISINFECT_DATA: + handleHeatDisinfectUIStateReadingFromDG( message ); + break; + + case MSG_ID_DG_CHEM_DISINFECT_DATA: + handleChemDisinfectUIStateReadingFromDG( message ); + break; + case MSG_ID_UI_HD_SET_RTC_REQUEST: handleUIClockSyncRequest( message ); break; @@ -1275,6 +1290,23 @@ handleUIVersionResponse( message ); break; + case MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST: + handleUIActiveAlarmsListRequest( message ); + break; + + case MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_REQUEST: + handleSetHDStandbyDisinfectSubmodeRequest( message ); + break; + + case MSG_ID_UI_REQUEST_SERVICE_INFO: + handleHDServiceScheduleRequest( message ); + break; + + case MSG_ID_REQUEST_HD_USAGE_INFO: + handleHDUsageInfoRequest( message ); + break; + + // NOTE: this always must be the last case case MSG_ID_TESTER_LOGIN_REQUEST: handleTesterLogInRequest( message ); break; @@ -1555,6 +1587,18 @@ handleBloodPrimeVolumeOverrideRequest( message ); break; + case MSG_ID_HD_SWITCHES_STATUS_OVERRIDE: + handleSetSwitchesStatusOverrideRequest( message ); + break; + + case MSG_ID_HD_SWITCHES_PUBLISH_INTERVAL_OVERRIDE: + handleTestSwitchesPublishIntervalOverrideRequest( message ); + break; + + case MSG_ID_HD_BATTERY_REMAINING_PERCENT_OVERRIDE: + handleBatteryRemainingPercentOverrideRequest( message ); + break; + case MSG_ID_HD_BLOOD_PRIME_SAFETY_VOLUME_OVERRIDE: handleBloodPrimeSafetyVolumeOverrideRequest( message ); break; @@ -1599,6 +1643,10 @@ handleTestSyringePumpMeasuredVolumeOverrideRequest( message ); break; + case MSG_ID_HD_VALVES_CURRENT_OVERRIDE: + handleTestValvesCurrentOverrideRequest( message ); + break; + case MSG_ID_HD_MONITORED_VOLTAGES_SEND_INTERVAL_OVERRIDE: handleTestMonitoredVoltagesSendIntervalOverrideRequest( message ); break;