X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Futils%2FMessageChannelUtils.ts;h=f9d1e14980017606a7c1f64ec0135eb47bf8e80b;hb=312d3254e6581f6bc939497d610048b6c6226d6d;hp=65dcc9a835c36fa4fcf1cb6307e0d1063957fb6f;hpb=e82376450bef7a755869accf8f662826147832d8;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/MessageChannelUtils.ts b/src/utils/MessageChannelUtils.ts index 65dcc9a8..f9d1e149 100644 --- a/src/utils/MessageChannelUtils.ts +++ b/src/utils/MessageChannelUtils.ts @@ -1,19 +1,19 @@ -import { - OutputFormat, - buildChargingStationAutomaticTransactionGeneratorConfiguration, - buildConnectorsStatus, - buildEvsesStatus -} from './ChargingStationConfigurationUtils.js' -import { clone } from './Utils.js' +import { CircularBuffer } from 'mnemonist' + import type { ChargingStation } from '../charging-station/index.js' import { type ChargingStationData, type ChargingStationWorkerMessage, ChargingStationWorkerMessageEvents, - type InternalTemplateStatistics, type Statistics, - type TemplateStatistics + type TimestampedData } from '../types/index.js' +import { + buildChargingStationAutomaticTransactionGeneratorConfiguration, + buildConnectorsStatus, + buildEvsesStatus, + OutputFormat +} from './ChargingStationConfigurationUtils.js' export const buildAddedMessage = ( chargingStation: ChargingStation @@ -63,15 +63,26 @@ export const buildUpdatedMessage = ( export const buildPerformanceStatisticsMessage = ( statistics: Statistics ): ChargingStationWorkerMessage => { + const statisticsData = [...statistics.statisticsData].map(([key, value]) => { + if (value.measurementTimeSeries instanceof CircularBuffer) { + value.measurementTimeSeries = value.measurementTimeSeries.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 @@ -89,13 +100,3 @@ export const buildChargingStationDataPayload = ( }) } } - -export const buildTemplateStatisticsPayload = ( - map: Map -): Record => { - map = clone(map) - for (const value of map.values()) { - (value as unknown as TemplateStatistics).indexes = [...value.indexes] - } - return Object.fromEntries(map.entries() as unknown as Array<[string, TemplateStatistics]>) -}