Moving Power values to Double

Change-Id: I3529dffe017784487df31b56430e7b9fb9db0454
diff --git a/apps/roadm/app/src/main/java/org/onosproject/roadm/DistributedRoadmStore.java b/apps/roadm/app/src/main/java/org/onosproject/roadm/DistributedRoadmStore.java
index e13b2c7..cbe2927 100644
--- a/apps/roadm/app/src/main/java/org/onosproject/roadm/DistributedRoadmStore.java
+++ b/apps/roadm/app/src/main/java/org/onosproject/roadm/DistributedRoadmStore.java
@@ -39,15 +39,15 @@
 public class DistributedRoadmStore implements RoadmStore {
     private static Logger log = LoggerFactory.getLogger(DistributedRoadmStore.class);
 
-    private ConsistentMap<DeviceId, Map<PortNumber, Long>> distPowerMap;
-    private Map<DeviceId, Map<PortNumber, Long>> powerMap;
+    private ConsistentMap<DeviceId, Map<PortNumber, Double>> distPowerMap;
+    private Map<DeviceId, Map<PortNumber, Double>> powerMap;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected StorageService storageService;
 
     @Activate
     public void activate() {
-        distPowerMap = storageService.<DeviceId, Map<PortNumber, Long>>consistentMapBuilder()
+        distPowerMap = storageService.<DeviceId, Map<PortNumber, Double>>consistentMapBuilder()
                 .withName("onos-roadm-distributed-store")
                 .withSerializer(Serializer.using(KryoNamespaces.API))
                 .build();
@@ -77,8 +77,8 @@
 
 
     @Override
-    public void setTargetPower(DeviceId deviceId, PortNumber portNumber, long targetPower) {
-        Map<PortNumber, Long> portMap = powerMap.get(deviceId);
+    public void setTargetPower(DeviceId deviceId, PortNumber portNumber, double targetPower) {
+        Map<PortNumber, Double> portMap = powerMap.get(deviceId);
         if (portMap != null) {
             portMap.put(portNumber, targetPower);
             powerMap.put(deviceId, portMap);
@@ -88,8 +88,8 @@
     }
 
     @Override
-    public Long getTargetPower(DeviceId deviceId, PortNumber portNumber) {
-        Map<PortNumber, Long> portMap = powerMap.get(deviceId);
+    public Double getTargetPower(DeviceId deviceId, PortNumber portNumber) {
+        Map<PortNumber, Double> portMap = powerMap.get(deviceId);
         if (portMap != null) {
             return portMap.get(portNumber);
         }
diff --git a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmFlowViewMessageHandler.java b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmFlowViewMessageHandler.java
index c21841c..d53bb63 100644
--- a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmFlowViewMessageHandler.java
+++ b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmFlowViewMessageHandler.java
@@ -183,14 +183,14 @@
         private String getCurrentPower(DeviceId deviceId, ChannelData channelData) {
             if (hasAttenuation(deviceId, channelData)) {
                 // report channel power if channel exists
-                Long currentPower = roadmService.getCurrentChannelPower(deviceId,
+                Double currentPower = roadmService.getCurrentChannelPower(deviceId,
                         channelData.outPort(), channelData.ochSignal());
                 return RoadmUtil.objectToString(currentPower, RoadmUtil.UNKNOWN);
             }
             // otherwise, report port power
             Type devType = deviceService.getDevice(deviceId).type();
             PortNumber port = devType == Type.FIBER_SWITCH ? channelData.inPort() : channelData.outPort();
-            Long currentPower = roadmService.getCurrentPortPower(deviceId, port);
+            Double currentPower = roadmService.getCurrentPortPower(deviceId, port);
             return RoadmUtil.objectToString(currentPower, RoadmUtil.UNKNOWN);
         }
 
@@ -199,7 +199,7 @@
             if (signal == null) {
                 return RoadmUtil.NA;
             }
-            Long attenuation = roadmService.getAttenuation(deviceId, channelData.outPort(), signal);
+            Double attenuation = roadmService.getAttenuation(deviceId, channelData.outPort(), signal);
             return RoadmUtil.objectToString(attenuation, RoadmUtil.UNKNOWN);
         }
 
@@ -236,8 +236,8 @@
             ChannelData channelData = ChannelData.fromFlow(entry);
             PortNumber port = channelData.outPort();
             OchSignal signal = channelData.ochSignal();
-            Range<Long> range = roadmService.attenuationRange(deviceId, port, signal);
-            Long attenuation = payload.get(ATTENUATION).asLong();
+            Range<Double> range = roadmService.attenuationRange(deviceId, port, signal);
+            Double attenuation = payload.get(ATTENUATION).asDouble();
             boolean validAttenuation = range != null && range.contains(attenuation);
             if (validAttenuation) {
                 roadmService.setAttenuation(deviceId, port, signal, attenuation);
@@ -315,7 +315,7 @@
             ChannelSpacing spacing = channelSpacing((int) number(chNode, CHANNEL_SPACING_INDEX));
             int multiplier = (int) number(flowNode, CHANNEL_MULTIPLIER);
             OchSignal och = OchSignal.newDwdmSlot(spacing, multiplier);
-            long att = number(flowNode, ATTENUATION);
+            double att = number(flowNode, ATTENUATION);
 
             boolean showItems = deviceService.getDevice(did).type() != Type.FIBER_SWITCH;
             boolean validInPort = roadmService.validInputPort(did, inPort);
@@ -355,7 +355,7 @@
 
                 // Construct error for attenuation
                 if (!validAttenuation) {
-                    Range<Long> range = roadmService.attenuationRange(did, outPort, och);
+                    Range<Double> range = roadmService.attenuationRange(did, outPort, och);
                     if (range != null) {
                         attenuationMessage = String.format(ATTENUATION_ERR_MSG, range.toString());
                     }
diff --git a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmManager.java b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmManager.java
index 7f1a559..191f608 100644
--- a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmManager.java
+++ b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmManager.java
@@ -189,7 +189,7 @@
 
 
     @Override
-    public void setTargetPortPower(DeviceId deviceId, PortNumber portNumber, long power) {
+    public void setTargetPortPower(DeviceId deviceId, PortNumber portNumber, double power) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
@@ -202,11 +202,11 @@
     }
 
     @Override
-    public Long getTargetPortPower(DeviceId deviceId, PortNumber portNumber) {
+    public Double getTargetPortPower(DeviceId deviceId, PortNumber portNumber) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         // Request target port power when it doesn't exist. Inactive updating mode.
-        Long power = roadmStore.getTargetPower(deviceId, portNumber);
+        Double power = roadmStore.getTargetPower(deviceId, portNumber);
         if (power == null) {
             return syncTargetPortPower(deviceId, portNumber);
         }
@@ -214,12 +214,12 @@
     }
 
     @Override
-    public Long syncTargetPortPower(DeviceId deviceId, PortNumber portNumber) {
+    public Double syncTargetPortPower(DeviceId deviceId, PortNumber portNumber) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Long> pl = powerConfig.getTargetPower(portNumber, Direction.ALL);
+            Optional<Double> pl = powerConfig.getTargetPower(portNumber, Direction.ALL);
             if (pl.isPresent()) {
                 roadmStore.setTargetPower(deviceId, portNumber, pl.get());
                 return pl.get();
@@ -232,7 +232,7 @@
 
     @Override
     public void setAttenuation(DeviceId deviceId, PortNumber portNumber,
-                               OchSignal ochSignal, long attenuation) {
+                               OchSignal ochSignal, double attenuation) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         checkNotNull(ochSignal);
@@ -246,13 +246,13 @@
     }
 
     @Override
-    public Long getAttenuation(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal) {
+    public Double getAttenuation(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         checkNotNull(ochSignal);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Long> attenuation = powerConfig.getTargetPower(portNumber, ochSignal);
+            Optional<Double> attenuation = powerConfig.getTargetPower(portNumber, ochSignal);
             if (attenuation.isPresent()) {
                 return attenuation.get();
             }
@@ -261,12 +261,12 @@
     }
 
     @Override
-    public Long getCurrentPortPower(DeviceId deviceId, PortNumber portNumber) {
+    public Double getCurrentPortPower(DeviceId deviceId, PortNumber portNumber) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Long> currentPower = powerConfig.currentPower(portNumber, Direction.ALL);
+            Optional<Double> currentPower = powerConfig.currentPower(portNumber, Direction.ALL);
             if (currentPower.isPresent()) {
                 return currentPower.get();
             }
@@ -275,13 +275,13 @@
     }
 
     @Override
-    public Long getCurrentChannelPower(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal) {
+    public Double getCurrentChannelPower(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         checkNotNull(ochSignal);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Long> currentPower = powerConfig.currentPower(portNumber, ochSignal);
+            Optional<Double> currentPower = powerConfig.currentPower(portNumber, ochSignal);
             if (currentPower.isPresent()) {
                 return currentPower.get();
             }
@@ -375,8 +375,8 @@
 
     @Override
     public FlowId createConnection(DeviceId deviceId, int priority, boolean isPermanent,
-                                   int timeout, PortNumber inPort, PortNumber outPort,
-                                   OchSignal ochSignal, long attenuation) {
+                                 int timeout, PortNumber inPort, PortNumber outPort,
+                                 OchSignal ochSignal, Double attenuation) {
         checkNotNull(deviceId);
         checkNotNull(inPort);
         checkNotNull(outPort);
@@ -404,32 +404,32 @@
         checkNotNull(portNumber);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Range<Long>> range = powerConfig.getTargetPowerRange(portNumber, Direction.ALL);
+            Optional<Range<Double>> range = powerConfig.getTargetPowerRange(portNumber, Direction.ALL);
             return range.isPresent();
         }
         return false;
     }
 
     @Override
-    public boolean portTargetPowerInRange(DeviceId deviceId, PortNumber portNumber, long power) {
+    public boolean portTargetPowerInRange(DeviceId deviceId, PortNumber portNumber, double power) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Range<Long>> range = powerConfig.getTargetPowerRange(portNumber, Direction.ALL);
+            Optional<Range<Double>> range = powerConfig.getTargetPowerRange(portNumber, Direction.ALL);
             return range.isPresent() && range.get().contains(power);
         }
         return false;
     }
 
     @Override
-    public boolean attenuationInRange(DeviceId deviceId, PortNumber outPort, long att) {
+    public boolean attenuationInRange(DeviceId deviceId, PortNumber outPort, double att) {
         checkNotNull(deviceId);
         checkNotNull(outPort);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
             OchSignal stubOch = OchSignal.newDwdmSlot(ChannelSpacing.CHL_50GHZ, 0);
-            Optional<Range<Long>> range = powerConfig.getTargetPowerRange(outPort, stubOch);
+            Optional<Range<Double>> range = powerConfig.getTargetPowerRange(outPort, stubOch);
             return range.isPresent() && range.get().contains(att);
         }
         return false;
@@ -441,7 +441,7 @@
         checkNotNull(portNumber);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Range<Long>> range = powerConfig.getInputPowerRange(portNumber, Direction.ALL);
+            Optional<Range<Double>> range = powerConfig.getInputPowerRange(portNumber, Direction.ALL);
             return range.isPresent();
         }
         return false;
@@ -486,12 +486,12 @@
     }
 
     @Override
-    public Range<Long> targetPortPowerRange(DeviceId deviceId, PortNumber portNumber) {
+    public Range<Double> targetPortPowerRange(DeviceId deviceId, PortNumber portNumber) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Range<Long>> range = powerConfig.getTargetPowerRange(portNumber, Direction.ALL);
+            Optional<Range<Double>> range = powerConfig.getTargetPowerRange(portNumber, Direction.ALL);
             if (range.isPresent()) {
                 return range.get();
             }
@@ -500,13 +500,13 @@
     }
 
     @Override
-    public Range<Long> attenuationRange(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal) {
+    public Range<Double> attenuationRange(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         checkNotNull(ochSignal);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Range<Long>> range = powerConfig.getTargetPowerRange(portNumber, ochSignal);
+            Optional<Range<Double>> range = powerConfig.getTargetPowerRange(portNumber, ochSignal);
             if (range.isPresent()) {
                 return range.get();
             }
@@ -515,12 +515,12 @@
     }
 
     @Override
-    public Range<Long> inputPortPowerRange(DeviceId deviceId, PortNumber portNumber) {
+    public Range<Double> inputPortPowerRange(DeviceId deviceId, PortNumber portNumber) {
         checkNotNull(deviceId);
         checkNotNull(portNumber);
         PowerConfig<Object> powerConfig = getPowerConfig(deviceId);
         if (powerConfig != null) {
-            Optional<Range<Long>> range = powerConfig.getInputPowerRange(portNumber, Direction.ALL);
+            Optional<Range<Double>> range = powerConfig.getInputPowerRange(portNumber, Direction.ALL);
             if (range.isPresent()) {
                 return range.get();
             }
@@ -588,13 +588,13 @@
             return;
         }
 
-        Optional<Range<Long>> range = powerConfig.getTargetPowerRange(portNumber, Direction.ALL);
+        Optional<Range<Double>> range = powerConfig.getTargetPowerRange(portNumber, Direction.ALL);
         if (!range.isPresent()) {
             log.warn("No target power range found for port {} on device {}", portNumber, deviceId);
             return;
         }
 
-        Long power = roadmStore.getTargetPower(deviceId, portNumber);
+        Double power = roadmStore.getTargetPower(deviceId, portNumber);
         if (power == null) {
             // Set default to middle of the range
             power = (range.get().lowerEndpoint() + range.get().upperEndpoint()) / 2;
@@ -615,9 +615,9 @@
 
         List<Port> ports = deviceService.getPorts(deviceId);
         for (Port port : ports) {
-            Optional<Range<Long>> range = powerConfig.getTargetPowerRange(port.number(), Direction.ALL);
+            Optional<Range<Double>> range = powerConfig.getTargetPowerRange(port.number(), Direction.ALL);
             if (range.isPresent()) {
-                Long power = roadmStore.getTargetPower(deviceId, port.number());
+                Double power = roadmStore.getTargetPower(deviceId, port.number());
                 if (power == null) {
                     // Set default to middle of the range
                     power = (range.get().lowerEndpoint() + range.get().upperEndpoint()) / 2;
@@ -633,7 +633,7 @@
     // Delay the call to setTargetPower because the flow may not be in the store yet
     // Tested with Lumentum ROADM-20 1 seconds was not enough, increased to 5 seconds
     private void delayedSetAttenuation(DeviceId deviceId, PortNumber outPort,
-                                       OchSignal ochSignal, long attenuation) {
+                                       OchSignal ochSignal, Double attenuation) {
         Runnable setAtt = () -> {
             try {
                 TimeUnit.SECONDS.sleep(5);
diff --git a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
index f0d0183..54d1a59 100644
--- a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
+++ b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
@@ -204,7 +204,7 @@
         // If the port is RX direction then acquire the input power range from driver.
         // Otherwise there will be a TX direction port, thus acquire the target power range.
         private String getPowerRange(DeviceId deviceId, PortNumber portNumber) {
-            Range<Long> range = roadmService.inputPortPowerRange(deviceId, portNumber);
+            Range<Double> range = roadmService.inputPortPowerRange(deviceId, portNumber);
             if (range == null) {
                 range = roadmService.targetPortPowerRange(deviceId, portNumber);
             }
@@ -213,7 +213,7 @@
 
         // Returns the current power as a string, Unknown if no value can be found.
         private String getCurrentPower(DeviceId deviceId, PortNumber portNumber) {
-            Long currentPower = roadmService.getCurrentPortPower(deviceId, portNumber);
+            Double currentPower = roadmService.getCurrentPortPower(deviceId, portNumber);
             return RoadmUtil.objectToString(currentPower, RoadmUtil.UNKNOWN);
         }
 
@@ -223,7 +223,7 @@
             if (!roadmService.hasPortTargetPower(deviceId, portNumber)) {
                 return RoadmUtil.NA;
             }
-            Long targetPower = roadmService.getTargetPortPower(deviceId, portNumber);
+            Double targetPower = roadmService.getTargetPortPower(deviceId, portNumber);
             return RoadmUtil.objectToString(targetPower, RoadmUtil.UNKNOWN);
         }
 
@@ -253,12 +253,12 @@
         public void process(ObjectNode payload) {
             DeviceId deviceId = DeviceId.deviceId(string(payload, RoadmUtil.DEV_ID));
             PortNumber portNumber = PortNumber.portNumber(payload.get(ID).asLong());
-            Range<Long> range = roadmService.targetPortPowerRange(deviceId, portNumber);
+            Range<Double> range = roadmService.targetPortPowerRange(deviceId, portNumber);
             if (range == null) {
                 log.warn("Unable to determine target power range for device {}", deviceId);
                 return;
             }
-            Long targetPower = payload.get(TARGET_POWER).asLong();
+            Double targetPower = payload.get(TARGET_POWER).asDouble();
             boolean validTargetPower = range.contains(targetPower);
             if (validTargetPower) {
                 roadmService.setTargetPortPower(deviceId, portNumber, targetPower);
@@ -284,7 +284,7 @@
         public void process(ObjectNode payload) {
             DeviceId deviceId = DeviceId.deviceId(string(payload, RoadmUtil.DEV_ID));
             PortNumber portNumber = PortNumber.portNumber(payload.get(ID).asLong());
-            Long targetPower = roadmService.syncTargetPortPower(deviceId, portNumber);
+            Double targetPower = roadmService.syncTargetPortPower(deviceId, portNumber);
             String power = RoadmUtil.objectToString(targetPower, RoadmUtil.UNKNOWN);
             ObjectNode rootNode = objectNode();
             rootNode.put(ID, payload.get(ID).asText())
diff --git a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmService.java b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmService.java
index d116391..7662626 100644
--- a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmService.java
+++ b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmService.java
@@ -91,7 +91,7 @@
      * @param portNumber PortNumber of the port to configure
      * @param power value to set target power to
      */
-    void setTargetPortPower(DeviceId deviceId, PortNumber portNumber, long power);
+    void setTargetPortPower(DeviceId deviceId, PortNumber portNumber, double power);
 
     /**
      * Returns the target power stored in storage for a port if the port has configurable target power.
@@ -100,7 +100,7 @@
      * @param portNumber PortNumber of the port to configure
      * @return the target power if the port has a target power, null otherwise
      */
-    Long getTargetPortPower(DeviceId deviceId, PortNumber portNumber);
+    Double getTargetPortPower(DeviceId deviceId, PortNumber portNumber);
 
     /**
      * Sync-up the target power for a port if the operator want to check the configuration.
@@ -108,7 +108,7 @@
      * @param portNumber PortNumber of the port to configure
      * @return the target power if the port has a target power, null otherwise
      */
-    Long syncTargetPortPower(DeviceId deviceId, PortNumber portNumber);
+    Double syncTargetPortPower(DeviceId deviceId, PortNumber portNumber);
 
     /**
      * Sets the attenuation of a connection. This does not check that attenuation
@@ -119,7 +119,7 @@
      * @param ochSignal channel to set attenuation for
      * @param attenuation attenuation value to set to
      */
-    void setAttenuation(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal, long attenuation);
+    void setAttenuation(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal, double attenuation);
 
     /**
      * Returns the attenuation of a connection.
@@ -129,7 +129,7 @@
      * @param ochSignal channel to search for
      * @return attenuation if found, null otherwise
      */
-    Long getAttenuation(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal);
+    Double getAttenuation(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal);
 
     /**
      * Returns the current port power.
@@ -138,7 +138,7 @@
      * @param portNumber PortNumber of the port
      * @return current power if found, null otherwise
      */
-    Long getCurrentPortPower(DeviceId deviceId, PortNumber portNumber);
+    Double getCurrentPortPower(DeviceId deviceId, PortNumber portNumber);
 
     /**
      * Returns the current channel power.
@@ -148,7 +148,7 @@
      * @param ochSignal channel to search for
      * @return channel power if found, null otherwise
      */
-    Long getCurrentChannelPower(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal);
+    Double getCurrentChannelPower(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal);
 
     /**
      * Returns the channels supported by a port.
@@ -217,7 +217,7 @@
      */
     FlowId createConnection(DeviceId deviceId, int priority, boolean isPermanent,
                           int timeout, PortNumber inPort, PortNumber outPort,
-                          OchSignal ochSignal, long attenuation);
+                          OchSignal ochSignal, Double attenuation);
 
     /**
      * Removes an internal connection from a device by matching the FlowId and
@@ -250,7 +250,7 @@
      * @return true if value is within the acceptable target power range, false
      * otherwise
      */
-    boolean portTargetPowerInRange(DeviceId deviceId, PortNumber portNumber, long power);
+    boolean portTargetPowerInRange(DeviceId deviceId, PortNumber portNumber, double power);
 
     /**
      * Returns true if value is within the acceptable attenuation range of a
@@ -264,7 +264,7 @@
      * @return true if value is within the acceptable attenuation range, false
      * otherwise
      */
-    boolean attenuationInRange(DeviceId deviceId, PortNumber portNumber, long att);
+    boolean attenuationInRange(DeviceId deviceId, PortNumber portNumber, double att);
 
     /**
      * Returns true if the port is an input port.
@@ -324,7 +324,7 @@
      * @param portNumber PortNumber of the port
      * @return range if found, null otherwise
      */
-    Range<Long> targetPortPowerRange(DeviceId deviceId, PortNumber portNumber);
+    Range<Double> targetPortPowerRange(DeviceId deviceId, PortNumber portNumber);
 
     /**
      * Returns the acceptable attenuation range for a connection.
@@ -334,7 +334,7 @@
      * @param ochSignal channel to check
      * @return range if found, null otherwise
      */
-    Range<Long> attenuationRange(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal);
+    Range<Double> attenuationRange(DeviceId deviceId, PortNumber portNumber, OchSignal ochSignal);
 
     /**
      * Returns the expected input power range for an input port.
@@ -343,5 +343,5 @@
      * @param portNumber PortNumber of an input port
      * @return range if found, null otherwise
      */
-    Range<Long> inputPortPowerRange(DeviceId deviceId, PortNumber portNumber);
+    Range<Double> inputPortPowerRange(DeviceId deviceId, PortNumber portNumber);
 }
diff --git a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmStore.java b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmStore.java
index 6c7abac..764131b 100644
--- a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmStore.java
+++ b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmStore.java
@@ -52,7 +52,7 @@
      * @param portNumber PortNumber of the port
      * @param targetPower target port power to store
      */
-    void setTargetPower(DeviceId deviceId, PortNumber portNumber, long targetPower);
+    void setTargetPower(DeviceId deviceId, PortNumber portNumber, double targetPower);
 
     /**
      * Returns the targetPower for a port on a device. The device needs to be added
@@ -63,7 +63,7 @@
      * @param portNumber PortNumber of the port
      * @return target power if target power has already been set, null otherwise
      */
-    Long getTargetPower(DeviceId deviceId, PortNumber portNumber);
+    Double getTargetPower(DeviceId deviceId, PortNumber portNumber);
 
     /**
      * Remove the targetPower for a port on a device. The power value is removed,