From de1f5008c4a7c5e3bc55586eec592b2cd80e2f82 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 20 Oct 2020 23:33:14 +0200 Subject: [PATCH] Use hash to conditionally recreate _connectors attribute. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- src/charging-station/ChargingStation.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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) { -- 2.34.1