mirror of
https://github.com/Telecominfraproject/wlan-cloud-rrm.git
synced 2025-10-29 01:32:21 +00:00
Create separate Capabilities structure (#108)
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -14,3 +14,6 @@ bin/
|
||||
*.iml
|
||||
*.iws
|
||||
*.ipr
|
||||
|
||||
# Miscellaneous files thzt should not be checked in
|
||||
temp/
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.util.Set;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
import com.facebook.openwifi.cloudsdk.ies.Country;
|
||||
import com.facebook.openwifi.cloudsdk.ies.LocalPowerConstraint;
|
||||
import com.facebook.openwifi.cloudsdk.ies.QbssLoad;
|
||||
@@ -304,7 +305,7 @@ public class UCentralUtils {
|
||||
*/
|
||||
public static Map<String, Map<String, List<Integer>>> getDeviceAvailableChannels(
|
||||
Map<String, JsonArray> deviceStatus,
|
||||
Map<String, JsonObject> deviceCapabilities,
|
||||
Map<String, Map<String, Capabilities.Phy>> deviceCapabilities,
|
||||
Map<String, List<Integer>> defaultAvailableChannels
|
||||
) {
|
||||
Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
|
||||
@@ -323,41 +324,32 @@ public class UCentralUtils {
|
||||
JsonObject radioObject = e.getAsJsonObject();
|
||||
String band = radioObject.get("band").getAsString();
|
||||
|
||||
JsonObject capabilitesObject =
|
||||
Map<String, Capabilities.Phy> capabilitiesPhyMap =
|
||||
deviceCapabilities.get(serialNumber);
|
||||
List<Integer> availableChannels = new ArrayList<>();
|
||||
if (capabilitesObject == null) {
|
||||
if (capabilitiesPhyMap == null) {
|
||||
availableChannels
|
||||
.addAll(defaultAvailableChannels.get(band));
|
||||
} else {
|
||||
Set<Entry<String, JsonElement>> entrySet = capabilitesObject
|
||||
.entrySet();
|
||||
for (Map.Entry<String, JsonElement> f : entrySet) {
|
||||
String bandInsideObject = f.getValue()
|
||||
.getAsJsonObject()
|
||||
.get("band")
|
||||
.getAsString();
|
||||
Set<Entry<String, Capabilities.Phy>> entrySet =
|
||||
capabilitiesPhyMap
|
||||
.entrySet();
|
||||
for (Map.Entry<String, Capabilities.Phy> f : entrySet) {
|
||||
Capabilities.Phy phy = f.getValue();
|
||||
String bandInsideObject = phy.band.toString();
|
||||
if (bandInsideObject.equals(band)) {
|
||||
// (TODO) Remove the following dfsChannels code block
|
||||
// when the DFS channels are available
|
||||
Set<Integer> dfsChannels = new HashSet<>();
|
||||
try {
|
||||
JsonArray channelInfo = f.getValue()
|
||||
.getAsJsonObject()
|
||||
.get("dfs_channels")
|
||||
.getAsJsonArray();
|
||||
|
||||
for (JsonElement d : channelInfo) {
|
||||
dfsChannels.add(d.getAsInt());
|
||||
int[] channelInfo = phy.dfs_channels;
|
||||
for (int d : channelInfo) {
|
||||
dfsChannels.add(d);
|
||||
}
|
||||
} catch (Exception d) {}
|
||||
try {
|
||||
JsonArray channelInfo = f.getValue()
|
||||
.getAsJsonObject()
|
||||
.get("channels")
|
||||
.getAsJsonArray();
|
||||
for (JsonElement c : channelInfo) {
|
||||
int channel = c.getAsInt();
|
||||
int[] channelInfo = phy.channels;
|
||||
for (int channel : channelInfo) {
|
||||
if (!dfsChannels.contains(channel)) {
|
||||
availableChannels.add(channel);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.openwifi.cloudsdk.models.ap;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class Capabilities {
|
||||
public String compatible;
|
||||
public String model;
|
||||
public String platform;
|
||||
public Map<String, List<String>> network;
|
||||
|
||||
public static class Switch {
|
||||
public boolean enable;
|
||||
public boolean reset;
|
||||
}
|
||||
|
||||
@SerializedName("switch") public Map<String, Switch> switch_;
|
||||
|
||||
public static class Phy {
|
||||
public int tx_ant;
|
||||
public int rx_ant;
|
||||
public int[] frequencies;
|
||||
public int[] channels;
|
||||
public int[] dfs_channels;
|
||||
public String[] htmode;
|
||||
public String[] band;
|
||||
public int ht_capa;
|
||||
public int vht_capa;
|
||||
public int[] he_phy_capa;
|
||||
public int[] he_mac_capa;
|
||||
public String country;
|
||||
public String dfs_region;
|
||||
public int temperature;
|
||||
}
|
||||
|
||||
public Map<String, Phy> wifi;
|
||||
// TODO The fields below were omitted
|
||||
// macaddr;
|
||||
// country_code;
|
||||
// label_macaddr;
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.openwifi.cloudsdk.models.ap;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class DeviceCapabilities {
|
||||
public String compatible;
|
||||
public String model;
|
||||
public String platform;
|
||||
public JsonObject network;
|
||||
@SerializedName("switch") public JsonObject switch_;
|
||||
public JsonObject wifi;
|
||||
}
|
||||
@@ -8,10 +8,10 @@
|
||||
|
||||
package com.facebook.openwifi.cloudsdk.models.gw;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
|
||||
public class DeviceCapabilities {
|
||||
public JsonObject capabilities;
|
||||
public Capabilities capabilities;
|
||||
public long firstUpdate;
|
||||
public long lastUpdate;
|
||||
public String serialNumber;
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.facebook.openwifi.cloudsdk.UCentralUtils;
|
||||
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
|
||||
import com.facebook.openwifi.cloudsdk.kafka.UCentralKafkaConsumer;
|
||||
import com.facebook.openwifi.cloudsdk.kafka.UCentralKafkaConsumer.KafkaRecord;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.State;
|
||||
import com.facebook.openwifi.cloudsdk.models.gw.DeviceCapabilities;
|
||||
import com.facebook.openwifi.cloudsdk.models.gw.DeviceWithStatus;
|
||||
@@ -102,7 +103,7 @@ public class Modeler implements Runnable {
|
||||
new ConcurrentHashMap<>();
|
||||
|
||||
/** List of capabilities per device. */
|
||||
public Map<String, JsonObject> latestDeviceCapabilities =
|
||||
public Map<String, Map<String, Capabilities.Phy>> latestDeviceCapabilitiesPhy =
|
||||
new ConcurrentHashMap<>();
|
||||
}
|
||||
|
||||
@@ -376,9 +377,9 @@ public class Modeler implements Runnable {
|
||||
String serialNumber,
|
||||
DeviceCapabilities capabilities
|
||||
) {
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
serialNumber,
|
||||
capabilities.capabilities.getAsJsonObject("wifi")
|
||||
capabilities.capabilities.wifi
|
||||
);
|
||||
}
|
||||
|
||||
@@ -448,7 +449,7 @@ public class Modeler implements Runnable {
|
||||
logger.debug("Removed some status entries from data model");
|
||||
}
|
||||
if (
|
||||
dataModel.latestDeviceCapabilities.entrySet()
|
||||
dataModel.latestDeviceCapabilitiesPhy.entrySet()
|
||||
.removeIf(e -> !isRRMEnabled(e.getKey()))
|
||||
) {
|
||||
logger.debug("Removed some capabilities entries from data model");
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.util.stream.Collectors;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
import com.facebook.openwifi.cloudsdk.AggregatedState;
|
||||
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
|
||||
import com.facebook.openwifi.cloudsdk.ies.HTOperation;
|
||||
@@ -30,9 +31,6 @@ import com.facebook.openwifi.cloudsdk.models.ap.State.Interface.SSID.Association
|
||||
import com.facebook.openwifi.rrm.aggregators.Aggregator;
|
||||
import com.facebook.openwifi.rrm.aggregators.MeanAggregator;
|
||||
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* Modeler utilities.
|
||||
@@ -562,24 +560,19 @@ public class ModelerUtils {
|
||||
/** Return the radio's band, or null if band cannot be found */
|
||||
public static String getBand(
|
||||
State.Radio radio,
|
||||
JsonObject deviceCapability
|
||||
Map<String, Capabilities.Phy> capabilityPhy
|
||||
) {
|
||||
if (radio.phy == null) {
|
||||
return null;
|
||||
}
|
||||
JsonElement radioCapabilityElement = deviceCapability.get(radio.phy);
|
||||
if (radioCapabilityElement == null) {
|
||||
Capabilities.Phy phy = capabilityPhy.get(radio.phy);
|
||||
if (phy == null) {
|
||||
return null;
|
||||
}
|
||||
JsonObject radioCapability = radioCapabilityElement.getAsJsonObject();
|
||||
JsonElement bandsElement = radioCapability.get("band");
|
||||
if (bandsElement == null) {
|
||||
String[] bands = phy.band;
|
||||
if (bands == null || bands.length == 0) {
|
||||
return null;
|
||||
}
|
||||
JsonArray bands = bandsElement.getAsJsonArray();
|
||||
if (bands.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return bands.get(0).getAsString();
|
||||
return bands[0];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import java.util.Map;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
import com.facebook.openwifi.cloudsdk.UCentralConstants;
|
||||
import com.facebook.openwifi.cloudsdk.UCentralUtils;
|
||||
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
|
||||
@@ -29,7 +30,6 @@ import com.facebook.openwifi.rrm.DeviceDataManager;
|
||||
import com.facebook.openwifi.rrm.modules.ConfigManager;
|
||||
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
|
||||
import com.facebook.openwifi.rrm.modules.ModelerUtils;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* Channel optimizer base class.
|
||||
@@ -142,7 +142,7 @@ public abstract class ChannelOptimizer {
|
||||
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber));
|
||||
this.model.latestDeviceStatusRadios.keySet()
|
||||
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber));
|
||||
this.model.latestDeviceCapabilities.keySet()
|
||||
this.model.latestDeviceCapabilitiesPhy.keySet()
|
||||
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber));
|
||||
}
|
||||
|
||||
@@ -349,7 +349,7 @@ public abstract class ChannelOptimizer {
|
||||
* @param band the operational band (e.g., "2G")
|
||||
* @param serialNumber the device's serial number
|
||||
* @param state the latest state of all the devices
|
||||
* @param latestDeviceCapabilities latest device capabilities
|
||||
* @param latestDeviceCapabilitiesPhy latest device phy from capabilities
|
||||
* @return the current channel and channel width (MHz) of the device in the
|
||||
* given band; returns a current channel of 0 if no channel in the given
|
||||
* band is found.
|
||||
@@ -358,7 +358,7 @@ public abstract class ChannelOptimizer {
|
||||
String band,
|
||||
String serialNumber,
|
||||
State state,
|
||||
Map<String, JsonObject> latestDeviceCapabilities
|
||||
Map<String, Map<String, Capabilities.Phy>> latestDeviceCapabilitiesPhy
|
||||
) {
|
||||
int currentChannel = 0;
|
||||
int currentChannelWidth = MIN_CHANNEL_WIDTH;
|
||||
@@ -370,14 +370,14 @@ public abstract class ChannelOptimizer {
|
||||
) {
|
||||
State.Radio radio = state.radios[radioIndex];
|
||||
// check if radio is in band of interest
|
||||
JsonObject deviceCapability =
|
||||
latestDeviceCapabilities.get(serialNumber);
|
||||
if (deviceCapability == null) {
|
||||
Map<String, Capabilities.Phy> capabilitiesPhy =
|
||||
latestDeviceCapabilitiesPhy.get(serialNumber);
|
||||
if (capabilitiesPhy == null) {
|
||||
continue;
|
||||
}
|
||||
final String radioBand = ModelerUtils.getBand(
|
||||
radio,
|
||||
deviceCapability
|
||||
capabilitiesPhy
|
||||
);
|
||||
if (radioBand == null || !radioBand.equals(band)) {
|
||||
continue;
|
||||
|
||||
@@ -337,7 +337,7 @@ public class LeastUsedChannelOptimizer extends ChannelOptimizer {
|
||||
Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
|
||||
UCentralUtils.getDeviceAvailableChannels(
|
||||
model.latestDeviceStatusRadios,
|
||||
model.latestDeviceCapabilities,
|
||||
model.latestDeviceCapabilitiesPhy,
|
||||
UCentralUtils.AVAILABLE_CHANNELS_BAND
|
||||
);
|
||||
|
||||
@@ -397,7 +397,7 @@ public class LeastUsedChannelOptimizer extends ChannelOptimizer {
|
||||
band,
|
||||
serialNumber,
|
||||
state,
|
||||
model.latestDeviceCapabilities
|
||||
model.latestDeviceCapabilitiesPhy
|
||||
);
|
||||
int currentChannel = currentChannelInfo[0];
|
||||
// Filter out APs if the radios in the state do not contain a
|
||||
|
||||
@@ -125,7 +125,7 @@ public class RandomChannelInitializer extends ChannelOptimizer {
|
||||
Map<String, Map<String, List<Integer>>> deviceAvailableChannels =
|
||||
UCentralUtils.getDeviceAvailableChannels(
|
||||
model.latestDeviceStatusRadios,
|
||||
model.latestDeviceCapabilities,
|
||||
model.latestDeviceCapabilitiesPhy,
|
||||
UCentralUtils.AVAILABLE_CHANNELS_BAND
|
||||
);
|
||||
|
||||
@@ -208,7 +208,7 @@ public class RandomChannelInitializer extends ChannelOptimizer {
|
||||
band,
|
||||
serialNumber,
|
||||
state,
|
||||
model.latestDeviceCapabilities
|
||||
model.latestDeviceCapabilitiesPhy
|
||||
);
|
||||
int currentChannel = currentChannelInfo[0];
|
||||
int currentChannelWidth = currentChannelInfo[1];
|
||||
|
||||
@@ -22,11 +22,11 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.facebook.openwifi.cloudsdk.UCentralUtils;
|
||||
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.State;
|
||||
import com.facebook.openwifi.rrm.DeviceDataManager;
|
||||
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
|
||||
import com.facebook.openwifi.rrm.modules.ModelerUtils;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* Measurement-based AP-AP TPC algorithm.
|
||||
@@ -373,14 +373,15 @@ public class MeasurementBasedApApTPC extends TPC {
|
||||
State.Radio radio = state.radios[idx];
|
||||
|
||||
// this specific SSID is not on the band of interest
|
||||
JsonObject deviceCapability = model.latestDeviceCapabilities
|
||||
.get(serialNumber);
|
||||
if (deviceCapability == null) {
|
||||
Map<String, Capabilities.Phy> capabilitiesPhy =
|
||||
model.latestDeviceCapabilitiesPhy
|
||||
.get(serialNumber);
|
||||
if (capabilitiesPhy == null) {
|
||||
continue;
|
||||
}
|
||||
final String radioBand = ModelerUtils.getBand(
|
||||
radio,
|
||||
deviceCapability
|
||||
capabilitiesPhy
|
||||
);
|
||||
if (radioBand == null || !radioBand.equals(band)) {
|
||||
continue;
|
||||
|
||||
@@ -18,12 +18,12 @@ import java.util.TreeMap;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
import com.facebook.openwifi.cloudsdk.UCentralUtils;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.State;
|
||||
import com.facebook.openwifi.rrm.DeviceDataManager;
|
||||
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
|
||||
import com.facebook.openwifi.rrm.modules.ModelerUtils;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* Measurement-based AP-client algorithm.
|
||||
@@ -307,14 +307,15 @@ public class MeasurementBasedApClientTPC extends TPC {
|
||||
|
||||
Map<String, Integer> radioMap = new TreeMap<>();
|
||||
for (State.Radio radio : state.radios) {
|
||||
JsonObject deviceCapability = model.latestDeviceCapabilities
|
||||
.get(serialNumber);
|
||||
if (deviceCapability == null) {
|
||||
Map<String, Capabilities.Phy> capabilityPhy =
|
||||
model.latestDeviceCapabilitiesPhy
|
||||
.get(serialNumber);
|
||||
if (capabilityPhy == null) {
|
||||
continue;
|
||||
}
|
||||
final String band = ModelerUtils.getBand(
|
||||
radio,
|
||||
deviceCapability
|
||||
capabilityPhy
|
||||
);
|
||||
if (band == null) {
|
||||
continue;
|
||||
|
||||
@@ -20,13 +20,13 @@ import java.util.stream.IntStream;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.State;
|
||||
import com.facebook.openwifi.rrm.DeviceConfig;
|
||||
import com.facebook.openwifi.rrm.DeviceDataManager;
|
||||
import com.facebook.openwifi.rrm.modules.ConfigManager;
|
||||
import com.facebook.openwifi.rrm.modules.Modeler.DataModel;
|
||||
import com.facebook.openwifi.rrm.modules.ModelerUtils;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
/**
|
||||
* TPC (Transmit Power Control) base class.
|
||||
@@ -78,7 +78,7 @@ public abstract class TPC {
|
||||
this.model.latestDeviceStatusRadios.keySet()
|
||||
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber)
|
||||
);
|
||||
this.model.latestDeviceCapabilities.keySet()
|
||||
this.model.latestDeviceCapabilitiesPhy.keySet()
|
||||
.removeIf(serialNumber -> !deviceConfigs.containsKey(serialNumber)
|
||||
);
|
||||
}
|
||||
@@ -204,14 +204,14 @@ public abstract class TPC {
|
||||
if (currentChannel == 0) {
|
||||
continue;
|
||||
}
|
||||
JsonObject deviceCapability =
|
||||
model.latestDeviceCapabilities.get(serialNumber);
|
||||
if (deviceCapability == null) {
|
||||
Map<String, Capabilities.Phy> capabilitiesPhy =
|
||||
model.latestDeviceCapabilitiesPhy.get(serialNumber);
|
||||
if (capabilitiesPhy == null) {
|
||||
continue;
|
||||
}
|
||||
final String band = ModelerUtils.getBand(
|
||||
radio,
|
||||
deviceCapability
|
||||
capabilitiesPhy
|
||||
);
|
||||
if (band == null) {
|
||||
continue;
|
||||
|
||||
@@ -11,6 +11,7 @@ package com.facebook.openwifi.rrm.optimizers;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -21,6 +22,7 @@ import com.facebook.openwifi.cloudsdk.AggregatedState;
|
||||
import com.facebook.openwifi.cloudsdk.UCentralConstants;
|
||||
import com.facebook.openwifi.cloudsdk.UCentralUtils;
|
||||
import com.facebook.openwifi.cloudsdk.WifiScanEntry;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.Capabilities;
|
||||
import com.facebook.openwifi.cloudsdk.models.ap.State;
|
||||
import com.facebook.openwifi.rrm.DeviceTopology;
|
||||
import com.google.gson.Gson;
|
||||
@@ -764,11 +766,9 @@ public class TestUtils {
|
||||
/**
|
||||
* Create a radio capability object which is part of the device capability.
|
||||
*/
|
||||
public static JsonObject createRadioCapability(String band) {
|
||||
JsonObject radioCapability = new JsonObject();
|
||||
JsonArray bandArray = new JsonArray();
|
||||
bandArray.add(band);
|
||||
radioCapability.add("band", bandArray);
|
||||
public static Capabilities.Phy createCapabilitiesPhy(String band) {
|
||||
Capabilities.Phy phy = new Capabilities.Phy();
|
||||
phy.band = new String[] { band };
|
||||
// the following fields are present but unused so they are excluded here
|
||||
// channels
|
||||
// dfs_channels
|
||||
@@ -780,23 +780,27 @@ public class TestUtils {
|
||||
// rx_ant
|
||||
// tx_ant
|
||||
// vht_capa
|
||||
return radioCapability;
|
||||
return phy;
|
||||
}
|
||||
|
||||
/** Create a device capability object with radios in the given bands. */
|
||||
public static JsonObject createDeviceCapability(String[] bands) {
|
||||
JsonObject deviceCapability = new JsonObject();
|
||||
public static Map<String, Capabilities.Phy> createDeviceCapabilityPhy(
|
||||
String[] bands
|
||||
) {
|
||||
Map<String, Capabilities.Phy> capabilitiesPhy = new HashMap<>();
|
||||
for (int i = 0; i < bands.length; i++) {
|
||||
String phyId = generatePhyString(i);
|
||||
JsonObject radioCapability = createRadioCapability(bands[i]);
|
||||
deviceCapability.add(phyId, radioCapability);
|
||||
Capabilities.Phy radioCapability = createCapabilitiesPhy(bands[i]);
|
||||
capabilitiesPhy.put(phyId, radioCapability);
|
||||
}
|
||||
return deviceCapability;
|
||||
return capabilitiesPhy;
|
||||
}
|
||||
|
||||
/** Create a device capability object with a radio in the given band. */
|
||||
public static JsonObject createDeviceCapability(String band) {
|
||||
return createDeviceCapability(new String[] { band });
|
||||
public static Map<String, Capabilities.Phy> createDeviceCapabilityPhy(
|
||||
String band
|
||||
) {
|
||||
return createDeviceCapabilityPhy(new String[] { band });
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -63,9 +63,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -89,9 +89,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -116,9 +116,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
TestUtils.createState(149, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
@@ -167,9 +167,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -193,9 +193,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(6, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -215,9 +215,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceC,
|
||||
Arrays.asList(TestUtils.createState(6, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
@@ -275,9 +275,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -300,9 +300,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -326,9 +326,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
TestUtils.createState(149, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
@@ -385,9 +385,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -412,9 +412,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -439,9 +439,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
TestUtils.createState(149, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
@@ -492,9 +492,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -520,9 +520,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -547,9 +547,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
TestUtils.createState(149, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
@@ -571,9 +571,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceD,
|
||||
Arrays.asList(TestUtils.createState(40, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceD,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceD,
|
||||
@@ -631,9 +631,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -657,9 +657,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(36, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -684,9 +684,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
TestUtils.createState(149, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
@@ -710,9 +710,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceD,
|
||||
Arrays.asList(TestUtils.createState(36, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceD,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceD,
|
||||
@@ -742,9 +742,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceE,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceE,
|
||||
@@ -795,9 +795,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -820,9 +820,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(48, channelWidth, dummyBssid))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -858,9 +858,9 @@ public class LeastUsedChannelOptimizerTest {
|
||||
TestUtils.createState(149, channelWidth, dummyBssid)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
|
||||
@@ -67,13 +67,13 @@ public class RandomChannelInitializerTest {
|
||||
deviceB,
|
||||
TestUtils.createDeviceStatus(band, 8)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
|
||||
ChannelOptimizer optimizer = new RandomChannelInitializer(
|
||||
@@ -124,17 +124,17 @@ public class RandomChannelInitializerTest {
|
||||
deviceB,
|
||||
TestUtils.createDeviceStatus(band, 8)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_2G }
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_2G }
|
||||
|
||||
@@ -65,9 +65,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, bssidA)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -93,9 +93,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(40, channelWidth, bssidB))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -131,9 +131,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
|
||||
deviceC,
|
||||
Arrays.asList(TestUtils.createState(149, channelWidth, bssidC))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
@@ -185,9 +185,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
|
||||
.createState(aExpectedChannel, channelWidth, bssidA)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceA,
|
||||
@@ -211,9 +211,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
|
||||
deviceB,
|
||||
Arrays.asList(TestUtils.createState(6, channelWidth, bssidB))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceB,
|
||||
@@ -233,9 +233,9 @@ public class UnmanagedApAwareChannelOptimizerTest {
|
||||
deviceC,
|
||||
Arrays.asList(TestUtils.createState(6, channelWidth, bssidC))
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
dataModel.latestWifiScans.put(
|
||||
deviceC,
|
||||
|
||||
@@ -145,9 +145,9 @@ public class LocationBasedOptimalTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
device,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_5G }
|
||||
@@ -222,9 +222,9 @@ public class LocationBasedOptimalTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel2.latestDeviceCapabilities.put(
|
||||
dataModel2.latestDeviceCapabilitiesPhy.put(
|
||||
device,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_5G }
|
||||
@@ -249,9 +249,9 @@ public class LocationBasedOptimalTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel2.latestDeviceCapabilities.put(
|
||||
dataModel2.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
|
||||
Map<String, Map<String, Integer>> expected2 = new HashMap<>();
|
||||
@@ -347,9 +347,9 @@ public class LocationBasedOptimalTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel2.latestDeviceCapabilities.put(
|
||||
dataModel2.latestDeviceCapabilitiesPhy.put(
|
||||
device,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_5G }
|
||||
@@ -416,9 +416,9 @@ public class LocationBasedOptimalTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel3.latestDeviceCapabilities.put(
|
||||
dataModel3.latestDeviceCapabilitiesPhy.put(
|
||||
device,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_5G }
|
||||
@@ -475,9 +475,9 @@ public class LocationBasedOptimalTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel4.latestDeviceCapabilities.put(
|
||||
dataModel4.latestDeviceCapabilitiesPhy.put(
|
||||
device,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_2G }
|
||||
|
||||
@@ -108,9 +108,9 @@ public class MeasurementBasedApApTPCTest {
|
||||
TestUtils
|
||||
.createDeviceStatusSingleBand(channel, MAX_TX_POWER)
|
||||
);
|
||||
model.latestDeviceCapabilities.put(
|
||||
model.latestDeviceCapabilitiesPhy.put(
|
||||
device,
|
||||
TestUtils.createDeviceCapability(band)
|
||||
TestUtils.createDeviceCapabilityPhy(band)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -161,9 +161,9 @@ public class MeasurementBasedApApTPCTest {
|
||||
MAX_TX_POWER
|
||||
)
|
||||
);
|
||||
model.latestDeviceCapabilities.put(
|
||||
model.latestDeviceCapabilitiesPhy.put(
|
||||
device,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_5G }
|
||||
@@ -604,9 +604,9 @@ public class MeasurementBasedApApTPCTest {
|
||||
MAX_TX_POWER
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
DEVICE_C,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_2G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_2G)
|
||||
);
|
||||
optimizer = new MeasurementBasedApApTPC(
|
||||
dataModel,
|
||||
|
||||
@@ -61,9 +61,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
TestUtils.createState(36, 20, 20, null, new int[] {})
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
dataModel.latestStates.put(
|
||||
deviceB,
|
||||
@@ -71,9 +71,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
TestUtils.createState(36, 20, 20, "", new int[] { -65 })
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
dataModel.latestStates.put(
|
||||
deviceC,
|
||||
@@ -87,9 +87,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
dataModel.latestStates.put(
|
||||
deviceD,
|
||||
@@ -97,9 +97,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
TestUtils.createState(36, 20, 22, null, new int[] { -80 })
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceD,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
dataModel.latestStates.put(
|
||||
deviceE,
|
||||
@@ -107,9 +107,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
TestUtils.createState(36, 20, 23, null, new int[] { -45 })
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceE,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
|
||||
TPC optimizer = new MeasurementBasedApClientTPC(
|
||||
@@ -178,9 +178,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
TestUtils.createState(1, 20, 20, null, new int[] {})
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_2G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_2G)
|
||||
);
|
||||
// 5G only
|
||||
dataModel.latestStates.put(
|
||||
@@ -189,9 +189,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
TestUtils.createState(36, 20, 20, null, new int[] {})
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
// 2G and 5G
|
||||
dataModel.latestStates.put(
|
||||
@@ -209,9 +209,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_2G,
|
||||
UCentralConstants.BAND_5G }
|
||||
@@ -284,9 +284,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
TestUtils.createState(36, 20, 20, null, new int[] {})
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceA,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
dataModel.latestStates.put(
|
||||
deviceB,
|
||||
@@ -294,9 +294,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
TestUtils.createState(36, 20, 20, "", new int[] { -65 })
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceB,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
dataModel.latestStates.put(
|
||||
deviceC,
|
||||
@@ -310,9 +310,9 @@ public class MeasurementBasedApClientTPCTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
deviceC,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_5G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_5G)
|
||||
);
|
||||
|
||||
TPC optimizer = new MeasurementBasedApClientTPC(
|
||||
|
||||
@@ -78,9 +78,9 @@ public class RandomTxPowerInitializerTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
DEVICE_A,
|
||||
TestUtils.createDeviceCapability(
|
||||
TestUtils.createDeviceCapabilityPhy(
|
||||
new String[] {
|
||||
UCentralConstants.BAND_5G,
|
||||
UCentralConstants.BAND_2G }
|
||||
@@ -97,9 +97,9 @@ public class RandomTxPowerInitializerTest {
|
||||
)
|
||||
)
|
||||
);
|
||||
dataModel.latestDeviceCapabilities.put(
|
||||
dataModel.latestDeviceCapabilitiesPhy.put(
|
||||
DEVICE_B,
|
||||
TestUtils.createDeviceCapability(UCentralConstants.BAND_2G)
|
||||
TestUtils.createDeviceCapabilityPhy(UCentralConstants.BAND_2G)
|
||||
);
|
||||
return dataModel;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user