This commit is contained in:
2025-11-15 13:50:28 +01:00
parent 7edc57784c
commit 6fa1d9639a
2 changed files with 136 additions and 136 deletions
+8 -8
View File
@@ -284,14 +284,14 @@ void SClient::checkParseMessage(unique_ptr<Message> 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<Message> 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<Message> 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);
+128 -128
View File
@@ -195,23 +195,23 @@ SProcessor::~SProcessor() {
// // // } //Excample
// // }
// std::vector<char> SProcessor::createMessage(Message::OPPart &opPart) {
// if (mMessageNumberSend == 255)
// mMessageNumberSend = 1;
// else
// mMessageNumberSend++;
// opPart.setMessageNumber(mMessageNumberSend);
// opPart.setServerInfoInHeader(mGuid, mServerID);
std::vector<char> 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<char> data) {
// auto message = make_unique<Message>(data);
// answerWatchdog();
// if (!message->getHeader() || !message->getOPPart()) {
// ESP_LOGD(TAG, "Client::parseMessage incomplete message");
// return;
// }
void SProcessor::checkParseMessageData(vector<char> data) {
auto message = make_unique<Message>(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> 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<Message::ConnectAnswer>());
// break;
// case Message::Disconnect::OPFLAG:
// parseDisconnect(message.getAs<Message::Disconnect>());
// break;
// case Message::ReportProject::OPFLAG:
// parseReportProject(message.getAs<Message::ReportProject>());
// break;
// case Message::Watchdog::OPFLAG:
// parseWatchdog(message.getAs<Message::Watchdog>());
// break;
// case Message::WatchdogAnswer::OPFLAG:
// parseWatchdogAnswer(message.getAs<Message::WatchdogAnswer>());
// break;
// //----- SPIT Project -----
// case Message::StartProjectTransfer::OPFLAG:
// parseStartProjectTransfer(message.getAs<Message::StartProjectTransfer>());
// break;
// case Message::CloseProject::OPFLAG:
// parseCloseProject(message.getAs<Message::CloseProject>());
// break;
// case Message::RequestProjectTransfer::OPFLAG:
// parseRequestProjectTransfer(message.getAs<Message::RequestProjectTransfer>());
// break;
// case Message::EndProjectTransfer::OPFLAG:
// parseEndProjectTransfer(message.getAs<Message::EndProjectTransfer>());
// break;
// //----- SPIT Types ------
// case Message::ReportType::OPFLAG:
// parseReportType(message.getAs<Message::ReportType>());
// break;
// case Message::RemoveType::OPFLAG:
// parseRemoveSPITType(message.getAs<Message::RemoveType>());
// //----- SPIT Objects ------
// break;
// case Message::ReportObject::OPFLAG:
// parseReportObject(message.getAs<Message::ReportObject>());
// break;
// case Message::RemoveObject::OPFLAG:
// parseRemoveSPITObject(message.getAs<Message::RemoveObject>());
// break;
// //----- Play SPIT Objects ------
// case Message::PlayStart::OPFLAG:
// parsePlaySPITStart(message.getAs<Message::PlayStart>());
// break;
// case Message::PlayObject::OPFLAG:
// parsePlaySPITObject(message.getAs<Message::PlayObject>());
// break;
// case Message::PlayEnd::OPFLAG:
// parsePlaySPITEnd(message.getAs<Message::PlayEnd>());
// break;
// case Message::ReportPlayStatus::OPFLAG:
// parseReportPlayStatus(message.getAs<Message::ReportPlayStatus>());
// break;
// default:
// ESP_LOGD(TAG, "Client::parseMessage: Unknown Message");
// }
// }
switch (message.getType()) {
//----- Connection -----
case Message::ConnectAnswer::OPFLAG:
// parseConnectAnswer(message.getAs<Message::ConnectAnswer>());
break;
case Message::Disconnect::OPFLAG:
// parseDisconnect(message.getAs<Message::Disconnect>());
break;
case Message::ReportProject::OPFLAG:
parseReportProject(message.getAs<Message::ReportProject>());
break;
case Message::Watchdog::OPFLAG:
// parseWatchdog(message.getAs<Message::Watchdog>());
break;
case Message::WatchdogAnswer::OPFLAG:
// parseWatchdogAnswer(message.getAs<Message::WatchdogAnswer>());
break;
//----- SPIT Project -----
case Message::StartProjectTransfer::OPFLAG:
parseStartProjectTransfer(message.getAs<Message::StartProjectTransfer>());
break;
case Message::CloseProject::OPFLAG:
parseCloseProject(message.getAs<Message::CloseProject>());
break;
case Message::RequestProjectTransfer::OPFLAG:
parseRequestProjectTransfer(message.getAs<Message::RequestProjectTransfer>());
break;
case Message::EndProjectTransfer::OPFLAG:
parseEndProjectTransfer(message.getAs<Message::EndProjectTransfer>());
break;
//----- SPIT Types ------
case Message::ReportType::OPFLAG:
parseReportType(message.getAs<Message::ReportType>());
break;
case Message::RemoveType::OPFLAG:
parseRemoveType(message.getAs<Message::RemoveType>());
//----- SPIT Objects ------
break;
case Message::ReportObject::OPFLAG:
parseReportObject(message.getAs<Message::ReportObject>());
break;
case Message::RemoveObject::OPFLAG:
parseRemoveObject(message.getAs<Message::RemoveObject>());
break;
//----- Play SPIT Objects ------
case Message::PlayStart::OPFLAG:
parsePlayStart(message.getAs<Message::PlayStart>());
break;
case Message::PlayObject::OPFLAG:
parsePlayObject(message.getAs<Message::PlayObject>());
break;
case Message::PlayEnd::OPFLAG:
parsePlayEnd(message.getAs<Message::PlayEnd>());
break;
case Message::ReportPlayStatus::OPFLAG:
parseReportPlayStatus(message.getAs<Message::ReportPlayStatus>());
break;
default:
ESP_LOGD(TAG, "Client::parseMessage: Unknown Message");
}
}
// //----- Connection ------
// /**