Refine UI protocol documentation
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
... / ...
CommitLineData
1import type ChargingStationInfo from './ChargingStationInfo';
2import type { ConnectorStatus } from './ConnectorStatus';
3import type { JsonObject } from './JsonType';
4import type { BootNotificationResponse } from './ocpp/Responses';
5import type Statistics from './Statistics';
6import { WorkerData, WorkerMessage, WorkerMessageEvents } from './Worker';
7
8export interface ChargingStationWorkerOptions extends JsonObject {
9 elementStartDelay?: number;
10}
11
12export interface ChargingStationWorkerData extends WorkerData {
13 index: number;
14 templateFile: string;
15 chargingStationWorkerOptions?: ChargingStationWorkerOptions;
16}
17
18export interface ChargingStationData extends WorkerData {
19 hashId: string;
20 stationInfo: ChargingStationInfo;
21 stopped: boolean;
22 bootNotificationResponse: BootNotificationResponse;
23 connectors: ConnectorStatus[];
24}
25
26enum ChargingStationMessageEvents {
27 STARTED = 'started',
28 STOPPED = 'stopped',
29 UPDATED = 'updated',
30 PERFORMANCE_STATISTICS = 'performanceStatistics',
31}
32
33export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents;
34
35export const ChargingStationWorkerMessageEvents = {
36 ...WorkerMessageEvents,
37 ...ChargingStationMessageEvents,
38};
39
40export type ChargingStationWorkerMessageData = ChargingStationData | Statistics;
41
42export interface ChargingStationWorkerMessage<T extends WorkerData>
43 extends Omit<WorkerMessage<T>, 'id'> {
44 id: ChargingStationWorkerMessageEvents;
45}