X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FChargingStation.ts;h=dc679b84603838cc14366780a4699ea73ffc94af;hb=e80bc57960515924d5721315fcd930975da52b45;hp=bd3557717e273e7fa75acd65a0c562452cb8ec53;hpb=f22266fd29f7f11ba883d7f799ef607be05d4232;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStation.ts b/src/charging-station/ChargingStation.ts index bd355771..dc679b84 100644 --- a/src/charging-station/ChargingStation.ts +++ b/src/charging-station/ChargingStation.ts @@ -80,10 +80,10 @@ export default class ChargingStation { public performanceStatistics!: PerformanceStatistics; public heartbeatSetInterval!: NodeJS.Timeout; public ocppRequestService!: OCPPRequestService; + public bootNotificationResponse!: BootNotificationResponse | null; private readonly index: number; private configurationFile!: string; private bootNotificationRequest!: BootNotificationRequest; - private bootNotificationResponse!: BootNotificationResponse | null; private connectorsConfigurationHash!: string; private ocppIncomingRequestService!: OCPPIncomingRequestService; private readonly messageBuffer: Set; @@ -632,9 +632,9 @@ export default class ChargingStation { reboot: false, }; } - const readonly = options.readonly; - const visible = options.visible; - const reboot = options.reboot; + const readonly = options.readonly ?? false; + const visible = options.visible ?? true; + const reboot = options.reboot ?? false; let keyFound = this.getConfigurationKey(key); if (keyFound && params?.overwrite) { this.deleteConfigurationKey(keyFound.key, { save: false }); @@ -759,6 +759,19 @@ export default class ChargingStation { idSuffix; } + private getRandomSerialNumberSuffix(params?: { + randomBytesLength?: number; + upperCase?: boolean; + }): string { + const randomSerialNumberSuffix = crypto + .randomBytes(params?.randomBytesLength ?? 16) + .toString('hex'); + if (params?.upperCase) { + return randomSerialNumberSuffix.toUpperCase(); + } + return randomSerialNumberSuffix; + } + private buildStationInfo(): ChargingStationInfo { let stationTemplateFromFile: ChargingStationTemplate; try { @@ -784,6 +797,10 @@ export default class ChargingStation { ); this.convertDeprecatedTemplateKey(stationTemplateFromFile, 'supervisionUrl', 'supervisionUrls'); const stationInfo: ChargingStationInfo = stationTemplateFromFile ?? ({} as ChargingStationInfo); + stationInfo.chargePointSerialNumber = stationTemplateFromFile?.chargePointSerialNumberPrefix; + delete stationInfo.chargePointSerialNumberPrefix; + stationInfo.chargeBoxSerialNumber = stationTemplateFromFile?.chargeBoxSerialNumberPrefix; + delete stationInfo.chargeBoxSerialNumberPrefix; stationInfo.wsOptions = stationTemplateFromFile?.wsOptions ?? {}; if (!Utils.isEmptyArray(stationTemplateFromFile.power)) { stationTemplateFromFile.power = stationTemplateFromFile.power as number[]; @@ -831,8 +848,11 @@ export default class ChargingStation { this.bootNotificationRequest = { chargePointModel: this.stationInfo.chargePointModel, chargePointVendor: this.stationInfo.chargePointVendor, - ...(!Utils.isUndefined(this.stationInfo.chargeBoxSerialNumberPrefix) && { - chargeBoxSerialNumber: this.stationInfo.chargeBoxSerialNumberPrefix, + ...(!Utils.isUndefined(this.stationInfo.chargeBoxSerialNumber) && { + chargeBoxSerialNumber: this.stationInfo.chargeBoxSerialNumber, + }), + ...(!Utils.isUndefined(this.stationInfo.chargePointSerialNumber) && { + chargePointSerialNumber: this.stationInfo.chargePointSerialNumber, }), ...(!Utils.isUndefined(this.stationInfo.firmwareVersion) && { firmwareVersion: this.stationInfo.firmwareVersion,