fix: fix ATG refresh at template changes
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationTemplate.ts
index a9d42724aad0f9df2fbb0754a3b013c2cf0b5049..23644c7faa86d146867df651a2717a1ba57d9367 100644 (file)
@@ -1,9 +1,19 @@
-import ChargingStationOcppConfiguration from './ChargingStationOcppConfiguration';
-import { ClientOptions } from 'ws';
-import { ClientRequestArgs } from 'http';
-import { ConnectorStatus } from './ConnectorStatus';
-import { OCPPProtocol } from './ocpp/OCPPProtocol';
-import { OCPPVersion } from './ocpp/OCPPVersion';
+import type { ClientRequestArgs } from 'node:http';
+
+import type { ClientOptions } from 'ws';
+
+import type {
+  AutomaticTransactionGeneratorConfiguration,
+  ChargingStationOcppConfiguration,
+  ConnectorStatus,
+  EvseTemplate,
+  FirmwareStatus,
+  IncomingRequestCommand,
+  MessageTrigger,
+  OCPPProtocol,
+  OCPPVersion,
+  RequestCommand,
+} from './internal';
 
 export enum CurrentType {
   AC = 'AC',
@@ -29,22 +39,24 @@ export enum Voltage {
   VOLTAGE_800 = 800,
 }
 
-export interface AutomaticTransactionGenerator {
-  enable: boolean;
-  minDuration: number;
-  maxDuration: number;
-  minDelayBetweenTwoTransactions: number;
-  maxDelayBetweenTwoTransactions: number;
-  probabilityOfStart: number;
-  stopAfterHours: number;
-  stopOnConnectionFailure: boolean;
-  requireAuthorize?: boolean;
-}
-
 export type WsOptions = ClientOptions & ClientRequestArgs;
 
-export default interface ChargingStationTemplate {
-  hash?: string;
+export type FirmwareUpgrade = {
+  versionUpgrade?: {
+    patternGroup?: number;
+    step?: number;
+  };
+  reset?: boolean;
+  failureStatus?: FirmwareStatus;
+};
+
+type CommandsSupport = {
+  incomingCommands: Record<IncomingRequestCommand, boolean>;
+  outgoingCommands?: Record<RequestCommand, boolean>;
+};
+
+export type ChargingStationTemplate = {
+  templateHash?: string;
   supervisionUrls?: string | string[];
   supervisionUrlOcppConfiguration?: boolean;
   supervisionUrlOcppKey?: string;
@@ -54,8 +66,9 @@ export default interface ChargingStationTemplate {
   ocppProtocol?: OCPPProtocol;
   ocppStrictCompliance?: boolean;
   ocppPersistentConfiguration?: boolean;
+  stationInfoPersistentConfiguration?: boolean;
   wsOptions?: WsOptions;
-  authorizationFile?: string;
+  idTagsFile?: string;
   baseName: string;
   nameSuffix?: string;
   fixedName?: boolean;
@@ -63,10 +76,12 @@ export default interface ChargingStationTemplate {
   chargePointVendor: string;
   chargePointSerialNumberPrefix?: string;
   chargeBoxSerialNumberPrefix?: string;
+  firmwareVersionPattern?: string;
   firmwareVersion?: string;
+  firmwareUpgrade?: FirmwareUpgrade;
   iccid?: string;
   imsi?: string;
-  meterSerialNumber?: string;
+  meterSerialNumberPrefix?: string;
   meterType?: string;
   power: number | number[];
   powerSharedByConnectors?: boolean;
@@ -78,12 +93,13 @@ export default interface ChargingStationTemplate {
   useConnectorId0?: boolean;
   randomConnectors?: boolean;
   resetTime?: number;
-  autoRegister: boolean;
+  autoRegister?: boolean;
   autoReconnectMaxRetries?: number;
   reconnectExponentialDelay?: boolean;
   registrationMaxRetries?: number;
   enableStatistics?: boolean;
-  mayAuthorizeAtRemoteStart: boolean;
+  mustAuthorizeAtRemoteStart?: boolean;
+  payloadSchemaValidation?: boolean;
   amperageLimitationOcppKey?: string;
   amperageLimitationUnit?: AmpereUnits;
   beginEndMeterValues?: boolean;
@@ -92,7 +108,11 @@ export default interface ChargingStationTemplate {
   transactionDataMeterValues?: boolean;
   mainVoltageMeterValues?: boolean;
   phaseLineToLineVoltageMeterValues?: boolean;
+  customValueLimitationMeterValues?: boolean;
+  commandsSupport?: CommandsSupport;
+  messageTriggerSupport?: Record<MessageTrigger, boolean>;
   Configuration?: ChargingStationOcppConfiguration;
-  AutomaticTransactionGenerator: AutomaticTransactionGenerator;
-  Connectors: Record<string, ConnectorStatus>;
-}
+  AutomaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration;
+  Evses?: Record<string, EvseTemplate>;
+  Connectors?: Record<string, ConnectorStatus>;
+};