X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcharging-station%2FAutomaticTransactionGenerator.ts;h=0e081f7750011a095c5fe8a8917fa1aa8e099c90;hb=d9c13bcac891b8686dbba36ae5c10f87948e3614;hp=40b7c7818a7731c3ea56dac4d81986a689ddc6b9;hpb=4c3f6c20f9416e148a3d26b6a06acc13274ab469;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/AutomaticTransactionGenerator.ts b/src/charging-station/AutomaticTransactionGenerator.ts index 40b7c781..0e081f77 100644 --- a/src/charging-station/AutomaticTransactionGenerator.ts +++ b/src/charging-station/AutomaticTransactionGenerator.ts @@ -1,5 +1,7 @@ // Partial Copyright Jerome Benoit. 2021-2024. All Rights Reserved. +import { randomInt } from 'node:crypto' + import { hoursToMilliseconds, secondsToMilliseconds } from 'date-fns' import { BaseError } from '../exception/index.js' @@ -18,7 +20,6 @@ import { Constants, convertToDate, formatDurationMilliSeconds, - getRandomInteger, isValidDate, logger, logPrefix, @@ -199,11 +200,11 @@ export class AutomaticTransactionGenerator { break } const wait = secondsToMilliseconds( - getRandomInteger( + randomInt( this.chargingStation.getAutomaticTransactionGeneratorConfiguration() - ?.maxDelayBetweenTwoTransactions, + ?.minDelayBetweenTwoTransactions, this.chargingStation.getAutomaticTransactionGeneratorConfiguration() - ?.minDelayBetweenTwoTransactions + ?.maxDelayBetweenTwoTransactions ) ) logger.info(`${this.logPrefix(connectorId)} waiting for ${formatDurationMilliSeconds(wait)}`) @@ -221,9 +222,9 @@ export class AutomaticTransactionGenerator { if (startResponse?.idTagInfo.status === AuthorizationStatus.ACCEPTED) { // Wait until end of transaction const waitTrxEnd = secondsToMilliseconds( - getRandomInteger( - this.chargingStation.getAutomaticTransactionGeneratorConfiguration()?.maxDuration, - this.chargingStation.getAutomaticTransactionGeneratorConfiguration()?.minDuration + randomInt( + this.chargingStation.getAutomaticTransactionGeneratorConfiguration()?.minDuration, + this.chargingStation.getAutomaticTransactionGeneratorConfiguration()?.maxDuration ) ) logger.info( @@ -332,9 +333,9 @@ export class AutomaticTransactionGenerator { const connectorStatus = this.chargingStation.getConnectorStatus(connectorId) if (connectorStatus?.transactionStarted === true) { logger.info( - `${this.logPrefix( - connectorId - )} entered in transaction loop while a transaction ${connectorStatus.transactionId} is already started on connector ${connectorId}` + `${this.logPrefix(connectorId)} entered in transaction loop while a transaction ${ + connectorStatus.transactionId + } is already started on connector ${connectorId}` ) return false } @@ -377,9 +378,9 @@ export class AutomaticTransactionGenerator { while (connectorStatus?.transactionStarted === true) { if (!logged) { logger.info( - `${this.logPrefix( - connectorId - )} transaction loop waiting for started transaction ${connectorStatus.transactionId} on connector ${connectorId} to be stopped` + `${this.logPrefix(connectorId)} transaction loop waiting for started transaction ${ + connectorStatus.transactionId + } on connector ${connectorId} to be stopped` ) logged = true } @@ -415,7 +416,9 @@ export class AutomaticTransactionGenerator { ) } else if (this.chargingStation.getAutomaticTransactionGeneratorStatuses() != null) { logger.warn( - `${this.logPrefix(connectorId)} no status found for connector #${connectorId} in charging station configuration file. New status will be created` + `${this.logPrefix( + connectorId + )} no status found for connector #${connectorId} in charging station configuration file. New status will be created` ) } if (connectorStatus != null) { @@ -474,7 +477,7 @@ export class AutomaticTransactionGenerator { logger.info(startTransactionLogMsg) // Start transaction startResponse = await this.chargingStation.ocppRequestService.requestHandler< - StartTransactionRequest, + Partial, StartTransactionResponse >(this.chargingStation, RequestCommand.START_TRANSACTION, { connectorId, @@ -492,7 +495,7 @@ export class AutomaticTransactionGenerator { logger.info(startTransactionLogMsg) // Start transaction startResponse = await this.chargingStation.ocppRequestService.requestHandler< - StartTransactionRequest, + Partial, StartTransactionResponse >(this.chargingStation, RequestCommand.START_TRANSACTION, { connectorId, @@ -504,9 +507,11 @@ export class AutomaticTransactionGenerator { } logger.info(`${this.logPrefix(connectorId)} start transaction without an idTag`) startResponse = await this.chargingStation.ocppRequestService.requestHandler< - StartTransactionRequest, + Partial, StartTransactionResponse - >(this.chargingStation, RequestCommand.START_TRANSACTION, { connectorId }) + >(this.chargingStation, RequestCommand.START_TRANSACTION, { + connectorId + }) this.handleStartTransactionResponse(connectorId, startResponse) PerformanceStatistics.endMeasure(measureId, beginId) return startResponse