Unify supervision urls setup and distribution to charging stations
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationTemplate.ts
index 65e22ea3f0cfac7612b59c16e07d5c7988268ef2..c06468e91f6a00c90018725fa900755aa1da8b99 100644 (file)
@@ -1,20 +1,25 @@
 import ChargingStationConfiguration from './ChargingStationConfiguration';
-import Connectors from './Connectors';
+import { ClientOptions } from 'ws';
+import { ClientRequestArgs } from 'http';
+import { ConnectorStatus } from './ConnectorStatus';
+import { OCPPProtocol } from './ocpp/OCPPProtocol';
+import { OCPPVersion } from './ocpp/OCPPVersion';
 
-export enum PowerOutType {
+export enum CurrentType {
   AC = 'AC',
   DC = 'DC',
 }
 
-export enum PowerUnit {
+export enum PowerUnits {
   WATT = 'W',
   KILO_WATT = 'kW',
 }
 
-export enum VoltageOut {
+export enum Voltage {
   VOLTAGE_110 = 110,
   VOLTAGE_230 = 230,
-  VOLTAGE_400 = 400
+  VOLTAGE_400 = 400,
+  VOLTAGE_800 = 800
 }
 
 export interface AutomaticTransactionGenerator {
@@ -25,34 +30,50 @@ export interface AutomaticTransactionGenerator {
   maxDelayBetweenTwoTransactions: number;
   probabilityOfStart: number;
   stopAfterHours: number;
-  stopOnConnectionFailure: boolean
+  stopOnConnectionFailure: boolean;
+  requireAuthorize?: boolean
 }
 
 export default interface ChargingStationTemplate {
-  supervisionURL?: string;
+  supervisionUrls?: string | string[];
+  supervisionUrlOcppConfiguration?: boolean;
+  supervisionUrlOcppKey?: string;
+  supervisionUser?: string;
+  supervisionPassword?: string;
+  ocppVersion?: OCPPVersion;
+  ocppProtocol?: OCPPProtocol;
+  wsOptions?: ClientOptions & ClientRequestArgs;
   authorizationFile?: string;
   baseName: string;
-  fixedName?: string;
+  nameSuffix?: string;
+  fixedName?: boolean;
   chargePointModel: string;
   chargePointVendor: string;
   chargeBoxSerialNumberPrefix?: string;
   firmwareVersion?: string;
   power: number | number[];
   powerSharedByConnectors?: boolean;
-  powerUnit: PowerUnit;
-  powerOutType?: PowerOutType;
+  powerUnit: PowerUnits;
+  currentOutType?: CurrentType;
+  voltageOut?: Voltage;
   numberOfPhases?: number;
   numberOfConnectors?: number | number[];
   useConnectorId0?: boolean;
   randomConnectors?: boolean;
   resetTime?: number;
-  connectionTimeout?: number;
+  autoRegister: boolean;
   autoReconnectMaxRetries?: number;
   reconnectExponentialDelay?: boolean;
   registrationMaxRetries?: number;
   enableStatistics?: boolean;
-  voltageOut?: number;
+  mayAuthorizeAtRemoteStart: boolean;
+  beginEndMeterValues?: boolean;
+  outOfOrderEndMeterValues?: boolean;
+  meteringPerTransaction?: boolean;
+  transactionDataMeterValues?: boolean;
+  mainVoltageMeterValues?: boolean;
+  phaseLineToLineVoltageMeterValues?: boolean;
   Configuration?: ChargingStationConfiguration;
   AutomaticTransactionGenerator: AutomaticTransactionGenerator;
-  Connectors: Connectors;
+  Connectors: Record<string, ConnectorStatus>;
 }