X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FAutomaticTransactionGenerator.ts;h=ccc30d0c88dd9a0058b8d22a54948c6dab009db3;hb=2f79b4478e28ed922581029adf341210da6149b4;hp=a2854507d98b452d3ea92389e877ed49f6039978;hpb=071a9315b94fb1c6f7996ca71e42794ac9ff9f82;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/AutomaticTransactionGenerator.ts b/src/charging-station/AutomaticTransactionGenerator.ts index a2854507..ccc30d0c 100644 --- a/src/charging-station/AutomaticTransactionGenerator.ts +++ b/src/charging-station/AutomaticTransactionGenerator.ts @@ -11,8 +11,8 @@ import logger from '../utils/Logger'; export default class AutomaticTransactionGenerator { public started: boolean; - private chargingStation: ChargingStation; - private connectorsStatus: Map; + private readonly chargingStation: ChargingStation; + private readonly connectorsStatus: Map; constructor(chargingStation: ChargingStation) { this.chargingStation = chargingStation; @@ -40,8 +40,10 @@ export default class AutomaticTransactionGenerator { } private startConnectors(): void { - for (const connector in this.chargingStation.connectors) { - const connectorId = Utils.convertToInt(connector); + if (this.connectorsStatus?.size > 0 && this.connectorsStatus.size !== this.chargingStation.getNumberOfConnectors()) { + this.connectorsStatus.clear(); + } + for (const connectorId of this.chargingStation.connectors.keys()) { if (connectorId > 0) { this.startConnector(connectorId); } @@ -49,8 +51,7 @@ export default class AutomaticTransactionGenerator { } private stopConnectors(): void { - for (const connector in this.chargingStation.connectors) { - const connectorId = Utils.convertToInt(connector); + for (const connectorId of this.chargingStation.connectors.keys()) { if (connectorId > 0) { this.stopConnector(connectorId); } @@ -103,11 +104,11 @@ export default class AutomaticTransactionGenerator { // Wait until end of transaction const waitTrxEnd = Utils.getRandomInteger(this.chargingStation.stationInfo.AutomaticTransactionGenerator.maxDuration, this.chargingStation.stationInfo.AutomaticTransactionGenerator.minDuration) * 1000; - logger.info(this.logPrefix(connectorId) + ' transaction ' + this.chargingStation.getConnector(connectorId).transactionId.toString() + ' started and will stop in ' + Utils.formatDurationMilliSeconds(waitTrxEnd)); + logger.info(this.logPrefix(connectorId) + ' transaction ' + this.chargingStation.getConnectorStatus(connectorId).transactionId.toString() + ' started and will stop in ' + Utils.formatDurationMilliSeconds(waitTrxEnd)); this.connectorsStatus.get(connectorId).acceptedStartTransactionRequests++; await Utils.sleep(waitTrxEnd); // Stop transaction - logger.info(this.logPrefix(connectorId) + ' stop transaction ' + this.chargingStation.getConnector(connectorId).transactionId.toString()); + logger.info(this.logPrefix(connectorId) + ' stop transaction ' + this.chargingStation.getConnectorStatus(connectorId).transactionId.toString()); await this.stopTransaction(connectorId); } } else { @@ -193,8 +194,8 @@ export default class AutomaticTransactionGenerator { const beginId = PerformanceStatistics.beginMeasure(measureId); let transactionId = 0; let stopResponse: StopTransactionResponse; - if (this.chargingStation.getConnector(connectorId)?.transactionStarted) { - transactionId = this.chargingStation.getConnector(connectorId).transactionId; + if (this.chargingStation.getConnectorStatus(connectorId)?.transactionStarted) { + transactionId = this.chargingStation.getConnectorStatus(connectorId).transactionId; stopResponse = await this.chargingStation.ocppRequestService.sendStopTransaction(transactionId, this.chargingStation.getEnergyActiveImportRegisterByTransactionId(transactionId), this.chargingStation.getTransactionIdTag(transactionId),