fix: ensure custom meterValues values are taken
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 2.0 / OCPP20Constants.ts
index 58a1004ca90ab7a128bbe03c941c797578800408..c64fe13dca8c9d841d49cc2d3f143079c6cee4ee 100644 (file)
@@ -1,69 +1,91 @@
-import { OCPP20ConnectorStatusEnumType } from '../../../types';
-import { OCPPConstants } from '../internal';
-
-type Transition = { from?: OCPP20ConnectorStatusEnumType; to: OCPP20ConnectorStatusEnumType };
+import { type ConnectorStatusTransition, OCPP20ConnectorStatusEnumType } from '../../../types';
+import { OCPPConstants } from '../OCPPConstants';
 
 export class OCPP20Constants extends OCPPConstants {
-  static readonly ChargingStationStatusTransitions: Transition[] = [
-    { to: OCPP20ConnectorStatusEnumType.Available },
-    // { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Available },
-    {
-      from: OCPP20ConnectorStatusEnumType.Available,
-      to: OCPP20ConnectorStatusEnumType.Unavailable,
-    },
-    { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Faulted },
-    { to: OCPP20ConnectorStatusEnumType.Unavailable },
-    {
-      from: OCPP20ConnectorStatusEnumType.Unavailable,
-      to: OCPP20ConnectorStatusEnumType.Available,
-    },
-    // {
-    //   from: OCPP20ConnectorStatusEnumType.Unavailable,
-    //   to: OCPP20ConnectorStatusEnumType.Unavailable,
-    // },
-    { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Faulted },
-    { to: OCPP20ConnectorStatusEnumType.Faulted },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Available },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    // { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Faulted },
-  ];
+  static readonly ChargingStationStatusTransitions: Readonly<ConnectorStatusTransition[]> =
+    Object.freeze([
+      { to: OCPP20ConnectorStatusEnumType.Available },
+      // { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Available },
+      {
+        from: OCPP20ConnectorStatusEnumType.Available,
+        to: OCPP20ConnectorStatusEnumType.Unavailable,
+      },
+      { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Faulted },
+      { to: OCPP20ConnectorStatusEnumType.Unavailable },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Available,
+      },
+      // {
+      //   from: OCPP20ConnectorStatusEnumType.Unavailable,
+      //   to: OCPP20ConnectorStatusEnumType.Unavailable,
+      // },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Faulted,
+      },
+      { to: OCPP20ConnectorStatusEnumType.Faulted },
+      { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Available },
+      {
+        from: OCPP20ConnectorStatusEnumType.Faulted,
+        to: OCPP20ConnectorStatusEnumType.Unavailable,
+      },
+      // { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Faulted },
+    ]);
 
-  static readonly ConnectorStatusTransitions: Transition[] = [
-    { to: OCPP20ConnectorStatusEnumType.Available },
-    // { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Available },
-    { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Occupied },
-    { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Reserved },
-    {
-      from: OCPP20ConnectorStatusEnumType.Available,
-      to: OCPP20ConnectorStatusEnumType.Unavailable,
-    },
-    { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Faulted },
-    // { to: OCPP20ConnectorStatusEnumType.Occupied },
-    { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Available },
-    // { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Occupied },
-    // { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Reserved },
-    { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Faulted },
-    // { to: OCPP20ConnectorStatusEnumType.Reserved },
-    { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Available },
-    { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Occupied },
-    // { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Reserved },
-    { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Faulted },
-    { to: OCPP20ConnectorStatusEnumType.Unavailable },
-    {
-      from: OCPP20ConnectorStatusEnumType.Unavailable,
-      to: OCPP20ConnectorStatusEnumType.Available,
-    },
-    { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Occupied },
-    // { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Reserved },
-    // { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Faulted },
-    { to: OCPP20ConnectorStatusEnumType.Faulted },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Available },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Occupied },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Reserved },
-    { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Unavailable },
-    // { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Faulted },
-  ];
+  static readonly ConnectorStatusTransitions: Readonly<ConnectorStatusTransition[]> = Object.freeze(
+    [
+      { to: OCPP20ConnectorStatusEnumType.Available },
+      // { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Available },
+      { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Occupied },
+      { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Reserved },
+      {
+        from: OCPP20ConnectorStatusEnumType.Available,
+        to: OCPP20ConnectorStatusEnumType.Unavailable,
+      },
+      { from: OCPP20ConnectorStatusEnumType.Available, to: OCPP20ConnectorStatusEnumType.Faulted },
+      // { to: OCPP20ConnectorStatusEnumType.Occupied },
+      { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Available },
+      // { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Occupied },
+      // { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Reserved },
+      {
+        from: OCPP20ConnectorStatusEnumType.Occupied,
+        to: OCPP20ConnectorStatusEnumType.Unavailable,
+      },
+      { from: OCPP20ConnectorStatusEnumType.Occupied, to: OCPP20ConnectorStatusEnumType.Faulted },
+      // { to: OCPP20ConnectorStatusEnumType.Reserved },
+      { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Available },
+      { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Occupied },
+      // { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Reserved },
+      {
+        from: OCPP20ConnectorStatusEnumType.Reserved,
+        to: OCPP20ConnectorStatusEnumType.Unavailable,
+      },
+      { from: OCPP20ConnectorStatusEnumType.Reserved, to: OCPP20ConnectorStatusEnumType.Faulted },
+      { to: OCPP20ConnectorStatusEnumType.Unavailable },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Available,
+      },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Occupied,
+      },
+      // { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Reserved },
+      // { from: OCPP20ConnectorStatusEnumType.Unavailable, to: OCPP20ConnectorStatusEnumType.Unavailable },
+      {
+        from: OCPP20ConnectorStatusEnumType.Unavailable,
+        to: OCPP20ConnectorStatusEnumType.Faulted,
+      },
+      { to: OCPP20ConnectorStatusEnumType.Faulted },
+      { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Available },
+      { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Occupied },
+      { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Reserved },
+      {
+        from: OCPP20ConnectorStatusEnumType.Faulted,
+        to: OCPP20ConnectorStatusEnumType.Unavailable,
+      },
+      // { from: OCPP20ConnectorStatusEnumType.Faulted, to: OCPP20ConnectorStatusEnumType.Faulted },
+    ],
+  );
 }