From 86fb7937722bcfb8cf5c3aa4bd0fb067c35e6a79 Mon Sep 17 00:00:00 2001 From: stephb9959 Date: Mon, 28 Mar 2022 12:24:10 -0700 Subject: [PATCH] Adding channel for SSID. --- src/APStats.cpp | 16 +++++++++------- src/RESTObjects/RESTAPI_AnalyticsObjects.cpp | 2 ++ src/RESTObjects/RESTAPI_AnalyticsObjects.h | 4 ++-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/APStats.cpp b/src/APStats.cpp index e00f75e..4edcc8a 100644 --- a/src/APStats.cpp +++ b/src/APStats.cpp @@ -84,15 +84,16 @@ namespace OpenWifi { DTP.timestamp = DI_.lastState; - std::map radio_band; + std::map > radio_map; if(State->contains("radios") && (*State)["radios"].is_array()) { auto radios = (*State)["radios"]; uint radio_index = 0; for (const auto &radio: radios) { if (radio.contains("channel")) { AnalyticsObjects::RadioTimePoint RTP; + RTP.channel = radio["channel"]; RTP.band = radio["channel"] <= 16 ? 2 : 5; - radio_band[radio_index++] = RTP.band; + radio_map[radio_index++] = std::make_pair(RTP.band, RTP.channel); 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); @@ -142,8 +143,9 @@ namespace OpenWifi { auto radio_parts = Poco::StringTokenizer(ref, "/"); 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]; + if(radio_map.find(radio_location)!=radio_map.end()) { + SSIDTP.band = radio_map[radio_location].first; + SSIDTP.channel = radio_map[radio_location].second; } } } @@ -153,9 +155,9 @@ namespace OpenWifi { GetJSON("ssid",ssid,SSIDTP.ssid, std::string{""} ); if (ssid.contains("associations") && ssid["associations"].is_array()) { auto associations = ssid["associations"]; - auto it = radio_band.find(radio_location); - if(it!=radio_band.end()) { - auto the_radio = it->second; + auto it = radio_map.find(radio_location); + if(it!=radio_map.end()) { + auto the_radio = it->second.first; if (the_radio == 2) DI_.associations_2g += associations.size(); else if (the_radio == 5) diff --git a/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp b/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp index 35c8aa8..c1f578c 100644 --- a/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp +++ b/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp @@ -340,6 +340,7 @@ namespace OpenWifi::AnalyticsObjects { field_to_json(Obj,"mode",mode); field_to_json(Obj,"ssid",ssid); field_to_json(Obj,"band",band); + field_to_json(Obj,"channel",channel); field_to_json(Obj,"associations",associations); field_to_json(Obj,"tx_bytes_bw",tx_bytes_bw); field_to_json(Obj,"rx_bytes_bw",rx_bytes_bw); @@ -356,6 +357,7 @@ namespace OpenWifi::AnalyticsObjects { field_from_json(Obj,"mode",mode); field_from_json(Obj,"ssid",ssid); field_from_json(Obj,"band",band); + field_from_json(Obj,"channel",channel); field_from_json(Obj,"associations",associations); field_from_json(Obj,"tx_bytes_bw",tx_bytes_bw); field_from_json(Obj,"rx_bytes_bw",rx_bytes_bw); diff --git a/src/RESTObjects/RESTAPI_AnalyticsObjects.h b/src/RESTObjects/RESTAPI_AnalyticsObjects.h index 1fc556a..51a7cf4 100644 --- a/src/RESTObjects/RESTAPI_AnalyticsObjects.h +++ b/src/RESTObjects/RESTAPI_AnalyticsObjects.h @@ -138,7 +138,6 @@ namespace OpenWifi { tx_retries_pct = 0.0 , tx_duration_pct = 0.0; - UE_rate tx_rate, rx_rate; std::vector tidstats; @@ -177,7 +176,8 @@ namespace OpenWifi { std::string bssid, mode, ssid; - uint64_t band=0; + uint64_t band=0, + channel=0; std::vector associations; AveragePoint tx_bytes_bw, rx_bytes_bw,