From a112ef4aa2e76b2c87f81eb9a43a43b0ecb1024f Mon Sep 17 00:00:00 2001 From: MarcoJayUsai Date: Fri, 30 May 2025 14:01:00 +0200 Subject: [PATCH] fix(unit): unit and group id are now of the correct type; added DCS unitId to dead units --- backend/core/include/unit.h | 12 ++++++------ backend/core/src/unit.cpp | 6 ++++-- frontend/react/src/unit/unit.ts | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/backend/core/include/unit.h b/backend/core/include/unit.h index 4f8a74ac..ca769dad 100644 --- a/backend/core/include/unit.h +++ b/backend/core/include/unit.h @@ -75,8 +75,8 @@ public: virtual void setName(string newValue) { updateValue(name, newValue, DataIndex::name); } virtual void setUnitName(string newValue) { updateValue(unitName, newValue, DataIndex::unitName); } virtual void setCallsign(string newValue) { updateValue(callsign, newValue, DataIndex::callsign); } - virtual void setUnitID(unsigned char newValue) { updateValue(unitID, newValue, DataIndex::unitID); } - virtual void setGroupID(unsigned char newValue) { updateValue(groupID, newValue, DataIndex::groupID); } + virtual void setUnitID(unsigned int newValue) { updateValue(unitID, newValue, DataIndex::unitID); } + virtual void setGroupID(unsigned int newValue) { updateValue(groupID, newValue, DataIndex::groupID); } virtual void setGroupName(string newValue) { updateValue(groupName, newValue, DataIndex::groupName); } virtual void setState(unsigned char newValue) { updateValue(state, newValue, DataIndex::state); }; virtual void setTask(string newValue) { updateValue(task, newValue, DataIndex::task); } @@ -143,8 +143,8 @@ public: virtual string getCallsign() { return callsign; } virtual string getUnitName() { return unitName; } virtual string getGroupName() { return groupName; } - virtual unsigned char getUnitID() { return unitID; } - virtual unsigned char getGroupID() { return groupID; } + virtual unsigned int getUnitID() { return unitID; } + virtual unsigned int getGroupID() { return groupID; } virtual unsigned char getState() { return state; } virtual string getTask() { return task; } virtual bool getHasTask() { return hasTask; } @@ -210,8 +210,8 @@ protected: string name = ""; string unitName = ""; string callsign = ""; - unsigned char unitID = NULL; - unsigned char groupID = NULL; + unsigned int unitID = NULL; + unsigned int groupID = NULL; string groupName = ""; unsigned char state = State::NONE; unsigned char alarmState = AlarmState::AUTO; diff --git a/backend/core/src/unit.cpp b/backend/core/src/unit.cpp index 18dcc1a7..952b7e56 100644 --- a/backend/core/src/unit.cpp +++ b/backend/core/src/unit.cpp @@ -42,9 +42,9 @@ void Unit::update(json::value json, double dt) setUnitName(to_string(json[L"unitName"])); if (json.has_number_field(L"groupID")) - setGroupID(json[L"groupID"].as_number().to_int32()); + setGroupID(json[L"groupID"].as_number().to_uint32()); if (json.has_number_field(L"unitID")) - setUnitID(json[L"unitID"].as_number().to_int32()); + setUnitID(json[L"unitID"].as_number().to_uint32()); if (json.has_string_field(L"groupName")) setGroupName(to_string(json[L"groupName"])); @@ -255,6 +255,8 @@ void Unit::getData(stringstream& ss, unsigned long long time) appendString(ss, datumIndex, category); datumIndex = DataIndex::alive; appendNumeric(ss, datumIndex, alive); + datumIndex = DataIndex::unitID; + appendNumeric(ss, datumIndex, unitID); } else { for (unsigned char datumIndex = DataIndex::startOfData + 1; datumIndex < DataIndex::lastIndex; datumIndex++) diff --git a/frontend/react/src/unit/unit.ts b/frontend/react/src/unit/unit.ts index e761f6e0..ed07cd62 100644 --- a/frontend/react/src/unit/unit.ts +++ b/frontend/react/src/unit/unit.ts @@ -618,11 +618,11 @@ export abstract class Unit extends CustomMarker { this.#callsign = dataExtractor.extractString(); break; case DataIndexes.unitID: - this.#unitID = dataExtractor.extractUInt8(); + this.#unitID = dataExtractor.extractUInt32(); updateMarker = true; break; case DataIndexes.groupID: - this.#groupID = dataExtractor.extractUInt8(); + this.#groupID = dataExtractor.extractUInt32(); updateMarker = true; break; case DataIndexes.groupName: