diff --git a/components/spit/src/spit_client.cpp b/components/spit/src/spit_client.cpp index 74b36d8..07543b0 100644 --- a/components/spit/src/spit_client.cpp +++ b/components/spit/src/spit_client.cpp @@ -284,14 +284,14 @@ void SClient::checkParseMessage(unique_ptr p_SPITMessage) { return; } - int intActualMessageNumber = (int)(p_SPITMessage->getHeader()->getMessageNumber() & 0xFF); + int msgNum = (int)(p_SPITMessage->getHeader()->getMessageNumber() & 0xFF); - if (intActualMessageNumber == 0) { + if (msgNum == 0) { parseMessage(std::move(p_SPITMessage)); return; } if (mMessageNumberReceived < 0) { - mMessageNumberReceived = intActualMessageNumber; + mMessageNumberReceived = msgNum; parseMessage(std::move(p_SPITMessage)); return; } @@ -300,8 +300,8 @@ void SClient::checkParseMessage(unique_ptr p_SPITMessage) { if (intNextMessageNumber > 255 || intNextMessageNumber < 1) intNextMessageNumber = 1; - if (intActualMessageNumber == intNextMessageNumber) { - mMessageNumberReceived = intActualMessageNumber; + if (msgNum == intNextMessageNumber) { + mMessageNumberReceived = msgNum; parseMessage(std::move(p_SPITMessage)); // check overtaking messages @@ -313,10 +313,10 @@ void SClient::checkParseMessage(unique_ptr p_SPITMessage) { intNextMessageNumber = 1; auto &ptrOvertakingSPIT_Message = *it; - intActualMessageNumber = (int)(ptrOvertakingSPIT_Message->getHeader()->getMessageNumber() & 0xFF); + msgNum = (int)(ptrOvertakingSPIT_Message->getHeader()->getMessageNumber() & 0xFF); - if (intActualMessageNumber == intNextMessageNumber) { - mMessageNumberReceived = intActualMessageNumber; + if (msgNum == intNextMessageNumber) { + mMessageNumberReceived = msgNum; parseMessage(move(ptrOvertakingSPIT_Message)); mOvertakingMessages.erase(it); diff --git a/components/spit/src/spit_processor.cpp b/components/spit/src/spit_processor.cpp index 312b561..3a0ca27 100644 --- a/components/spit/src/spit_processor.cpp +++ b/components/spit/src/spit_processor.cpp @@ -195,23 +195,23 @@ SProcessor::~SProcessor() { // // // } //Excample // // } -// std::vector SProcessor::createMessage(Message::OPPart &opPart) { -// if (mMessageNumberSend == 255) -// mMessageNumberSend = 1; -// else -// mMessageNumberSend++; -// opPart.setMessageNumber(mMessageNumberSend); -// opPart.setServerInfoInHeader(mGuid, mServerID); +std::vector SProcessor::createMessage(Message::OPPart &opPart) { + if (mMessageNumberSend == 255) + mMessageNumberSend = 1; + else + mMessageNumberSend++; + opPart.setMessageNumber(mMessageNumberSend); + opPart.setServerInfoInHeader(mGuid, mServerID); -// int opFlag = opPart.getHeader()->getType(); -// try { -// return Message::createMessage(opPart); -// } catch (...) { -// ESP_LOGD(TAG, "Exception client OPFlag: %d", opFlag); -// } -// return {}; -// } -// // todo Delete SProcessor::mInternCallbacks.sendMessage(Message::OPPart &opPart + int opFlag = opPart.getHeader()->getType(); + try { + return Message::createMessage(opPart); + } catch (...) { + ESP_LOGD(TAG, "Exception client OPFlag: %d", opFlag); + } + return {}; +} +// todo Delete SProcessor::mInternCallbacks.sendMessage(Message::OPPart &opPart // // void SProcessor::receiveSPITMessage(SClient &rM) { // // char buffer[MAXSPITMESSAGEBYTECOUNT + 1]; @@ -235,61 +235,61 @@ SProcessor::~SProcessor() { // mOvertakingMessages.clear(); // } -// void SProcessor::checkParseMessageData(vector data) { -// auto message = make_unique(data); -// answerWatchdog(); -// if (!message->getHeader() || !message->getOPPart()) { -// ESP_LOGD(TAG, "Client::parseMessage incomplete message"); -// return; -// } +void SProcessor::checkParseMessageData(vector data) { + auto message = make_unique(data); + // answerWatchdog(); + if (!message->getHeader() || !message->getOPPart()) { + ESP_LOGD(TAG, "Client::parseMessage incomplete message"); + return; + } -// int msgNum = (int)(message->getHeader()->getMessageNumber() & 0xFF); + int msgNum = (int)(message->getHeader()->getMessageNumber() & 0xFF); -// if (msgNum == 0) { -// parseMessage(*message); -// return; -// } -// if (mMessageNumberReceived < 0) { -// mMessageNumberReceived = msgNum; -// parseMessage(*message); -// return; -// } + if (msgNum == 0) { + parseMessage(*message); + return; + } + if (mMessageNumberReceived < 0) { + mMessageNumberReceived = msgNum; + parseMessage(*message); + return; + } -// int msgNumNext = mMessageNumberReceived + 1; -// if (msgNumNext > 255 || msgNumNext < 1) -// msgNumNext = 1; + int msgNumNext = mMessageNumberReceived + 1; + if (msgNumNext > 255 || msgNumNext < 1) + msgNumNext = 1; -// if (msgNum == msgNumNext) { -// mMessageNumberReceived = msgNum; -// parseMessage(*message); + if (msgNum == msgNumNext) { + mMessageNumberReceived = msgNum; + parseMessage(*message); -// // check overtaking messages -// auto it = mOvertakingMessages.begin(); -// while (mOvertakingMessages.size() > 0) { + // check overtaking messages + auto it = mOvertakingMessages.begin(); + while (mOvertakingMessages.size() > 0) { -// msgNumNext = mMessageNumberReceived + 1; -// if (msgNumNext > 255 || msgNumNext < 1) -// msgNumNext = 1; + msgNumNext = mMessageNumberReceived + 1; + if (msgNumNext > 255 || msgNumNext < 1) + msgNumNext = 1; -// auto &overtakingMessage = *it; -// msgNum = (int)(overtakingMessage->getHeader()->getMessageNumber() & 0xFF); + auto &overtakingMessage = *it; + msgNum = (int)(overtakingMessage->getHeader()->getMessageNumber() & 0xFF); -// if (msgNum == msgNumNext) { -// mMessageNumberReceived = msgNum; -// parseMessage(*overtakingMessage); -// mOvertakingMessages.erase(it); + if (msgNum == msgNumNext) { + mMessageNumberReceived = msgNum; + parseMessage(*overtakingMessage); + mOvertakingMessages.erase(it); -// it = mOvertakingMessages.begin(); -// } else { -// break; -// } -// } + it = mOvertakingMessages.begin(); + } else { + break; + } + } -// } else { -// // p_SPITMessage has overtaken another message -// addOvertakingMessage(move(message)); -// } -// } + } else { + // p_SPITMessage has overtaken another message + // addOvertakingMessage(move(message)); + } +} // void SProcessor::addOvertakingMessage(unique_ptr message) { // if (!message) { @@ -311,74 +311,74 @@ SProcessor::~SProcessor() { // mOvertakingMessages.push_back(move(message)); // } -// void SProcessor::parseMessage(Message& message) { -// answerWatchdog(); -// if (!message.getHeader() || !message.getOPPart()) { -// ESP_LOGD(TAG, "Client::parseMessage incomplete message"); -// return; -// } +void SProcessor::parseMessage(Message& message) { + // answerWatchdog(); + if (!message.getHeader() || !message.getOPPart()) { + ESP_LOGD(TAG, "Client::parseMessage incomplete message"); + return; + } -// switch (message.getType()) { -// //----- Connection ----- -// case Message::ConnectAnswer::OPFLAG: -// parseConnectAnswer(message.getAs()); -// break; -// case Message::Disconnect::OPFLAG: -// parseDisconnect(message.getAs()); -// break; -// case Message::ReportProject::OPFLAG: -// parseReportProject(message.getAs()); -// break; -// case Message::Watchdog::OPFLAG: -// parseWatchdog(message.getAs()); -// break; -// case Message::WatchdogAnswer::OPFLAG: -// parseWatchdogAnswer(message.getAs()); -// break; -// //----- SPIT Project ----- -// case Message::StartProjectTransfer::OPFLAG: -// parseStartProjectTransfer(message.getAs()); -// break; -// case Message::CloseProject::OPFLAG: -// parseCloseProject(message.getAs()); -// break; -// case Message::RequestProjectTransfer::OPFLAG: -// parseRequestProjectTransfer(message.getAs()); -// break; -// case Message::EndProjectTransfer::OPFLAG: -// parseEndProjectTransfer(message.getAs()); -// break; -// //----- SPIT Types ------ -// case Message::ReportType::OPFLAG: -// parseReportType(message.getAs()); -// break; -// case Message::RemoveType::OPFLAG: -// parseRemoveSPITType(message.getAs()); -// //----- SPIT Objects ------ -// break; -// case Message::ReportObject::OPFLAG: -// parseReportObject(message.getAs()); -// break; -// case Message::RemoveObject::OPFLAG: -// parseRemoveSPITObject(message.getAs()); -// break; -// //----- Play SPIT Objects ------ -// case Message::PlayStart::OPFLAG: -// parsePlaySPITStart(message.getAs()); -// break; -// case Message::PlayObject::OPFLAG: -// parsePlaySPITObject(message.getAs()); -// break; -// case Message::PlayEnd::OPFLAG: -// parsePlaySPITEnd(message.getAs()); -// break; -// case Message::ReportPlayStatus::OPFLAG: -// parseReportPlayStatus(message.getAs()); -// break; -// default: -// ESP_LOGD(TAG, "Client::parseMessage: Unknown Message"); -// } -// } + switch (message.getType()) { + //----- Connection ----- + case Message::ConnectAnswer::OPFLAG: + // parseConnectAnswer(message.getAs()); + break; + case Message::Disconnect::OPFLAG: + // parseDisconnect(message.getAs()); + break; + case Message::ReportProject::OPFLAG: + parseReportProject(message.getAs()); + break; + case Message::Watchdog::OPFLAG: + // parseWatchdog(message.getAs()); + break; + case Message::WatchdogAnswer::OPFLAG: + // parseWatchdogAnswer(message.getAs()); + break; + //----- SPIT Project ----- + case Message::StartProjectTransfer::OPFLAG: + parseStartProjectTransfer(message.getAs()); + break; + case Message::CloseProject::OPFLAG: + parseCloseProject(message.getAs()); + break; + case Message::RequestProjectTransfer::OPFLAG: + parseRequestProjectTransfer(message.getAs()); + break; + case Message::EndProjectTransfer::OPFLAG: + parseEndProjectTransfer(message.getAs()); + break; + //----- SPIT Types ------ + case Message::ReportType::OPFLAG: + parseReportType(message.getAs()); + break; + case Message::RemoveType::OPFLAG: + parseRemoveType(message.getAs()); + //----- SPIT Objects ------ + break; + case Message::ReportObject::OPFLAG: + parseReportObject(message.getAs()); + break; + case Message::RemoveObject::OPFLAG: + parseRemoveObject(message.getAs()); + break; + //----- Play SPIT Objects ------ + case Message::PlayStart::OPFLAG: + parsePlayStart(message.getAs()); + break; + case Message::PlayObject::OPFLAG: + parsePlayObject(message.getAs()); + break; + case Message::PlayEnd::OPFLAG: + parsePlayEnd(message.getAs()); + break; + case Message::ReportPlayStatus::OPFLAG: + parseReportPlayStatus(message.getAs()); + break; + default: + ESP_LOGD(TAG, "Client::parseMessage: Unknown Message"); + } +} // //----- Connection ------ // /**