From 73f345792daedd1f3d783da75606f001a6224233 Mon Sep 17 00:00:00 2001 From: srcejon Date: Sun, 5 Jan 2025 20:47:19 +0000 Subject: [PATCH] Add date and time for interpolatable properties --- sdrbase/resources/webapi/doc/html2/index.html | 14 +++- .../webapi/doc/swagger/include/Map.yaml | 9 +++ swagger/sdrangel/api/swagger/include/Map.yaml | 9 +++ swagger/sdrangel/code/html2/index.html | 14 +++- .../code/qt5/client/SWGMapAircraftState.cpp | 75 +++++++++++++++++++ .../code/qt5/client/SWGMapAircraftState.h | 18 +++++ 6 files changed, 137 insertions(+), 2 deletions(-) diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index d73e54745..84939fe23 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -9978,6 +9978,10 @@ margin-bottom: 20px; "format" : "float", "description" : "Indicated airspeed in knots" }, + "airspeedDateTime" : { + "type" : "string", + "description" : "Date and time at this indicated airspeed (ISO 8601 extended format)" + }, "trueAirspeed" : { "type" : "number", "format" : "float", @@ -9997,6 +10001,10 @@ margin-bottom: 20px; "format" : "float", "description" : "Barometric altitude in feet" }, + "altitudeDateTime" : { + "type" : "string", + "description" : "Date and time at this altitude (ISO 8601 extended format)" + }, "qnh" : { "type" : "number", "format" : "float", @@ -10007,6 +10015,10 @@ margin-bottom: 20px; "format" : "float", "description" : "feet/m" }, + "verticalSpeedDateTime" : { + "type" : "string", + "description" : "Date and time at this vertical speed (ISO 8601 extended format)" + }, "heading" : { "type" : "number", "format" : "float", @@ -59570,7 +59582,7 @@ except ApiException as e:
- Generated 2025-01-05T11:23:33.367+01:00 + Generated 2025-01-05T21:46:55.221+01:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/Map.yaml b/sdrbase/resources/webapi/doc/swagger/include/Map.yaml index 12b62e9cf..4bba4ff1d 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/Map.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/Map.yaml @@ -235,6 +235,9 @@ MapAircraftState: description: "Indicated airspeed in knots" type: number format: float + airspeedDateTime: + description: "Date and time at this indicated airspeed (ISO 8601 extended format)" + type: string trueAirspeed: description: "True airspeed in knots" type: number @@ -250,6 +253,9 @@ MapAircraftState: description: "Barometric altitude in feet" type: number format: float + altitudeDateTime: + description: "Date and time at this altitude (ISO 8601 extended format)" + type: string qnh: description: "QNH in hPA" type: number @@ -258,6 +264,9 @@ MapAircraftState: description: "feet/m" type: number format: float + verticalSpeedDateTime: + description: "Date and time at this vertical speed (ISO 8601 extended format)" + type: string heading: description: "Degrees magnetic" type: number diff --git a/swagger/sdrangel/api/swagger/include/Map.yaml b/swagger/sdrangel/api/swagger/include/Map.yaml index 5dd522034..9896bd179 100644 --- a/swagger/sdrangel/api/swagger/include/Map.yaml +++ b/swagger/sdrangel/api/swagger/include/Map.yaml @@ -235,6 +235,9 @@ MapAircraftState: description: "Indicated airspeed in knots" type: number format: float + airspeedDateTime: + description: "Date and time at this indicated airspeed (ISO 8601 extended format)" + type: string trueAirspeed: description: "True airspeed in knots" type: number @@ -250,6 +253,9 @@ MapAircraftState: description: "Barometric altitude in feet" type: number format: float + altitudeDateTime: + description: "Date and time at this altitude (ISO 8601 extended format)" + type: string qnh: description: "QNH in hPA" type: number @@ -258,6 +264,9 @@ MapAircraftState: description: "feet/m" type: number format: float + verticalSpeedDateTime: + description: "Date and time at this vertical speed (ISO 8601 extended format)" + type: string heading: description: "Degrees magnetic" type: number diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html index d73e54745..84939fe23 100644 --- a/swagger/sdrangel/code/html2/index.html +++ b/swagger/sdrangel/code/html2/index.html @@ -9978,6 +9978,10 @@ margin-bottom: 20px; "format" : "float", "description" : "Indicated airspeed in knots" }, + "airspeedDateTime" : { + "type" : "string", + "description" : "Date and time at this indicated airspeed (ISO 8601 extended format)" + }, "trueAirspeed" : { "type" : "number", "format" : "float", @@ -9997,6 +10001,10 @@ margin-bottom: 20px; "format" : "float", "description" : "Barometric altitude in feet" }, + "altitudeDateTime" : { + "type" : "string", + "description" : "Date and time at this altitude (ISO 8601 extended format)" + }, "qnh" : { "type" : "number", "format" : "float", @@ -10007,6 +10015,10 @@ margin-bottom: 20px; "format" : "float", "description" : "feet/m" }, + "verticalSpeedDateTime" : { + "type" : "string", + "description" : "Date and time at this vertical speed (ISO 8601 extended format)" + }, "heading" : { "type" : "number", "format" : "float", @@ -59570,7 +59582,7 @@ except ApiException as e:
- Generated 2025-01-05T11:23:33.367+01:00 + Generated 2025-01-05T21:46:55.221+01:00
diff --git a/swagger/sdrangel/code/qt5/client/SWGMapAircraftState.cpp b/swagger/sdrangel/code/qt5/client/SWGMapAircraftState.cpp index 0c59de693..6b075a54b 100644 --- a/swagger/sdrangel/code/qt5/client/SWGMapAircraftState.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGMapAircraftState.cpp @@ -34,6 +34,8 @@ SWGMapAircraftState::SWGMapAircraftState() { m_on_surface_isSet = false; airspeed = 0.0f; m_airspeed_isSet = false; + airspeed_date_time = nullptr; + m_airspeed_date_time_isSet = false; true_airspeed = 0.0f; m_true_airspeed_isSet = false; groundspeed = 0.0f; @@ -42,10 +44,14 @@ SWGMapAircraftState::SWGMapAircraftState() { m_mach_isSet = false; altitude = 0.0f; m_altitude_isSet = false; + altitude_date_time = nullptr; + m_altitude_date_time_isSet = false; qnh = 0.0f; m_qnh_isSet = false; vertical_speed = 0.0f; m_vertical_speed_isSet = false; + vertical_speed_date_time = nullptr; + m_vertical_speed_date_time_isSet = false; heading = 0.0f; m_heading_isSet = false; track = 0.0f; @@ -84,6 +90,8 @@ SWGMapAircraftState::init() { m_on_surface_isSet = false; airspeed = 0.0f; m_airspeed_isSet = false; + airspeed_date_time = new QString(""); + m_airspeed_date_time_isSet = false; true_airspeed = 0.0f; m_true_airspeed_isSet = false; groundspeed = 0.0f; @@ -92,10 +100,14 @@ SWGMapAircraftState::init() { m_mach_isSet = false; altitude = 0.0f; m_altitude_isSet = false; + altitude_date_time = new QString(""); + m_altitude_date_time_isSet = false; qnh = 0.0f; m_qnh_isSet = false; vertical_speed = 0.0f; m_vertical_speed_isSet = false; + vertical_speed_date_time = new QString(""); + m_vertical_speed_date_time_isSet = false; heading = 0.0f; m_heading_isSet = false; track = 0.0f; @@ -129,12 +141,21 @@ SWGMapAircraftState::cleanup() { } + if(airspeed_date_time != nullptr) { + delete airspeed_date_time; + } + if(altitude_date_time != nullptr) { + delete altitude_date_time; + } + if(vertical_speed_date_time != nullptr) { + delete vertical_speed_date_time; + } @@ -166,6 +187,8 @@ SWGMapAircraftState::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&airspeed, pJson["airspeed"], "float", ""); + ::SWGSDRangel::setValue(&airspeed_date_time, pJson["airspeedDateTime"], "QString", "QString"); + ::SWGSDRangel::setValue(&true_airspeed, pJson["trueAirspeed"], "float", ""); ::SWGSDRangel::setValue(&groundspeed, pJson["groundspeed"], "float", ""); @@ -174,10 +197,14 @@ SWGMapAircraftState::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&altitude, pJson["altitude"], "float", ""); + ::SWGSDRangel::setValue(&altitude_date_time, pJson["altitudeDateTime"], "QString", "QString"); + ::SWGSDRangel::setValue(&qnh, pJson["qnh"], "float", ""); ::SWGSDRangel::setValue(&vertical_speed, pJson["verticalSpeed"], "float", ""); + ::SWGSDRangel::setValue(&vertical_speed_date_time, pJson["verticalSpeedDateTime"], "QString", "QString"); + ::SWGSDRangel::setValue(&heading, pJson["heading"], "float", ""); ::SWGSDRangel::setValue(&track, pJson["track"], "float", ""); @@ -227,6 +254,9 @@ SWGMapAircraftState::asJsonObject() { if(m_airspeed_isSet){ obj->insert("airspeed", QJsonValue(airspeed)); } + if(airspeed_date_time != nullptr && *airspeed_date_time != QString("")){ + toJsonValue(QString("airspeedDateTime"), airspeed_date_time, obj, QString("QString")); + } if(m_true_airspeed_isSet){ obj->insert("trueAirspeed", QJsonValue(true_airspeed)); } @@ -239,12 +269,18 @@ SWGMapAircraftState::asJsonObject() { if(m_altitude_isSet){ obj->insert("altitude", QJsonValue(altitude)); } + if(altitude_date_time != nullptr && *altitude_date_time != QString("")){ + toJsonValue(QString("altitudeDateTime"), altitude_date_time, obj, QString("QString")); + } if(m_qnh_isSet){ obj->insert("qnh", QJsonValue(qnh)); } if(m_vertical_speed_isSet){ obj->insert("verticalSpeed", QJsonValue(vertical_speed)); } + if(vertical_speed_date_time != nullptr && *vertical_speed_date_time != QString("")){ + toJsonValue(QString("verticalSpeedDateTime"), vertical_speed_date_time, obj, QString("QString")); + } if(m_heading_isSet){ obj->insert("heading", QJsonValue(heading)); } @@ -315,6 +351,16 @@ SWGMapAircraftState::setAirspeed(float airspeed) { this->m_airspeed_isSet = true; } +QString* +SWGMapAircraftState::getAirspeedDateTime() { + return airspeed_date_time; +} +void +SWGMapAircraftState::setAirspeedDateTime(QString* airspeed_date_time) { + this->airspeed_date_time = airspeed_date_time; + this->m_airspeed_date_time_isSet = true; +} + float SWGMapAircraftState::getTrueAirspeed() { return true_airspeed; @@ -355,6 +401,16 @@ SWGMapAircraftState::setAltitude(float altitude) { this->m_altitude_isSet = true; } +QString* +SWGMapAircraftState::getAltitudeDateTime() { + return altitude_date_time; +} +void +SWGMapAircraftState::setAltitudeDateTime(QString* altitude_date_time) { + this->altitude_date_time = altitude_date_time; + this->m_altitude_date_time_isSet = true; +} + float SWGMapAircraftState::getQnh() { return qnh; @@ -375,6 +431,16 @@ SWGMapAircraftState::setVerticalSpeed(float vertical_speed) { this->m_vertical_speed_isSet = true; } +QString* +SWGMapAircraftState::getVerticalSpeedDateTime() { + return vertical_speed_date_time; +} +void +SWGMapAircraftState::setVerticalSpeedDateTime(QString* vertical_speed_date_time) { + this->vertical_speed_date_time = vertical_speed_date_time; + this->m_vertical_speed_date_time_isSet = true; +} + float SWGMapAircraftState::getHeading() { return heading; @@ -509,6 +575,9 @@ SWGMapAircraftState::isSet(){ if(m_airspeed_isSet){ isObjectUpdated = true; break; } + if(airspeed_date_time && *airspeed_date_time != QString("")){ + isObjectUpdated = true; break; + } if(m_true_airspeed_isSet){ isObjectUpdated = true; break; } @@ -521,12 +590,18 @@ SWGMapAircraftState::isSet(){ if(m_altitude_isSet){ isObjectUpdated = true; break; } + if(altitude_date_time && *altitude_date_time != QString("")){ + isObjectUpdated = true; break; + } if(m_qnh_isSet){ isObjectUpdated = true; break; } if(m_vertical_speed_isSet){ isObjectUpdated = true; break; } + if(vertical_speed_date_time && *vertical_speed_date_time != QString("")){ + isObjectUpdated = true; break; + } if(m_heading_isSet){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGMapAircraftState.h b/swagger/sdrangel/code/qt5/client/SWGMapAircraftState.h index d4f8bd2a6..9d9686ac4 100644 --- a/swagger/sdrangel/code/qt5/client/SWGMapAircraftState.h +++ b/swagger/sdrangel/code/qt5/client/SWGMapAircraftState.h @@ -51,6 +51,9 @@ public: float getAirspeed(); void setAirspeed(float airspeed); + QString* getAirspeedDateTime(); + void setAirspeedDateTime(QString* airspeed_date_time); + float getTrueAirspeed(); void setTrueAirspeed(float true_airspeed); @@ -63,12 +66,18 @@ public: float getAltitude(); void setAltitude(float altitude); + QString* getAltitudeDateTime(); + void setAltitudeDateTime(QString* altitude_date_time); + float getQnh(); void setQnh(float qnh); float getVerticalSpeed(); void setVerticalSpeed(float vertical_speed); + QString* getVerticalSpeedDateTime(); + void setVerticalSpeedDateTime(QString* vertical_speed_date_time); + float getHeading(); void setHeading(float heading); @@ -118,6 +127,9 @@ private: float airspeed; bool m_airspeed_isSet; + QString* airspeed_date_time; + bool m_airspeed_date_time_isSet; + float true_airspeed; bool m_true_airspeed_isSet; @@ -130,12 +142,18 @@ private: float altitude; bool m_altitude_isSet; + QString* altitude_date_time; + bool m_altitude_date_time_isSet; + float qnh; bool m_qnh_isSet; float vertical_speed; bool m_vertical_speed_isSet; + QString* vertical_speed_date_time; + bool m_vertical_speed_date_time_isSet; + float heading; bool m_heading_isSet;