Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r3c07dc803109f716937b692cb4a67a5324bb9ca3 -rb80f8f84f21f86ad4c962a2c690447c572498e0b --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 3c07dc803109f716937b692cb4a67a5324bb9ca3) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision b80f8f84f21f86ad4c962a2c690447c572498e0b) @@ -307,14 +307,14 @@ return Can_Source::eCan_TD; case eChlid_DD_TD : + case eChlid_DD_FP : //case eChlid_DD_UI : // has duplicate value as eChlid_DD_Sync case eChlid_DD_Alarm: case eChlid_DD_Sync : if (vText) *vText = "DD"; return Can_Source::eCan_DD; - case eChlid_DD_FP : - //case eChlid_FP_UI : + //case eChlid_FP_UI : // has duplicate value as eChlid_FP_Sync case eChlid_FP_Alarm: case eChlid_FP_Sync : if (vText) *vText = "FP"; @@ -357,18 +357,18 @@ return Can_Id::eChlid_UI_TD; //case eChlid_DD_UI : // has duplicate value as eChlid_DD_Sync + case eChlid_DD_FP : case eChlid_DD_Alarm: case eChlid_DD_Sync : if (vText) *vText = "DD"; return Can_Id::eChlid_UI_DD; // FP is not designed to directly communicate with UI - //case eChlid_DD_FP : - //case eChlid_FP_UI : - //case eChlid_FP_Alarm: - //case eChlid_FP_Sync : - // if (vText) *vText = "FP"; - // return Can_Id::eChlid_UI_Sync; + //case eChlid_FP_UI : // has duplicate value as eChlid_FP_Sync + case eChlid_FP_Alarm: + case eChlid_FP_Sync : + if (vText) *vText = "FP"; + return Can_Id::eChlid_UI_Sync; case eDialin_TD : case eTD_Dialin : @@ -411,8 +411,9 @@ if ( ! gLogUnhandledOnly ) { switch (identifySource(vMessage.can_id)) { - case Can_Source::eCan_TD: ok = interpretMessage_HD(vMessage, vData); break; - case Can_Source::eCan_DD: ok = interpretMessage_DG(vMessage, vData); break; + case Can_Source::eCan_TD: ok = interpretMessage_TD(vMessage, vData); break; + case Can_Source::eCan_DD: ok = interpretMessage_DD(vMessage, vData); break; + case Can_Source::eCan_FP: ok = interpretMessage_FP(vMessage, vData); break; default : printUnhandled (vMessage ); break; // ok is false, the individual interpreters for ?HD/DG should not be called, and it should be done here. } } @@ -424,9 +425,9 @@ } /*! - * \brief MessageInterpreter::interpretMessage_HD + * \brief MessageInterpreter::interpretMessage_TD * \details This method will be called - * for received messages from HD to interpret the vMessage of type Message + * for received messages from TD to interpret the vMessage of type Message * to vData of type QVariantList which UI understands regarding the Can_Id. * \param vMessage - The complete message of type Message which needs to be interpreted. * \param vActionId - The ActionId of GuiActionType which will be extracted from vMessage. @@ -436,7 +437,7 @@ * \return true if the message CANBus channel is in the range which can be interpreted, false otherwise. * This return value will be used later to emit MessageDispatcher::didActionReceive signal or not */ -bool MessageInterpreter::interpretMessage_HD(const Message &vMessage, QVariantList &vData) +bool MessageInterpreter::interpretMessage_TD(const Message &vMessage, QVariantList &vData) { bool ok = false; vData.clear(); @@ -563,9 +564,9 @@ } /*! - * \brief MessageInterpreter::interpretMessage_DG + * \brief MessageInterpreter::interpretMessage_DD * \details This method will be called - * for received messages from DG to interpret the vMessage of type Message + * for received messages from DD to interpret the vMessage of type Message * to vData of type QVariantList which UI understands regarding the Can_Id. * \param vMessage - The complete message of type Message which needs to be interpreted. * \param vActionId - The ActionId of GuiActionType which will be extracted from vMessage. @@ -575,7 +576,7 @@ * \return true if the message CANBus channel is in the range which can be interpreted, false otherwise. * This return value will be used later to emit MessageDispatcher::didActionReceive signal or not */ -bool MessageInterpreter::interpretMessage_DG(const Message &vMessage, QVariantList &vData) +bool MessageInterpreter::interpretMessage_DD(const Message &vMessage, QVariantList &vData) { bool ok = false; vData.clear(); @@ -624,6 +625,48 @@ return ok; } +/*! + * \brief MessageInterpreter::interpretMessage_FP + * \details This method will be called + * for received messages from FP to interpret the vMessage of type Message + * to vData of type QVariantList which UI understands regarding the Can_Id. + * \param vMessage - The complete message of type Message which needs to be interpreted. + * \param vActionId - The ActionId of GuiActionType which will be extracted from vMessage. + * \param vData - The values of QVariantList which is understandable for UI + * and has been extracted from hex values of the CANBus Message Payload + * in vMessage of type Message regarding each Message Id definition. + * \return true if the message CANBus channel is in the range which can be interpreted, false otherwise. + * This return value will be used later to emit MessageDispatcher::didActionReceive signal or not + */ +bool MessageInterpreter::interpretMessage_FP(const Message &vMessage, QVariantList &vData) +{ + bool ok = false; + vData.clear(); + switch (vMessage.actionId) { // notice we are in receive mode + case Gui::GuiActionType::ID_Acknow : ok = true; /* TODO : implement notify<>() */ break; + LOG_APPED(QString("FP,CheckIn," + QVariant(vData).toStringList().join(','))); break; + + // FP data messages + case Gui::GuiActionType::ID_FPValvesStatesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPValvesStatesData ); break; + case Gui::GuiActionType::ID_FPROPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPROPumpData ); break; + case Gui::GuiActionType::ID_FPPressuresData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPPressuresData ); break; + case Gui::GuiActionType::ID_FPLevelData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPLevelData ); break; + case Gui::GuiActionType::ID_FPFlowSensorData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPFlowSensorData ); break; + case Gui::GuiActionType::ID_FPConductivityData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPConductivityData ); break; + case Gui::GuiActionType::ID_FPTemperaturesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPTemperaturesData ); break; + case Gui::GuiActionType::ID_FPROBoosterPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_FPROBoosterPumpData ); break; + + // FP Response Messages + case Gui::GuiActionType::ID_AdjustVersionsFPRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustVersionsFPRsp ); break; + + // unhandled messages: these will only be logged as received message + // there has nothing been defined for these messages. + default : printUnhandled (vMessage ); break; + } + + return ok; +} + // ---------- ---------- Message handlers ---------- ---------- // // ---------- ---------- ---------- ---------- ---------- Debug ---------- ---------- ---------- ---------- ---------- //