Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r286fbceae8be1276780690fe4b3010c8b2270239 -r0126254993a6cc5023632330f59cb05daf485ebe --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 286fbceae8be1276780690fe4b3010c8b2270239) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 0126254993a6cc5023632330f59cb05daf485ebe) @@ -1,11 +1,11 @@ #include // for memcpy() -#include "BoostPump.h" #include "Compatible.h" #include "Conductivity.h" #include "DDInterface.h" #include "Flow.h" +#include "FluidPump.h" #include "Level.h" #include "Messaging.h" #include "ModeWaterGen.h" @@ -56,79 +56,50 @@ }; 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_RO_TESTER_LOGIN_REQUEST, - MSG_ID_RO_SOFTWARE_RESET_REQUEST, - MSG_ID_RO_SEND_TEST_CONFIGURATION, - MSG_ID_RO_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_RO_VALVE_CMD_STATE_OVERRIDE_REQUEST, //5 - MSG_ID_RO_VALVE_SENSED_STATE_OVERRIDE_REQUEST, - MSG_ID_RO_BOOST_PUMP_SET_PWM_REQUEST, - MSG_ID_RO_BOOST_PUMP_READ_PWM_OVERRIDE_REQUEST, - MSG_ID_RO_BOOST_PUMP_SPEED_OVERRIDE_REQUEST, - MSG_ID_RO_BOOST_PUMPS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, //10 - MSG_ID_RO_PRESSURE_OVERRIDE_REQUEST, - MSG_ID_RO_PRESSURE_TEMP_OVERRIDE_REQUEST, - MSG_ID_RO_PRESSURE_READ_COUNT_OVERRIDE_REQUEST, - MSG_ID_RO_PRESSURE_ERROR_COUNT_OVERRIDE_REQUEST, - MSG_ID_RO_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, //15 - MSG_ID_RO_DEBUG_EVENT, - MSG_ID_RO_LEVEL_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_RO_LEVEL_OVERRIDE_REQUEST, - MSG_ID_RO_FLOWS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_RO_FLOW_RATE_OVERRIDE_REQUEST, //20 - MSG_ID_RO_FLOW_TEMP_OVERRIDE_REQUEST, - MSG_ID_RO_FILTERED_FLOW_RATE_OVERRIDE_REQUEST, - MSG_ID_RO_FILTERED_FLOW_TEMP_OVERRIDE_REQUEST, - MSG_ID_RO_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_RO_CONDUCTIVITY_OVERRIDE_REQUEST, //25 - MSG_ID_RO_CONDUCTIVITY_TEMP_OVERRIDE_REQUEST, - MSG_ID_RO_CONDUCTIVITY_READ_COUNT_OVERRIDE_REQUEST, - MSG_ID_RO_CONDUCTIVITY_ERROR_COUNT_OVERRIDE_REQUEST, - MSG_ID_RO_TEMPERATURE_OVERRIDE_REQUEST, - MSG_ID_DD_RO_START_STOP_CMD_REQUEST, //30 - MSG_ID_RO_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST +static const MSG_HANDLER_LOOKUP_T MSG_FUNCTION_HANDLER_LOOKUP[] = { +{ MSG_ID_RO_TESTER_LOGIN_REQUEST, &handleTesterLogInRequest }, +{ MSG_ID_RO_SOFTWARE_RESET_REQUEST, &handleROSoftwareResetRequest }, +{ MSG_ID_RO_SEND_TEST_CONFIGURATION, &handleROTestConfiguration }, +{ MSG_ID_RO_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testValvesStatesPublishIntervalOverride }, +{ MSG_ID_RO_VALVE_CMD_STATE_OVERRIDE_REQUEST, &testValveStateOverride }, +{ MSG_ID_RO_VALVE_SENSED_STATE_OVERRIDE_REQUEST, &testValveSensedStateOverride }, +{ MSG_ID_RO_BOOST_PUMP_SET_PWM_REQUEST, &testSetFluidPumpPWM }, +{ MSG_ID_RO_BOOST_PUMP_READ_PWM_OVERRIDE_REQUEST, &testFluidPumpPWMOverride }, +{ MSG_ID_RO_BOOST_PUMP_SPEED_OVERRIDE_REQUEST, &testFluidPumpRPMOverride }, +{ MSG_ID_RO_BOOST_PUMPS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testROPumpDataPublishIntervalOverride }, +{ MSG_ID_RO_PRESSURE_OVERRIDE_REQUEST, &testPressureSensorReadingsOverride }, +{ MSG_ID_RO_PRESSURE_TEMP_OVERRIDE_REQUEST, &testPressureSensorTemperatureReadingsOverride }, +{ MSG_ID_RO_PRESSURE_READ_COUNT_OVERRIDE_REQUEST, &testPressureSensorReadCounterOverride }, +{ MSG_ID_RO_PRESSURE_ERROR_COUNT_OVERRIDE_REQUEST, &testPressureSensorErrorCounterOverride }, +{ MSG_ID_RO_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testPressureSensorDataPublishIntervalOverride }, +{ MSG_ID_RO_DEBUG_EVENT, &handleUnhandledMsg }, +{ MSG_ID_RO_LEVEL_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testLevelsDataPublishIntervalOverride }, +{ MSG_ID_RO_LEVEL_OVERRIDE_REQUEST, &testLevelStateOverride }, +{ MSG_ID_RO_FLOWS_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testFlowSensorDataPublishIntervalOverride }, +{ MSG_ID_RO_FLOW_RATE_OVERRIDE_REQUEST, &testFlowSensorReadingsOverride }, +{ MSG_ID_RO_FLOW_TEMP_OVERRIDE_REQUEST, &testFlowSensorTemperatureReadingsOverride }, +{ MSG_ID_RO_FILTERED_FLOW_RATE_OVERRIDE_REQUEST, &testFlowSensorFilteredReadingsOverride }, +{ MSG_ID_RO_FILTERED_FLOW_TEMP_OVERRIDE_REQUEST, &testFlowSensorFilteredTemperatureReadingsOverride }, +{ MSG_ID_RO_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testConductivitySensorDataPublishIntervalOverride }, +{ MSG_ID_RO_CONDUCTIVITY_OVERRIDE_REQUEST, &testConductivitySensorReadingsOverride }, +{ MSG_ID_RO_CONDUCTIVITY_TEMP_OVERRIDE_REQUEST, &testConductivitySensorTemperatureReadingsOverride }, +{ MSG_ID_RO_CONDUCTIVITY_READ_COUNT_OVERRIDE_REQUEST, &testConductivitySensorReadCounterOverride }, +{ MSG_ID_RO_CONDUCTIVITY_ERROR_COUNT_OVERRIDE_REQUEST, &testConductivitySensorErrorCounterOverride }, +{ MSG_ID_RO_TEMPERATURE_OVERRIDE_REQUEST, &testMeasuredTemperatureOverride }, +{ MSG_ID_DD_RO_START_STOP_CMD_REQUEST, &handleGenerateWaterRequestMsg }, +{ MSG_ID_RO_PRE_GEN_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testPreGenWaterDataPublishIntervalOverride }, }; -/// Message handling function table -static const MsgFuncPtr MSG_FUNCTION_HANDLERS[] = { - &handleTesterLogInRequest, - &handleROSoftwareResetRequest, - &handleROTestConfiguration, - &testValvesStatesPublishIntervalOverride, - &testValveStateOverride, //5 - &testValveSensedStateOverride, - &testSetBoostPumpPWM, - &testBoostPumpPWMOverride, - &testBoostPumpRPMOverride, - &testROPumpDataPublishIntervalOverride, //10 - &testPressureSensorReadingsOverride, - &testPressureSensorTemperatureReadingsOverride, - &testPressureSensorReadCounterOverride, - &testPressureSensorErrorCounterOverride, - &testPressureSensorDataPublishIntervalOverride, //15 - &handleUnhandledMsg, - &testLevelsDataPublishIntervalOverride, - &testLevelStateOverride, - &testFlowSensorDataPublishIntervalOverride, - &testFlowSensorReadingsOverride, //20 - &testFlowSensorTemperatureReadingsOverride, - &testFlowSensorFilteredReadingsOverride, - &testFlowSensorFilteredTemperatureReadingsOverride, - &testConductivitySensorDataPublishIntervalOverride, - &testConductivitySensorReadingsOverride, //25 - &testConductivitySensorTemperatureReadingsOverride, - &testConductivitySensorReadCounterOverride, - &testConductivitySensorErrorCounterOverride, - &testMeasuredTemperatureOverride, - &handleGenerateWaterRequestMsg, //30 - &testPreGenWaterDataPublishIntervalOverride -}; +#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. @@ -213,7 +184,7 @@ if ( FALSE == addMsgToPendingACKList( &msg, buffer, data, msgSize ) ) { error = TRUE; - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_MSG_PENDING_ACK_LIST_FULL ) + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_FP_SOFTWARE_FAULT, SW_FAULT_ID_MSG_PENDING_ACK_LIST_FULL ) } } @@ -300,9 +271,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; } }