await this.stopTransaction(connectorId);
}
} else {
- this.connectorsStatus.get(connectorId).skippedConsecutiveTransactions++;
- this.connectorsStatus.get(connectorId).skippedTransactions++;
+ ++this.connectorsStatus.get(connectorId).skippedConsecutiveTransactions;
+ ++this.connectorsStatus.get(connectorId).skippedTransactions;
logger.info(
`${this.logPrefix(connectorId)} skipped consecutively ${this.connectorsStatus
.get(connectorId)
this.connectorsStatus.get(connectorId).stopDate = new Date(
this.connectorsStatus.get(connectorId).startDate.getTime() +
(this.chargingStation.getAutomaticTransactionGeneratorConfiguration().stopAfterHours ??
- Constants.CHARGING_STATION_ATG_DEFAULT_STOP_AFTER_HOURS) *
+ Constants.DEFAULT_ATG_STOP_AFTER_HOURS) *
3600 *
1000 -
previousRunDuration
>(this.chargingStation, RequestCommand.AUTHORIZE, {
idTag,
});
- this.connectorsStatus.get(connectorId).authorizeRequests++;
+ ++this.connectorsStatus.get(connectorId).authorizeRequests;
if (authorizeResponse?.idTagInfo?.status === AuthorizationStatus.ACCEPTED) {
- this.connectorsStatus.get(connectorId).acceptedAuthorizeRequests++;
+ ++this.connectorsStatus.get(connectorId).acceptedAuthorizeRequests;
logger.info(startTransactionLogMsg);
// Start transaction
startResponse = await this.chargingStation.ocppRequestService.requestHandler<
PerformanceStatistics.endMeasure(measureId, beginId);
return startResponse;
}
- this.connectorsStatus.get(connectorId).rejectedAuthorizeRequests++;
+ ++this.connectorsStatus.get(connectorId).rejectedAuthorizeRequests;
PerformanceStatistics.endMeasure(measureId, beginId);
return startResponse;
}
let stopResponse: StopTransactionResponse;
if (this.chargingStation.getConnectorStatus(connectorId)?.transactionStarted === true) {
stopResponse = await this.chargingStation.stopTransactionOnConnector(connectorId, reason);
- this.connectorsStatus.get(connectorId).stopTransactionRequests++;
+ ++this.connectorsStatus.get(connectorId).stopTransactionRequests;
if (stopResponse?.idTagInfo?.status === AuthorizationStatus.ACCEPTED) {
- this.connectorsStatus.get(connectorId).acceptedStopTransactionRequests++;
+ ++this.connectorsStatus.get(connectorId).acceptedStopTransactionRequests;
} else {
- this.connectorsStatus.get(connectorId).rejectedStopTransactionRequests++;
+ ++this.connectorsStatus.get(connectorId).rejectedStopTransactionRequests;
}
} else {
const transactionId = this.chargingStation.getConnectorStatus(connectorId)?.transactionId;
connectorId: number,
startResponse: StartTransactionResponse
): void {
- this.connectorsStatus.get(connectorId).startTransactionRequests++;
+ ++this.connectorsStatus.get(connectorId).startTransactionRequests;
if (startResponse?.idTagInfo?.status === AuthorizationStatus.ACCEPTED) {
- this.connectorsStatus.get(connectorId).acceptedStartTransactionRequests++;
+ ++this.connectorsStatus.get(connectorId).acceptedStartTransactionRequests;
} else {
logger.warn(`${this.logPrefix(connectorId)} start transaction rejected`);
- this.connectorsStatus.get(connectorId).rejectedStartTransactionRequests++;
+ ++this.connectorsStatus.get(connectorId).rejectedStartTransactionRequests;
}
}
}
skipBufferingOnError: true,
});
if (this.isRegistered() === false) {
- this.getRegistrationMaxRetries() !== -1 && registrationRetryCount++;
+ this.getRegistrationMaxRetries() !== -1 && ++registrationRetryCount;
await Utils.sleep(
this?.bootNotificationResponse?.interval
? this.bootNotificationResponse.interval * 1000
this.autoReconnectRetryCount < this.getAutoReconnectMaxRetries() ||
this.getAutoReconnectMaxRetries() === -1
) {
- this.autoReconnectRetryCount++;
+ ++this.autoReconnectRetryCount;
const reconnectDelay = this.getReconnectExponentialDelay()
? Utils.exponentialDelay(this.autoReconnectRetryCount)
: this.getConnectionTimeout() * 1000;
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 (
} else if (
this.responses.get(uuid)?.responsesReceived <= this.responses.get(uuid)?.responsesExpected
) {
- this.responses.get(uuid).responsesReceived++;
+ ++this.responses.get(uuid).responsesReceived;
this.responses.get(uuid)?.responses.push(responsePayload);
}
if (
}#${transactionConnectorId.toString()} for idTag '${requestPayload.idTag}'`
);
if (chargingStation.stationInfo.powerSharedByConnectors) {
- chargingStation.powerDivider++;
+ ++chargingStation.powerDivider;
}
const configuredMeterValueSampleInterval =
ChargingStationConfigurationUtils.getConfigurationKey(
this.statistics.statisticsData.has(command) &&
this.statistics.statisticsData.get(command)?.countRequest
) {
- this.statistics.statisticsData.get(command).countRequest++;
+ ++this.statistics.statisticsData.get(command).countRequest;
} else {
this.statistics.statisticsData.set(command, {
...this.statistics.statisticsData.get(command),
this.statistics.statisticsData.has(command) &&
this.statistics.statisticsData.get(command)?.countResponse
) {
- this.statistics.statisticsData.get(command).countResponse++;
+ ++this.statistics.statisticsData.get(command).countResponse;
} else {
this.statistics.statisticsData.set(command, {
...this.statistics.statisticsData.get(command),
this.statistics.statisticsData.has(command) &&
this.statistics.statisticsData.get(command)?.countError
) {
- this.statistics.statisticsData.get(command).countError++;
+ ++this.statistics.statisticsData.get(command).countError;
} else {
this.statistics.statisticsData.set(command, {
...this.statistics.statisticsData.get(command),
+import type { AutomaticTransactionGeneratorConfiguration } from '../types';
+
export class Constants {
static readonly DEFAULT_BOOT_NOTIFICATION_INTERVAL = 60000; // Ms
static readonly DEFAULT_HEARTBEAT_INTERVAL = 60000; // Ms
static readonly CHARGING_STATION_DEFAULT_RESET_TIME = 60000; // Ms
static readonly CHARGING_STATION_ATG_INITIALIZATION_TIME = 1000; // Ms
- static readonly CHARGING_STATION_ATG_DEFAULT_STOP_AFTER_HOURS = 0.25; // Hours
+
+ static readonly DEFAULT_ATG_STOP_AFTER_HOURS = 0.25; // Hours
+ static readonly DEFAULT_ATG_CONFIGURATION: AutomaticTransactionGeneratorConfiguration =
+ Object.freeze({
+ enable: false,
+ minDuration: 60,
+ maxDuration: 120,
+ minDelayBetweenTwoTransactions: 15,
+ maxDelayBetweenTwoTransactions: 30,
+ probabilityOfStart: 1,
+ stopAfterHours: Constants.DEFAULT_ATG_STOP_AFTER_HOURS,
+ stopOnConnectionFailure: true,
+ });
// See https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
static readonly SEMVER_PATTERN =
id: WorkerMessageEvents.startWorkerElement,
data: elementData,
});
- this.getLastWorkerSetElement().numberOfWorkerElements++;
+ ++this.getLastWorkerSetElement().numberOfWorkerElements;
// Start element sequentially to optimize memory at startup
if (this.workerOptions.elementStartDelay > 0) {
await WorkerUtils.sleep(this.workerOptions.elementStartDelay);