X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=olm%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Folm%2Fpower%2FPowerMgmtImpl.java;h=a000afb5e5373b68f5fa0b9ef83440b8fd6c69e2;hb=95e82b90f4afbbfc75b126236d0d011d0d015fb4;hp=9bd517d4f21ca5be519ebb28c4db37f31ef319b5;hpb=9a4b847a365d4241644f1e50825c35fc43777dac;p=transportpce.git 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 9bd517d4f..a000afb5e 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 @@ -8,6 +8,8 @@ package org.opendaylight.transportpce.olm.power; import java.math.BigDecimal; +import java.math.MathContext; +import java.math.RoundingMode; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -370,15 +372,17 @@ public class PowerMgmtImpl implements PowerMgmt { BigDecimal powerValue = spanLossTx.subtract(BigDecimal.valueOf(9)).min(BigDecimal.valueOf(2)); // we work at constant power spectral density (50 GHz channel width @-20dBm=37.5GHz) // 87.5 GHz channel width @-20dBm=75GHz - if (input.getWidth() != null) { - BigDecimal gridSize = input.getWidth().getValue(); - LOG.debug("Input Gridsize is {}",gridSize); - if (gridSize.equals(GridConstant.WIDTH_80)) { + if (input.getMcWidth() != null) { + LOG.debug("Input Gridsize is {}",input.getMcWidth().getValue()); + if (input.getMcWidth().getValue().equals(GridConstant.WIDTH_80)) { powerValue = powerValue.add(BigDecimal.valueOf(3)); + } else if (input.getMcWidth().getValue().equals(GridConstant.SLOT_WIDTH_87_5)) { + BigDecimal logVal = GridConstant.SLOT_WIDTH_87_5.divide(new BigDecimal(50)); + double pdsVal = 10 * Math.log10(logVal.doubleValue()); + powerValue = powerValue.add(new BigDecimal(pdsVal, new MathContext(3, RoundingMode.HALF_EVEN))); } - // TODO no default or warning for unsupported grid sizes ? } - // FIXME compliancy with OpenROADM MSA and approximations used + // FIXME compliancy with OpenROADM MSA and approximations used -- should be addressed with powermask update // cf JIRA ticket https://jira.opendaylight.org/browse/TRNSPRTPCE-494 LOG.info("Power Value is {}", powerValue); return powerValue;