From 3231120a1edb99253b698938664014c0965869bb Mon Sep 17 00:00:00 2001 From: Jakob Gegeniger Date: Sun, 6 Apr 2025 22:46:06 +0200 Subject: [PATCH] Further refactoring for better safety and maintainability --- components/spit/Notes.md | 11 + .../spit/SPIT_Protocol_en_20180211_1630.pdf | Bin 0 -> 253397 bytes components/spit/include/SPITObject.h | 15 +- components/spit/include/SPITPlayer.h | 2 +- components/spit/include/SPITType.h | 16 +- components/spit/include/SPIT_Client.h | 13 +- components/spit/src/SPITObject.cpp | 77 ++--- components/spit/src/SPITPlayer.cpp | 15 +- components/spit/src/SPITType.cpp | 65 ++-- components/spit/src/SPIT_Client.cpp | 309 +++++++----------- main/watchMain.cpp | 174 +++++----- 11 files changed, 291 insertions(+), 406 deletions(-) create mode 100644 components/spit/Notes.md create mode 100644 components/spit/SPIT_Protocol_en_20180211_1630.pdf diff --git a/components/spit/Notes.md b/components/spit/Notes.md new file mode 100644 index 0000000..231a3ff --- /dev/null +++ b/components/spit/Notes.md @@ -0,0 +1,11 @@ +# SPIT + +Original implementation from Hag seem to be not suited for Embedded devices. + +- Supports IPv4 only +- Reduced Threads to a minimum +- Then reduced usage of Mutexes to a minimum +- Reduced Sockets to a minimum +- Introduced containers and removed plain new and delete +- Removed UUID-Generation because SPIT-Types never change on embedded devices +- Callbacks instead of interfaces where suitable \ No newline at end of file diff --git a/components/spit/SPIT_Protocol_en_20180211_1630.pdf b/components/spit/SPIT_Protocol_en_20180211_1630.pdf new file mode 100644 index 0000000000000000000000000000000000000000..570220355e80a643fb5dfca0e432a5612b7496bc GIT binary patch literal 253397 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
Xy* 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 aPuxAM+&qwF2ykSFLT3xf$!Y0n3;jRgf-=(p literal 0 HcmV?d00001 diff --git a/components/spit/include/SPITObject.h b/components/spit/include/SPITObject.h index 5d6678d..12e1e65 100644 --- a/components/spit/include/SPITObject.h +++ b/components/spit/include/SPITObject.h @@ -18,6 +18,7 @@ #include "SPIT_Message.h" #include #include +#include using namespace std; @@ -25,13 +26,13 @@ class SPITObjectListener; class SPITObject { private: - static unordered_map sSpitObjects; - static unordered_map sSpitObjectsRemote; + static unordered_map> sSpitObjects; + static unordered_map> sSpitObjectsRemote; public: static SPITObject *getSPITObject(const string &id); static const SPITObject &getSPITObjectRef(const string &id); - static void addSPITObject(SPITObject &spitObject); + static void addSPITObject(unique_ptr spitObject); static bool removeSPITObject(const SPITObject &spitObject); static bool removeSPITObject(const string & spitObjectID); static int getSPITObjectCount() { @@ -39,13 +40,13 @@ class SPITObject { } static SPITObject *getSPITObject(int p_Index); static const SPITObject &getSPITObjectRef(int p_Index); - static void clearSPITObjects(); + static void clearSPITObjects() { sSpitObjects.clear(); } static void clearUnconfirmedSPITObjects(); static void setConfirmedFalse(); static SPITObject *getSPITObjectRemote(const string &id); static const SPITObject &getSPITObjectRemoteRef(const string &id); - static void addSPITObjectRemote(SPITObject &spitObject); + static void addSPITObjectRemote(unique_ptr spitObject); static bool removeSPITObjectRemote(const SPITObject &spitObject); static bool removeSPITObjectRemote(const string & spitObjectID); static int getSPITObjectRemoteCount() { @@ -53,11 +54,11 @@ class SPITObject { } static SPITObject *getSPITObjectRemote(int p_Index); static const SPITObject &getSPITObjectRemoteRef(int p_Index); - static void clearSPITObjectsRemote(); + static void clearSPITObjectsRemote(){ sSpitObjectsRemote.clear(); } static void eventProjectClosed(); - SPITObject(); + SPITObject(string p_ID); private: string m_ID; diff --git a/components/spit/include/SPITPlayer.h b/components/spit/include/SPITPlayer.h index 1b74a00..f40381a 100644 --- a/components/spit/include/SPITPlayer.h +++ b/components/spit/include/SPITPlayer.h @@ -58,7 +58,7 @@ class SPITPlayer { public: // list the SPITPlayers static unordered_map s_SPITPlayers; // all actual played objects - static SPITPlayer *getSPITPlayer(string p_PlayerID); // if a player does not exist creates a new one + static SPITPlayer &getSPITPlayer(string p_PlayerID); // if a player does not exist creates a new one static void clearPlayers(); SPITPlayer(string p_PlayerID); diff --git a/components/spit/include/SPITType.h b/components/spit/include/SPITType.h index 5272599..191e23e 100644 --- a/components/spit/include/SPITType.h +++ b/components/spit/include/SPITType.h @@ -18,6 +18,7 @@ #include "SPIT_Message.h" #include #include +#include using namespace std; @@ -25,32 +26,32 @@ class SPITTypeListener; class SPITType { private: - static unordered_map sSpitTypes; - static unordered_map sSpitTypesRemote; + static unordered_map> sSpitTypes; + static unordered_map> sSpitTypesRemote; public: static SPITType *getSPITType(const string &id); static const SPITType &getSPITTypeRef(const string &id); - static void addSPITType(SPITType &spitType); + static void addSPITType( unique_ptr spitType); static bool removeSPITType(const SPITType &spitType); static int getSPITTypeCount() { return sSpitTypes.size(); } static SPITType *getSPITType(int p_Index); static const SPITType &getSPITTypeRef(int p_Index); - static void clearSPITTypes(); + static void clearSPITTypes() { sSpitTypes.clear(); } static void setConfirmedFalse(); static SPITType *getSPITTypeRemote(const string &id); static const SPITType &getSPITTypeRemoteRef(const string &id); - static void addSPITTypeRemote(SPITType &spitType); + static void addSPITTypeRemote(unique_ptr spitType); static bool removeSPITTypeRemote(const SPITType &spitType); static int getSPITTypeRemoteCount() { return sSpitTypesRemote.size(); } static SPITType *getSPITTypeRemote(int p_Index); static const SPITType &getSPITTypeRemoteRef(int p_Index); - static void clearSPITTypesRemote(); + static void clearSPITTypesRemote() { sSpitTypesRemote.clear(); } static void eventProjectClosed(); - SPITType(); + SPITType(string p_ID); SPITType(string p_ID, string p_GroupName, string p_Name, bool p_Fixed, bool p_ProjectIndepended, long long p_DefaultDelay, long long p_DefaultDuration); private: @@ -80,7 +81,6 @@ class SPITType { * true = the action is triggered on the server. The server waits for the client to play objects of this SPITType. */ bool getServerRemote() const { return m_ServerRemote; } - bool getProjectIndepended() const { return m_ServerProjectIndepended; } /** * This is used by the server and client to tell if the other side has registered the changes. diff --git a/components/spit/include/SPIT_Client.h b/components/spit/include/SPIT_Client.h index f686c5e..dfc1978 100644 --- a/components/spit/include/SPIT_Client.h +++ b/components/spit/include/SPIT_Client.h @@ -52,11 +52,8 @@ class SPIT_Client : I_SAD_Client { void (*onServerEvent)(ServerEvent event, const SAD_DetectedServer &p_DetectedServer){}; void (*onConnectionStatus)(string p_ServerID, string p_ServerComputerName, string p_ServerName, int p_ServerStepTime, int p_ConnectionStatus, int p_OldConnectionStatus){}; void (*onProjectUpdate)(ProjUpdate state, string projectId){}; - - void (*onSpitType)(ObjectEvent event, const SPITType &p_SPITType){}; - void (*onSpitTypeRemote)(ObjectEvent event, const SPITType &p_SPITType){}; - void (*onSpitObject)(ObjectEvent event, const SPITType &p_SPITType, const SPITObject &p_SPITObject){}; - void (*onSpitObjectRemote)(ObjectEvent event, const SPITType &p_SPITType, const SPITObject &p_SPITObject){}; + void (*onSpitType)(ObjectEvent event, bool isRemote, const SPITType &p_SPITType){}; + void (*onSpitObject)(ObjectEvent event, bool isRemote, const SPITType &p_SPITType, const SPITObject &p_SPITObject){}; void (*onPlay)(string p_PlayerID, string p_PlayerName, char p_PlayerType, bool p_PlayerIsRunning, long long p_TimeFrames){}; void (*onPlaySpitType)(string p_PlayerID, string p_SPITTypeID, bool p_PlayerIsRunning, bool p_Started, bool p_Ended, double p_Value){}; @@ -96,12 +93,12 @@ class SPIT_Client : I_SAD_Client { static constexpr char VALUEFLAG_INCREASE = 0x01; /**Decrease the existing value by the given value.
This is usefull e.g. when instead of a fader a endless wheel is used*/ static constexpr char VALUEFLAG_DECREASE = 0x02; + static constexpr int MAX_OVERTAKING_SPIT_MESSAGES = 10; //----- SPIT_Client ----- public: SPIT_Client(string name, string projName, Callbacks calls); virtual ~SPIT_Client(); - static int s_MAX_OVERTAKING_SPIT_MESSAGES; private: Callbacks mCallbacks; @@ -120,7 +117,7 @@ class SPIT_Client : I_SAD_Client { unsigned char m_MessageNumber_Send; int m_MessageNumber_Received; - vector m_OvertakingSPIT_Messages; + vector> m_OvertakingSPIT_Messages; // Server's info filled by parseConnectAnswer string m_ServerID{}; @@ -220,7 +217,7 @@ class SPIT_Client : I_SAD_Client { void resetMessageNumberReceived(); void parseSPIT_Message(unique_ptr p_SPITMessage); void checkParseSPIT_Message(unique_ptr p_SPITMessage); - void addOvertakingSPIT_Message(SPIT_Message *p_SPIT_Message); + void addOvertakingSPIT_Message(unique_ptr p_SPIT_Message); void parseConnectAnswer(SPIT_Message::ConnectAnswer *p_ConnectAnswer); void parseDisconnect(SPIT_Message::Disconnect *p_Disconnect); void parseWatchdog(SPIT_Message::Watchdog *p_Watchdog); diff --git a/components/spit/src/SPITObject.cpp b/components/spit/src/SPITObject.cpp index 9797b73..6c4426f 100644 --- a/components/spit/src/SPITObject.cpp +++ b/components/spit/src/SPITObject.cpp @@ -14,16 +14,17 @@ #include "SPITObject.h" #include "SPITSocket.h" +#include "esp_log.h" -unordered_map SPITObject::sSpitObjects; -unordered_map SPITObject::sSpitObjectsRemote; +unordered_map> SPITObject::sSpitObjects; +unordered_map> SPITObject::sSpitObjectsRemote; SPITObject *SPITObject::getSPITObject(const string &id) { auto i = sSpitObjects.find(id); if (i == sSpitObjects.end()) { return nullptr; } - return i->second; + return i->second.get(); } /** * Returns the reference of the SPITObject with ID == id. @@ -40,7 +41,7 @@ SPITObject *SPITObject::getSPITObjectRemote(const string &id) { if (i == sSpitObjectsRemote.end()) { return nullptr; } - return i->second; + return i->second.get(); } /** * Returns the reference of the remote SPITObject with ID == id. @@ -52,16 +53,18 @@ const SPITObject &SPITObject::getSPITObjectRemoteRef(const string &id) { return *sSpitObjectsRemote.at(id); } -void SPITObject::addSPITObject(SPITObject &spitObject) { - sSpitObjects[spitObject.getID()] = &spitObject; +void SPITObject::addSPITObject(unique_ptr spitObject) { + ESP_LOGD("OBJ", "adding spitObject %s/%s", spitObject->getID().c_str(), spitObject->getName().c_str()); + sSpitObjects[spitObject->getID()] = move(spitObject); } -void SPITObject::addSPITObjectRemote(SPITObject &spitObject) { - sSpitObjectsRemote[spitObject.getID()] = &spitObject; +void SPITObject::addSPITObjectRemote(unique_ptr spitObject) { + ESP_LOGD("OBJ", "adding spitObject %s/%s", spitObject->getID().c_str(), spitObject->getName().c_str()); + sSpitObjectsRemote[spitObject->getID()] = move(spitObject); } bool SPITObject::removeSPITObject(const SPITObject &spitObject) { return removeSPITObject(spitObject.getID()); } -bool SPITObject::removeSPITObject(const string & spitObjectID) { +bool SPITObject::removeSPITObject(const string &spitObjectID) { auto i = sSpitObjects.find(spitObjectID); if (i == sSpitObjects.end()) { return false; @@ -72,7 +75,7 @@ bool SPITObject::removeSPITObject(const string & spitObjectID) { bool SPITObject::removeSPITObjectRemote(const SPITObject &spitObject) { return removeSPITObjectRemote(spitObject.getID()); } -bool SPITObject::removeSPITObjectRemote(const string & spitObjectID) { +bool SPITObject::removeSPITObjectRemote(const string &spitObjectID) { auto i = sSpitObjectsRemote.find(spitObjectID); if (i == sSpitObjectsRemote.end()) { return false; @@ -83,8 +86,8 @@ bool SPITObject::removeSPITObjectRemote(const string & spitObjectID) { SPITObject *SPITObject::getSPITObject(int p_Index) { if (p_Index >= 0 && p_Index < sSpitObjects.size()) { - unordered_map::iterator i = next(sSpitObjects.begin(), p_Index); - return i->second; + auto i = next(sSpitObjects.begin(), p_Index); + return i->second.get(); } return nullptr; } @@ -96,7 +99,7 @@ SPITObject *SPITObject::getSPITObject(int p_Index) { */ const SPITObject &SPITObject::getSPITObjectRef(int p_Index) { if (p_Index >= 0 && p_Index < sSpitObjects.size()) { - unordered_map::iterator i = next(sSpitObjects.begin(), p_Index); + auto i = next(sSpitObjects.begin(), p_Index); return *i->second; } else { throw "SPITObject index out of range"; @@ -104,8 +107,8 @@ const SPITObject &SPITObject::getSPITObjectRef(int p_Index) { } SPITObject *SPITObject::getSPITObjectRemote(int p_Index) { if (p_Index >= 0 && p_Index < sSpitObjectsRemote.size()) { - unordered_map::iterator i = next(sSpitObjectsRemote.begin(), p_Index); - return i->second; + auto i = next(sSpitObjectsRemote.begin(), p_Index); + return i->second.get(); } else { return nullptr; } @@ -118,76 +121,48 @@ SPITObject *SPITObject::getSPITObjectRemote(int p_Index) { */ const SPITObject &SPITObject::getSPITObjectRemoteRef(int p_Index) { if (p_Index >= 0 && p_Index < sSpitObjectsRemote.size()) { - unordered_map::iterator i = next(sSpitObjectsRemote.begin(), p_Index); + auto i = next(sSpitObjectsRemote.begin(), p_Index); return *i->second; } else { throw "Remote SPITObject index out of range"; } } -void SPITObject::clearSPITObjects() { - SPITObject *ptrSPITObject; - - for (auto i = sSpitObjects.begin(); i != sSpitObjects.end(); i++) { - ptrSPITObject = i->second; - i = sSpitObjects.erase(i); - delete ptrSPITObject; - } -} -void SPITObject::clearSPITObjectsRemote() { - SPITObject *ptrSPITObject; - - for (auto i = sSpitObjectsRemote.begin(); i != sSpitObjectsRemote.end(); i++) { - ptrSPITObject = i->second; - i = sSpitObjectsRemote.erase(i); - delete ptrSPITObject; - } -} - /** * clears all unconfirmed SPITObjects not created by this SPIT_Client. */ void SPITObject::clearUnconfirmedSPITObjects() { for (auto i = sSpitObjects.begin(); i != sSpitObjects.end(); i++) { - SPITObject *ptrSPITObject = i->second; + SPITObject *ptrSPITObject = i->second.get(); if (ptrSPITObject->getCreatedByClient() == false && ptrSPITObject->getConfirmed() == false) { i = sSpitObjects.erase(i); - delete ptrSPITObject; } } } void SPITObject::eventProjectClosed() { for (auto i = sSpitObjects.begin(); i != sSpitObjects.end(); i++) { - SPITObject *ptrSPITObject = i->second; + SPITObject *ptrSPITObject = i->second.get(); if (ptrSPITObject->getCreatedByClient() == true) { continue; } i = sSpitObjects.erase(i); - delete ptrSPITObject; } // Remote - for (auto i = sSpitObjectsRemote.begin(); i != sSpitObjectsRemote.end(); i++) { - SPITObject *ptrSPITObject = i->second; - i = sSpitObjectsRemote.erase(i); - delete ptrSPITObject; - } + sSpitObjectsRemote.clear(); } /** * sets confirmed = false for all SPITObjects. * This should be called when the client has loaded a project. */ void SPITObject::setConfirmedFalse() { - SPITObject *ptrSPITObject; - for (auto i = sSpitObjects.begin(); i != sSpitObjects.end(); i++) { - ptrSPITObject = i->second; - ptrSPITObject->setConfirmed(false); + i->second->setConfirmed(false); } } -SPITObject::SPITObject() { - m_ID = createGUID(); +SPITObject::SPITObject(string p_ID) { + m_ID = p_ID; } bool SPITObject::setMessageOP(SPIT_Message::ReportSPITObject *p_ReportSPITObject) { @@ -404,7 +379,7 @@ bool SPITObject::setServerRemote(bool p_BelongstoServer) { } /** * This is a virtual construct - ActionAssignedType is not implemented in the SPITProtocol. - * This is used when an action is associated with a SPITType. + * This is used when an action is associated with a SPITType. * Then this action is done for every SPITObject with the SPITType. * @return true = an action is assigned for the SPITType. */ diff --git a/components/spit/src/SPITPlayer.cpp b/components/spit/src/SPITPlayer.cpp index 4f7a513..8bb9d57 100644 --- a/components/spit/src/SPITPlayer.cpp +++ b/components/spit/src/SPITPlayer.cpp @@ -17,17 +17,12 @@ unordered_map SPITPlayer::s_SPITPlayers; -SPITPlayer *SPITPlayer::getSPITPlayer(string p_PlayerID) { - { - auto i = s_SPITPlayers.find(p_PlayerID); - if (i == s_SPITPlayers.end()) { - s_SPITPlayers[p_PlayerID] = new SPITPlayer(p_PlayerID); - } - i = s_SPITPlayers.find(p_PlayerID); - if (i == s_SPITPlayers.end()) - return NULL; - return i->second; +SPITPlayer &SPITPlayer::getSPITPlayer(string p_PlayerID) { + auto i = s_SPITPlayers.find(p_PlayerID); + if (i == s_SPITPlayers.end()) { + s_SPITPlayers[p_PlayerID] = new SPITPlayer(p_PlayerID); } + return *s_SPITPlayers.at(p_PlayerID); } void SPITPlayer::clearPlayers() { diff --git a/components/spit/src/SPITType.cpp b/components/spit/src/SPITType.cpp index 86f41f0..68d9879 100644 --- a/components/spit/src/SPITType.cpp +++ b/components/spit/src/SPITType.cpp @@ -17,15 +17,15 @@ static const char *TAG = "SPIT"; -unordered_map SPITType::sSpitTypes; -unordered_map SPITType::sSpitTypesRemote; +unordered_map> SPITType::sSpitTypes; +unordered_map> SPITType::sSpitTypesRemote; SPITType *SPITType::getSPITType(const string &id) { auto i = sSpitTypes.find(id); if (i == sSpitTypes.end()) { return nullptr; } - return i->second; + return i->second.get(); } /** * Returns the reference of the SPITType with ID == id. @@ -42,7 +42,7 @@ SPITType *SPITType::getSPITTypeRemote(const string &id) { if (i == sSpitTypesRemote.end()) { return nullptr; } - return i->second; + return i->second.get(); } /** @@ -55,11 +55,13 @@ const SPITType &SPITType::getSPITTypeRemoteRef(const string &id) { return *sSpitTypesRemote.at(id); } -void SPITType::addSPITType(SPITType &spitType) { - sSpitTypes[spitType.getID()] = &spitType; +void SPITType::addSPITType(unique_ptr spitType) { + ESP_LOGD("OBJ", "adding spitObject %s/%s", spitType->getID().c_str(), spitType->getName().c_str()); + sSpitTypes[spitType->getID()] = move(spitType); } -void SPITType::addSPITTypeRemote(SPITType &spitType) { - sSpitTypesRemote[spitType.getID()] = &spitType; +void SPITType::addSPITTypeRemote(unique_ptr spitType) { + ESP_LOGD("OBJ", "adding spitObject %s/%s", spitType->getID().c_str(), spitType->getName().c_str()); + sSpitTypesRemote[spitType->getID()] = move(spitType); } bool SPITType::removeSPITType(const SPITType &spitType) { auto i = sSpitTypes.find(spitType.getID()); @@ -79,12 +81,11 @@ bool SPITType::removeSPITTypeRemote(const SPITType &spitType) { } SPITType *SPITType::getSPITType(int p_Index) { - SPITType *pSpitType = nullptr; if (p_Index < sSpitTypes.size()) { - unordered_map::iterator i = next(sSpitTypes.begin(), p_Index); - pSpitType = i->second; + auto i = next(sSpitTypes.begin(), p_Index); + return i->second.get(); } - return pSpitType; + return nullptr; } /** * Returns a reference to the SPITType at position p_Index. @@ -94,7 +95,7 @@ SPITType *SPITType::getSPITType(int p_Index) { */ const SPITType &SPITType::getSPITTypeRef(int p_Index) { if (p_Index >= 0 && p_Index < sSpitTypes.size()) { - unordered_map::iterator i = next(sSpitTypes.begin(), p_Index); + auto i = next(sSpitTypes.begin(), p_Index); return *i->second; } else { throw "SPITType index out of range"; @@ -102,8 +103,8 @@ const SPITType &SPITType::getSPITTypeRef(int p_Index) { } SPITType *SPITType::getSPITTypeRemote(int p_Index) { if (p_Index < sSpitTypesRemote.size()) { - unordered_map::iterator i = next(sSpitTypesRemote.begin(), p_Index); - return i->second; + auto i = next(sSpitTypesRemote.begin(), p_Index); + return i->second.get(); } return nullptr; } @@ -115,43 +116,23 @@ SPITType *SPITType::getSPITTypeRemote(int p_Index) { */ const SPITType &SPITType::getSPITTypeRemoteRef(int p_Index) { if (p_Index >= 0 && p_Index < sSpitTypesRemote.size()) { - unordered_map::iterator i = next(sSpitTypesRemote.begin(), p_Index); + auto i = next(sSpitTypesRemote.begin(), p_Index); return *i->second; } else { throw "Remote SPITType index out of range"; } } -void SPITType::clearSPITTypes() { - for (auto i = sSpitTypes.begin(); i != sSpitTypes.end(); i++) { - SPITType *pSpitType = i->second; - i = sSpitTypes.erase(i); - delete pSpitType; - } -} -void SPITType::clearSPITTypesRemote() { - for (auto i = sSpitTypesRemote.begin(); i != sSpitTypesRemote.end(); i++) { - SPITType *ptrSPITType = i->second; - i = sSpitTypesRemote.erase(i); - delete ptrSPITType; - } -} - void SPITType::eventProjectClosed() { for (auto i = sSpitTypes.begin(); i != sSpitTypes.end(); i++) { - SPITType *ptrSPITType = i->second; + SPITType *ptrSPITType = i->second.get(); if (ptrSPITType->getCreatedByClient() == true) { continue; } i = sSpitTypes.erase(i); - delete ptrSPITType; } // Remote - for (auto i = sSpitTypesRemote.begin(); i != sSpitTypesRemote.end(); i++) { - SPITType *ptrSPITType = i->second; - i = sSpitTypesRemote.erase(i); - delete ptrSPITType; - } + sSpitTypesRemote.clear(); } /** @@ -160,17 +141,15 @@ void SPITType::eventProjectClosed() { */ void SPITType::setConfirmedFalse() { for (auto i = sSpitTypes.begin(); i != sSpitTypes.end(); i++) { - SPITType *ptrSPITType = i->second; - ptrSPITType->setConfirmed(false); + i->second->setConfirmed(false); } } -SPITType::SPITType() { - m_ID = createGUID(); +SPITType::SPITType(string p_ID) { + m_ID = p_ID; } SPITType::SPITType(string id, string grpName, string name, bool fixed, bool projectIndependent, long long defaultDelay, long long defaultDuration) { - m_ID = createGUID(); m_ActionAssigned = false; m_Confirmed = false; m_ID = id; diff --git a/components/spit/src/SPIT_Client.cpp b/components/spit/src/SPIT_Client.cpp index 6678b48..80a8754 100644 --- a/components/spit/src/SPIT_Client.cpp +++ b/components/spit/src/SPIT_Client.cpp @@ -264,7 +264,7 @@ int SPIT_Client::sendSPITMessage(unique_ptr spitMessageOPP m_MessageNumber_Send = 1; else m_MessageNumber_Send++; - + opPart.getHeader()->setMessageNumber(m_MessageNumber_Send); int opFlag = 0; @@ -296,7 +296,7 @@ bool SPIT_Client::startReceiveSPITMessages() { return true; } void SPIT_Client::stopReceiveSPITMessages() { - m_StopReceiveSPITMessages = true; + m_StopReceiveSPITMessages = true; } void SPIT_Client::receiveSPITMessage(SPIT_Client &rM) { @@ -318,14 +318,7 @@ void SPIT_Client::receiveSPITMessage(SPIT_Client &rM) { } void SPIT_Client::resetMessageNumberReceived() { - SPIT_Message *ptrOvertakingSPIT_Message; - m_MessageNumber_Received = -1; - for (auto it = m_OvertakingSPIT_Messages.begin(); it != m_OvertakingSPIT_Messages.end(); it++) { - ptrOvertakingSPIT_Message = *it; - delete ptrOvertakingSPIT_Message; - // m_OvertakingSPIT_Messages.erase(it); - } m_OvertakingSPIT_Messages.clear(); } @@ -344,11 +337,7 @@ void SPIT_Client::checkParseSPIT_Message(unique_ptr p_SPITMessage) return; } - int intActualMessageNumber; - int intNextMessageNumber; - SPIT_Message *ptrOvertakingSPIT_Message; - - intActualMessageNumber = (int)(p_SPITMessage->getHeader()->getMessageNumber() & 0xFF); + int intActualMessageNumber = (int)(p_SPITMessage->getHeader()->getMessageNumber() & 0xFF); if (intActualMessageNumber == 0) { parseSPIT_Message(std::move(p_SPITMessage)); @@ -360,7 +349,7 @@ void SPIT_Client::checkParseSPIT_Message(unique_ptr p_SPITMessage) return; } - intNextMessageNumber = m_MessageNumber_Received + 1; + int intNextMessageNumber = m_MessageNumber_Received + 1; if (intNextMessageNumber > 255 || intNextMessageNumber < 1) intNextMessageNumber = 1; @@ -376,12 +365,12 @@ void SPIT_Client::checkParseSPIT_Message(unique_ptr p_SPITMessage) if (intNextMessageNumber > 255 || intNextMessageNumber < 1) intNextMessageNumber = 1; - ptrOvertakingSPIT_Message = *it; + auto &ptrOvertakingSPIT_Message = *it; intActualMessageNumber = (int)(ptrOvertakingSPIT_Message->getHeader()->getMessageNumber() & 0xFF); if (intActualMessageNumber == intNextMessageNumber) { m_MessageNumber_Received = intActualMessageNumber; - // parseSPIT_Message(ptrOvertakingSPIT_Message); + parseSPIT_Message(move(ptrOvertakingSPIT_Message)); m_OvertakingSPIT_Messages.erase(it); it = m_OvertakingSPIT_Messages.begin(); @@ -392,33 +381,28 @@ void SPIT_Client::checkParseSPIT_Message(unique_ptr p_SPITMessage) } else { // p_SPITMessage has overtaken another message - addOvertakingSPIT_Message(p_SPITMessage.get()); + addOvertakingSPIT_Message(move(p_SPITMessage)); } } -int SPIT_Client::s_MAX_OVERTAKING_SPIT_MESSAGES = 10; - -void SPIT_Client::addOvertakingSPIT_Message(SPIT_Message *p_SPIT_Message) { - if (p_SPIT_Message == nullptr) +void SPIT_Client::addOvertakingSPIT_Message(unique_ptr p_SPIT_Message) { + if (!p_SPIT_Message) { return; - int intMessageNumber; - SPIT_Message *ptrOvertakingSPIT_Message; - int intOvertakingMessageNumber; - - if (m_OvertakingSPIT_Messages.size() > s_MAX_OVERTAKING_SPIT_MESSAGES) { + } + if (m_OvertakingSPIT_Messages.size() > MAX_OVERTAKING_SPIT_MESSAGES) { ESP_LOGD(TAG, "SPIT_Client receiveing: perhaps message lost !!!!!"); } - intMessageNumber = (int)(p_SPIT_Message->getHeader()->getMessageNumber() & 0xFF); - for (auto it = m_OvertakingSPIT_Messages.begin(); it != m_OvertakingSPIT_Messages.end(); it++) { - ptrOvertakingSPIT_Message = *it; - intOvertakingMessageNumber = (int)(ptrOvertakingSPIT_Message->getHeader()->getMessageNumber() & 0xFF); + int intMessageNumber = (int)(p_SPIT_Message->getHeader()->getMessageNumber() & 0xFF); + for (auto it = m_OvertakingSPIT_Messages.begin(); it != m_OvertakingSPIT_Messages.end(); ++it) { + const auto &overtaking = *it; + int intOvertakingMessageNumber = (int)(overtaking->getHeader()->getMessageNumber() & 0xFF); if (intMessageNumber < intOvertakingMessageNumber) { - m_OvertakingSPIT_Messages.insert(it, p_SPIT_Message); + m_OvertakingSPIT_Messages.insert(it, move(p_SPIT_Message)); return; } } - m_OvertakingSPIT_Messages.push_back(p_SPIT_Message); + m_OvertakingSPIT_Messages.push_back(move(p_SPIT_Message)); } void SPIT_Client::parseSPIT_Message(unique_ptr p_SPITMessage) { @@ -612,8 +596,7 @@ void SPIT_Client::disconnectInternal(int p_Cause) { } void SPIT_Client::parseConnectAnswer(SPIT_Message::ConnectAnswer *p_ConnectAnswer) { - int intOldConnectionStatus; - intOldConnectionStatus = m_ConnectionStatus; + int intOldConnectionStatus = m_ConnectionStatus; if (p_ConnectAnswer->getClientID() != m_ID) return; @@ -726,6 +709,7 @@ void SPIT_Client::parseCloseSPITProject(SPIT_Message::CloseSPITProject *p_CloseS return; string stringProjectID; mCallbacks.onProjectUpdate(ProjUpdate::ServerClosed, p_CloseSPITProject->getProjectID()); + SPITPlayer::clearPlayers(); } string SPIT_Client::getServerProjectID() { return m_ServerProjectID; } @@ -926,13 +910,17 @@ void SPIT_Client::parseReportSPITType(SPIT_Message::ReportSPITType *p_ReportSPIT if (mCallbacks.onCheckSpitTypeVeto(p_ReportSPITType) == false) { return; } - ptrSPITType = new SPITType(); + auto spitType = make_unique(p_ReportSPITType->getID()); + ptrSPITType = spitType.get(); + SPITType::addSPITType(move(spitType)); boolNew = true; } } else { ptrSPITType = SPITType::getSPITTypeRemote(p_ReportSPITType->getID()); if (ptrSPITType == nullptr) { - ptrSPITType = new SPITType(); + auto spitType = make_unique(p_ReportSPITType->getID()); + ptrSPITType = spitType.get(); + SPITType::addSPITTypeRemote(move(spitType)); boolNew = true; } } @@ -944,13 +932,7 @@ void SPIT_Client::parseReportSPITType(SPIT_Message::ReportSPITType *p_ReportSPIT auto eventType = boolNew ? ObjectEvent::Created : ObjectEvent::Changed; // add or change SPITType - if (ptrSPITType->getServerRemote() == false) { - SPITType::addSPITType(*ptrSPITType); - mCallbacks.onSpitType(eventType, *ptrSPITType); - } else { - SPITType::addSPITTypeRemote(*ptrSPITType); - mCallbacks.onSpitTypeRemote(eventType, *ptrSPITType); - } + mCallbacks.onSpitType(eventType, ptrSPITType->getServerRemote(), *ptrSPITType); if (ptrSPITType != nullptr) { if (ptrSPITType->setConfirmed(true) == true || boolChanged == true) { @@ -961,42 +943,37 @@ void SPIT_Client::parseReportSPITType(SPIT_Message::ReportSPITType *p_ReportSPIT } void SPIT_Client::parseRemoveSPITType(SPIT_Message::RemoveSPITType *p_RemoveSPITType) { // printf("parse RemoveSPITType %s\n", p_RemoveSPITType->getID()); - if (p_RemoveSPITType == nullptr) + if (!p_RemoveSPITType) { return; - string stringSPITTypeID; + } bool boolRemote = false; - SPITType *ptrSPITType; - stringSPITTypeID = p_RemoveSPITType->getID(); + string stringSPITTypeID = p_RemoveSPITType->getID(); - { - ptrSPITType = SPITType::getSPITTypeRemote(stringSPITTypeID); - if (ptrSPITType != nullptr) { - boolRemote = true; + SPITType *ptrSPITType = SPITType::getSPITTypeRemote(stringSPITTypeID); + if (!ptrSPITType) { + boolRemote = true; + } else { + ptrSPITType = SPITType::getSPITType(stringSPITTypeID); + if (!ptrSPITType) { + boolRemote = false; } else { - ptrSPITType = SPITType::getSPITType(stringSPITTypeID); - if (ptrSPITType != nullptr) { - boolRemote = false; - } else { - // No SPITType with stringSPITTypeID is listet - return; - } - } - - if (ptrSPITType->getCreatedByClient() && ptrSPITType->getFixed()) { - // the SPITyte is created by client himself and it is fixed -> don't remove the SPITType!! - // Send the SPITTyp back to the server - sendSPITTypeInternal(*ptrSPITType); + // No SPITType with stringSPITTypeID is listet return; } + } - if (boolRemote == false) { - mCallbacks.onSpitType(ObjectEvent::Deleted, *ptrSPITType); - SPITType::removeSPITType(*ptrSPITType); - } else { - mCallbacks.onSpitTypeRemote(ObjectEvent::Deleted, *ptrSPITType); - SPITType::removeSPITTypeRemote(*ptrSPITType); - } - delete ptrSPITType; + if (ptrSPITType->getCreatedByClient() && ptrSPITType->getFixed()) { + // the SPITyte is created by client himself and it is fixed -> don't remove the SPITType!! + // Send the SPITTyp back to the server + sendSPITTypeInternal(*ptrSPITType); + return; + } + + mCallbacks.onSpitType(ObjectEvent::Deleted, boolRemote, *ptrSPITType); + if (boolRemote == false) { + SPITType::removeSPITType(*ptrSPITType); + } else { + SPITType::removeSPITTypeRemote(*ptrSPITType); } } @@ -1031,7 +1008,7 @@ bool SPIT_Client::changeSPITType(SPITType *p_SPITType) { ptrSPITType->setName(p_SPITType->getName()); ptrSPITType->setProjectIndepended(p_SPITType->getProjectIndepended()); - mCallbacks.onSpitType(ObjectEvent::Changed, *ptrSPITType); + mCallbacks.onSpitType(ObjectEvent::Changed, false, *ptrSPITType); sendSPITTypeInternal(*ptrSPITType); return true; @@ -1055,9 +1032,8 @@ int SPIT_Client::removeSPITType(string p_SPITTypeID) { return -1; auto sMRemoveSPITType = make_unique(); ptrSPITType->fillMessageOP(*sMRemoveSPITType); - mCallbacks.onSpitType(ObjectEvent::Deleted, *ptrSPITType); + mCallbacks.onSpitType(ObjectEvent::Deleted, false, *ptrSPITType); SPITType::removeSPITType(*ptrSPITType); - delete ptrSPITType; return sendSPITMessage(move(sMRemoveSPITType)); } return -1; @@ -1071,7 +1047,9 @@ SPITType *SPIT_Client::createSPITType(string p_ID, string p_GroupName, string p_ bool boolNew; SPITType *ptrSPITType = SPITType::getSPITType(p_ID); if (ptrSPITType == nullptr) { - ptrSPITType = new SPITType(p_ID, p_GroupName, p_Name, p_FIxed, p_ProjectIndepended, p_DefaultDelay, p_DefaultDuration); + auto spitType = make_unique(p_ID, p_GroupName, p_Name, p_FIxed, p_ProjectIndepended, p_DefaultDelay, p_DefaultDuration); + ptrSPITType = spitType.get(); + SPITType::addSPITType(move(spitType)); ptrSPITType->setCreatedByClient(true); boolNew = true; } else { @@ -1086,8 +1064,7 @@ SPITType *SPIT_Client::createSPITType(string p_ID, string p_GroupName, string p_ } auto eventType = boolNew ? ObjectEvent::Created : ObjectEvent::Changed; - SPITType::addSPITType(*ptrSPITType); - mCallbacks.onSpitType(eventType, *ptrSPITType); + mCallbacks.onSpitType(eventType, false, *ptrSPITType); sendSPITTypeInternal(*ptrSPITType); return ptrSPITType; } @@ -1103,6 +1080,7 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report bool boolRemote = false; bool boolChanged = false; { + ESP_LOGD(TAG, "parseReportSPITObject %s / %s", p_ReportSPITObject->getID().c_str(), p_ReportSPITObject->getName().c_str()); if (p_ReportSPITObject->getServerRemote() == false) { boolRemote = false; ptrSPITObject = SPITObject::getSPITObject(p_ReportSPITObject->getID()); @@ -1114,7 +1092,6 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report // SpitObject exists but has no corresponding SPITType -> remove the SPITObject without sending a message // Maybe the SPITObject has changed the SPITTypeID to a SPITTypeID of another board SPITObject::removeSPITObject(*ptrSPITObject); - delete ptrSPITObject; } return; } @@ -1124,8 +1101,9 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report ESP_LOGD(TAG, "ObjectVeto %s / %s", p_ReportSPITObject->getID().c_str(), p_ReportSPITObject->getName().c_str()); return; } - - ptrSPITObject = new SPITObject(); + auto spitObj = make_unique(p_ReportSPITObject->getID()); + ptrSPITObject = spitObj.get(); + SPITObject::addSPITObject(move(spitObj)); boolNew = true; } else { // The user's app my veto the SPITType @@ -1133,7 +1111,6 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report // 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; } } @@ -1146,12 +1123,15 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report return; } if (ptrSPITObject == nullptr) { - ptrSPITObject = new SPITObject(); + auto spitObj = make_unique(p_ReportSPITObject->getID()); + ptrSPITObject = spitObj.get(); + SPITObject::addSPITObjectRemote(move(spitObj)); boolNew = true; } } if (!ptrSPITObject->setMessageOP(p_ReportSPITObject)) { + ESP_LOGE(TAG, "Change not allowed"); // setMessageOP error - the SPITObject can't be changed, it may be fixed and crated by this client sendSPITObjectInternal(ptrSPITObject); return; @@ -1160,17 +1140,10 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report if (boolRemote == false) { // set the virtual action assignment ptrSPITObject->setActionAssignedType(ptrSPITType->getActionAssigned()); - SPITObject::addSPITObject(*ptrSPITObject); - } else { - SPITObject::addSPITObjectRemote(*ptrSPITObject); } auto eventType = boolNew ? ObjectEvent::Created : ObjectEvent::Changed; - if (boolRemote) { - mCallbacks.onSpitObjectRemote(eventType, *ptrSPITType, *ptrSPITObject); - } else { - mCallbacks.onSpitObject(eventType, *ptrSPITType, *ptrSPITObject); - } + mCallbacks.onSpitObject(eventType, boolRemote, *ptrSPITType, *ptrSPITObject); if (ptrSPITObject->setConfirmed(true) == true || boolChanged == true) { // Confirmation has changed @@ -1180,33 +1153,20 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject *p_Report } void SPIT_Client::parseRemoveSPITObject(SPIT_Message::RemoveSPITObject *p_RemoveSPITObject) { // printf("parse RemoveSPITObject %s\n", p_RemoveSPITObject->getID()); - if (p_RemoveSPITObject == nullptr) + if (!p_RemoveSPITObject) { return; - bool boolRemote = false; - SPITObject *ptrSPITObject; - SPITType *ptrSPITType; + } - { - ptrSPITObject = SPITObject::getSPITObjectRemote(p_RemoveSPITObject->getID()); - if (ptrSPITObject != nullptr) { - boolRemote = true; - ptrSPITType = SPITType::getSPITTypeRemote(ptrSPITObject->getSPITTypeID()); - if (ptrSPITType != nullptr) { - if (boolRemote) { - mCallbacks.onSpitObjectRemote(ObjectEvent::Deleted, *ptrSPITType, *ptrSPITObject); - } else { - mCallbacks.onSpitObject(ObjectEvent::Deleted, *ptrSPITType, *ptrSPITObject); - } - } else { - // No associated SPITType found - // delete the SPITObject without a notification - } - SPITObject::removeSPITObjectRemote(*ptrSPITObject); - delete ptrSPITObject; - } else { - // call removeSPITObject, this will notify the server that the object is removed - removeSPITObject(p_RemoveSPITObject->getID()); + SPITObject *ptrSPITObject = SPITObject::getSPITObjectRemote(p_RemoveSPITObject->getID()); + if (ptrSPITObject != nullptr) { + SPITType *ptrSPITType = SPITType::getSPITTypeRemote(ptrSPITObject->getSPITTypeID()); + if (ptrSPITType != nullptr) { + mCallbacks.onSpitObject(ObjectEvent::Deleted, true, *ptrSPITType, *ptrSPITObject); } + SPITObject::removeSPITObjectRemote(*ptrSPITObject); + } else { + // call removeSPITObject, this will notify the server that the object is removed + removeSPITObject(p_RemoveSPITObject->getID()); } } @@ -1256,7 +1216,7 @@ bool SPIT_Client::changeSPITObject(SPITObject *p_SPITObject) { ptrSPITObject->setValueFactor(p_SPITObject->getValueFactor()); ptrSPITObject->setValueUse(p_SPITObject->getValueUse()); - mCallbacks.onSpitObject(ObjectEvent::Changed, *ptrSPITType, *ptrSPITObject); + mCallbacks.onSpitObject(ObjectEvent::Changed, false, *ptrSPITType, *ptrSPITObject); sendSPITObjectInternal(ptrSPITObject); } return true; @@ -1286,9 +1246,8 @@ int SPIT_Client::removeSPITObject(string p_SPITObjectID) { if (ptrSPITType == nullptr) return -1; ptrSPITObject->fillMessageOP(*sMRemoveSPITObject); - mCallbacks.onSpitObject(ObjectEvent::Deleted, *ptrSPITType, *ptrSPITObject); + mCallbacks.onSpitObject(ObjectEvent::Deleted, false, *ptrSPITType, *ptrSPITObject); SPITObject::removeSPITObject(*ptrSPITObject); - delete ptrSPITObject; return sendSPITMessage(move(sMRemoveSPITObject)); } return -1; @@ -1298,38 +1257,33 @@ int SPIT_Client::removeSPITObject(string p_SPITObjectID) { void SPIT_Client::parsePlaySPITStart(SPIT_Message::PlaySPITStart *p_PlaySPITStart) { 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 == nullptr) - return; - ptrSPITPlayer->setIsRunning(p_PlaySPITStart->getPlayerIsRunning()); - ptrSPITPlayer->setName(p_PlaySPITStart->getPlayerName()); - ptrSPITPlayer->setType(p_PlaySPITStart->getPlayerType()); - ptrSPITPlayer->setTime(p_PlaySPITStart->getTime()); - ptrSPITPlayer->startPlaySequence(); + SPITPlayer &spitPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITStart->getPlayerID()); + spitPlayer.setIsRunning(p_PlaySPITStart->getPlayerIsRunning()); + spitPlayer.setName(p_PlaySPITStart->getPlayerName()); + spitPlayer.setType(p_PlaySPITStart->getPlayerType()); + spitPlayer.setTime(p_PlaySPITStart->getTime()); + spitPlayer.startPlaySequence(); - mCallbacks.onPlay(ptrSPITPlayer->getID(), ptrSPITPlayer->getName(), ptrSPITPlayer->getType(), ptrSPITPlayer->getIsRunning(), ptrSPITPlayer->getTime()); + mCallbacks.onPlay(spitPlayer.getID(), spitPlayer.getName(), spitPlayer.getType(), spitPlayer.getIsRunning(), spitPlayer.getTime()); } void SPIT_Client::parsePlaySPITObject(SPIT_Message::PlaySPITObject *p_PlaySPITObject) { - SPITPlayer *ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITObject->getPlayerID()); - if (ptrSPITPlayer == nullptr) - return; + SPITPlayer &ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITObject->getPlayerID()); SPITObject *ptrSPITObject = SPITObject::getSPITObject(p_PlaySPITObject->getSPITObjectID()); + if (ptrSPITObject == nullptr) { return; } - SPITPlayer::PlaySPITType *ptrPlaySPITType = ptrSPITPlayer->addSPITType_Playing(ptrSPITObject->getSPITTypeID()); + SPITPlayer::PlaySPITType *ptrPlaySPITType = ptrSPITPlayer.addSPITType_Playing(ptrSPITObject->getSPITTypeID()); if (ptrPlaySPITType == nullptr) { return; } - ptrPlaySPITType->setPlayerIsRunning(ptrSPITPlayer->getIsRunning()); + 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 == nullptr) - return; +void SPIT_Client::parsePlaySPITEnd(SPIT_Message::PlaySPITEnd *p_PlaySPITEnd) { + SPITPlayer &ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITEnd->getPlayerID()); // unordered_map* ptrPlayObjects; // bool boolStarted; // bool boolStopped; @@ -1358,59 +1312,46 @@ void SPIT_Client::parsePlaySPITEnd(SPIT_Message::PlaySPITEnd *p_PlaySPITEnd) { // mCallbacks.onPlaySpitType(ptrPlayObject->getPlayerID(), boolStarted, boolStopped, *ptrSPITType, *ptrSPITObject, *ptrPlayObject); // } // } - // ptrSPITPlayer->endPlaySequence(); + // ptrSPITPlayer.endPlaySequence(); - // SPITPlayer *ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITEnd->getPlayerID()); - // if (ptrSPITPlayer == nullptr) - // return; + // SPITPlayer &ptrSPITPlayer = SPITPlayer::getSPITPlayer(p_PlaySPITEnd->getPlayerID()); - unordered_map *ptrPlaySPITTypes = ptrSPITPlayer->getPlaySPITTypes(); + unordered_map *ptrPlaySPITTypes = ptrSPITPlayer.getPlaySPITTypes(); for (auto i = ptrPlaySPITTypes->begin(); i != ptrPlaySPITTypes->end(); i++) { SPITPlayer::PlaySPITType *ptrPlaySPITType = i->second; - bool boolStarted = false; - bool boolStopped = false; - if (ptrPlaySPITType->getIsNew()) { - boolStarted = true; - } - if (ptrPlaySPITType->getIsPlayed() == false) { - boolStopped = true; - } - { - SPITType *ptrSPITType = SPITType::getSPITType(ptrPlaySPITType->getSPITTypeID()); - if (ptrSPITType == nullptr) { - // set isplayed to false, the ptrPlayObject will be removed by ptrSPITPlayer->endPlaySequence() - ptrPlaySPITType->setIsPlayed(false); - continue; - } - mCallbacks.onPlaySpitType(ptrPlaySPITType->getPlayerID(), ptrPlaySPITType->getSPITTypeID(), ptrPlaySPITType->getPlayerIsRunning(), boolStarted, boolStopped, ptrPlaySPITType->getValue()); + bool boolStarted = ptrPlaySPITType->getIsNew(); + bool boolStopped = (ptrPlaySPITType->getIsPlayed() == false); + SPITType *ptrSPITType = SPITType::getSPITType(ptrPlaySPITType->getSPITTypeID()); + if (ptrSPITType == nullptr) { + // set isplayed to false, the ptrPlayObject will be removed by ptrSPITPlayer.endPlaySequence() + ptrPlaySPITType->setIsPlayed(false); + continue; } + mCallbacks.onPlaySpitType(ptrPlaySPITType->getPlayerID(), ptrPlaySPITType->getSPITTypeID(), ptrPlaySPITType->getPlayerIsRunning(), boolStarted, boolStopped, ptrPlaySPITType->getValue()); } - ptrSPITPlayer->endPlaySequence(); + ptrSPITPlayer.endPlaySequence(); } void SPIT_Client::parseReportPlayStatus(SPIT_Message::ReportPlayStatus *p_ReportPlayStatus) { - ESP_LOGD(TAG, "parseReportPlayStatus"); SPITType *ptrSPITType = NULL; - { - SPITObject *ptrSPITObject = SPITObject::getSPITObjectRemote(p_ReportPlayStatus->getID()); + SPITObject *ptrSPITObject = SPITObject::getSPITObjectRemote(p_ReportPlayStatus->getID()); + if (ptrSPITObject == nullptr) { + ptrSPITObject = SPITObject::getSPITObject(p_ReportPlayStatus->getID()); if (ptrSPITObject == nullptr) { - ptrSPITObject = SPITObject::getSPITObject(p_ReportPlayStatus->getID()); - if (ptrSPITObject == nullptr) { - return; - } - } - if (ptrSPITObject->getServerRemote() == false) { - ptrSPITType = SPITType::getSPITType(ptrSPITObject->getSPITTypeID()); - } else { - ptrSPITType = SPITType::getSPITTypeRemote(ptrSPITObject->getSPITTypeID()); - } - - if (ptrSPITType == nullptr) { return; } - mCallbacks.onPlayRemoteObjectStatus(*ptrSPITType, *ptrSPITObject, p_ReportPlayStatus->getFrameInsideObject(), p_ReportPlayStatus->getValue()); } + if (ptrSPITObject->getServerRemote() == false) { + ptrSPITType = SPITType::getSPITType(ptrSPITObject->getSPITTypeID()); + } else { + ptrSPITType = SPITType::getSPITTypeRemote(ptrSPITObject->getSPITTypeID()); + } + + if (ptrSPITType == nullptr) { + return; + } + mCallbacks.onPlayRemoteObjectStatus(*ptrSPITType, *ptrSPITObject, p_ReportPlayStatus->getFrameInsideObject(), p_ReportPlayStatus->getValue()); } //--------- Remote ---------- @@ -1517,15 +1458,15 @@ void SPIT_Client::processSocketTask(SPIT_Client &instance) { strParts[intIndex] = stringPart; intIndex++; } - - auto server = make_unique ( - strParts[SAD_DetectedServer::PARAMINDEX_NAME], - strParts[SAD_DetectedServer::PARAMINDEX_ID], - strParts[SAD_DetectedServer::PARAMINDEX_COMPUTERNAME], - stringServerIP, - strParts[SAD_DetectedServer::PARAMINDEX_PORT], - strParts[SAD_DetectedServer::PARAMINDEX_CLIENTIP], - strParts[SAD_DetectedServer::PARAMINDEX_ADDITIONS], + + auto server = make_unique( + strParts[SAD_DetectedServer::PARAMINDEX_NAME], + strParts[SAD_DetectedServer::PARAMINDEX_ID], + strParts[SAD_DetectedServer::PARAMINDEX_COMPUTERNAME], + stringServerIP, + strParts[SAD_DetectedServer::PARAMINDEX_PORT], + strParts[SAD_DetectedServer::PARAMINDEX_CLIENTIP], + strParts[SAD_DetectedServer::PARAMINDEX_ADDITIONS], strParts[SAD_DetectedServer::PARAMINDEX_SERVERPROJECTNAME]); SAD_DetectedServer::addDetectedServer(move(server)); diff --git a/main/watchMain.cpp b/main/watchMain.cpp index eafe387..3e30aa6 100644 --- a/main/watchMain.cpp +++ b/main/watchMain.cpp @@ -733,13 +733,13 @@ void onProjectUpdate(SPIT_Client::ProjUpdate state, string projectId) { bool onCheckSpitTypeVeto(SPIT_Message::ReportSPITType *p_ReportSPITType) { return true; // Bypass veto - if (p_ReportSPITType == NULL) + if (p_ReportSPITType == nullptr) return true; SPITType *ptrSPITType; ptrSPITType = SPITType::getSPITType(p_ReportSPITType->getID()); // Don't allow foreign SPITTypes - if (ptrSPITType == NULL) { + if (ptrSPITType == nullptr) { // ESP_LOGW(TAG, "ObjectVeto NoSpitType"); return false; } @@ -753,10 +753,10 @@ bool onCheckSpitTypeVeto(SPIT_Message::ReportSPITType *p_ReportSPITType) { bool onCheckSpitObjectVeto(SPIT_Message::ReportSPITObject *p_ReportSPITObject) { return true; // Bypass veto - if (p_ReportSPITObject == NULL) + if (p_ReportSPITObject == nullptr) return true; SPITType *ptrSPITType = SPITType::getSPITType(p_ReportSPITObject->getSPITTypeID()); - if (ptrSPITType == NULL) { + if (ptrSPITType == nullptr) { // ESP_LOGW(TAG, "ObjectVeto NoSpitObj"); return false; } @@ -768,7 +768,7 @@ bool onCheckSpitObjectVeto(SPIT_Message::ReportSPITObject *p_ReportSPITObject) { } SPITObject *ptrSPITObject = SPITObject::getSPITObject(p_ReportSPITObject->getID()); // Don't allow foreign SPITTypes - if (ptrSPITObject == NULL) { + if (ptrSPITObject == nullptr) { // ESP_LOGE(TAG, "Unknown ID"); return false; } @@ -776,102 +776,90 @@ bool onCheckSpitObjectVeto(SPIT_Message::ReportSPITObject *p_ReportSPITObject) { return true; } -// Called when the server has created, loaded, changed or deleted a SPITType. +// Called when the server has created, loaded, changed or deleted a (Remote) SPITType. +// Remote SPITType are used in Remote SPITObjects. A Remote SPITObject is used to remote control the SPITServer. // May also occur when the server confirms a SPITType created or changed by the client. -void onSpitType(SPIT_Client::ObjectEvent event, const SPITType &p_SPITType) { - if (event == SPIT_Client::ObjectEvent::Created) { - // Whenever you provide an action for this SPITType take this over in your code. - // call _SpitClient.setActionSPITType(p_SPITType.getID(), true); - ESP_LOGI(TAG, "NEW SPIT-Type ID: %s GroupName: %s Name: %s confirmed: %d", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data(), p_SPITType.getConfirmed()); - } else if (event == SPIT_Client::ObjectEvent::Changed) { - ESP_LOGI(TAG, "SPIT-Type CHANGED ID: %s GroupName: %s Name: %s confirmed: %d", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data(), p_SPITType.getConfirmed()); - } else if (event == SPIT_Client::ObjectEvent::Deleted) { - ESP_LOGI(TAG, "SPIT-Type Removed ID: %s GroupName: %s Name: %s\n", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data()); - } -} - -/** - * Called when the server has created or changed a Remote SPITType. - * Remote SPITType are used in Remote SPITObjects. A Remote SPITObject is used to remote control the SPITServer. - * @param p_New true = server created a new SPITType / false = server changed a existing SPITType - */ -void onSpitTypeRemote(SPIT_Client::ObjectEvent event, const SPITType &p_SPITType) { - if (event == SPIT_Client::ObjectEvent::Created) { - ESP_LOGI(TAG, "NEW SPIT-REMOTE-Type ID: %s GroupName: %s Name: %s confirmed: %d", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data(), p_SPITType.getConfirmed()); - auto typeName = p_SPITType.getName(); - if (ExpectedObjects.contains(typeName)) { - ExpectedObjects[typeName] = p_SPITType.getID(); - } - } else if (event == SPIT_Client::ObjectEvent::Changed) { - // we had to inform all Remote SPITObjects using the p_SPITType - // perhaps the SPITObject uses information from the SPITType - SPITObject *ptrSPITObject; - int intSPITObjectCount; - intSPITObjectCount = SPITObject::getSPITObjectRemoteCount(); - for (int intObject = 0; intObject < intSPITObjectCount; intObject++) { - ptrSPITObject = SPITObject::getSPITObjectRemote(intObject); - if (ptrSPITObject == NULL) - continue; - if (ptrSPITObject->getSPITTypeID() == p_SPITType.getID()) { - // call ecentSPITObjectRemote - // onSpitObjectRemote(SPIT_Client::ObjectEvent::Changed, p_SPITType, *ptrSPITObject); +void onSpitType(SPIT_Client::ObjectEvent event, bool isRemote, const SPITType &p_SPITType) { + if (isRemote) { + if (event == SPIT_Client::ObjectEvent::Created) { + ESP_LOGI(TAG, "NEW SPIT-REMOTE-Type ID: %s GroupName: %s Name: %s confirmed: %d", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data(), p_SPITType.getConfirmed()); + auto typeName = p_SPITType.getName(); + if (ExpectedObjects.contains(typeName)) { + ExpectedObjects[typeName] = p_SPITType.getID(); } + } else if (event == SPIT_Client::ObjectEvent::Changed) { + // we had to inform all Remote SPITObjects using the p_SPITType + // perhaps the SPITObject uses information from the SPITType + SPITObject *ptrSPITObject; + int intSPITObjectCount; + intSPITObjectCount = SPITObject::getSPITObjectRemoteCount(); + for (int intObject = 0; intObject < intSPITObjectCount; intObject++) { + ptrSPITObject = SPITObject::getSPITObjectRemote(intObject); + if (ptrSPITObject == nullptr) + continue; + if (ptrSPITObject->getSPITTypeID() == p_SPITType.getID()) { + // call ecentSPITObjectRemote + // onSpitObjectRemote(SPIT_Client::ObjectEvent::Changed, p_SPITType, *ptrSPITObject); + } + } + ESP_LOGI(TAG, "SPIT-REMOTE-Type CHANGED ID: %s GroupName: %s Name: %s confirmed: %d", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data(), p_SPITType.getConfirmed()); + } else if (event == SPIT_Client::ObjectEvent::Deleted) { + ESP_LOGD(TAG, "SPIT-REMOTE-Type Removed ID: %s GroupName: %s Name: %s\n", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data()); + } + } else { + if (event == SPIT_Client::ObjectEvent::Created) { + // Whenever you provide an action for this SPITType take this over in your code. + // call _SpitClient.setActionSPITType(p_SPITType.getID(), true); + ESP_LOGI(TAG, "NEW SPIT-Type ID: %s GroupName: %s Name: %s confirmed: %d", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data(), p_SPITType.getConfirmed()); + } else if (event == SPIT_Client::ObjectEvent::Changed) { + ESP_LOGI(TAG, "SPIT-Type CHANGED ID: %s GroupName: %s Name: %s confirmed: %d", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data(), p_SPITType.getConfirmed()); + } else if (event == SPIT_Client::ObjectEvent::Deleted) { + ESP_LOGI(TAG, "SPIT-Type Removed ID: %s GroupName: %s Name: %s\n", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data()); } - ESP_LOGI(TAG, "SPIT-REMOTE-Type CHANGED ID: %s GroupName: %s Name: %s confirmed: %d", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data(), p_SPITType.getConfirmed()); - } else if (event == SPIT_Client::ObjectEvent::Deleted) { - ESP_LOGD(TAG, "SPIT-REMOTE-Type Removed ID: %s GroupName: %s Name: %s\n", p_SPITType.getID().data(), p_SPITType.getGroupName().data(), p_SPITType.getName().data()); } } -/** - * Called when the server has created, loaded or changed a SPITObject. - * May also occur when the server confirms a SPITObject created by the client, what the client should never do!!. - * false = server changed a existing SPITObject - * @param p_SPITType a reference to a copy of the associated SPITType instance. - * @param p_SPITObject a reference to a copy of the SPITObject instance. - */ -void onSpitObject(SPIT_Client::ObjectEvent event, const SPITType &p_SPITType, const SPITObject &p_SPITObject) { - if (event == SPIT_Client::ObjectEvent::Created) { - ESP_LOGI(TAG, "NEW SPIT-Object ID: %s Name: %s -> SPITType: %s", p_SPITObject.getID().data(), p_SPITObject.getName().data(), p_SPITType.getName().data()); - // check your actions - // Whenever you provide an action for this SPITObject take this over in your code. - // call _SpitClient.setActionSPITObject(p_SPITObject.getID(), true); +// Called when the server has created, loaded or changed a SPITObject. +// A Remote SPITObject is used to remote control the SPITServer. +// May also occur when the server confirms a SPITObject created by the client, what the client should never do!!. +// false = server changed a existing SPITObject +// @param p_SPITType a reference to a copy of the associated SPITType instance. +// @param p_SPITObject a reference to a copy of the SPITObject instance. +void onSpitObject(SPIT_Client::ObjectEvent event, bool isRemote, const SPITType &p_SPITType, const SPITObject &p_SPITObject) { + if (isRemote) { + if (event == SPIT_Client::ObjectEvent::Created) { + ESP_LOGI(TAG, "NEW SPIT-REMOTE-Object ID: %s Name: %s -> SPITType: %s", p_SPITObject.getID().data(), p_SPITObject.getName().data(), p_SPITType.getName().data()); + // This is a remote SPITObject which can be used to remote control the server. + // If you want you can list this for later use + } else if (event == SPIT_Client::ObjectEvent::Changed) { + ESP_LOGI(TAG, "SPIT-REMOTE-Object CHANGED ID: %s Name: %s -> SPITType: %s", p_SPITObject.getID().data(), p_SPITObject.getName().data(), p_SPITType.getName().data()); + } else if (event == SPIT_Client::ObjectEvent::Deleted) { + ESP_LOGD(TAG, "SPIT-REMOTE-Object Removed ID: %s Name: %s\n", p_SPITObject.getID().data(), p_SPITObject.getName().data()); + // This is a remote SPITObject + // If you have listet this prior you should remove it from the list + } + } else { + if (event == SPIT_Client::ObjectEvent::Created) { + ESP_LOGI(TAG, "NEW SPIT-Object ID: %s Name: %s -> SPITType: %s", p_SPITObject.getID().data(), p_SPITObject.getName().data(), p_SPITType.getName().data()); + // check your actions + // Whenever you provide an action for this SPITObject take this over in your code. + // call _SpitClient.setActionSPITObject(p_SPITObject.getID(), true); - // for our little excample as described in loadClientProject: - // We have only actions for SPITTypes - means every SPITObject with the associated "Actionx"-SPITTypes will trigger the action when it is played - //-> no need to do something here, because setActionSPITType has been set prior and the SPITObject will automatically inherits this - // SPITObjects with other SPITTypes asscciated will trigger no actions + // for our little excample as described in loadClientProject: + // We have only actions for SPITTypes - means every SPITObject with the associated "Actionx"-SPITTypes will trigger the action when it is played + //-> no need to do something here, because setActionSPITType has been set prior and the SPITObject will automatically inherits this + // SPITObjects with other SPITTypes asscciated will trigger no actions - } else if (event == SPIT_Client::ObjectEvent::Changed) { - ESP_LOGI(TAG, "SPIT-Object CHANGED ID: %s Name: %s -> SPITType: %s", p_SPITObject.getID().data(), p_SPITObject.getName().data(), p_SPITType.getName().data()); - } else if (event == SPIT_Client::ObjectEvent::Deleted) { - ESP_LOGD(TAG, "SPIT-Object Removed ID: %s Name: %s\n", p_SPITObject.getID().data(), p_SPITObject.getName().data()); - // Check your actions - // take the removal of the SPITObject over in your code + } else if (event == SPIT_Client::ObjectEvent::Changed) { + ESP_LOGI(TAG, "SPIT-Object CHANGED ID: %s Name: %s -> SPITType: %s", p_SPITObject.getID().data(), p_SPITObject.getName().data(), p_SPITType.getName().data()); + } else if (event == SPIT_Client::ObjectEvent::Deleted) { + ESP_LOGD(TAG, "SPIT-Object Removed ID: %s Name: %s\n", p_SPITObject.getID().data(), p_SPITObject.getName().data()); + // Check your actions + // take the removal of the SPITObject over in your code - // CAUTION: Deleted SPITObjects can be added later again (perhaps per UNDO on the SPITServer) - //-> don't remove your assigned action immediately - keep it to reassign it later - } -} -/** - * Called when the server has created or changed a Remote SPITObject. - * A Remote SPITObject is used to remote control the SPITServer. - * @param p_New true = server created a new remote SPITObject - * false = server changed a existing remote SPITObject - * @param p_SPITType a reference to a copy of the associated SPITType instance. - * @param p_SPITObject a reference to a copy of the SPITObject instance. - */ -void onSpitObjectRemote(SPIT_Client::ObjectEvent event, const SPITType &p_SPITType, const SPITObject &p_SPITObject) { - if (event == SPIT_Client::ObjectEvent::Created) { - ESP_LOGI(TAG, "NEW SPIT-REMOTE-Object ID: %s Name: %s -> SPITType: %s", p_SPITObject.getID().data(), p_SPITObject.getName().data(), p_SPITType.getName().data()); - // This is a remote SPITObject which can be used to remote control the server. - // If you want you can list this for later use - } else if (event == SPIT_Client::ObjectEvent::Changed) { - ESP_LOGI(TAG, "SPIT-REMOTE-Object CHANGED ID: %s Name: %s -> SPITType: %s", p_SPITObject.getID().data(), p_SPITObject.getName().data(), p_SPITType.getName().data()); - } else if (event == SPIT_Client::ObjectEvent::Deleted) { - ESP_LOGD(TAG, "SPIT-REMOTE-Object Removed ID: %s Name: %s\n", p_SPITObject.getID().data(), p_SPITObject.getName().data()); - // This is a remote SPITObject - // If you have listet this prior you should remove it from the list + // CAUTION: Deleted SPITObjects can be added later again (perhaps per UNDO on the SPITServer) + //-> don't remove your assigned action immediately - keep it to reassign it later + } } } @@ -951,9 +939,7 @@ void SpitClientApp() { .onConnectionStatus = onConnectionStatus, .onProjectUpdate = onProjectUpdate, .onSpitType = onSpitType, - .onSpitTypeRemote = onSpitTypeRemote, .onSpitObject = onSpitObject, - .onSpitObjectRemote = onSpitObjectRemote, .onPlay = onPlay, .onPlaySpitType = onPlaySpitType, .onPlayRemoteObjectStatus = onPlayRemoteObjectStatus,