Skip to content

Commit

Permalink
fix(nm): Fixed SupportedCapabilities in Modem status (#5485)
Browse files Browse the repository at this point in the history
* Fixed ModemSupportedCapabilities

Signed-off-by: pierantoniomerlino <[email protected]>

* Fixed test

Signed-off-by: pierantoniomerlino <[email protected]>

---------

Signed-off-by: pierantoniomerlino <[email protected]>
  • Loading branch information
pierantoniomerlino authored Oct 25, 2024
1 parent cdea82a commit 6e2460e
Show file tree
Hide file tree
Showing 5 changed files with 147 additions and 111 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2023 Eurotech and/or its affiliates and others
* Copyright (c) 2023, 2024 Eurotech and/or its affiliates and others
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
Expand All @@ -12,8 +12,10 @@
******************************************************************************/
package org.eclipse.kura.net.status.modem;

import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
Expand All @@ -39,7 +41,7 @@ public class ModemInterfaceStatus extends NetworkInterfaceStatus {
private final String hardwareRevision;
private final String primaryPort;
private final Map<String, ModemPortType> ports;
private final Set<ModemCapability> supportedModemCapabilities;
private final List<Set<ModemCapability>> supportedModemCapabilities;
private final Set<ModemCapability> currentModemCapabilities;
private final ModemPowerState powerState;
private final Set<ModemModePair> supportedModes;
Expand Down Expand Up @@ -117,7 +119,24 @@ public Map<String, ModemPortType> getPorts() {
return this.ports;
}

/**
* @deprecated use {@link ModemInterfaceStatus#getAllSupportedModemCapabilities()} instead.
* This method returns only the first ModemCapability if any.
* @since 2.8
*/
@Deprecated
public Set<ModemCapability> getSupportedModemCapabilities() {
if (!this.supportedModemCapabilities.isEmpty()) {
return this.supportedModemCapabilities.get(0);
} else {
return new HashSet<ModemCapability>();
}
}

/**
* @since 2.8
*/
public List<Set<ModemCapability>> getAllSupportedModemCapabilities() {
return this.supportedModemCapabilities;
}

Expand Down Expand Up @@ -210,7 +229,7 @@ public static class ModemInterfaceStatusBuilder extends NetworkInterfaceStatusBu
private String hardwareRevision = NA;
private String primaryPort = NA;
private Map<String, ModemPortType> ports = Collections.emptyMap();
private Set<ModemCapability> supportedModemCapabilities = EnumSet.of(ModemCapability.NONE);
private List<Set<ModemCapability>> supportedModemCapabilities = new ArrayList<>();
private Set<ModemCapability> currentModemCapabilities = EnumSet.of(ModemCapability.NONE);
private ModemPowerState powerState = ModemPowerState.UNKNOWN;
private Set<ModemModePair> supportedModes = Collections.emptySet();
Expand Down Expand Up @@ -265,8 +284,26 @@ public ModemInterfaceStatusBuilder withPorts(Map<String, ModemPortType> ports) {
return getThis();
}

/**
* @deprecated To add all the supported capabilities, call this method multiple times with every set of
* ModemCapability.
* Instead use
* {@link ModemInterfaceStatus#withAllSupportedModemCapabilities(List<Set<ModemCapability>>
* supportedModemCapabilities)} to add the ModemCapabilities all at once.
* @since 2.8
*/
@Deprecated
public ModemInterfaceStatusBuilder withSupportedModemCapabilities(
Set<ModemCapability> supportedModemCapabilities) {
this.supportedModemCapabilities.add(supportedModemCapabilities);
return getThis();
}

/**
* @since 2.8
*/
public ModemInterfaceStatusBuilder withAllSupportedModemCapabilities(
List<Set<ModemCapability>> supportedModemCapabilities) {
this.supportedModemCapabilities = supportedModemCapabilities;
return getThis();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -610,7 +609,7 @@ private static void setModemStatus(ModemInterfaceStatusBuilder builder, Optional
builder.withHardwareRevision(properties.Get(MM_MODEM_BUS_NAME, "HardwareRevision"));
builder.withPrimaryPort(properties.Get(MM_MODEM_BUS_NAME, "PrimaryPort"));
builder.withPorts(getPorts(properties));
builder.withSupportedModemCapabilities(getModemSupportedCapabilities(properties));
builder.withAllSupportedModemCapabilities(getModemSupportedCapabilities(properties));
builder.withCurrentModemCapabilities(getModemCurrentCapabilities(properties));
builder.withPowerState(
MMModemPowerState.toModemPowerState(properties.Get(MM_MODEM_BUS_NAME, "PowerState")));
Expand Down Expand Up @@ -648,10 +647,11 @@ private static Map<String, ModemPortType> getPorts(Properties properties) {
return ports;
}

private static Set<ModemCapability> getModemSupportedCapabilities(Properties properties) {
EnumSet<ModemCapability> modemCapabilities = EnumSet.noneOf(ModemCapability.class);
private static List<Set<ModemCapability>> getModemSupportedCapabilities(Properties properties) {
List<Set<ModemCapability>> modemCapabilities = new ArrayList<>();
List<UInt32> capabilities = properties.Get(MM_MODEM_BUS_NAME, "SupportedCapabilities");
capabilities.forEach(capability -> modemCapabilities.add(MMModemCapability.toModemCapability(capability)));
capabilities.forEach(
capability -> modemCapabilities.add(MMModemCapability.toModemCapabilitiesFromBitMask(capability)));
return modemCapabilities;
}

Expand Down
Loading

0 comments on commit 6e2460e

Please sign in to comment.