- private initializeConnectorStatus(connectorId: number): void {
- this.connectorsStatus.get(connectorId).authorizeRequests =
- this?.connectorsStatus.get(connectorId)?.authorizeRequests ?? 0;
- this.connectorsStatus.get(connectorId).acceptedAuthorizeRequests =
- this?.connectorsStatus.get(connectorId)?.acceptedAuthorizeRequests ?? 0;
- this.connectorsStatus.get(connectorId).rejectedAuthorizeRequests =
- this?.connectorsStatus.get(connectorId)?.rejectedAuthorizeRequests ?? 0;
- this.connectorsStatus.get(connectorId).startTransactionRequests =
- this?.connectorsStatus.get(connectorId)?.startTransactionRequests ?? 0;
- this.connectorsStatus.get(connectorId).acceptedStartTransactionRequests =
- this?.connectorsStatus.get(connectorId)?.acceptedStartTransactionRequests ?? 0;
- this.connectorsStatus.get(connectorId).rejectedStartTransactionRequests =
- this?.connectorsStatus.get(connectorId)?.rejectedStartTransactionRequests ?? 0;
- this.connectorsStatus.get(connectorId).stopTransactionRequests =
- this?.connectorsStatus.get(connectorId)?.stopTransactionRequests ?? 0;
- this.connectorsStatus.get(connectorId).acceptedStopTransactionRequests =
- this?.connectorsStatus.get(connectorId)?.acceptedStopTransactionRequests ?? 0;
- this.connectorsStatus.get(connectorId).rejectedStopTransactionRequests =
- this?.connectorsStatus.get(connectorId)?.rejectedStopTransactionRequests ?? 0;
- this.connectorsStatus.get(connectorId).skippedConsecutiveTransactions = 0;
- this.connectorsStatus.get(connectorId).skippedTransactions =
- this?.connectorsStatus.get(connectorId)?.skippedTransactions ?? 0;
- const previousRunDuration =
- this?.connectorsStatus.get(connectorId)?.startDate &&
- this?.connectorsStatus.get(connectorId)?.lastRunDate
- ? this.connectorsStatus.get(connectorId).lastRunDate.getTime() -
- this.connectorsStatus.get(connectorId).startDate.getTime()
- : 0;
- this.connectorsStatus.get(connectorId).startDate = new Date();
- this.connectorsStatus.get(connectorId).stopDate = new Date(
- this.connectorsStatus.get(connectorId).startDate.getTime() +
- (this.configuration.stopAfterHours ??
- Constants.CHARGING_STATION_ATG_DEFAULT_STOP_AFTER_HOURS) *
- 3600 *
- 1000 -
- previousRunDuration
- );
- this.connectorsStatus.get(connectorId).start =
- this?.connectorsStatus.get(connectorId)?.start ?? false;
+ private async waitChargingStationAvailable (connectorId: number): Promise<void> {
+ let logged = false
+ while (!this.chargingStation.isChargingStationAvailable()) {
+ if (!logged) {
+ logger.info(
+ `${this.logPrefix(
+ connectorId
+ )} transaction loop waiting for charging station to be available`
+ )
+ logged = true
+ }
+ await sleep(Constants.CHARGING_STATION_ATG_AVAILABILITY_TIME)
+ }
+ }
+
+ private async waitConnectorAvailable (connectorId: number): Promise<void> {
+ let logged = false
+ while (!this.chargingStation.isConnectorAvailable(connectorId)) {
+ if (!logged) {
+ logger.info(
+ `${this.logPrefix(
+ connectorId
+ )} transaction loop waiting for connector ${connectorId} to be available`
+ )
+ logged = true
+ }
+ await sleep(Constants.CHARGING_STATION_ATG_AVAILABILITY_TIME)
+ }
+ }
+
+ private initializeConnectorsStatus (): void {
+ if (this.chargingStation.hasEvses) {
+ for (const [evseId, evseStatus] of this.chargingStation.evses) {
+ if (evseId > 0) {
+ for (const connectorId of evseStatus.connectors.keys()) {
+ this.connectorsStatus.set(connectorId, this.getConnectorStatus(connectorId))
+ }
+ }
+ }
+ } else {
+ for (const connectorId of this.chargingStation.connectors.keys()) {
+ if (connectorId > 0) {
+ this.connectorsStatus.set(connectorId, this.getConnectorStatus(connectorId))
+ }
+ }
+ }