import { AsyncResource } from 'node:async_hooks';
+import { hoursToMilliseconds, secondsToMilliseconds } from 'date-fns';
+
import type { ChargingStation } from './ChargingStation';
import { checkChargingStation } from './ChargingStationUtils';
import { IdTagsCache } from './IdTagsCache';
await sleep(Constants.CHARGING_STATION_ATG_INITIALIZATION_TIME);
} while (!this.chargingStation?.ocppRequestService);
}
- const wait =
+ const wait = secondsToMilliseconds(
getRandomInteger(
this.chargingStation.getAutomaticTransactionGeneratorConfiguration()
.maxDelayBetweenTwoTransactions,
this.chargingStation.getAutomaticTransactionGeneratorConfiguration()
.minDelayBetweenTwoTransactions,
- ) * 1000;
+ ),
+ );
logger.info(`${this.logPrefix(connectorId)} waiting for ${formatDurationMilliSeconds(wait)}`);
await sleep(wait);
const start = secureRandom();
const startResponse = await this.startTransaction(connectorId);
if (startResponse?.idTagInfo?.status === AuthorizationStatus.ACCEPTED) {
// Wait until end of transaction
- const waitTrxEnd =
+ const waitTrxEnd = secondsToMilliseconds(
getRandomInteger(
this.chargingStation.getAutomaticTransactionGeneratorConfiguration().maxDuration,
this.chargingStation.getAutomaticTransactionGeneratorConfiguration().minDuration,
- ) * 1000;
+ ),
+ );
logger.info(
`${this.logPrefix(connectorId)} transaction started with id ${this.chargingStation
.getConnectorStatus(connectorId)
this.connectorsStatus.get(connectorId)!.startDate = new Date();
this.connectorsStatus.get(connectorId)!.stopDate = new Date(
this.connectorsStatus.get(connectorId)!.startDate!.getTime() +
- this.chargingStation.getAutomaticTransactionGeneratorConfiguration().stopAfterHours *
- 3600 *
- 1000 -
+ hoursToMilliseconds(
+ this.chargingStation.getAutomaticTransactionGeneratorConfiguration().stopAfterHours,
+ ) -
previousRunDuration,
);
this.connectorsStatus.get(connectorId)!.start = true;
}
private getConnectorStatus(connectorId: number): Status {
- const connectorStatus = cloneObject(
- this.chargingStation.getAutomaticTransactionGeneratorStatuses()!,
- )[connectorId];
+ const connectorStatus = this.chargingStation.getAutomaticTransactionGeneratorStatuses()
+ ? cloneObject(this.chargingStation.getAutomaticTransactionGeneratorStatuses()!)[connectorId]
+ : undefined;
delete connectorStatus?.startDate;
delete connectorStatus?.lastRunDate;
delete connectorStatus?.stopDate;