X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2F1.6%2FOCPP16ServiceUtils.ts;h=2a154e7b78e9dd26a6ebb2b300f968c7dba3f712;hb=32de5a575189d226213641f5ee36004f8454cb50;hp=7592713b3007b85994c458cf2602f0b349e885eb;hpb=7bc31f9cc53264cf4a55064d10c97898d1c903f0;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts b/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts index 7592713b..2a154e7b 100644 --- a/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts +++ b/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts @@ -1,10 +1,15 @@ // Partial Copyright Jerome Benoit. 2021. All Rights Reserved. -import { ACElectricUtils, DCElectricUtils } from '../../../utils/ElectricUtils'; +import OCPPError from '../../../exception/OCPPError'; import { CurrentType, Voltage } from '../../../types/ChargingStationTemplate'; import MeasurandPerPhaseSampledValueTemplates, { SampledValueTemplate, } from '../../../types/MeasurandPerPhaseSampledValueTemplates'; +import MeasurandValues from '../../../types/MeasurandValues'; +import { + OCPP16StandardParametersKey, + OCPP16SupportedFeatureProfiles, +} from '../../../types/ocpp/1.6/Configuration'; import { MeterValueContext, MeterValueLocation, @@ -18,19 +23,14 @@ import { OCPP16IncomingRequestCommand, OCPP16RequestCommand, } from '../../../types/ocpp/1.6/Requests'; -import { - OCPP16StandardParametersKey, - OCPP16SupportedFeatureProfiles, -} from '../../../types/ocpp/1.6/Configuration'; - -import type ChargingStation from '../../ChargingStation'; -import Constants from '../../../utils/Constants'; import { ErrorType } from '../../../types/ocpp/ErrorType'; -import MeasurandValues from '../../../types/MeasurandValues'; -import OCPPError from '../../../exception/OCPPError'; -import { OCPPServiceUtils } from '../OCPPServiceUtils'; -import Utils from '../../../utils/Utils'; +import Constants from '../../../utils/Constants'; +import { ACElectricUtils, DCElectricUtils } from '../../../utils/ElectricUtils'; import logger from '../../../utils/Logger'; +import Utils from '../../../utils/Utils'; +import type ChargingStation from '../../ChargingStation'; +import { ChargingStationUtils } from '../../ChargingStationUtils'; +import { OCPPServiceUtils } from '../OCPPServiceUtils'; export class OCPP16ServiceUtils extends OCPPServiceUtils { public static checkFeatureProfile( @@ -62,7 +62,8 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { }; const connector = chargingStation.getConnectorStatus(connectorId); // SoC measurand - const socSampledValueTemplate = chargingStation.getSampledValueTemplate( + const socSampledValueTemplate = ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.STATE_OF_CHARGE ); @@ -89,7 +90,8 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { } } // Voltage measurand - const voltageSampledValueTemplate = chargingStation.getSampledValueTemplate( + const voltageSampledValueTemplate = ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.VOLTAGE ); @@ -118,7 +120,8 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { ) { const phaseLineToNeutralValue = `L${phase}-N`; const voltagePhaseLineToNeutralSampledValueTemplate = - chargingStation.getSampledValueTemplate( + ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.VOLTAGE, phaseLineToNeutralValue as OCPP16MeterValuePhase @@ -152,7 +155,8 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { : chargingStation.getNumberOfPhases() }`; const voltagePhaseLineToLineSampledValueTemplate = - chargingStation.getSampledValueTemplate( + ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.VOLTAGE, phaseLineToLineValue as OCPP16MeterValuePhase @@ -187,24 +191,28 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { } } // Power.Active.Import measurand - const powerSampledValueTemplate = chargingStation.getSampledValueTemplate( + const powerSampledValueTemplate = ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.POWER_ACTIVE_IMPORT ); let powerPerPhaseSampledValueTemplates: MeasurandPerPhaseSampledValueTemplates = {}; if (chargingStation.getNumberOfPhases() === 3) { powerPerPhaseSampledValueTemplates = { - L1: chargingStation.getSampledValueTemplate( + L1: ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.POWER_ACTIVE_IMPORT, OCPP16MeterValuePhase.L1_N ), - L2: chargingStation.getSampledValueTemplate( + L2: ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.POWER_ACTIVE_IMPORT, OCPP16MeterValuePhase.L2_N ), - L3: chargingStation.getSampledValueTemplate( + L3: ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.POWER_ACTIVE_IMPORT, OCPP16MeterValuePhase.L3_N @@ -390,24 +398,28 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { } } // Current.Import measurand - const currentSampledValueTemplate = chargingStation.getSampledValueTemplate( + const currentSampledValueTemplate = ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.CURRENT_IMPORT ); let currentPerPhaseSampledValueTemplates: MeasurandPerPhaseSampledValueTemplates = {}; if (chargingStation.getNumberOfPhases() === 3) { currentPerPhaseSampledValueTemplates = { - L1: chargingStation.getSampledValueTemplate( + L1: ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.CURRENT_IMPORT, OCPP16MeterValuePhase.L1 ), - L2: chargingStation.getSampledValueTemplate( + L2: ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.CURRENT_IMPORT, OCPP16MeterValuePhase.L2 ), - L3: chargingStation.getSampledValueTemplate( + L3: ChargingStationUtils.getSampledValueTemplate( + chargingStation, connectorId, OCPP16MeterValueMeasurand.CURRENT_IMPORT, OCPP16MeterValuePhase.L3 @@ -594,7 +606,10 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { } } // Energy.Active.Import.Register measurand (default) - const energySampledValueTemplate = chargingStation.getSampledValueTemplate(connectorId); + const energySampledValueTemplate = ChargingStationUtils.getSampledValueTemplate( + chargingStation, + connectorId + ); if (energySampledValueTemplate) { OCPP16ServiceUtils.checkMeasurandPowerDivider( chargingStation, @@ -674,7 +689,10 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { sampledValue: [], }; // Energy.Active.Import.Register measurand (default) - const sampledValueTemplate = chargingStation.getSampledValueTemplate(connectorId); + const sampledValueTemplate = ChargingStationUtils.getSampledValueTemplate( + chargingStation, + connectorId + ); const unitDivider = sampledValueTemplate?.unit === MeterValueUnit.KILO_WATT_HOUR ? 1000 : 1; meterValue.sampledValue.push( OCPP16ServiceUtils.buildSampledValue( @@ -696,7 +714,10 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { sampledValue: [], }; // Energy.Active.Import.Register measurand (default) - const sampledValueTemplate = chargingStation.getSampledValueTemplate(connectorId); + const sampledValueTemplate = ChargingStationUtils.getSampledValueTemplate( + chargingStation, + connectorId + ); const unitDivider = sampledValueTemplate?.unit === MeterValueUnit.KILO_WATT_HOUR ? 1000 : 1; meterValue.sampledValue.push( OCPP16ServiceUtils.buildSampledValue( @@ -748,16 +769,16 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { chargingStation: ChargingStation, measurandType: OCPP16MeterValueMeasurand ): void { - if (Utils.isUndefined(chargingStation.stationInfo.powerDivider)) { + if (Utils.isUndefined(chargingStation.powerDivider)) { const errMsg = `${chargingStation.logPrefix()} MeterValues measurand ${ measurandType ?? OCPP16MeterValueMeasurand.ENERGY_ACTIVE_IMPORT_REGISTER }: powerDivider is undefined`; logger.error(errMsg); throw new OCPPError(ErrorType.INTERNAL_ERROR, errMsg, OCPP16RequestCommand.METER_VALUES); - } else if (chargingStation.stationInfo?.powerDivider <= 0) { + } else if (chargingStation?.powerDivider <= 0) { const errMsg = `${chargingStation.logPrefix()} MeterValues measurand ${ measurandType ?? OCPP16MeterValueMeasurand.ENERGY_ACTIVE_IMPORT_REGISTER - }: powerDivider have zero or below value ${chargingStation.stationInfo.powerDivider}`; + }: powerDivider have zero or below value ${chargingStation.powerDivider}`; logger.error(errMsg); throw new OCPPError(ErrorType.INTERNAL_ERROR, errMsg, OCPP16RequestCommand.METER_VALUES); }