X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FChargingStationUtils.ts;h=ca9a93bce9a7c06f851cbea3e1af30c238931eb9;hb=ba62a535da8d31400787113da1f77282967abb65;hp=534a3786e210953acdbdede1c63e6846bb6618f7;hpb=1b271a549cfd1b8e678a56918f113ebc7c17f592;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStationUtils.ts b/src/charging-station/ChargingStationUtils.ts index 534a3786..ca9a93bc 100644 --- a/src/charging-station/ChargingStationUtils.ts +++ b/src/charging-station/ChargingStationUtils.ts @@ -4,31 +4,34 @@ import { fileURLToPath } from 'node:url'; import moment from 'moment'; -import type ChargingStation from './ChargingStation'; -import BaseError from '../exception/BaseError'; -import type { ChargingStationInfo } from '../types/ChargingStationInfo'; +import type { ChargingStation } from './internal'; +import { BaseError } from '../exception'; import { AmpereUnits, + type BootNotificationRequest, + BootReasonEnumType, + type ChargingProfile, + ChargingProfileKindType, + ChargingRateUnitType, + type ChargingSchedulePeriod, + type ChargingStationInfo, type ChargingStationTemplate, CurrentType, + type OCPP16BootNotificationRequest, + type OCPP20BootNotificationRequest, + OCPPVersion, + RecurrencyKindType, Voltage, -} from '../types/ChargingStationTemplate'; -import { ChargingProfileKindType, RecurrencyKindType } from '../types/ocpp/1.6/ChargingProfile'; -import type { OCPP16BootNotificationRequest } from '../types/ocpp/1.6/Requests'; -import { BootReasonEnumType, type OCPP20BootNotificationRequest } from '../types/ocpp/2.0/Requests'; +} from '../types'; import { - type ChargingProfile, - ChargingRateUnitType, - type ChargingSchedulePeriod, -} from '../types/ocpp/ChargingProfile'; -import { OCPPVersion } from '../types/ocpp/OCPPVersion'; -import type { BootNotificationRequest } from '../types/ocpp/Requests'; -import { WorkerProcessType } from '../types/Worker'; -import Configuration from '../utils/Configuration'; -import Constants from '../utils/Constants'; -import { ACElectricUtils, DCElectricUtils } from '../utils/ElectricUtils'; -import logger from '../utils/Logger'; -import Utils from '../utils/Utils'; + ACElectricUtils, + Configuration, + Constants, + DCElectricUtils, + Utils, + logger, +} from '../utils'; +import { WorkerProcessType } from '../worker'; const moduleName = 'ChargingStationUtils'; @@ -86,6 +89,14 @@ export class ChargingStationUtils { .digest('hex'); } + public static checkChargingStation(chargingStation: ChargingStation, logPrefix: string): boolean { + if (chargingStation.started === false && chargingStation.starting === false) { + logger.warn(`${logPrefix} charging station is stopped, cannot proceed`); + return false; + } + return true; + } + public static getTemplateMaxNumberOfConnectors(stationTemplate: ChargingStationTemplate): number { const templateConnectors = stationTemplate?.Connectors; if (!templateConnectors) { @@ -112,7 +123,7 @@ export class ChargingStationUtils { public static getConfiguredNumberOfConnectors(stationTemplate: ChargingStationTemplate): number { let configuredMaxConnectors: number; - if (Utils.isEmptyArray(stationTemplate.numberOfConnectors) === false) { + if (Utils.isNotEmptyArray(stationTemplate.numberOfConnectors) === true) { const numberOfConnectors = stationTemplate.numberOfConnectors as number[]; configuredMaxConnectors = numberOfConnectors[Math.floor(Utils.secureRandom() * numberOfConnectors.length)]; @@ -191,13 +202,13 @@ export class ChargingStationUtils { } public static workerPoolInUse(): boolean { - return [WorkerProcessType.DYNAMIC_POOL, WorkerProcessType.STATIC_POOL].includes( + return [WorkerProcessType.dynamicPool, WorkerProcessType.staticPool].includes( Configuration.getWorker().processType ); } public static workerDynamicPoolInUse(): boolean { - return Configuration.getWorker().processType === WorkerProcessType.DYNAMIC_POOL; + return Configuration.getWorker().processType === WorkerProcessType.dynamicPool; } public static warnDeprecatedTemplateKey( @@ -210,7 +221,7 @@ export class ChargingStationUtils { if (!Utils.isUndefined(template[key])) { logger.warn( `${logPrefix} Deprecated template key '${key}' usage in file '${templateFile}'${ - !Utils.isEmptyString(logMsgToAppend) && `. ${logMsgToAppend}` + Utils.isNotEmptyString(logMsgToAppend) && `. ${logMsgToAppend}` }` ); } @@ -268,15 +279,19 @@ export class ChargingStationUtils { upperCase: params.randomSerialNumberUpperCase, }) : ''; - stationInfo.chargePointSerialNumber = - !Utils.isEmptyString(stationTemplate?.chargePointSerialNumberPrefix) && - `${stationTemplate.chargePointSerialNumberPrefix}${serialNumberSuffix}`; - stationInfo.chargeBoxSerialNumber = - !Utils.isEmptyString(stationTemplate?.chargeBoxSerialNumberPrefix) && - `${stationTemplate.chargeBoxSerialNumberPrefix}${serialNumberSuffix}`; - stationInfo.meterSerialNumber = - !Utils.isEmptyString(stationTemplate?.meterSerialNumberPrefix) && - `${stationTemplate.meterSerialNumberPrefix}${serialNumberSuffix}`; + stationInfo.chargePointSerialNumber = Utils.isNotEmptyString( + stationTemplate?.chargePointSerialNumberPrefix + ) + ? `${stationTemplate.chargePointSerialNumberPrefix}${serialNumberSuffix}` + : undefined; + stationInfo.chargeBoxSerialNumber = Utils.isNotEmptyString( + stationTemplate?.chargeBoxSerialNumberPrefix + ) + ? `${stationTemplate.chargeBoxSerialNumberPrefix}${serialNumberSuffix}` + : undefined; + stationInfo.meterSerialNumber = Utils.isNotEmptyString(stationTemplate?.meterSerialNumberPrefix) + ? `${stationTemplate.meterSerialNumberPrefix}${serialNumberSuffix}` + : undefined; } public static propagateSerialNumber( @@ -334,7 +349,7 @@ export class ChargingStationUtils { .chargingProfiles.sort((a, b) => b.stackLevel - a.stackLevel) ); } - if (!Utils.isEmptyArray(chargingProfiles)) { + if (Utils.isNotEmptyArray(chargingProfiles)) { const result = ChargingStationUtils.getLimitFromChargingProfiles( chargingProfiles, chargingStation.logPrefix()