refactor: Heavy refactoring of SPIT

This commit is contained in:
2025-11-11 01:01:10 +01:00
parent a18ddf2cb1
commit 3afaf3848f
26 changed files with 2166 additions and 2329 deletions
+162 -177
View File
@@ -1,18 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* Message contains all SPIT messages.
* A Message contains a Header and an OPPart.
*
* File: Message.cpp
* Author: Hagi
*
* Created on 3. April 2019, 08:51
*/
#include "spit_message.hpp"
@@ -47,76 +32,76 @@ bool Message::parse(std::vector<char> message) {
// parse OP
switch (header->getType()) {
case Message::Connect::OPFLAG: { // Connection
m_OPPart = make_unique<Connect>(move(header));
oPPart = make_unique<Connect>(move(header));
} break;
case Message::ConnectAnswer::OPFLAG: {
m_OPPart = make_unique<ConnectAnswer>(move(header));
oPPart = make_unique<ConnectAnswer>(move(header));
} break;
case Disconnect::OPFLAG: {
m_OPPart = make_unique<Disconnect>(move(header));
oPPart = make_unique<Disconnect>(move(header));
} break;
case Watchdog::OPFLAG: {
m_OPPart = make_unique<Watchdog>(move(header));
oPPart = make_unique<Watchdog>(move(header));
} break;
case WatchdogAnswer::OPFLAG: {
m_OPPart = make_unique<WatchdogAnswer>(move(header));
oPPart = make_unique<WatchdogAnswer>(move(header));
} break;
case ReportProject::OPFLAG: { // SpitProject
m_OPPart = make_unique<ReportProject>(move(header));
oPPart = make_unique<ReportProject>(move(header));
} break;
case CloseProject::OPFLAG: {
m_OPPart = make_unique<CloseProject>(move(header));
oPPart = make_unique<CloseProject>(move(header));
} break;
case RequestProjectTransfer::OPFLAG: {
m_OPPart = make_unique<RequestProjectTransfer>(move(header));
oPPart = make_unique<RequestProjectTransfer>(move(header));
} break;
case StartProjectTransfer::OPFLAG: {
m_OPPart = make_unique<StartProjectTransfer>(move(header));
oPPart = make_unique<StartProjectTransfer>(move(header));
} break;
case EndProjectTransfer::OPFLAG: {
m_OPPart = make_unique<EndProjectTransfer>(move(header));
oPPart = make_unique<EndProjectTransfer>(move(header));
} break;
case ReportType::OPFLAG: { // SpitType
m_OPPart = make_unique<ReportType>(move(header));
oPPart = make_unique<ReportType>(move(header));
} break;
case RemoveType::OPFLAG: {
m_OPPart = make_unique<RemoveType>(move(header));
oPPart = make_unique<RemoveType>(move(header));
} break;
case ReportObject::OPFLAG: { // SpitObject
m_OPPart = make_unique<ReportObject>(move(header));
oPPart = make_unique<ReportObject>(move(header));
} break;
case RemoveObject::OPFLAG: {
m_OPPart = make_unique<RemoveObject>(move(header));
oPPart = make_unique<RemoveObject>(move(header));
} break;
case PlayStart::OPFLAG: { // PlaySpitObjects
m_OPPart = make_unique<PlayStart>(move(header));
oPPart = make_unique<PlayStart>(move(header));
} break;
case PlayObject::OPFLAG: {
m_OPPart = make_unique<PlayObject>(move(header));
oPPart = make_unique<PlayObject>(move(header));
} break;
case PlayEnd::OPFLAG: {
m_OPPart = make_unique<PlayEnd>(move(header));
oPPart = make_unique<PlayEnd>(move(header));
} break;
case ReportPlayStatus::OPFLAG: {
m_OPPart = make_unique<ReportPlayStatus>(move(header));
oPPart = make_unique<ReportPlayStatus>(move(header));
} break;
default:
return false;
}
return m_OPPart->parse(message);
return oPPart->parse(message);
}
//---------- Send ----------
std::vector<char> Message::createMessage(OPPart &p_OPPart) {
if (!p_OPPart.getHeader()) {
std::vector<char> Message::createMessage(OPPart &oPPart) {
if (!oPPart.getHeader()) {
return {};
}
try {
int totalSize = Header::BYTESLENGTH + p_OPPart.getBytesCount();
int totalSize = Header::BYTESLENGTH + oPPart.getBytesCount();
std::vector<char> msgByts(totalSize);
p_OPPart.fillBytes(msgByts);
oPPart.fillBytes(msgByts);
return msgByts;
} catch (...) {
ESP_LOGE(TAG, "Failed to allocate memory");
@@ -128,8 +113,8 @@ std::vector<char> Message::createMessage(OPPart &p_OPPart) {
Message::Header::Header(const Header &orig) {
mID = &SPITID[0];
mMessageNumber = orig.getMessageNumber();
mServerID = orig.getServerID();
mClientID = orig.getClientID();
mServerId = orig.getServerID();
mClientId = orig.getClientID();
}
Message::Header::Header() {
@@ -152,8 +137,8 @@ bool Message::Header::parse(const std::vector<char> &message) {
if (mBytesCount < 0) {
return false;
}
mServerID = getString(message, mParseOffset, 41).value();
mClientID = getString(message, mParseOffset, 41).value();
mServerId = getString(message, mParseOffset, 41).value();
mClientId = getString(message, mParseOffset, 41).value();
mOpFlag = message[mParseOffset++] & 0xFF;
} catch (...) {
ESP_LOGE(TAG, "failed to parse Header");
@@ -176,8 +161,8 @@ bool Message::Header::fillBytes(std::vector<char> &message) {
mParseOffset += setInt(SPITVERSION, message, mParseOffset);
mParseOffset += setByte(mMessageNumber, message, mParseOffset);
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(mServerID, message, mParseOffset, 41);
mParseOffset += setString(mClientID, message, mParseOffset, 41);
mParseOffset += setString(mServerId, message, mParseOffset, 41);
mParseOffset += setString(mClientId, message, mParseOffset, 41);
mParseOffset += setByte(mOpFlag, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create Header");
@@ -226,12 +211,12 @@ bool Message::Connect::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_ClientComputerName = getString(message, mParseOffset, 64).value();
m_ClientName = getString(message, mParseOffset, 64).value();
m_LoginName = getString(message, mParseOffset, 64).value();
m_LoginPassword = getString(message, mParseOffset, 64).value();
m_ServerIP = getString(message, mParseOffset, 40).value();
m_ServerPort = getInt(message, mParseOffset).value();
mClientComputerName = getString(message, mParseOffset, 64).value();
mClientName = getString(message, mParseOffset, 64).value();
mLoginName = getString(message, mParseOffset, 64).value();
mLoginPassword = getString(message, mParseOffset, 64).value();
mServerIp = getString(message, mParseOffset, 40).value();
mServerPort = getInt(message, mParseOffset).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse Connect message");
return false;
@@ -240,17 +225,17 @@ bool Message::Connect::parse(const std::vector<char> &message) {
}
// Send
Message::Connect::Connect(string p_ComputerName, string p_ClientName)
Message::Connect::Connect(string pComputerName, string pClientName)
: OPPart(BYTESLENGTH),
m_ClientComputerName(p_ComputerName),
m_ClientName(p_ClientName) {
mClientComputerName(pComputerName),
mClientName(pClientName) {
setHeader(OPFLAG);
mParseOffset = Header::BYTESLENGTH;
}
void Message::Connect::setServerPort(int p_ServerPort) {
if (p_ServerPort < 0 || p_ServerPort > 65535)
p_ServerPort = 0;
m_ServerPort = p_ServerPort;
mServerPort = p_ServerPort;
}
bool Message::Connect::fillBytes(std::vector<char> &message) {
if (!mHeader) {
@@ -261,12 +246,12 @@ bool Message::Connect::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_ClientComputerName, message, mParseOffset, 64);
mParseOffset += setString(m_ClientName, message, mParseOffset, 64);
mParseOffset += setString(m_LoginName, message, mParseOffset, 64);
mParseOffset += setString(m_LoginPassword, message, mParseOffset, 64);
mParseOffset += setString(m_ServerIP, message, mParseOffset, 40);
mParseOffset += setInt(m_ServerPort, message, mParseOffset);
mParseOffset += setString(mClientComputerName, message, mParseOffset, 64);
mParseOffset += setString(mClientName, message, mParseOffset, 64);
mParseOffset += setString(mLoginName, message, mParseOffset, 64);
mParseOffset += setString(mLoginPassword, message, mParseOffset, 64);
mParseOffset += setString(mServerIp, message, mParseOffset, 40);
mParseOffset += setInt(mServerPort, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create Connect message");
return false;
@@ -289,10 +274,10 @@ bool Message::ConnectAnswer::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_ServerComputerName = getString(message, mParseOffset, 64).value();
m_ServerName = getString(message, mParseOffset, 64).value();
m_StepTime = getInt(message, mParseOffset).value();
m_Connected = getBoolean(message, mParseOffset).value();
mServerComputerName = getString(message, mParseOffset, 64).value();
mServerName = getString(message, mParseOffset, 64).value();
mStepTime = getInt(message, mParseOffset).value();
mConnected = getBoolean(message, mParseOffset).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse ConnectAnswer message");
return false;
@@ -309,7 +294,7 @@ Message::ConnectAnswer::ConnectAnswer()
void Message::ConnectAnswer::setStepTime(int p_StepTime_ms) {
if (p_StepTime_ms < 0)
p_StepTime_ms = 1;
m_StepTime = p_StepTime_ms;
mStepTime = p_StepTime_ms;
}
bool Message::ConnectAnswer::fillBytes(std::vector<char> &message) {
if (!mHeader) {
@@ -320,10 +305,10 @@ bool Message::ConnectAnswer::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_ServerComputerName, message, mParseOffset, 64);
mParseOffset += setString(m_ServerName, message, mParseOffset, 64);
mParseOffset += setInt(m_StepTime, message, mParseOffset);
mParseOffset += setBoolean(m_Connected, message, mParseOffset);
mParseOffset += setString(mServerComputerName, message, mParseOffset, 64);
mParseOffset += setString(mServerName, message, mParseOffset, 64);
mParseOffset += setInt(mStepTime, message, mParseOffset);
mParseOffset += setBoolean(mConnected, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create ConnectAnswer message");
return false;
@@ -478,9 +463,9 @@ bool Message::ReportProject::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_ProjectID = getString(message, mParseOffset, 41).value();
m_ProjectName = getString(message, mParseOffset, 64).value();
m_FramesPerSecond = getInt(message, mParseOffset).value();
mProjectID = getString(message, mParseOffset, 41).value();
mProjectName = getString(message, mParseOffset, 64).value();
mFramesPerSecond = getInt(message, mParseOffset).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse ReportProject message");
return false;
@@ -490,8 +475,8 @@ bool Message::ReportProject::parse(const std::vector<char> &message) {
// Send
Message::ReportProject::ReportProject(string p_ProjectID, string p_ProjectName)
: OPPart(BYTESLENGTH),
m_ProjectID(p_ProjectID),
m_ProjectName(p_ProjectName) {
mProjectID(p_ProjectID),
mProjectName(p_ProjectName) {
setHeader(OPFLAG);
mParseOffset = Header::BYTESLENGTH;
}
@@ -505,9 +490,9 @@ bool Message::ReportProject::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_ProjectID, message, mParseOffset, 41);
mParseOffset += setString(m_ProjectName, message, mParseOffset, 64);
mParseOffset += setInt(m_FramesPerSecond, message, mParseOffset);
mParseOffset += setString(mProjectID, message, mParseOffset, 41);
mParseOffset += setString(mProjectName, message, mParseOffset, 64);
mParseOffset += setInt(mFramesPerSecond, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create ReportProject message");
return false;
@@ -531,7 +516,7 @@ bool Message::CloseProject::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_ProjectID = getString(message, mParseOffset, 41).value();
mProjectID = getString(message, mParseOffset, 41).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse CloseProject message");
return false;
@@ -541,7 +526,7 @@ bool Message::CloseProject::parse(const std::vector<char> &message) {
// Send
Message::CloseProject::CloseProject(string projectID)
: OPPart(BYTESLENGTH),
m_ProjectID(projectID) {
mProjectID(projectID) {
setHeader(OPFLAG);
mParseOffset = Header::BYTESLENGTH;
}
@@ -555,7 +540,7 @@ bool Message::CloseProject::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_ProjectID, message, mParseOffset, 41);
mParseOffset += setString(mProjectID, message, mParseOffset, 41);
} catch (...) {
ESP_LOGE(TAG, "failed to create CloseProject message");
return false;
@@ -714,15 +699,15 @@ bool Message::ReportType::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_Confirmed = getBoolean(message, mParseOffset).value();
m_SPITTypeID = getString(message, mParseOffset, 41).value();
m_Fixed = getBoolean(message, mParseOffset).value();
m_ServerRemote = getBoolean(message, mParseOffset).value();
m_ServerProjectIndepended = getBoolean(message, mParseOffset).value();
m_SPITTypeGroupName = getString(message, mParseOffset, 39).value();
m_SPITTypeName = getString(message, mParseOffset, 64).value();
m_Delay = getLong(message, mParseOffset).value();
m_Duration = getLong(message, mParseOffset).value();
mConfirmed = getBoolean(message, mParseOffset).value();
mSPITTypeID = getString(message, mParseOffset, 41).value();
mFixed = getBoolean(message, mParseOffset).value();
mServerRemote = getBoolean(message, mParseOffset).value();
mServerProjectIndepended = getBoolean(message, mParseOffset).value();
mTypeGroupName = getString(message, mParseOffset, 39).value();
mSPITTypeName = getString(message, mParseOffset, 64).value();
mDelay = getLong(message, mParseOffset).value();
mDuration = getLong(message, mParseOffset).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse ReportType message");
return false;
@@ -745,15 +730,15 @@ bool Message::ReportType::fillBytes(std::vector<char> &message) {
try {
mParseOffset = mHeader->BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setBoolean(m_Confirmed, message, mParseOffset);
mParseOffset += setString(m_SPITTypeID, message, mParseOffset, 41);
mParseOffset += setBoolean(m_Fixed, message, mParseOffset);
mParseOffset += setBoolean(m_ServerRemote, message, mParseOffset);
mParseOffset += setBoolean(m_ServerProjectIndepended, message, mParseOffset);
mParseOffset += setString(m_SPITTypeGroupName, message, mParseOffset, 39);
mParseOffset += setString(m_SPITTypeName, message, mParseOffset, 64);
mParseOffset += setLong(m_Delay, message, mParseOffset);
mParseOffset += setLong(m_Duration, message, mParseOffset);
mParseOffset += setBoolean(mConfirmed, message, mParseOffset);
mParseOffset += setString(mSPITTypeID, message, mParseOffset, 41);
mParseOffset += setBoolean(mFixed, message, mParseOffset);
mParseOffset += setBoolean(mServerRemote, message, mParseOffset);
mParseOffset += setBoolean(mServerProjectIndepended, message, mParseOffset);
mParseOffset += setString(mTypeGroupName, message, mParseOffset, 39);
mParseOffset += setString(mSPITTypeName, message, mParseOffset, 64);
mParseOffset += setLong(mDelay, message, mParseOffset);
mParseOffset += setLong(mDuration, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create ReportType message");
return false;
@@ -777,7 +762,7 @@ bool Message::RemoveType::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_SPITTypeID = getString(message, mParseOffset, 41).value();
mSPITTypeID = getString(message, mParseOffset, 41).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse RemoveType message");
return false;
@@ -800,7 +785,7 @@ bool Message::RemoveType::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_SPITTypeID, message, mParseOffset, 41);
mParseOffset += setString(mSPITTypeID, message, mParseOffset, 41);
} catch (...) {
ESP_LOGE(TAG, "failed to create RemoveType message");
return false;
@@ -825,24 +810,24 @@ bool Message::ReportObject::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_Confirmed = getBoolean(message, mParseOffset).value();
m_SPITObjectID = getString(message, mParseOffset, 41).value();
m_Fixed = getBoolean(message, mParseOffset).value();
m_ServerRemote = getBoolean(message, mParseOffset).value();
m_SPITObjectName = getString(message, mParseOffset, 64).value();
m_SPITTypeID = getString(message, mParseOffset, 41).value();
m_ServerParams = getString(message, mParseOffset, 64).value();
m_FrameStart = getLong(message, mParseOffset).value();
m_FrameLength = getLong(message, mParseOffset).value();
m_FrameFadeInLength = getLong(message, mParseOffset).value();
m_FrameFadeOutLength = getLong(message, mParseOffset).value();
m_ValueFactor = getInt(message, mParseOffset).value();
m_ValueUse = getByte(message, mParseOffset).value();
m_Track = getInt(message, mParseOffset).value();
m_Remark = getString(message, mParseOffset, 64).value();
m_Delay = getLong(message, mParseOffset).value();
m_Duration = getLong(message, mParseOffset).value();
m_ActionAssigned = getBoolean(message, mParseOffset).value();
mConfirmed = getBoolean(message, mParseOffset).value();
mSPITObjectID = getString(message, mParseOffset, 41).value();
mFixed = getBoolean(message, mParseOffset).value();
mServerRemote = getBoolean(message, mParseOffset).value();
mSPITObjectName = getString(message, mParseOffset, 64).value();
mSPITTypeID = getString(message, mParseOffset, 41).value();
mServerParams = getString(message, mParseOffset, 64).value();
mFrameStart = getLong(message, mParseOffset).value();
mFrameLength = getLong(message, mParseOffset).value();
mFrameFadeInLength = getLong(message, mParseOffset).value();
mFrameFadeOutLength = getLong(message, mParseOffset).value();
mValueFactor = getInt(message, mParseOffset).value();
mValueUse = getByte(message, mParseOffset).value();
mTrack = getInt(message, mParseOffset).value();
mRemark = getString(message, mParseOffset, 64).value();
mDelay = getLong(message, mParseOffset).value();
mDuration = getLong(message, mParseOffset).value();
mActionAssigned = getBoolean(message, mParseOffset).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse ReportObject message");
return false;
@@ -858,12 +843,12 @@ Message::ReportObject::ReportObject() : OPPart(BYTESLENGTH) {
void Message::ReportObject::setDelay(uint64_t p_Delay) {
if (p_Delay < 0)
p_Delay = 0;
m_Delay = p_Delay;
mDelay = p_Delay;
}
void Message::ReportObject::setDuration(uint64_t p_Duration) {
if (p_Duration < 0)
p_Duration = 0;
m_Duration = p_Duration;
mDuration = p_Duration;
}
bool Message::ReportObject::fillBytes(std::vector<char> &message) {
@@ -875,24 +860,24 @@ bool Message::ReportObject::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setBoolean(m_Confirmed, message, mParseOffset);
mParseOffset += setString(m_SPITObjectID, message, mParseOffset, 41);
mParseOffset += setBoolean(m_Fixed, message, mParseOffset);
mParseOffset += setBoolean(m_ServerRemote, message, mParseOffset);
mParseOffset += setString(m_SPITObjectName, message, mParseOffset, 64);
mParseOffset += setString(m_SPITTypeID, message, mParseOffset, 41);
mParseOffset += setString(m_ServerParams, message, mParseOffset, 64);
mParseOffset += setLong(m_FrameStart, message, mParseOffset);
mParseOffset += setLong(m_FrameLength, message, mParseOffset);
mParseOffset += setLong(m_FrameFadeInLength, message, mParseOffset);
mParseOffset += setLong(m_FrameFadeOutLength, message, mParseOffset);
mParseOffset += setInt(m_ValueFactor, message, mParseOffset);
mParseOffset += setByte(m_ValueUse, message, mParseOffset);
mParseOffset += setInt(m_Track, message, mParseOffset);
mParseOffset += setString(m_Remark, message, mParseOffset, 64);
mParseOffset += setLong(m_Delay, message, mParseOffset);
mParseOffset += setLong(m_Duration, message, mParseOffset);
mParseOffset += setBoolean(m_ActionAssigned, message, mParseOffset);
mParseOffset += setBoolean(mConfirmed, message, mParseOffset);
mParseOffset += setString(mSPITObjectID, message, mParseOffset, 41);
mParseOffset += setBoolean(mFixed, message, mParseOffset);
mParseOffset += setBoolean(mServerRemote, message, mParseOffset);
mParseOffset += setString(mSPITObjectName, message, mParseOffset, 64);
mParseOffset += setString(mSPITTypeID, message, mParseOffset, 41);
mParseOffset += setString(mServerParams, message, mParseOffset, 64);
mParseOffset += setLong(mFrameStart, message, mParseOffset);
mParseOffset += setLong(mFrameLength, message, mParseOffset);
mParseOffset += setLong(mFrameFadeInLength, message, mParseOffset);
mParseOffset += setLong(mFrameFadeOutLength, message, mParseOffset);
mParseOffset += setInt(mValueFactor, message, mParseOffset);
mParseOffset += setByte(mValueUse, message, mParseOffset);
mParseOffset += setInt(mTrack, message, mParseOffset);
mParseOffset += setString(mRemark, message, mParseOffset, 64);
mParseOffset += setLong(mDelay, message, mParseOffset);
mParseOffset += setLong(mDuration, message, mParseOffset);
mParseOffset += setBoolean(mActionAssigned, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create ReportObject message");
return false;
@@ -915,7 +900,7 @@ bool Message::RemoveObject::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_SPITObjectID = getString(message, mParseOffset, 41).value();
mSPITObjectID = getString(message, mParseOffset, 41).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse RemoveObject message");
return false;
@@ -938,7 +923,7 @@ bool Message::RemoveObject::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_SPITObjectID, message, mParseOffset, 41);
mParseOffset += setString(mSPITObjectID, message, mParseOffset, 41);
} catch (...) {
ESP_LOGE(TAG, "failed to create RemoveObject message");
return false;
@@ -963,11 +948,11 @@ bool Message::PlayStart::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_PlayerID = getString(message, mParseOffset, 41).value();
m_PlayerName = getString(message, mParseOffset, 64).value();
m_PlayerType = getByte(message, mParseOffset).value();
m_PlayerIsRunning = getBoolean(message, mParseOffset).value();
m_Time = getLong(message, mParseOffset).value();
mPlayerID = getString(message, mParseOffset, 41).value();
mPlayerName = getString(message, mParseOffset, 64).value();
mPlayerType = getByte(message, mParseOffset).value();
mPlayerIsRunning = getBoolean(message, mParseOffset).value();
mTime = getLong(message, mParseOffset).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse PlayStart message");
return false;
@@ -978,9 +963,9 @@ bool Message::PlayStart::parse(const std::vector<char> &message) {
// Send
Message::PlayStart::PlayStart(string p_PlayerID, string p_PlayerName, char p_PlayerType)
: OPPart(BYTESLENGTH),
m_PlayerID(p_PlayerID),
m_PlayerName(p_PlayerName),
m_PlayerType(p_PlayerType) {
mPlayerID(p_PlayerID),
mPlayerName(p_PlayerName),
mPlayerType(p_PlayerType) {
setHeader(OPFLAG);
mParseOffset = Header::BYTESLENGTH;
}
@@ -994,11 +979,11 @@ bool Message::PlayStart::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_PlayerID, message, mParseOffset, 41);
mParseOffset += setString(m_PlayerName, message, mParseOffset, 64);
mParseOffset += setByte(m_PlayerType, message, mParseOffset);
mParseOffset += setBoolean(m_PlayerIsRunning, message, mParseOffset);
mParseOffset += setLong(m_Time, message, mParseOffset);
mParseOffset += setString(mPlayerID, message, mParseOffset, 41);
mParseOffset += setString(mPlayerName, message, mParseOffset, 64);
mParseOffset += setByte(mPlayerType, message, mParseOffset);
mParseOffset += setBoolean(mPlayerIsRunning, message, mParseOffset);
mParseOffset += setLong(mTime, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create PlayStart message");
return false;
@@ -1022,12 +1007,12 @@ bool Message::PlayObject::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_PlayerID = getString(message, mParseOffset, 41).value();
m_SPITObjectID = getString(message, mParseOffset, 41).value();
m_FrameInsideObject = getLong(message, mParseOffset).value();
m_PlayPrePosition = getBoolean(message, mParseOffset).value();
m_Value = getInt(message, mParseOffset).value();
m_ValueFlag = getByte(message, mParseOffset).value();
mPlayerID = getString(message, mParseOffset, 41).value();
mSPITObjectID = getString(message, mParseOffset, 41).value();
mFrameInsideObject = getLong(message, mParseOffset).value();
mPlayPrePosition = getBoolean(message, mParseOffset).value();
mValue = getInt(message, mParseOffset).value();
mValueFlag = getByte(message, mParseOffset).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse PlayObject message");
return false;
@@ -1049,12 +1034,12 @@ bool Message::PlayObject::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_PlayerID, message, mParseOffset, 41);
mParseOffset += setString(m_SPITObjectID, message, mParseOffset, 41);
mParseOffset += setLong(m_FrameInsideObject, message, mParseOffset);
mParseOffset += setBoolean(m_PlayPrePosition, message, mParseOffset);
mParseOffset += setInt(m_Value, message, mParseOffset);
mParseOffset += setByte(m_ValueFlag, message, mParseOffset);
mParseOffset += setString(mPlayerID, message, mParseOffset, 41);
mParseOffset += setString(mSPITObjectID, message, mParseOffset, 41);
mParseOffset += setLong(mFrameInsideObject, message, mParseOffset);
mParseOffset += setBoolean(mPlayPrePosition, message, mParseOffset);
mParseOffset += setInt(mValue, message, mParseOffset);
mParseOffset += setByte(mValueFlag, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create PlayObject message");
return false;
@@ -1078,7 +1063,7 @@ bool Message::PlayEnd::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_PlayerID = getString(message, mParseOffset, 41).value();
mPlayerID = getString(message, mParseOffset, 41).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse PlayEnd message");
return false;
@@ -1088,7 +1073,7 @@ bool Message::PlayEnd::parse(const std::vector<char> &message) {
// Send
Message::PlayEnd::PlayEnd(string p_PlayerID)
: OPPart(BYTESLENGTH),
m_PlayerID(p_PlayerID) {
mPlayerID(p_PlayerID) {
setHeader(OPFLAG);
mParseOffset = Header::BYTESLENGTH;
}
@@ -1102,7 +1087,7 @@ bool Message::PlayEnd::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_PlayerID, message, mParseOffset, 41);
mParseOffset += setString(mPlayerID, message, mParseOffset, 41);
} catch (...) {
ESP_LOGE(TAG, "failed to create PlayEnd message");
return false;
@@ -1126,9 +1111,9 @@ bool Message::ReportPlayStatus::parse(const std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mBytesCount = getInt(message, mParseOffset).value();
m_SPITObjectID = getString(message, mParseOffset, 41).value();
m_FrameInsideObject = getLong(message, mParseOffset).value();
m_Value = getInt(message, mParseOffset).value();
mSPITObjectID = getString(message, mParseOffset, 41).value();
mFrameInsideObject = getLong(message, mParseOffset).value();
mValue = getInt(message, mParseOffset).value();
} catch (...) {
ESP_LOGE(TAG, "failed to parse ReportPlayStatus message");
return false;
@@ -1142,13 +1127,13 @@ Message::ReportPlayStatus::ReportPlayStatus() : OPPart(BYTESLENGTH) {
}
void Message::ReportPlayStatus::setID(string p_ID) {
m_SPITObjectID = p_ID;
mSPITObjectID = p_ID;
}
void Message::ReportPlayStatus::setFrameInsideObject(uint64_t p_TimeInside) {
m_FrameInsideObject = p_TimeInside;
mFrameInsideObject = p_TimeInside;
}
void Message::ReportPlayStatus::setValue(int p_Value) {
m_Value = p_Value;
mValue = p_Value;
}
bool Message::ReportPlayStatus::fillBytes(std::vector<char> &message) {
if (!mHeader) {
@@ -1159,9 +1144,9 @@ bool Message::ReportPlayStatus::fillBytes(std::vector<char> &message) {
try {
mParseOffset = Header::BYTESLENGTH;
mParseOffset += setInt(mBytesCount, message, mParseOffset);
mParseOffset += setString(m_SPITObjectID, message, mParseOffset, 41);
mParseOffset += setLong(m_FrameInsideObject, message, mParseOffset);
mParseOffset += setInt(m_Value, message, mParseOffset);
mParseOffset += setString(mSPITObjectID, message, mParseOffset, 41);
mParseOffset += setLong(mFrameInsideObject, message, mParseOffset);
mParseOffset += setInt(mValue, message, mParseOffset);
} catch (...) {
ESP_LOGE(TAG, "failed to create ReportPlayStatus message");
return false;