X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Futils%2FMessageChannelUtils.ts;h=bd7036aca60c851e9a25075f196ff0224bf019cf;hb=1c818bd3b021c8e660d64f9054e02d06424a3c59;hp=212ed5f20124c419fbf3933b6e2855dfcb482a07;hpb=244c1396e337032577839fa13e9191d5e943864f;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/MessageChannelUtils.ts b/src/utils/MessageChannelUtils.ts index 212ed5f2..bd7036ac 100644 --- a/src/utils/MessageChannelUtils.ts +++ b/src/utils/MessageChannelUtils.ts @@ -1,16 +1,19 @@ -import { - OutputFormat, - buildChargingStationAutomaticTransactionGeneratorConfiguration, - buildConnectorsStatus, - buildEvsesStatus -} from './ChargingStationConfigurationUtils.js' +import type { CircularBuffer } from 'mnemonist' + import type { ChargingStation } from '../charging-station/index.js' import { type ChargingStationData, type ChargingStationWorkerMessage, ChargingStationWorkerMessageEvents, - type Statistics + type Statistics, + type TimestampedData } from '../types/index.js' +import { + buildChargingStationAutomaticTransactionGeneratorConfiguration, + buildConnectorsStatus, + buildEvsesStatus, + OutputFormat +} from './ChargingStationConfigurationUtils.js' export const buildAddedMessage = ( chargingStation: ChargingStation @@ -21,6 +24,15 @@ export const buildAddedMessage = ( } } +export const buildDeletedMessage = ( + chargingStation: ChargingStation +): ChargingStationWorkerMessage => { + return { + event: ChargingStationWorkerMessageEvents.deleted, + data: buildChargingStationDataPayload(chargingStation) + } +} + export const buildStartedMessage = ( chargingStation: ChargingStation ): ChargingStationWorkerMessage => { @@ -51,15 +63,26 @@ export const buildUpdatedMessage = ( export const buildPerformanceStatisticsMessage = ( statistics: Statistics ): ChargingStationWorkerMessage => { + const statisticsData = [...statistics.statisticsData].map(([key, value]) => { + value.measurementTimeSeries = ( + value.measurementTimeSeries as CircularBuffer + ).toArray() as TimestampedData[] + return [key, value] + }) return { event: ChargingStationWorkerMessageEvents.performanceStatistics, - data: statistics + data: { + id: statistics.id, + name: statistics.name, + uri: statistics.uri, + createdAt: statistics.createdAt, + updatedAt: statistics.updatedAt, + statisticsData + } } } -export const buildChargingStationDataPayload = ( - chargingStation: ChargingStation -): ChargingStationData => { +const buildChargingStationDataPayload = (chargingStation: ChargingStation): ChargingStationData => { return { started: chargingStation.started, // eslint-disable-next-line @typescript-eslint/no-non-null-assertion @@ -68,6 +91,7 @@ export const buildChargingStationDataPayload = ( evses: buildEvsesStatus(chargingStation, OutputFormat.worker), // eslint-disable-next-line @typescript-eslint/no-non-null-assertion ocppConfiguration: chargingStation.ocppConfiguration!, + supervisionUrl: chargingStation.wsConnectionUrl.href, wsState: chargingStation.wsConnection?.readyState, bootNotificationResponse: chargingStation.bootNotificationResponse, ...(chargingStation.automaticTransactionGenerator != null && {