From: Jérôme Benoit Date: Tue, 20 Oct 2020 21:33:14 +0000 (+0200) Subject: Use hash to conditionally recreate _connectors attribute. X-Git-Tag: v1.0.1-0~258 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=de1f5008c4a7c5e3bc55586eec592b2cd80e2f82;p=e-mobility-charging-stations-simulator.git Use hash to conditionally recreate _connectors attribute. Signed-off-by: Jérôme Benoit --- diff --git a/src/charging-station/ChargingStation.js b/src/charging-station/ChargingStation.js index f64a2747..47186765 100644 --- a/src/charging-station/ChargingStation.js +++ b/src/charging-station/ChargingStation.js @@ -7,6 +7,7 @@ const OCPPError = require('./OcppError'); const AutomaticTransactionGenerator = require('./AutomaticTransactionGenerator'); const Statistics = require('../utils/Statistics'); const fs = require('fs'); +const crypto = require('crypto'); const {performance, PerformanceObserver} = require('perf_hooks'); class ChargingStation { @@ -65,9 +66,10 @@ class ChargingStation { // Build connectors if needed const maxConnectors = this._getMaxConnectors(); const connectorsConfig = Utils.cloneJSonDocument(this._stationInfo.Connectors); - const connectorsConfigLength = Utils.convertToBoolean(this._stationInfo.useConnectorId0) && Object.keys(connectorsConfig).includes('0') ? Object.keys(connectorsConfig).length : Object.keys(connectorsConfig).length - 1; - if (!this._connectors || (this._connectors && Object.keys(this._connectors).length !== connectorsConfigLength)) { - this._connectors = {}; + const connectorsConfigHash = crypto.createHash('sha256').update(JSON.stringify(connectorsConfig) + maxConnectors.toString()).digest('hex'); + // FIXME: Handle shrinking the number of connectors + if (!this._connectors || (this._connectors && this._connectorsConfigurationHash !== connectorsConfigHash)) { + this._connectorsConfigurationHash = connectorsConfigHash; // Determine number of customized connectors let lastConnector; for (lastConnector in connectorsConfig) {