X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FChargingStation.ts;h=bd3e9c9cf998b26acbf0fef91b9e2cdd6f751ea9;hb=84e13ca9efa04e9516d65c99a54ba9b81457bef8;hp=d9840987864e1129806a98a36db735b087b3ab5c;hpb=43bb4cd9ccb69bbf6b22fc6d8b58c79792a1d865;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStation.ts b/src/charging-station/ChargingStation.ts index d9840987..bd3e9c9c 100644 --- a/src/charging-station/ChargingStation.ts +++ b/src/charging-station/ChargingStation.ts @@ -625,16 +625,10 @@ export default class ChargingStation { }, params: { overwrite?: boolean; save?: boolean } = { overwrite: false, save: false } ): void { - if (!options || Utils.isEmptyObject(options)) { - options = { - readonly: false, - visible: true, - reboot: false, - }; - } - const readonly = options.readonly ?? false; - const visible = options.visible ?? true; - const reboot = options.reboot ?? false; + options = options ?? ({} as { readonly?: boolean; visible?: boolean; reboot?: boolean }); + options.readonly = options?.readonly ?? false; + options.visible = options?.visible ?? true; + options.reboot = options?.reboot ?? false; let keyFound = this.getConfigurationKey(key); if (keyFound && params?.overwrite) { this.deleteConfigurationKey(keyFound.key, { save: false }); @@ -643,10 +637,10 @@ export default class ChargingStation { if (!keyFound) { this.configuration.configurationKey.push({ key, - readonly, + readonly: options.readonly, value, - visible, - reboot, + visible: options.visible, + reboot: options.reboot, }); params?.save && this.saveConfiguration(); } else { @@ -759,6 +753,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 +791,14 @@ export default class ChargingStation { ); this.convertDeprecatedTemplateKey(stationTemplateFromFile, 'supervisionUrl', 'supervisionUrls'); const stationInfo: ChargingStationInfo = stationTemplateFromFile ?? ({} as ChargingStationInfo); + stationInfo.chargePointSerialNumber = + stationTemplateFromFile?.chargePointSerialNumberPrefix && + stationTemplateFromFile.chargePointSerialNumberPrefix; + delete stationInfo.chargePointSerialNumberPrefix; + stationInfo.chargeBoxSerialNumber = + stationTemplateFromFile?.chargeBoxSerialNumberPrefix && + stationTemplateFromFile.chargeBoxSerialNumberPrefix; + delete stationInfo.chargeBoxSerialNumberPrefix; stationInfo.wsOptions = stationTemplateFromFile?.wsOptions ?? {}; if (!Utils.isEmptyArray(stationTemplateFromFile.power)) { stationTemplateFromFile.power = stationTemplateFromFile.power as number[]; @@ -831,11 +846,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.chargePointSerialNumberPrefix) && { - chargePointSerialNumber: this.stationInfo.chargePointSerialNumberPrefix, + ...(!Utils.isUndefined(this.stationInfo.chargePointSerialNumber) && { + chargePointSerialNumber: this.stationInfo.chargePointSerialNumber, }), ...(!Utils.isUndefined(this.stationInfo.firmwareVersion) && { firmwareVersion: this.stationInfo.firmwareVersion, @@ -849,7 +864,6 @@ export default class ChargingStation { meterType: this.stationInfo.meterType, }), }; - this.hashId = crypto .createHash(Constants.DEFAULT_HASH_ALGORITHM) .update(JSON.stringify(this.bootNotificationRequest) + this.stationInfo.chargingStationId)