From f8bf8b6a8292c7656d1bac6624d64d1ca35cd3d3 Mon Sep 17 00:00:00 2001 From: stephb9959 Date: Thu, 24 Mar 2022 09:38:13 -0700 Subject: [PATCH] Adding band to SSIDTP --- openapi/owanalytics.yaml | 2 ++ src/APStats.cpp | 13 +++++++++---- src/RESTObjects/RESTAPI_AnalyticsObjects.cpp | 2 ++ src/RESTObjects/RESTAPI_AnalyticsObjects.h | 1 + 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/openapi/owanalytics.yaml b/openapi/owanalytics.yaml index d498c1d..3987483 100644 --- a/openapi/owanalytics.yaml +++ b/openapi/owanalytics.yaml @@ -324,6 +324,8 @@ components: type: string ssid: type: string + band: + type: integer associations: type: array items: diff --git a/src/APStats.cpp b/src/APStats.cpp index d511863..c310f37 100644 --- a/src/APStats.cpp +++ b/src/APStats.cpp @@ -51,7 +51,7 @@ namespace OpenWifi { if (radio.contains("channel")) { AnalyticsObjects::RadioTimePoint RTP; RTP.band = radio["channel"] <= 16 ? 2 : 5; - radio_band[radio_index++] = radio["channel"] <= 16 ? 2 : 5; + radio_band[radio_index++] = RTP.band; GetJSON("busy_ms", radio, RTP.busy_ms, (uint64_t) 0); GetJSON("receive_ms", radio, RTP.receive_ms, (uint64_t) 0); GetJSON("transmit_ms", radio, RTP.transmit_ms, (uint64_t) 0); @@ -88,14 +88,19 @@ namespace OpenWifi { auto ssids = interface["ssids"]; for (const auto &ssid: ssids) { AnalyticsObjects::SSIDTimePoint SSIDTP; - uint radio_location = 2; + uint radio_location=0; + SSIDTP.band = 2; if(ssid.contains("radio")) { auto radio = ssid["radio"]; if(radio.contains("$ref")) { auto ref = radio["$ref"]; auto radio_parts = Poco::StringTokenizer(ref, "/"); - if(radio_parts.count()==3) - radio_location = std::strtol(radio_parts[2].c_str(), nullptr,10); + if(radio_parts.count()==3) { + radio_location = std::strtol(radio_parts[2].c_str(), nullptr, 10); + if(radio_band.find(radio_location)!=radio_band.end()) { + SSIDTP.band = radio_band[radio_location]; + } + } } } GetJSON("bssid",ssid,SSIDTP.bssid, std::string{""}); diff --git a/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp b/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp index ff7ce40..8957af2 100644 --- a/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp +++ b/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp @@ -281,6 +281,7 @@ namespace OpenWifi::AnalyticsObjects { field_to_json(Obj,"bssid",bssid); field_to_json(Obj,"mode",mode); field_to_json(Obj,"ssid",ssid); + field_to_json(Obj,"band",band); field_to_json(Obj,"associations",associations); } @@ -289,6 +290,7 @@ namespace OpenWifi::AnalyticsObjects { field_from_json(Obj,"bssid",bssid); field_from_json(Obj,"mode",mode); field_from_json(Obj,"ssid",ssid); + field_from_json(Obj,"band",band); field_from_json(Obj,"associations",associations); return true; } catch(...) { diff --git a/src/RESTObjects/RESTAPI_AnalyticsObjects.h b/src/RESTObjects/RESTAPI_AnalyticsObjects.h index 5d3c70a..3492551 100644 --- a/src/RESTObjects/RESTAPI_AnalyticsObjects.h +++ b/src/RESTObjects/RESTAPI_AnalyticsObjects.h @@ -159,6 +159,7 @@ namespace OpenWifi { std::string bssid, mode, ssid; + uint64_t band=0; std::vector associations; void to_json(Poco::JSON::Object &Obj) const;