X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Ftypes%2FChargingStationWorker.ts;h=6fe529f91ac45183dd4ffaf147136f1745cddc54;hb=ba0564367ed4a5677bc4c45ab0d1cbed708ebef5;hp=8bdc9af04047ac3df6787f8accbc4e61b2909ccb;hpb=c3ee95af4edd541595e3873c8aa4c93d38e59474;p=e-mobility-charging-stations-simulator.git diff --git a/src/types/ChargingStationWorker.ts b/src/types/ChargingStationWorker.ts index 8bdc9af0..6fe529f9 100644 --- a/src/types/ChargingStationWorker.ts +++ b/src/types/ChargingStationWorker.ts @@ -1,24 +1,62 @@ -import { WorkerData, WorkerMessage, WorkerMessageEvents } from './Worker'; +import type { WebSocket } from 'ws'; + +import type { ChargingStationAutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator'; +import type { ChargingStationInfo } from './ChargingStationInfo'; +import type { ChargingStationOcppConfiguration } from './ChargingStationOcppConfiguration'; +import type { ConnectorStatus } from './ConnectorStatus'; +import type { EvseStatus } from './Evse'; +import type { JsonObject } from './JsonType'; +import type { BootNotificationResponse } from './ocpp/Responses'; +import type { Statistics } from './Statistics'; +import { type WorkerData, type WorkerMessage, WorkerMessageEvents } from '../worker'; + +interface ChargingStationWorkerOptions extends JsonObject { + elementStartDelay?: number; +} export interface ChargingStationWorkerData extends WorkerData { index: number; templateFile: string; + chargingStationWorkerOptions?: ChargingStationWorkerOptions; } -enum InternalChargingStationWorkerMessageEvents { - STARTED = 'started', - STOPPED = 'stopped', - PERFORMANCE_STATISTICS = 'performanceStatistics' +export type EvseStatusWorkerType = Omit & { + connectors?: ConnectorStatus[]; +}; + +export interface ChargingStationData extends WorkerData { + started: boolean; + stationInfo: ChargingStationInfo; + connectors: ConnectorStatus[]; + evses: EvseStatusWorkerType[]; + ocppConfiguration: ChargingStationOcppConfiguration; + wsState?: + | typeof WebSocket.CONNECTING + | typeof WebSocket.OPEN + | typeof WebSocket.CLOSING + | typeof WebSocket.CLOSED; + bootNotificationResponse?: BootNotificationResponse; + automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration; } -export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | InternalChargingStationWorkerMessageEvents; +enum ChargingStationMessageEvents { + started = 'started', + stopped = 'stopped', + updated = 'updated', + performanceStatistics = 'performanceStatistics', +} export const ChargingStationWorkerMessageEvents = { ...WorkerMessageEvents, - ...InternalChargingStationWorkerMessageEvents -}; + ...ChargingStationMessageEvents, +} as const; +export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents; +export type ChargingStationWorkerMessageData = ChargingStationData | Statistics; -export interface ChargingStationWorkerMessage extends Omit, 'id'> { +export type ChargingStationWorkerMessage = Omit< + WorkerMessage, + 'id' +> & { id: ChargingStationWorkerMessageEvents; -} +};