bringup hardware

This commit is contained in:
2025-03-30 21:00:09 +02:00
parent f06cf9c3b1
commit d607cd867a
8 changed files with 126 additions and 142 deletions
+4 -4
View File
@@ -73,13 +73,13 @@ class SPITPlayer {
}
unordered_map<string, PlaySPITType *> *getPlaySPITTypes();
void setIsRunning(bool p_IsRunning);
void setIsRunning(bool p_IsRunning) { m_IsRunning = p_IsRunning; }
void setName(string p_Name) { m_Name = p_Name; }
void setType(char p_Type) { m_Type = p_Type; }
void setTime(long long p_Frames) { m_TimeFrames = p_Frames; }
bool getIsRunning() { return m_IsRunning; }
void setName(string p_Name);
string getName() { return m_Name; }
void setType(char p_Type);
char getType() { return m_Type; }
void setTime(long long p_Frames);
long long getTime() { return m_TimeFrames; }
private:
-13
View File
@@ -61,19 +61,6 @@ SPITPlayer::~SPITPlayer() {
}
}
void SPITPlayer::setIsRunning(bool p_IsRunning) {
m_IsRunning = p_IsRunning;
}
void SPITPlayer::setName(string p_Name) {
m_Name = p_Name;
}
void SPITPlayer::setType(char p_Type) {
m_Type = p_Type;
}
void SPITPlayer::setTime(long long p_Frames) {
m_TimeFrames = p_Frames;
}
unordered_map<string, SPITPlayer::PlaySPITType *> *SPITPlayer::getPlaySPITTypes() {
return &m_PlaySPITTypes;
}
+76 -94
View File
@@ -421,7 +421,7 @@ void SPIT_Client::addOvertakingSPIT_Message(SPIT_Message *p_SPIT_Message) {
int intOvertakingMessageNumber;
if (m_OvertakingSPIT_Messages.size() > s_MAX_OVERTAKING_SPIT_MESSAGES) {
printf("SPIT_Client receiveing: perhaps message lost !!!!!");
ESP_LOGD(TAG, "SPIT_Client receiveing: perhaps message lost !!!!!");
}
intMessageNumber = (int)(p_SPIT_Message->getHeader()->getMessageNumber() & 0xFF);
@@ -730,7 +730,7 @@ void SPIT_Client::parseReportSPITProject(SPIT_Message::ReportSPITProject *p_Repo
// Send RequestProjectTransfer
SPIT_Message::RequestProjectTransfer sMRequestProjectTransfer;
if (sendSPITMessage(sMRequestProjectTransfer) < 0) {
printf("SPIT_Client::parseReportSPITProject could not send RequestProjectTransfer\n");
ESP_LOGD(TAG, "SPIT_Client::parseReportSPITProject could not send RequestProjectTransfer\n");
}
// todo Don't send the ReportSPITProject here it should be sended after parseEndProjectTransfer
@@ -740,7 +740,7 @@ void SPIT_Client::parseReportSPITProject(SPIT_Message::ReportSPITProject *p_Repo
sMReportSPITProject.setProjectName(m_ProjName);
sMReportSPITProject.setFramesPerSecond(0);
if (sendSPITMessage(sMReportSPITProject) < 0) {
printf("SPIT_Client::parseReportSPITProject could not send Client's ReportSPITProject");
ESP_LOGD(TAG, "SPIT_Client::parseReportSPITProject could not send Client's ReportSPITProject");
}
}
void SPIT_Client::parseCloseSPITProject(SPIT_Message::CloseSPITProject *p_CloseSPITProject) {
@@ -927,7 +927,7 @@ void SPIT_Client::parseStartProjectTransfer(SPIT_Message::StartProjectTransfer *
}
void SPIT_Client::parseEndProjectTransfer(SPIT_Message::EndProjectTransfer *p_EndProjectTransfer) {
SPITObject::clearUnconfirmedSPITObjects();
mCallbacks.onProjectUpdate(ProjUpdate::EndTransfer, m_ServerProjectID) ;
mCallbacks.onProjectUpdate(ProjUpdate::EndTransfer, m_ServerProjectID);
// Send SPIT_Message::ReportSPITProject after the m_SPITClientInterface is notfied of EndProjectTransfer
SPIT_Message::ReportSPITProject ptrSMReportSPITProject;
@@ -935,7 +935,7 @@ void SPIT_Client::parseEndProjectTransfer(SPIT_Message::EndProjectTransfer *p_En
ptrSMReportSPITProject.setProjectName(m_ProjName);
ptrSMReportSPITProject.setFramesPerSecond(0);
if (sendSPITMessage(ptrSMReportSPITProject) < 0) {
printf("SPIT_Client::parseReportSPITProject could not send Client's ReportSPITProject");
ESP_LOGD(TAG, "SPIT_Client::parseReportSPITProject could not send Client's ReportSPITProject");
}
}
@@ -1090,7 +1090,7 @@ int SPIT_Client::removeSPITType(string p_SPITTypeID) {
return -1;
SPIT_Message::RemoveSPITType sMRemoveSPITType;
ptrSPITType->fillMessageOP(&sMRemoveSPITType);
mCallbacks.onSpitType(ObjectEvent::Deleted,*ptrSPITType);
mCallbacks.onSpitType(ObjectEvent::Deleted, *ptrSPITType);
SPITType::removeSPITType(ptrSPITType);
delete ptrSPITType;
return sendSPITMessage(sMRemoveSPITType);
@@ -1132,8 +1132,7 @@ SPITType *SPIT_Client::createSPITType(string p_ID, string p_GroupName, string p_
//----- SPIT Objects ------
void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_ReportSPITObject) {
// printf("parse ReportSPITObject %s\n", p_ReportSPITObject->getID());
ESP_LOGD(TAG, "parse ReportSPITObject %s\n", p_ReportSPITObject->getID().c_str());
if (p_ReportSPITObject == NULL)
return;
SPITObject *ptrSPITObject;
@@ -1160,6 +1159,7 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report
if (ptrSPITObject == NULL) {
// The user's app my veto the SPITType
if (mCallbacks.onCheckSpitObjectVeto(p_ReportSPITObject) == false) {
ESP_LOGD(TAG, "ObjectVeto %s / %s", p_ReportSPITObject->getID().c_str(), p_ReportSPITObject->getName().c_str());
return;
}
@@ -1170,6 +1170,7 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report
if (mCallbacks.onCheckSpitObjectVeto(p_ReportSPITObject) == false) {
// SpitObject exists and User APp denied the SPITObject -> remove the SPITObject without sending a message
SPITObject::removeSPITObject(ptrSPITObject);
ESP_LOGD(TAG, "TypeVeto %s / %s", p_ReportSPITObject->getID().c_str(), p_ReportSPITObject->getName().c_str());
delete ptrSPITObject;
return;
}
@@ -1336,89 +1337,72 @@ int SPIT_Client::removeSPITObject(string p_SPITObjectID) {
//----- Play SPIT Objects ------
void SPIT_Client::parsePlaySPITStart(SPIT_Message::PlaySPITStart *p_PlaySPITStart) {
// printf("parse PlaySPITStart ID: %s Name: %s Running: %d\n", p_PlaySPITStart->getPlayerID(), p_PlaySPITStart->getPlayerName(), p_PlaySPITStart->getPlayerIsRunning());
SPITPlayer *ptrSPITPlayer;
{
ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITStart->getPlayerID());
if (ptrSPITPlayer == NULL)
return;
ptrSPITPlayer->setIsRunning(p_PlaySPITStart->getPlayerIsRunning());
ptrSPITPlayer->setName(p_PlaySPITStart->getPlayerName());
ptrSPITPlayer->setType(p_PlaySPITStart->getPlayerType());
ptrSPITPlayer->setTime(p_PlaySPITStart->getTime());
ptrSPITPlayer->startPlaySequence();
mCallbacks.onPlay(ptrSPITPlayer->getID(), ptrSPITPlayer->getName(), ptrSPITPlayer->getType(), ptrSPITPlayer->getIsRunning(), ptrSPITPlayer->getTime());
}
}
void SPIT_Client::parsePlaySPITObject(SPIT_Message::PlaySPITObject *p_PlaySPITObject) {
// printf("parse RPlaySPITObject Object:%s\n", p_PlaySPITObject->getSPITObjectID());
SPITPlayer *ptrSPITPlayer;
SPITPlayer::PlaySPITType *ptrPlaySPITType;
SPITObject *ptrSPITObject;
{
ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITObject->getPlayerID());
if (ptrSPITPlayer == NULL)
return;
// Fetch infoemations from SPITObject
ptrSPITObject = SPITObject::getSPITObject(p_PlaySPITObject->getSPITObjectID());
if (ptrSPITObject == NULL) {
return;
}
ptrPlaySPITType = ptrSPITPlayer->addSPITType_Playing(ptrSPITObject->getSPITTypeID());
if (ptrPlaySPITType == NULL) {
return;
}
ptrPlaySPITType->setPlayerIsRunning(ptrSPITPlayer->getIsRunning());
ptrPlaySPITType->addValue(((double)p_PlaySPITObject->getValue() / 1000000), ((double)ptrSPITObject->getValueFactor() / 1000000));
}
}
void SPIT_Client::parsePlaySPITEnd(SPIT_Message::PlaySPITEnd *p_PlaySPITEnd) {
// printf("parse PlaySPITEnd \n");
SPITPlayer *ptrSPITPlayer;
SPITType *ptrSPITType = NULL;
// {
// ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITEnd->getPlayerID());
// if (ptrSPITPlayer == NULL) return;
// unordered_map<string, SPITPlayer::PlayObject*>* ptrPlayObjects;
// SPITPlayer::PlayObject* ptrPlayObject;
// bool boolStarted;
// bool boolStopped;
// ptrPlayObjects = ptrSPITPlayer->getPlayObjects();
// for (auto i = ptrPlayObjects->begin(); i != ptrPlayObjects->end(); i++) {
// ptrPlayObject = i->second;
// boolStarted = false;
// boolStopped = false;
// if (ptrPlayObject->getIsNew()) {
// boolStarted = true;
// }
// if (ptrPlayObject->getIsPlayed() == false) {
// boolStopped = true;
// }
// {
// ptrSPITObject = SPITObject::getSPITObject(ptrPlayObject->getSPITObjectID());
// if (ptrSPITObject == NULL) {
// return;
// }
// ptrSPITType = SPITType::getSPITType(ptrSPITObject->getSPITTypeID());
// if (ptrSPITType == NULL) {
// return;
// }
// mCallbacks.onPlaySpitType(ptrPlayObject->getPlayerID(), boolStarted, boolStopped, *ptrSPITType, *ptrSPITObject, *ptrPlayObject);
// }
// }
// ptrSPITPlayer->endPlaySequence();
// }
ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITEnd->getPlayerID());
ESP_LOGD(TAG, "parse PlaySPITStart ID: %s Name: %s Running: %d", p_PlaySPITStart->getPlayerID().c_str(), p_PlaySPITStart->getPlayerName().c_str(), (int)p_PlaySPITStart->getPlayerIsRunning());
SPITPlayer *ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITStart->getPlayerID());
if (ptrSPITPlayer == NULL)
return;
ptrSPITPlayer->setIsRunning(p_PlaySPITStart->getPlayerIsRunning());
ptrSPITPlayer->setName(p_PlaySPITStart->getPlayerName());
ptrSPITPlayer->setType(p_PlaySPITStart->getPlayerType());
ptrSPITPlayer->setTime(p_PlaySPITStart->getTime());
ptrSPITPlayer->startPlaySequence();
mCallbacks.onPlay(ptrSPITPlayer->getID(), ptrSPITPlayer->getName(), ptrSPITPlayer->getType(), ptrSPITPlayer->getIsRunning(), ptrSPITPlayer->getTime());
}
void SPIT_Client::parsePlaySPITObject(SPIT_Message::PlaySPITObject *p_PlaySPITObject) {
SPITPlayer *ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITObject->getPlayerID());
if (ptrSPITPlayer == NULL)
return;
SPITObject *ptrSPITObject = SPITObject::getSPITObject(p_PlaySPITObject->getSPITObjectID());
if (ptrSPITObject == NULL) {
return;
}
SPITPlayer::PlaySPITType *ptrPlaySPITType = ptrSPITPlayer->addSPITType_Playing(ptrSPITObject->getSPITTypeID());
if (ptrPlaySPITType == NULL) {
return;
}
ptrPlaySPITType->setPlayerIsRunning(ptrSPITPlayer->getIsRunning());
ptrPlaySPITType->addValue(((double)p_PlaySPITObject->getValue() / 1000000), ((double)ptrSPITObject->getValueFactor() / 1000000));
}
void SPIT_Client::parsePlaySPITEnd(SPIT_Message::PlaySPITEnd *p_PlaySPITEnd) {
SPITPlayer *ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITEnd->getPlayerID());
if (ptrSPITPlayer == NULL)
return;
// unordered_map<string, SPITPlayer::PlaySPITType*>* ptrPlayObjects;
// bool boolStarted;
// bool boolStopped;
// SPITPlayer::PlaySPITType* ptrPlayObject = ptrSPITPlayer->getPlayObjects();
// for (auto i = ptrPlayObjects->begin(); i != ptrPlayObjects->end(); i++) {
// ptrPlayObject = i->second;
// boolStarted = false;
// boolStopped = false;
// if (ptrPlayObject->getIsNew()) {
// boolStarted = true;
// }
// if (ptrPlayObject->getIsPlayed() == false) {
// boolStopped = true;
// }
// {
// ptrSPITObject = SPITObject::getSPITObject(ptrPlayObject->getSPITObjectID());
// if (ptrSPITObject == NULL) {
// return;
// }
// SPITType *ptrSPITType = SPITType::getSPITType(ptrSPITObject->getSPITTypeID());
// if (ptrSPITType == NULL) {
// return;
// }
// mCallbacks.onPlaySpitType(ptrPlayObject->getPlayerID(), boolStarted, boolStopped, *ptrSPITType, *ptrSPITObject, *ptrPlayObject);
// }
// }
// ptrSPITPlayer->endPlaySequence();
// SPITPlayer *ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITEnd->getPlayerID());
// if (ptrSPITPlayer == NULL)
// return;
unordered_map<string, SPITPlayer::PlaySPITType *> *ptrPlaySPITTypes = ptrSPITPlayer->getPlaySPITTypes();
for (auto i = ptrPlaySPITTypes->begin(); i != ptrPlaySPITTypes->end(); i++) {
@@ -1432,7 +1416,7 @@ void SPIT_Client::parsePlaySPITEnd(SPIT_Message::PlaySPITEnd *p_PlaySPITEnd) {
boolStopped = true;
}
{
ptrSPITType = SPITType::getSPITType(ptrPlaySPITType->getSPITTypeID());
SPITType *ptrSPITType = SPITType::getSPITType(ptrPlaySPITType->getSPITTypeID());
if (ptrSPITType == NULL) {
// set isplayed to false, the ptrPlayObject will be removed by ptrSPITPlayer->endPlaySequence()
ptrPlaySPITType->setIsPlayed(false);
@@ -1445,13 +1429,11 @@ void SPIT_Client::parsePlaySPITEnd(SPIT_Message::PlaySPITEnd *p_PlaySPITEnd) {
}
void SPIT_Client::parseReportPlayStatus(SPIT_Message::ReportPlayStatus *p_ReportPlayStatus) {
// only REMOTE server -> client
// printf(" parseReportPlayStatus ");
ESP_LOGD(TAG, "parseReportPlayStatus");
SPITType *ptrSPITType = NULL;
SPITObject *ptrSPITObject = NULL;
{
ptrSPITObject = SPITObject::getSPITObjectRemote(p_ReportPlayStatus->getID());
SPITObject *ptrSPITObject = SPITObject::getSPITObjectRemote(p_ReportPlayStatus->getID());
if (ptrSPITObject == NULL) {
ptrSPITObject = SPITObject::getSPITObject(p_ReportPlayStatus->getID());
if (ptrSPITObject == NULL) {