build(simulator): apply updates
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 1.6 / OCPP16Constants.ts
index b0fb1ef8b06bf1fb640bebe197a1d2e5c496c82f..5f6958817a1103d1c80317ee8654bf34df2f9d3f 100644 (file)
 import { OCPP16ChargePointStatus } from '../../../types';
 import { OCPPConstants } from '../internal';
 
+type Transition = Readonly<{
+  from?: OCPP16ChargePointStatus;
+  to: OCPP16ChargePointStatus;
+}>;
+
 export class OCPP16Constants extends OCPPConstants {
-  static readonly OCPP16ChargePointStatusChargingStationTransition = new Set<
-    [OCPP16ChargePointStatus | undefined, OCPP16ChargePointStatus | undefined]
-  >([
-    [undefined, OCPP16ChargePointStatus.Available],
-    // [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Available],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Faulted],
-    [undefined, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Available],
-    // [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Faulted],
-    [undefined, OCPP16ChargePointStatus.Faulted],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Available],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Unavailable],
-    // [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Faulted],
-  ]);
+  static readonly ChargePointStatusChargingStationTransitions: Readonly<Transition[]> =
+    Object.freeze([
+      { to: OCPP16ChargePointStatus.Available },
+      // { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Available },
+      { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Unavailable },
+      { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Faulted },
+      { to: OCPP16ChargePointStatus.Unavailable },
+      { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Available },
+      // { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Unavailable },
+      { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Faulted },
+      { to: OCPP16ChargePointStatus.Faulted },
+      { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Available },
+      { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Unavailable },
+      // { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Faulted },
+    ]);
 
