+ }
+
+ private workerEventStarted(data: ChargingStationData) {
+ this.uiServer?.chargingStations.set(data.stationInfo.hashId, data);
+ ++this.numberOfStartedChargingStations;
+ }
+
+ private workerEventStopped(data: ChargingStationData) {
+ this.uiServer?.chargingStations.set(data.stationInfo.hashId, data);
+ --this.numberOfStartedChargingStations;
+ }
+
+ private workerEventUpdated(data: ChargingStationData) {
+ this.uiServer?.chargingStations.set(data.stationInfo.hashId, data);
+ }
+
+ private workerEventPerformanceStatistics = (data: Statistics) => {
+ this.storage.storePerformanceStatistics(data) as void;
+ };
+
+ private initialize() {
+ this.numberOfChargingStationTemplates = 0;
+ this.numberOfChargingStations = 0;
+ this.numberOfStartedChargingStations = 0;
+ this.initializeWorkerImplementation();
+ }
+
+ private async startChargingStation(
+ index: number,
+ stationTemplateUrl: StationTemplateUrl
+ ): Promise<void> {
+ const workerData: ChargingStationWorkerData = {
+ index,
+ templateFile: path.join(
+ path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../'),
+ 'assets',
+ 'station-templates',
+ stationTemplateUrl.file
+ ),
+ };
+ await this.workerImplementation.addElement(workerData);
+ ++this.numberOfChargingStations;
+ }
+
+ private logPrefix(): string {
+ return Utils.logPrefix(' Bootstrap |');