export default class AutomaticTransactionGenerator {
public started: boolean;
- private chargingStation: ChargingStation;
- private connectorsStatus: Map<number, Status>;
+ private readonly chargingStation: ChargingStation;
+ private readonly connectorsStatus: Map<number, Status>;
constructor(chargingStation: ChargingStation) {
this.chargingStation = chargingStation;
}
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);
}
}
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);
}
// 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 {
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),