Refine UI protocol documentation
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationTemplate.ts
1 import type { ClientRequestArgs } from 'http';
2
3 import type { ClientOptions } from 'ws';
4
5 import type { AutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator';
6 import type ChargingStationOcppConfiguration from './ChargingStationOcppConfiguration';
7 import type { ConnectorStatus } from './ConnectorStatus';
8 import type { OCPPProtocol } from './ocpp/OCPPProtocol';
9 import type { OCPPVersion } from './ocpp/OCPPVersion';
10 import type { IncomingRequestCommand, RequestCommand } from './ocpp/Requests';
11
12 export enum CurrentType {
13 AC = 'AC',
14 DC = 'DC',
15 }
16
17 export enum PowerUnits {
18 WATT = 'W',
19 KILO_WATT = 'kW',
20 }
21
22 export enum AmpereUnits {
23 MILLI_AMPERE = 'mA',
24 CENTI_AMPERE = 'cA',
25 DECI_AMPERE = 'dA',
26 AMPERE = 'A',
27 }
28
29 export enum Voltage {
30 VOLTAGE_110 = 110,
31 VOLTAGE_230 = 230,
32 VOLTAGE_400 = 400,
33 VOLTAGE_800 = 800,
34 }
35
36 export type WsOptions = ClientOptions & ClientRequestArgs;
37
38 interface CommandsSupport {
39 incomingCommands: Record<IncomingRequestCommand, boolean>;
40 outgoingCommands?: Record<RequestCommand, boolean>;
41 }
42
43 export default interface ChargingStationTemplate {
44 templateHash?: string;
45 supervisionUrls?: string | string[];
46 supervisionUrlOcppConfiguration?: boolean;
47 supervisionUrlOcppKey?: string;
48 supervisionUser?: string;
49 supervisionPassword?: string;
50 ocppVersion?: OCPPVersion;
51 ocppProtocol?: OCPPProtocol;
52 ocppStrictCompliance?: boolean;
53 ocppPersistentConfiguration?: boolean;
54 stationInfoPersistentConfiguration?: boolean;
55 wsOptions?: WsOptions;
56 authorizationFile?: string;
57 baseName: string;
58 nameSuffix?: string;
59 fixedName?: boolean;
60 chargePointModel: string;
61 chargePointVendor: string;
62 chargePointSerialNumberPrefix?: string;
63 chargeBoxSerialNumberPrefix?: string;
64 firmwareVersion?: string;
65 iccid?: string;
66 imsi?: string;
67 meterSerialNumberPrefix?: string;
68 meterType?: string;
69 power: number | number[];
70 powerSharedByConnectors?: boolean;
71 powerUnit: PowerUnits;
72 currentOutType?: CurrentType;
73 voltageOut?: Voltage;
74 numberOfPhases?: number;
75 numberOfConnectors?: number | number[];
76 useConnectorId0?: boolean;
77 randomConnectors?: boolean;
78 resetTime?: number;
79 autoRegister?: boolean;
80 autoReconnectMaxRetries?: number;
81 reconnectExponentialDelay?: boolean;
82 registrationMaxRetries?: number;
83 enableStatistics?: boolean;
84 mustAuthorizeAtRemoteStart?: boolean;
85 payloadSchemaValidation?: boolean;
86 amperageLimitationOcppKey?: string;
87 amperageLimitationUnit?: AmpereUnits;
88 beginEndMeterValues?: boolean;
89 outOfOrderEndMeterValues?: boolean;
90 meteringPerTransaction?: boolean;
91 transactionDataMeterValues?: boolean;
92 mainVoltageMeterValues?: boolean;
93 phaseLineToLineVoltageMeterValues?: boolean;
94 customValueLimitationMeterValues?: boolean;
95 commandsSupport?: CommandsSupport;
96 Configuration?: ChargingStationOcppConfiguration;
97 AutomaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration;
98 Connectors: Record<string, ConnectorStatus>;
99 }