X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FChargingStation.ts;h=edcd312da8dcb06db37b8d68f37249707ca3779f;hb=311dd6feba5fe8c1c86c3875b72b40bef688244e;hp=6900cdc3c67e2ec9a1d83da627fa99262d39c525;hpb=734d790d9983a43c20f9ffa728f18825625e8119;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStation.ts b/src/charging-station/ChargingStation.ts index 6900cdc3..edcd312d 100644 --- a/src/charging-station/ChargingStation.ts +++ b/src/charging-station/ChargingStation.ts @@ -37,22 +37,22 @@ import logger from '../utils/Logger'; import path from 'path'; export default class ChargingStation { - public stationTemplateFile: string; + public readonly stationTemplateFile: string; public authorizedTags: string[]; public stationInfo!: ChargingStationInfo; - public connectors: Map; + public readonly connectors: Map; public configuration!: ChargingStationConfiguration; public wsConnection!: WebSocket; - public requests: Map; + public readonly requests: Map; public performanceStatistics!: PerformanceStatistics; public heartbeatSetInterval!: NodeJS.Timeout; public ocppRequestService!: OCPPRequestService; - private index: number; + private readonly index: number; private bootNotificationRequest!: BootNotificationRequest; private bootNotificationResponse!: BootNotificationResponse | null; private connectorsConfigurationHash!: string; private ocppIncomingRequestService!: OCPPIncomingRequestService; - private messageQueue: string[]; + private readonly messageQueue: string[]; private wsConnectionUrl!: URL; private wsConnectionRestarted: boolean; private stopped: boolean; @@ -126,6 +126,10 @@ export default class ChargingStation { return this.getConnectorStatus(id).availability === AvailabilityType.OPERATIVE; } + public getNumberOfConnectors(): number { + return this.connectors.get(0) ? this.connectors.size - 1 : this.connectors.size; + } + public getConnectorStatus(id: number): ConnectorStatus { return this.connectors.get(id); } @@ -508,8 +512,8 @@ export default class ChargingStation { this.stationInfo.randomConnectors = true; } const connectorsConfigHash = crypto.createHash('sha256').update(JSON.stringify(this.stationInfo.Connectors) + maxConnectors.toString()).digest('hex'); - const connectorsConfigChanged = this.connectors.size !== 0 && this.connectorsConfigurationHash !== connectorsConfigHash; - if (!this.connectors || this.connectors.size === 0 || connectorsConfigChanged) { + const connectorsConfigChanged = this.connectors?.size !== 0 && this.connectorsConfigurationHash !== connectorsConfigHash; + if (this.connectors?.size === 0 || connectorsConfigChanged) { connectorsConfigChanged && (this.connectors.clear()); this.connectorsConfigurationHash = connectorsConfigHash; // Add connector Id 0 @@ -651,7 +655,7 @@ export default class ChargingStation { private async onMessage(data: Data): Promise { let [messageType, messageId, commandName, commandPayload, errorDetails]: IncomingRequest = [0, '', '' as IncomingRequestCommand, {}, {}]; let responseCallback: (payload: Record | string, requestPayload: Record) => void; - let rejectCallback: (error: OCPPError) => void; + let rejectCallback: (error: OCPPError, requestStatistic?: boolean) => void; let requestCommandName: RequestCommand | IncomingRequestCommand; let requestPayload: Record; let cachedRequest: CachedRequest; @@ -827,10 +831,6 @@ export default class ChargingStation { return maxConnectors; } - private getNumberOfConnectors(): number { - return this.connectors.get(0) ? this.connectors.size - 1 : this.connectors.size; - } - private async startMessageSequence(): Promise { // Start WebSocket ping this.startWebSocketPing();