import fs from 'node:fs';
import path from 'node:path';
import { URL } from 'node:url';
-import { parentPort } from 'worker_threads';
+import { parentPort } from 'node:worker_threads';
import merge from 'just-merge';
import WebSocket, { type RawData } from 'ws';
-import { AuthorizedTagsCache } from './AuthorizedTagsCache';
-import { AutomaticTransactionGenerator } from './AutomaticTransactionGenerator';
-import { ChargingStationConfigurationUtils } from './ChargingStationConfigurationUtils';
-import { ChargingStationUtils } from './ChargingStationUtils';
-import { ChargingStationWorkerBroadcastChannel } from './ChargingStationWorkerBroadcastChannel';
-import { MessageChannelUtils } from './MessageChannelUtils';
import {
- OCPP16IncomingRequestService,
+ AuthorizedTagsCache,
+ AutomaticTransactionGenerator,
+ ChargingStationConfigurationUtils,
+ ChargingStationUtils,
+ ChargingStationWorkerBroadcastChannel,
+ MessageChannelUtils,
+ SharedLRUCache,
+} from './internal';
+import {
+ // OCPP16IncomingRequestService,
OCPP16RequestService,
- OCPP16ResponseService,
+ // OCPP16ResponseService,
OCPP16ServiceUtils,
OCPP20IncomingRequestService,
OCPP20RequestService,
- OCPP20ResponseService,
+ // OCPP20ResponseService,
type OCPPIncomingRequestService,
type OCPPRequestService,
- OCPPServiceUtils,
+ // OCPPServiceUtils,
} from './ocpp';
-import { SharedLRUCache } from './SharedLRUCache';
+import { OCPP16IncomingRequestService } from './ocpp/1.6/OCPP16IncomingRequestService';
+import { OCPP16ResponseService } from './ocpp/1.6/OCPP16ResponseService';
+import { OCPP20ResponseService } from './ocpp/2.0/OCPP20ResponseService';
+import { OCPPServiceUtils } from './ocpp/OCPPServiceUtils';
import { BaseError, OCPPError } from '../exception';
import { PerformanceStatistics } from '../performance';
import {
type StopTransactionResponse,
SupervisionUrlDistribution,
SupportedFeatureProfiles,
- VendorDefaultParametersKey,
+ VendorParametersKey,
type WSError,
WebSocketCloseEventStatusCode,
type WsOptions,
} from '../types';
-import { Configuration } from '../utils/Configuration';
-import { Constants } from '../utils/Constants';
-import { ACElectricUtils, DCElectricUtils } from '../utils/ElectricUtils';
-import { FileUtils } from '../utils/FileUtils';
-import { logger } from '../utils/Logger';
-import { Utils } from '../utils/Utils';
+import {
+ ACElectricUtils,
+ Configuration,
+ Constants,
+ DCElectricUtils,
+ FileUtils,
+ Utils,
+ logger,
+} from '../utils';
export class ChargingStation {
public readonly index: number;
}
private getSupervisionUrlOcppKey(): string {
- return this.stationInfo.supervisionUrlOcppKey ?? VendorDefaultParametersKey.ConnectionUrl;
+ return this.stationInfo.supervisionUrlOcppKey ?? VendorParametersKey.ConnectionUrl;
}
private getTemplateFromFile(): ChargingStationTemplate | undefined {
fs.mkdirSync(path.dirname(this.configurationFile), { recursive: true });
}
const configurationData: ChargingStationConfiguration =
- this.getConfigurationFromFile() ?? {};
+ Utils.cloneObject(this.getConfigurationFromFile()) ?? {};
this.ocppConfiguration?.configurationKey &&
(configurationData.configurationKey = this.ocppConfiguration.configurationKey);
this.stationInfo && (configurationData.stationInfo = this.stationInfo);
const configurationFromFile = this.getConfigurationFromFile();
configuration = configurationFromFile?.configurationKey && configurationFromFile;
}
- configuration && delete configuration.stationInfo;
+ if (!Utils.isNullOrUndefined(configuration)) {
+ delete configuration.stationInfo;
+ delete configuration.configurationHash;
+ }
return configuration;
}