X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FChargingStationUtils.ts;h=033fc4b36f79647746106169fe462834d241e463;hb=933e253b07b60f598e94a40cb817e334fb0f1995;hp=a329eb53c9383cefce2a7aca2c2c788c29ba88ce;hpb=e1893686e24bb1abad28b19da833576b1d0e49db;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStationUtils.ts b/src/charging-station/ChargingStationUtils.ts index a329eb53..033fc4b3 100644 --- a/src/charging-station/ChargingStationUtils.ts +++ b/src/charging-station/ChargingStationUtils.ts @@ -1,4 +1,5 @@ import crypto from 'node:crypto'; +import type EventEmitter from 'node:events'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -18,6 +19,7 @@ import { type ChargingSchedulePeriod, type ChargingStationInfo, type ChargingStationTemplate, + ChargingStationWorkerMessageEvents, ConnectorPhaseRotation, type ConnectorStatus, ConnectorStatusEnum, @@ -161,18 +163,10 @@ export class ChargingStationUtils { throw new BaseError(errorMsg); } if (Utils.isEmptyObject(stationTemplate.AutomaticTransactionGenerator)) { - stationTemplate.AutomaticTransactionGenerator = { - enable: false, - minDuration: 60, - maxDuration: 120, - minDelayBetweenTwoTransactions: 15, - maxDelayBetweenTwoTransactions: 30, - probabilityOfStart: 1, - stopAfterHours: 0.3, - stopOnConnectionFailure: true, - }; + stationTemplate.AutomaticTransactionGenerator = Constants.DEFAULT_ATG_CONFIGURATION; logger.warn( - `${logPrefix} Empty automatic transaction generator configuration from template file ${templateFile}, set to default values` + `${logPrefix} Empty automatic transaction generator configuration from template file ${templateFile}, set to default: %j`, + Constants.DEFAULT_ATG_CONFIGURATION ); } if ( @@ -547,6 +541,25 @@ export class ChargingStationUtils { ); } + public static waitForChargingStationEvents = async ( + emitter: EventEmitter, + event: ChargingStationWorkerMessageEvents, + eventsToWait: number + ): Promise => { + return new Promise((resolve) => { + let events = 0; + if (eventsToWait === 0) { + resolve(events); + } + emitter.on(event, () => { + ++events; + if (events === eventsToWait) { + resolve(events); + } + }); + }); + }; + private static getConfiguredNumberOfConnectors(stationTemplate: ChargingStationTemplate): number { let configuredMaxConnectors: number; if (Utils.isNotEmptyArray(stationTemplate.numberOfConnectors) === true) {