Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r88f86f2dc5107670e32f53e04e256ad8249ba55f -r0c5d8accd0f6b588402e81d784d84734a6fe0473 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 88f86f2dc5107670e32f53e04e256ad8249ba55f) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 0c5d8accd0f6b588402e81d784d84734a6fe0473) @@ -83,168 +83,95 @@ COMM_BUFFER_NOT_USED, ///< Buffer for outgoing HD to PC messages so no response buffer }; - typedef BOOL (*MsgFuncPtr)( MESSAGE_T* ); +/// Message handling look-up table record type. +typedef struct +{ + U16 msgID; ///< ID of received message to handle. + MsgFuncPtr msgHandler; ///< Pointer to message handling function associated with a message ID. +} MSG_HANDLER_LOOKUP_T; + /// Message handling function lookup table -static const U16 MSG_FUNCTION_HANDLER_LOOKUP[] = { - MSG_ID_DD_TESTER_LOGIN_REQUEST, - MSG_ID_DD_SOFTWARE_RESET_REQUEST, - MSG_ID_TD_OP_MODE_DATA, - MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST, //5 - MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST, - MSG_ID_DD_PRESSURE_SENSOR_READINGS_OVERRIDE_REQUEST, - MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, - MSG_ID_DD_PRESSURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, - MSG_ID_DD_PRESSURE_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, //10 - MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_DD_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST, - MSG_ID_DD_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST, - MSG_ID_DD_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST, - MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, //15 - MSG_ID_DD_CONDUCTIVITY_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, - MSG_ID_DD_CONDUCTIVITY_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, - MSG_ID_DD_CONDUCTIVITY_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_DD_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST, //20 - MSG_ID_DD_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE_REQUEST, - MSG_ID_DD_CONCENTRATE_PUMP_PARKED_OVERRIDE_REQUEST, - MSG_ID_DD_CONCENTRATE_PUMP_PARK_FAULT_OVERRIDE_REQUEST, - MSG_ID_DD_CONCENTRATE_PUMP_PARK_REQUEST_OVERRIDE_REQUEST, - MSG_ID_DD_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, //25 - MSG_ID_DD_TEMPERATURE_SENSOR_MEASURED_TEMPERATURE_OVERRIDE_REQUEST, - MSG_ID_DD_TEMPERATURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, - MSG_ID_DD_TEMPERATURE_SENSOR_BARO_READ_COUNTER_OVERRIDE_REQUEST, - MSG_ID_DD_TEMPERATURE_SENSOR_BARO_CRC_OVERRIDE_REQUEST, - MSG_ID_DD_DIALYSATE_PUMPS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, //30 - MSG_ID_DD_DIALYSATE_PUMPS_TARGET_SPEED_OVERRIDE_REQUEST, - MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_SPEED_OVERRIDE_REQUEST, - MSG_ID_DD_DIALYSATE_PUMPS_TARGET_PRESSURE_OVERRIDE_REQUEST, - MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_CURRENT_OVERRIDE_REQUEST, - MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_DIRECTION_OVERRIDE_REQUEST, //35 - MSG_ID_DD_HEATERS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_DD_HEATERS_DUTY_CYCLE_OVERRIDE_REQUEST, - MSG_ID_DD_LEVELS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_DD_LEVELS_STATUS_OVERRIDE_REQUEST, - MSD_ID_DD_TD_COMMUNICATION_STATUS_OVERRIDE_REQUEST, //40 - MSG_ID_DD_OP_MODE_STATUS_OVERRIDE_REQUEST, - MSG_ID_DD_SET_OPERATION_MODE_OVERRIDE_REQUEST, - MSG_ID_DD_START_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, - MSG_ID_DD_DIALYSATE_PUMPS_START_STOP_OVERRIDE_REQUEST, - MSG_ID_DD_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST, //45 - MSG_ID_DD_CONCENTRATE_PUMPS_START_STOP_OVERRIDE_REQUEST, - MSG_ID_DD_HEATERS_START_STOP_OVERRIDE_REQUEST, - MSG_ID_DD_VALVES_OPEN_CLOSE_STATE_OVERRIDE_REQUEST, - MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA, - MSD_ID_DD_RO_COMMUNICATION_STATUS_OVERRIDE_REQUEST, //50 - MSG_ID_DD_BAL_CHAMBER_DATA_PUBLISH_OVERRIDE_REQUEST, - MSG_ID_DD_BAL_CHAMBER_SWITCH_FREQ_OVERRIDE_REQUEST, - MSG_ID_DD_DIAL_DELIVERY_IN_PROGRESS_OVERRIDE_REQUEST, - MSG_ID_DD_DIAL_DELIVERY_GOOD_TO_DELIVER_OVERRIDE_REQUEST, - MSG_ID_DD_HEATERS_TARGET_TEMPERATURE_OVERRIDE_REQUEST, //55 - MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST, - MSG_ID_DD_BC_SWITCH_ONLY_START_STOP_OVERRIDE_REQUEST, - MSG_ID_DD_HYD_CHAMBER_TARGET_TEMP_OVERRIDE_REQUEST, - MSG_ID_DD_ACID_DOSING_VOLUME_OVERRIDE_REQUEST, - MSG_ID_DD_BICARB_DOSING_VOLUME_OVERRIDE_REQUEST, //60 - MSG_ID_DD_GEND_EXEC_STATE_OVERRIDE_REQUEST, - MSG_ID_DD_HEATERS_PWM_PERIOD_OVERIDE_REQUEST, - MSG_ID_DD_PRE_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST, - MSG_ID_DD_POST_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST, - MSG_ID_DD_START_PRE_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, //65 - MSG_ID_DD_PRE_GEN_DIALYSATE_REQUEST_DATA, - MSG_ID_DD_STOP_PRE_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, - MSG_ID_DD_STOP_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, - MSG_ID_FW_VERSIONS_REQUEST, +static const MSG_HANDLER_LOOKUP_T MSG_FUNCTION_HANDLER_LOOKUP[] = { + { MSG_ID_DD_TESTER_LOGIN_REQUEST, &handleTesterLogInRequest }, + { MSG_ID_DD_SOFTWARE_RESET_REQUEST, &handleDDSoftwareResetRequest }, + { MSG_ID_TD_OP_MODE_DATA, &handleSetTDOperationMode }, + { MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testValvesStatesPublishIntervalOverride }, + { MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST, &testValveStateOverride }, + { MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST, &testValveSensedStateOverride }, + { MSG_ID_DD_PRESSURE_SENSOR_READINGS_OVERRIDE_REQUEST, &testPressureSensorReadingsOverride }, + { MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, &testPressureSensorTemperatureReadingsOverride }, + { MSG_ID_DD_PRESSURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, &testPressureSensorReadCounterOverride }, + { MSG_ID_DD_PRESSURE_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, &testPressureSensorErrorCounterOverride }, + { MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testPressureSensorDataPublishIntervalOverride }, + { MSG_ID_DD_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST, &testPressureSensorFilteredReadingsOverride }, + { MSG_ID_DD_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST, &testPressureSensorFilteredTemperatureReadingsOverride }, + { MSG_ID_DD_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST, &testConductivitySensorReadingsOverride }, + { MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, &testConductivitySensorTemperatureReadingsOverride }, + { MSG_ID_DD_CONDUCTIVITY_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, &testConductivitySensorReadCounterOverride }, + { MSG_ID_DD_CONDUCTIVITY_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, &testConductivitySensorErrorCounterOverride }, + { MSG_ID_DD_CONDUCTIVITY_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testConductivitySensorDataPublishIntervalOverride }, + { MSG_ID_DD_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testConcentratePumpDataPublishIntervalOverride }, + { MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST, &testConcentratePumpTargetSpeedOverride }, + { MSG_ID_DD_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE_REQUEST, &testConcentratePumpMeasuredSpeedOverride }, + { MSG_ID_DD_CONCENTRATE_PUMP_PARKED_OVERRIDE_REQUEST, &testConcentratePumpParkedOverride }, + { MSG_ID_DD_CONCENTRATE_PUMP_PARK_FAULT_OVERRIDE_REQUEST, &testConcentratePumpParkCmdFaultedOverride }, + { MSG_ID_DD_CONCENTRATE_PUMP_PARK_REQUEST_OVERRIDE_REQUEST, &testConcentratePumpParkRequestOverride }, + { MSG_ID_DD_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testTemperatureSensorsDataPublishIntervalOverride }, + { MSG_ID_DD_TEMPERATURE_SENSOR_MEASURED_TEMPERATURE_OVERRIDE_REQUEST, &testMeasuredTemperatureOverride }, + { MSG_ID_DD_TEMPERATURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, &testTemperatureReadCounterOverride }, + { MSG_ID_DD_TEMPERATURE_SENSOR_BARO_READ_COUNTER_OVERRIDE_REQUEST, &testBaroTemperatureReadCounterOverride }, + { MSG_ID_DD_TEMPERATURE_SENSOR_BARO_CRC_OVERRIDE_REQUEST, &testBaroTemperatureCRCOverride }, + { MSG_ID_DD_DIALYSATE_PUMPS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testDialysatePumpsDataPublishIntervalOverride }, + { MSG_ID_DD_DIALYSATE_PUMPS_TARGET_SPEED_OVERRIDE_REQUEST, &testDialysatePumpTargetSpeedOverride }, + { MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_SPEED_OVERRIDE_REQUEST, &testDialysatePumpMeasuredSpeedOverride }, + { MSG_ID_DD_DIALYSATE_PUMPS_TARGET_PRESSURE_OVERRIDE_REQUEST, &testDialysatePumpTargetPressureOverride }, + { MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_CURRENT_OVERRIDE_REQUEST, &testDialysatePumpMeasuredCurrentOverride }, + { MSG_ID_DD_DIALYSATE_PUMPS_MEASURED_DIRECTION_OVERRIDE_REQUEST, &testDialysatePumpMeasuredDirectionOverride }, + { MSG_ID_DD_HEATERS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testHeatersDataPublishIntervalOverride }, + { MSG_ID_DD_HEATERS_DUTY_CYCLE_OVERRIDE_REQUEST, &testHeaterDutyCycleOverride }, + { MSG_ID_DD_LEVELS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testLevelsDataPublishIntervalOverride }, + { MSG_ID_DD_LEVELS_STATUS_OVERRIDE_REQUEST, &testLevelStatusOverride }, + { MSD_ID_DD_TD_COMMUNICATION_STATUS_OVERRIDE_REQUEST, &testTDCommunicationStatusOverride }, + { MSG_ID_DD_OP_MODE_STATUS_OVERRIDE_REQUEST, &testDDOpModePublishIntervalOverride }, + { MSG_ID_DD_SET_OPERATION_MODE_OVERRIDE_REQUEST, &testSetOperationMode }, + { MSG_ID_DD_START_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, &testDDStartGenDialysateOverride }, + { MSG_ID_DD_DIALYSATE_PUMPS_START_STOP_OVERRIDE_REQUEST, &testDialysatePumpStartStopOverride }, + { MSG_ID_DD_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST, &testDDGenDialysateDataPublishIntervalOverride }, + { MSG_ID_DD_CONCENTRATE_PUMPS_START_STOP_OVERRIDE_REQUEST, &testConcentratePumpStartStopOverride }, + { MSG_ID_DD_HEATERS_START_STOP_OVERRIDE_REQUEST, &testHeaterStartStopOverride }, + { MSG_ID_DD_VALVES_OPEN_CLOSE_STATE_OVERRIDE_REQUEST, &testValveOpenCloseStateOverride }, + { MSG_ID_DD_GEN_DIALYSATE_REQUEST_DATA, &handleDialysateDeliveryRequestMsg }, + { MSD_ID_DD_RO_COMMUNICATION_STATUS_OVERRIDE_REQUEST, &testROCommunicationStatusOverride }, + { MSG_ID_DD_BAL_CHAMBER_DATA_PUBLISH_OVERRIDE_REQUEST, &testDDBalChamberDataPublishIntervalOverride }, + { MSG_ID_DD_BAL_CHAMBER_SWITCH_FREQ_OVERRIDE_REQUEST, &testBalChamberSwFreqOverride }, + { MSG_ID_DD_DIAL_DELIVERY_IN_PROGRESS_OVERRIDE_REQUEST, &testDialDeliveryInProgressOverride }, + { MSG_ID_DD_DIAL_DELIVERY_GOOD_TO_DELIVER_OVERRIDE_REQUEST, &testDialGoodToDeliverStatusOverride }, + { MSG_ID_DD_HEATERS_TARGET_TEMPERATURE_OVERRIDE_REQUEST, &testHeaterTargetTemperatureOverride }, + { MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST, &testBCValveStatesOverride }, + { MSG_ID_DD_BC_SWITCH_ONLY_START_STOP_OVERRIDE_REQUEST, &testBCSwitchOnlyStartStopOverride }, + { MSG_ID_DD_HYD_CHAMBER_TARGET_TEMP_OVERRIDE_REQUEST, &testGenDHydChamberFluidTempOverride }, + { MSG_ID_DD_ACID_DOSING_VOLUME_OVERRIDE_REQUEST, &testAcidDoseVolumeOverride }, + { MSG_ID_DD_BICARB_DOSING_VOLUME_OVERRIDE_REQUEST, &testBicarbDoseVolumeOverride }, + { MSG_ID_DD_GEND_EXEC_STATE_OVERRIDE_REQUEST, &testGenDExecStateOverride }, + { MSG_ID_DD_HEATERS_PWM_PERIOD_OVERIDE_REQUEST, &testHeaterPWMPeriodOverride }, + { MSG_ID_DD_PRE_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST, &testDDPreGenDialysateDataPublishIntervalOverride }, + { MSG_ID_DD_POST_GEND_MODE_DATA_PUBLISH_OVERRIDE_REQUEST, &testDDPostGenDialysateDataPublishIntervalOverride }, + { MSG_ID_DD_START_PRE_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, &testDDStartPreGenDialysateOverride }, + { MSG_ID_DD_PRE_GEN_DIALYSATE_REQUEST_DATA, &handlePreGenDialysateRequestMsg }, + { MSG_ID_DD_STOP_PRE_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, &testDDStopPreGenDialysateOverride }, + { MSG_ID_DD_STOP_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, &testDDStopGenDialysateOverride }, + { MSG_ID_FW_VERSIONS_REQUEST, &handleVersionRequestMessage }, #ifdef __PUMPTEST__ - MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST, - MSG_ID_DD_PISTON_PUMP_START_STOP_OVERRIDE_REQUEST, - MSG_ID_DD_PISTON_PUMP_FILL_AFTER_DISPENSE_OVERRIDE_REQUEST, + { MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST, &testDDPistonPumpControlDataPublishIntervalOverride }, + { MSG_ID_DD_PISTON_PUMP_START_STOP_OVERRIDE_REQUEST, &testDDPistonPumpStartStopOverride }, + { MSG_ID_DD_PISTON_PUMP_FILL_AFTER_DISPENSE_OVERRIDE_REQUEST, &testDDPistonPumpFillAfterDispenseOverride }, #endif }; -/// Message handling function table -static const MsgFuncPtr MSG_FUNCTION_HANDLERS[] = { - &handleTesterLogInRequest, - &handleDDSoftwareResetRequest, - &handleSetTDOperationMode, - &testValvesStatesPublishIntervalOverride, - &testValveStateOverride, //5 - &testValveSensedStateOverride, - &testPressureSensorReadingsOverride, - &testPressureSensorTemperatureReadingsOverride, - &testPressureSensorReadCounterOverride, - &testPressureSensorErrorCounterOverride, //10 - &testPressureSensorDataPublishIntervalOverride, - &testPressureSensorFilteredReadingsOverride, - &testPressureSensorFilteredTemperatureReadingsOverride, - &testConductivitySensorReadingsOverride, - &testConductivitySensorTemperatureReadingsOverride, //15 - &testConductivitySensorReadCounterOverride, - &testConductivitySensorErrorCounterOverride, - &testConductivitySensorDataPublishIntervalOverride, - &testConcentratePumpDataPublishIntervalOverride, - &testConcentratePumpTargetSpeedOverride, //20 - &testConcentratePumpMeasuredSpeedOverride, - &testConcentratePumpParkedOverride, - &testConcentratePumpParkCmdFaultedOverride, - &testConcentratePumpParkRequestOverride, - &testTemperatureSensorsDataPublishIntervalOverride, //25 - &testMeasuredTemperatureOverride, - &testTemperatureReadCounterOverride, - &testBaroTemperatureReadCounterOverride, - &testBaroTemperatureCRCOverride, - &testDialysatePumpsDataPublishIntervalOverride, //30 - &testDialysatePumpTargetSpeedOverride, - &testDialysatePumpMeasuredSpeedOverride, - &testDialysatePumpTargetPressureOverride, - &testDialysatePumpMeasuredCurrentOverride, - &testDialysatePumpMeasuredDirectionOverride, //35 - &testHeatersDataPublishIntervalOverride, - &testHeaterDutyCycleOverride, - &testLevelsDataPublishIntervalOverride, - &testLevelStatusOverride, - &testTDCommunicationStatusOverride, //40 - &testDDOpModePublishIntervalOverride, - &testSetOperationMode, - &testDDStartGenDialysateOverride, - &testDialysatePumpStartStopOverride, - &testDDGenDialysateDataPublishIntervalOverride, //45 - &testConcentratePumpStartStopOverride, - &testHeaterStartStopOverride, - &testValveOpenCloseStateOverride, - &handleDialysateDeliveryRequestMsg, - &testROCommunicationStatusOverride, //50 - &testDDBalChamberDataPublishIntervalOverride, - &testBalChamberSwFreqOverride, - &testDialDeliveryInProgressOverride, - &testDialGoodToDeliverStatusOverride, - &testHeaterTargetTemperatureOverride, //55 - &testBCValveStatesOverride, - &testBCSwitchOnlyStartStopOverride, - &testGenDHydChamberFluidTempOverride, - &testAcidDoseVolumeOverride, - &testBicarbDoseVolumeOverride, //60 - &testGenDExecStateOverride, - &testHeaterPWMPeriodOverride, - &testDDPreGenDialysateDataPublishIntervalOverride, - &testDDPostGenDialysateDataPublishIntervalOverride, - &testDDStartPreGenDialysateOverride, //65 - &handlePreGenDialysateRequestMsg, - &testDDStopPreGenDialysateOverride, - &testDDStopGenDialysateOverride, - &handleVersionRequestMessage, -#ifdef __PUMPTEST__ - &testDDPistonPumpControlDataPublishIntervalOverride, - &testDDPistonPumpStartStopOverride, - &testDDPistonPumpFillAfterDispenseOverride, -#endif -}; +#define NUM_OF_FUNCTION_HANDLERS (sizeof(MSG_FUNCTION_HANDLER_LOOKUP) / sizeof(MSG_HANDLER_LOOKUP_T)) -#define NUM_OF_FUNCTION_HANDLERS (sizeof(MSG_FUNCTION_HANDLERS) / sizeof(MsgFuncPtr)) - - // ********** private data ********** static BOOL testerLoggedIn = FALSE; ///< Flag indicates whether tester logged in or not. @@ -417,9 +344,9 @@ // Search for the index associated with the given override command message ID and then use index to get the handling function for ( i = 0; i < NUM_OF_FUNCTION_HANDLERS; i++ ) { - if ( MSG_FUNCTION_HANDLER_LOOKUP[i] == msgID ) + if ( MSG_FUNCTION_HANDLER_LOOKUP[i].msgID == msgID ) { - func = MSG_FUNCTION_HANDLERS[i]; + func = MSG_FUNCTION_HANDLER_LOOKUP[i].msgHandler; break; } }