Index: sources/MessageGlobals.h =================================================================== diff -u -rc5b453debecfb1b22e40f073537077792fad4ab1 -ra7b6f962d1c463458114435c0c9eb152b5313864 --- sources/MessageGlobals.h (.../MessageGlobals.h) (revision c5b453debecfb1b22e40f073537077792fad4ab1) +++ sources/MessageGlobals.h (.../MessageGlobals.h) (revision a7b6f962d1c463458114435c0c9eb152b5313864) @@ -121,6 +121,7 @@ enum Message_ID_Enum { ID_NONE = 0x0000, + ID_HD_TX_STATES_BC = 0x0F00, ID_HD_OP_MODE = 0x2500, ID_UI_TX_PARAMS_RQST = 0x3500, ID_HD_NEW_PARAMS_RESP = 0x3600, @@ -139,6 +140,7 @@ ID_UI_PATIENT_CONNECTION_CONF_RQST = 0x6600, ID_HD_PATINET_CONNECTION_CONF_RESP = 0x6700, ID_UI_CONSUMABLES_INSTALL = 0x6800, + ID_UI_START_TX_RQST = 0x7100, ID_HD_UI_CONFIRM_RQST = 0xBA00, ID_UI_CONFIRM_RESP = 0xBB00, }; Index: sources/StateController.cpp =================================================================== diff -u -rce5cfa527a7f05d77a42a05c859d5de4571de84f -ra7b6f962d1c463458114435c0c9eb152b5313864 --- sources/StateController.cpp (.../StateController.cpp) (revision ce5cfa527a7f05d77a42a05c859d5de4571de84f) +++ sources/StateController.cpp (.../StateController.cpp) (revision a7b6f962d1c463458114435c0c9eb152b5313864) @@ -24,7 +24,6 @@ _dryDemo.connectToState("End_Tx" , this, &StateController::onEndTreatmentStateChange ); _dryDemo.connectToState("Disinfect" , this, &StateController::onDisinfectStateChange ); - _dryDemoCurrentCmd = CMD_NONE; resetVariables(); @@ -55,27 +54,13 @@ break; case ID_UI_TX_PARAMS_RQST: + msgBack.clear(); msgBack.append(static_cast(ID_HD_NEW_PARAMS_RESP)); msgBack.append(Can_Id::eChlid_HD_UI); - msgBack.append(1); - msgBack.append(0); - msgBack.append(275); - msgBack.append(250); - msgBack.append(60); - msgBack.append(0); - msgBack.append(100); - msgBack.append(0); - msgBack.append(0); - msgBack.append(0); - msgBack.append(0); - msgBack.append(0); - msgBack.append(250); - msgBack.append(120); - msgBack.append(100); - msgBack.append(20); - msgBack.append(0.000); - msgBack.append(0.000); - msgBack.append(36.00); + msgBack.append(1); msgBack.append(0); msgBack.append(275); msgBack.append(250); msgBack.append(60); + msgBack.append(0); msgBack.append(100); msgBack.append(0); msgBack.append(0); msgBack.append(0); + msgBack.append(0); msgBack.append(0); msgBack.append(250); msgBack.append(120); msgBack.append(100); + msgBack.append(20); msgBack.append(0.000); msgBack.append(0.000); msgBack.append(36.00); emit _ApplicationController.didActionTransmit(msgBack); break; @@ -92,13 +77,13 @@ isCmdValid = true; qDebug() << "Msg Case 2" << receivedMsgID << cmdParam.value << _dryDemoCurrentCmd <(ID_HD_UI_CONFIRM_RQST)); - closeMsg.append(Can_Id::eChlid_HD_UI); - closeMsg.append(UI_MSG_BB_PAYLOAD_ID); - closeMsg.append(1); - closeMsg.append(0); - emit _ApplicationController.didActionTransmit(closeMsg); + msgBack.clear(); + msgBack.append(static_cast(ID_HD_UI_CONFIRM_RQST)); + msgBack.append(Can_Id::eChlid_HD_UI); + msgBack.append(UI_MSG_BB_PAYLOAD_ID); + msgBack.append(1); + msgBack.append(0); + emit _ApplicationController.didActionTransmit(msgBack); } } break; @@ -117,8 +102,8 @@ if ( resultParam.value == 1 ) { _dryDemoCurrentCmd = CMD_CONSUMABLES; } - else - { + else { + _dryDemoCurrentCmd = CMD_NONE; transitionApplicationToStandBy(); } } @@ -140,32 +125,35 @@ isCmdValid = true; break; - case ID_UI_SET_UF_VOLUME_RQST: { - QVariantList msg; - msg.append(static_cast(ID_HD_SET_UF_VOLUME_RESP)); - msg.append(Can_Id::eChlid_HD_UI); - msg.append(1); - msg.append(0); - msg.append(1.8); - emit _ApplicationController.didActionTransmit(msg); + case ID_UI_SET_UF_VOLUME_RQST: + msgBack.clear(); + msgBack.append(static_cast(ID_HD_SET_UF_VOLUME_RESP)); + msgBack.append(Can_Id::eChlid_HD_UI); + msgBack.append(1); + msgBack.append(0); + msgBack.append(1.8); + emit _ApplicationController.didActionTransmit(msgBack); _dryDemoCurrentCmd = CMD_CONNECTION; isCmdValid = true; - } break; - case ID_UI_PATIENT_CONNECTION_CONF_RQST: { - QVariantList msg; - msg.append(static_cast(ID_HD_PATINET_CONNECTION_CONF_RESP)); - msg.append(Can_Id::eChlid_HD_UI); - msg.append(1); - msg.append(0); - emit _ApplicationController.didActionTransmit(msg); + case ID_UI_PATIENT_CONNECTION_CONF_RQST: + msgBack.clear(); + msgBack.append(static_cast(ID_HD_PATINET_CONNECTION_CONF_RESP)); + msgBack.append(Can_Id::eChlid_HD_UI); + msgBack.append(1); + msgBack.append(0); + emit _ApplicationController.didActionTransmit(msgBack); _dryDemoCurrentCmd = CMD_START_TX; isCmdValid = true; - } break; + case ID_UI_START_TX_RQST: + _dryDemoCmds[_dryDemoCurrentCmd][_index][IS_WAIT_NEEDED_INDEX] = false; + break; + case ID_NONE: + case ID_HD_TX_STATES_BC: case ID_HD_OP_MODE: case ID_FILTER_FLUSH_TIME_BC: case ID_HD_UI_CONFIRM_RQST: @@ -194,48 +182,48 @@ if ((listSize > 1) && (_index < listSize)) { - //bool isTimer = _dryDemoCmds[_dryDemoCurrentCmd][_index][IS_TIMER_INDEX].toBool(); - if (_dryDemoCmds[_dryDemoCurrentCmd][_index][IS_TIMER_INDEX].toBool()) { - if((++_timerBroadcastCount >= NUM_OF_COUNTS_TIMER_BC_EMIT) && - (_dryDemoCmds[_dryDemoCurrentCmd][_index][COUNT_DOWN_TIMER_INDEX].toUInt() != 0)) { - //} - - //qDebug() << "Index 222" << _dryDemoCmds[_dryDemoCurrentCmd][_index]; - //if(isTimer && (_dryDemoCmds[_dryDemoCurrentCmd][_index][COUNT_DOWN_TIMER_INDEX].toUInt() != 0)) { + if(_timerBroadcastCount >= NUM_OF_COUNTS_TIMER_BC_EMIT) { + //qDebug() << "Index 222" << _dryDemoCmds[_dryDemoCurrentCmd][_index]; _dryDemoCmds[_dryDemoCurrentCmd][_index][COUNT_DOWN_TIMER_INDEX] = _dryDemoCmds[_dryDemoCurrentCmd][_index][COUNT_DOWN_TIMER_INDEX].toUInt() - 1; - qDebug() << "COUnters" << _dryDemoCmds[_dryDemoCurrentCmd][_index][COUNT_DOWN_TIMER_INDEX].toUInt(); + _timerBroadcastCount = 0; + qDebug() << "Counters" << NUM_OF_COUNTS_TIMER_BC_EMIT << _dryDemoCmds[_dryDemoCurrentCmd][_index][COUNT_DOWN_TIMER_INDEX].toUInt(); emit _ApplicationController.didActionTransmit(_dryDemoCmds[_dryDemoCurrentCmd][_index].mid(RESP_MSG_START_INDEX)); + if (_dryDemoCmds[_dryDemoCurrentCmd][_index][COUNT_DOWN_TIMER_INDEX].toUInt() == 0) { _dryDemoCmds[_dryDemoCurrentCmd][_index][IS_TIMER_INDEX] = false; _index++; - _timerBroadcastCount = 0; + } + } + else { + _timerBroadcastCount++; + } } - } else { - emit _ApplicationController.didActionTransmit(_dryDemoCmds[_dryDemoCurrentCmd][_index].mid(RESP_MSG_START_INDEX)); - _broadcastMsgCount++; - if (!_dryDemoCmds[_dryDemoCurrentCmd][_index][IS_WAIT_NEEDED_INDEX].toBool()) { - //qDebug() << "Nex Inedx" << _dryDemoCmds[_dryDemoCurrentCmd][_index]; + emit _ApplicationController.didActionTransmit(_dryDemoCmds[_dryDemoCurrentCmd][_index].mid(RESP_MSG_START_INDEX)); + _broadcastMsgCount++; - if (_broadcastMsgCount > NUM_OF_COUNTS_TO_BC_MSG) { - int nextCmd = _dryDemoCmds[_dryDemoCurrentCmd][_index][NEXT_AUTO_TRANSITION_INDEX].toInt(); - User_Command_ID nextCmdEnum = static_cast(nextCmd); - qDebug() << "NONE" << nextCmd << nextCmdEnum; - if (nextCmdEnum != CMD_NONE) { - qDebug() << "Current Enum" << _dryDemoCurrentCmd; - _dryDemoCurrentCmd = nextCmdEnum; - qDebug() << "New transiion" << nextCmdEnum << _dryDemoCurrentCmd << _index; - _dryDemo.submitEvent("Transition_back_2_idle"); - } + if (!_dryDemoCmds[_dryDemoCurrentCmd][_index][IS_WAIT_NEEDED_INDEX].toBool()) { + //qDebug() << "Nex Inedx" << _dryDemoCmds[_dryDemoCurrentCmd][_index]; - _index++; - _broadcastMsgCount = 0; + if (_broadcastMsgCount > NUM_OF_COUNTS_TO_BC_MSG) { + int nextCmd = _dryDemoCmds[_dryDemoCurrentCmd][_index][NEXT_AUTO_TRANSITION_INDEX].toInt(); + User_Command_ID nextCmdEnum = static_cast(nextCmd); + qDebug() << "NONE" << nextCmd << nextCmdEnum; + if (nextCmdEnum != CMD_NONE) { + qDebug() << "Current Enum" << _dryDemoCurrentCmd; + _dryDemoCurrentCmd = nextCmdEnum; + qDebug() << "New transiion" << nextCmdEnum << _dryDemoCurrentCmd << _index; + _dryDemo.submitEvent("Transition_back_2_idle"); } + + _index++; + _broadcastMsgCount = 0; } + } } } } @@ -287,18 +275,9 @@ temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(0); - temp.append(1); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(0); temp.append(1); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_WATER_SAMPLE].append(temp); temp.clear(); @@ -316,94 +295,49 @@ temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(1); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(1); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_CONSUMABLES].append(temp); temp.clear(); temp.append(false); // this is the timer temp.append(false); temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(1); - temp.append(0); - temp.append(1); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(1); temp.append(0); temp.append(1); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_CONSUMABLES].append(temp); temp.clear(); temp.append(false); // this is the timer temp.append(false); temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(1); - temp.append(0); - temp.append(2); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(1); temp.append(0); temp.append(2); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_CONSUMABLES].append(temp); temp.clear(); temp.append(false); // this is the timer temp.append(false); temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(1); - temp.append(0); - temp.append(3); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(1); temp.append(0); temp.append(3); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_CONSUMABLES].append(temp); temp.clear(); temp.append(false); // this is the timer temp.append(false); temp.append(static_cast(CMD_DISPOSABLES)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(1); - temp.append(0); - temp.append(4); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(1); temp.append(0); temp.append(4); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_CONSUMABLES].append(temp); temp.clear(); @@ -421,18 +355,9 @@ temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(2); - temp.append(0); - temp.append(0); - temp.append(1); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(2); temp.append(0); temp.append(0); temp.append(1); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_DISPOSABLES].append(temp); temp.clear(); temp.append(true); // this is the timer @@ -449,37 +374,19 @@ temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(3); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(3); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_DISPOSABLES].append(temp); temp.clear(); temp.append(false); // this is the timer temp.append(true); // wait for the user temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); - temp.append(3); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); - temp.append(0); + temp.append(3); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); _dryDemoCmds[CMD_DISPOSABLES].append(temp); temp.clear(); @@ -810,16 +717,6 @@ temp.append(0); temp.append(0); _dryDemoCmds[CMD_SYSTEM_PRIME].append(temp); temp.clear(); - // temp.append(false); // this is the timer - // temp.append(false); // wait - // temp.append(static_cast(CMD_NONE)); // auto transition - // temp.append(static_cast(ID_PRE_TX_STATES_BC)); - // temp.append(Can_Id::eChlid_HD_Sync); - // temp.append(6); temp.append(0); temp.append(0); temp.append(0); temp.append(0); - // temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); - // temp.append(0); temp.append(0); - // _dryDemoCmds[CMD_SYSTEM_PRIME].append(temp); - // temp.clear(); temp.append(false); // this is the timer temp.append(true); // wait temp.append(static_cast(CMD_NONE)); // auto transition @@ -860,16 +757,6 @@ temp.append(0); _dryDemoCmds[CMD_CONNECTION].append(temp); temp.clear(); - // temp.append(false); // this is the timer - // temp.append(false); // wait - // temp.append(static_cast(CMD_NONE)); // auto transition - // temp.append(static_cast(ID_PRE_TX_STATES_BC)); - // temp.append(Can_Id::eChlid_HD_Sync); - // temp.append(7); temp.append(0); temp.append(0); temp.append(0); temp.append(0); - // temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(2); - // temp.append(0); temp.append(0); - // _dryDemoCmds[CMD_CONNECTION].append(temp); - // temp.clear(); temp.append(false); // this is the timer temp.append(true); // wait temp.append(static_cast(CMD_NONE)); // auto transition @@ -891,7 +778,7 @@ _dryDemoCmds[CMD_START_TX].append(temp); temp.clear(); temp.append(false); // this is the timer - temp.append(false); // wait + temp.append(true); // wait temp.append(static_cast(CMD_NONE)); // auto transition temp.append(static_cast(ID_PRE_TX_STATES_BC)); temp.append(Can_Id::eChlid_HD_Sync); @@ -900,7 +787,25 @@ temp.append(0); temp.append(0); _dryDemoCmds[CMD_START_TX].append(temp); temp.clear(); - + temp.append(0); // Transition to Tx. This is empty because there is no event + temp.append(false); + temp.append(static_cast(CMD_NONE)); // auto transition + temp.append(static_cast(ID_HD_OP_MODE)); + temp.append(Can_Id::eChlid_HD_Sync); + temp.append(MODE_TREA); + temp.append(0); + _dryDemoCmds[CMD_START_TX].append(temp); + temp.clear(); + temp.append(false); // this is the timer + temp.append(false); // wait + temp.append(static_cast(CMD_NONE)); // auto transition + temp.append(static_cast(ID_HD_TX_STATES_BC)); + temp.append(Can_Id::eChlid_HD_Sync); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); temp.append(0); temp.append(0); temp.append(0); temp.append(0); + temp.append(0); + _dryDemoCmds[CMD_START_TX].append(temp); + temp.clear(); } void StateController::transitionApplicationToStandBy() @@ -917,7 +822,7 @@ QVariantList list; list.append(static_cast(ID_HD_OP_MODE)); - list.append(Can_Id::eChlid_HD_UI); + list.append(Can_Id::eChlid_HD_Sync); list.append(MODE_STAN); list.append(0); emit _ApplicationController.didActionTransmit(list); @@ -928,6 +833,7 @@ _index = 0; _broadcastMsgCount = 0; _timerBroadcastCount = 0; + _isWaitForUserNeeded = false; } // ----------- State transition methods ---------------- // Index: sources/StateController.h =================================================================== diff -u -rce5cfa527a7f05d77a42a05c859d5de4571de84f -ra7b6f962d1c463458114435c0c9eb152b5313864 --- sources/StateController.h (.../StateController.h) (revision ce5cfa527a7f05d77a42a05c859d5de4571de84f) +++ sources/StateController.h (.../StateController.h) (revision a7b6f962d1c463458114435c0c9eb152b5313864) @@ -37,7 +37,7 @@ #define COUNT_DOWN_TIMER_INDEX 6 #define UI_MSG_BB_PAYLOAD_ID 0x63 - #define QOBJECT_TIMER_TIMEOUT_MS 1000 + #define QOBJECT_TIMER_TIMEOUT_MS 100 #define PROGRESS_TIME_BC_INTERVAL_MS 1000 #define NUM_OF_COUNTS_TIMER_BC_EMIT (PROGRESS_TIME_BC_INTERVAL_MS / QOBJECT_TIMER_TIMEOUT_MS) #define NUM_OF_COUNTS_TO_BC_MSG 3 @@ -61,6 +61,7 @@ quint16 _index; quint16 _broadcastMsgCount; quint16 _timerBroadcastCount; + bool _isWaitForUserNeeded; User_Command_ID _dryDemoCurrentCmd; drydemoXMLstates _dryDemo; @@ -79,6 +80,5 @@ void onConnectionStateChange(bool active); void onStartTreatmentStateChange(bool active); void onEndTreatmentStateChange(bool active); - void onDisinfectStateChange(bool active); };