-  static readonly OCPP16ChargePointStatusConnectorTransition = new Set<
-    [OCPP16ChargePointStatus | undefined, OCPP16ChargePointStatus | undefined]
-  >([
-    [undefined, OCPP16ChargePointStatus.Available],
-    // [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Available],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Preparing],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Charging],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.SuspendedEV],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.SuspendedEVSE],
-    // [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Finishing],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Reserved],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Available, OCPP16ChargePointStatus.Faulted],
-    // [undefined, OCPP16ChargePointStatus.Preparing],
-    [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Available],
-    // [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Preparing],
-    [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Charging],
-    [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.SuspendedEV],
-    [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.SuspendedEVSE],
-    [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Finishing],
-    // [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Reserved],
-    // [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Preparing, OCPP16ChargePointStatus.Faulted],
-    // [undefined, OCPP16ChargePointStatus.Charging],
-    [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Available],
-    // [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Preparing],
-    // [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Charging],
-    [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.SuspendedEV],
-    [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.SuspendedEVSE],
-    [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Finishing],
-    // [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Reserved],
-    [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Charging, OCPP16ChargePointStatus.Faulted],
-    // [undefined, OCPP16ChargePointStatus.SuspendedEV],
-    [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Available],
-    // [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Preparing],
-    [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Charging],
-    // [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.SuspendedEV],
-    [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.SuspendedEVSE],
-    [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Finishing],
-    // [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Reserved],
-    [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.Faulted],
-    // [undefined, OCPP16ChargePointStatus.SuspendedEVSE],
-    [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Available],
-    // [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Preparing],
-    [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Charging],
-    [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.SuspendedEV],
-    // [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.SuspendedEVSE],
-    [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Finishing],
-    // [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Reserved],
-    [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.SuspendedEVSE, OCPP16ChargePointStatus.Faulted],
-    // [undefined, OCPP16ChargePointStatus.Finishing],
-    [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Available],
-    [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Preparing],
-    // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Charging],
-    // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.SuspendedEV],
-    // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.SuspendedEVSE],
-    // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Finishing],
-    // [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Reserved],
-    [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Finishing, OCPP16ChargePointStatus.Faulted],
-    // [undefined, OCPP16ChargePointStatus.Reserved],
-    [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Available],
-    [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Preparing],
-    // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Charging],
-    // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.SuspendedEV],
-    // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.SuspendedEVSE],
-    // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Finishing],
-    // [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Reserved],
-    [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Reserved, OCPP16ChargePointStatus.Faulted],
-    [undefined, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Available],
-    [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Preparing],
-    [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Charging],
-    [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.SuspendedEV],
-    [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.SuspendedEVSE],
-    // [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Finishing],
-    // [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Reserved],
-    // [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Unavailable],
-    [OCPP16ChargePointStatus.Unavailable, OCPP16ChargePointStatus.Faulted],
-    [undefined, OCPP16ChargePointStatus.Faulted],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Available],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Preparing],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Charging],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.SuspendedEV],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.SuspendedEVSE],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Finishing],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Reserved],
-    [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Unavailable],
-    // [OCPP16ChargePointStatus.Faulted, OCPP16ChargePointStatus.Faulted],
+  static readonly ChargePointStatusConnectorTransitions: Readonly<Transition[]> = Object.freeze([
+    { to: OCPP16ChargePointStatus.Available },
+    // { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Available },
+    { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Preparing },
+    { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Charging },
+    { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.SuspendedEV },
+    { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    // { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Finishing },
+    { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Reserved },
+    { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.Available, to: OCPP16ChargePointStatus.Faulted },
+    // { to: OCPP16ChargePointStatus.Preparing },
+    { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.Available },
+    // { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.Preparing },
+    { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.Charging },
+    { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.SuspendedEV },
+    { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.Finishing },
+    // { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.Reserved },
+    // { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.Preparing, to: OCPP16ChargePointStatus.Faulted },
+    // { to: OCPP16ChargePointStatus.Charging },
+    { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.Available },
+    // { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.Preparing },
+    // { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.Charging },
+    { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.SuspendedEV },
+    { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.Finishing },
+    // { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.Reserved },
+    { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.Charging, to: OCPP16ChargePointStatus.Faulted },
+    // { to: OCPP16ChargePointStatus.SuspendedEV },
+    { from: OCPP16ChargePointStatus.SuspendedEV, to: OCPP16ChargePointStatus.Available },
+    // { from: OCPP16ChargePointStatus.SuspendedEV, to: OCPP16ChargePointStatus.Preparing },
+    { from: OCPP16ChargePointStatus.SuspendedEV, to: OCPP16ChargePointStatus.Charging },
+    // { from: OCPP16ChargePointStatus.SuspendedEV, OCPP16ChargePointStatus.SuspendedEV },
+    { from: OCPP16ChargePointStatus.SuspendedEV, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    { from: OCPP16ChargePointStatus.SuspendedEV, to: OCPP16ChargePointStatus.Finishing },
+    // { from: OCPP16ChargePointStatus.SuspendedEV, to: OCPP16ChargePointStatus.Reserved },
+    { from: OCPP16ChargePointStatus.SuspendedEV, to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.SuspendedEV, to: OCPP16ChargePointStatus.Faulted },
+    // { to: OCPP16ChargePointStatus.SuspendedEVSE },
+    { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.Available },
+    // { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.Preparing },
+    { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.Charging },
+    { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.SuspendedEV },
+    // { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.Finishing },
+    // { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.Reserved },
+    { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.SuspendedEVSE, to: OCPP16ChargePointStatus.Faulted },
+    // { to: OCPP16ChargePointStatus.Finishing},
+    { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.Available },
+    { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.Preparing },
+    // { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.Charging },
+    // { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.SuspendedEV },
+    // { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    // { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.Finishing },
+    // { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.Reserved },
+    { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.Finishing, to: OCPP16ChargePointStatus.Faulted },
+    // { to: OCPP16ChargePointStatus.Reserved },
+    { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.Available },
+    { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.Preparing },
+    // { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.Charging },
+    // { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.SuspendedEV },
+    // { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    // { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.Finishing },
+    // { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.Reserved },
+    { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.Reserved, to: OCPP16ChargePointStatus.Faulted },
+    { to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Available },
+    { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Preparing },
+    { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Charging },
+    { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.SuspendedEV },
+    { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    // { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Finishing },
+    // { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Reserved },
+    // { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Unavailable },
+    { from: OCPP16ChargePointStatus.Unavailable, to: OCPP16ChargePointStatus.Faulted },
+    { to: OCPP16ChargePointStatus.Faulted },
+    { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Available },
+    { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Preparing },
+    { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Charging },
+    { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.SuspendedEV },
+    { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.SuspendedEVSE },
+    { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Finishing },
+    { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Reserved },
+    { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Unavailable },
+    // { from: OCPP16ChargePointStatus.Faulted, to: OCPP16ChargePointStatus.Faulted },
   ]);
 }