From: Jonas MÃ¥rtensson Date: Sun, 31 May 2020 18:02:09 +0000 (+0200) Subject: Avoid converting spanloss to double when calculating target power value X-Git-Tag: 2.0.0~102 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;ds=sidebyside;h=ce2fcf8821fbcbe8a117c236041f4a338a19810c;p=transportpce.git Avoid converting spanloss to double when calculating target power value Currently spanloss is measured and set without any fractional digits. We would like to have one fractional digit but this creates problems because of the conversion to double when calculating target power resulting in the power value having more than the two fractional digits allowed by the yang module. This patch proposes to skip the conversion to double and only use BigDecimal to avoid the problem. The proposal to measure spanloss with one fractional digit will be submitted in a separate patch. Signed-off-by: Jonas MÃ¥rtensson Change-Id: Ibd13c991d43f2e94739710412e8edadcc0c537bf --- diff --git a/olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtImpl.java b/olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtImpl.java index 9b05e83a9..e8da5c3f8 100644 --- a/olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtImpl.java +++ b/olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtImpl.java @@ -260,7 +260,8 @@ public class PowerMgmtImpl implements PowerMgmt { "Power Value is null: spanLossTx null or out of openROADM range ]0,28] {}", spanLossTx); return false; } - BigDecimal powerValue = BigDecimal.valueOf(Math.min(spanLossTx.doubleValue() - 9, 2)); + BigDecimal powerValue = spanLossTx.subtract(BigDecimal.valueOf(9)); + powerValue = powerValue.min(BigDecimal.valueOf(2)); LOG.info("Power Value is {}", powerValue); try {