feat: add support for charging profiles relative to charging start
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / OCPPConstants.ts
index 1064a95a0e3ab1651162b38e1ad1defb7fd59e0c..b9363012c4b850dbc7e18aac6bb8461797b447e5 100644 (file)
@@ -5,13 +5,27 @@ import {
   ConfigurationStatus,
   DataTransferStatus,
   GenericStatus,
+  MeterValueMeasurand,
   TriggerMessageStatus,
   UnlockStatus,
 } from '../../types';
+import { ReservationStatus } from '../../types/ocpp/Responses';
+import { Constants } from '../../utils';
 
 export class OCPPConstants {
-  static readonly OCPP_REQUEST_EMPTY = Object.freeze({});
-  static readonly OCPP_RESPONSE_EMPTY = Object.freeze({});
+  static readonly OCPP_WEBSOCKET_TIMEOUT = 60000; // Ms
+  static readonly OCPP_TRIGGER_MESSAGE_DELAY = 500; // Ms
+
+  static readonly OCPP_MEASURANDS_SUPPORTED = Object.freeze([
+    MeterValueMeasurand.STATE_OF_CHARGE,
+    MeterValueMeasurand.VOLTAGE,
+    MeterValueMeasurand.POWER_ACTIVE_IMPORT,
+    MeterValueMeasurand.CURRENT_IMPORT,
+    MeterValueMeasurand.ENERGY_ACTIVE_IMPORT_REGISTER,
+  ]);
+
+  static readonly OCPP_REQUEST_EMPTY = Constants.EMPTY_FREEZED_OBJECT;
+  static readonly OCPP_RESPONSE_EMPTY = Constants.EMPTY_FREEZED_OBJECT;
   static readonly OCPP_RESPONSE_ACCEPTED = Object.freeze({ status: GenericStatus.Accepted });
   static readonly OCPP_RESPONSE_REJECTED = Object.freeze({ status: GenericStatus.Rejected });
 
@@ -84,11 +98,47 @@ export class OCPPConstants {
     status: TriggerMessageStatus.NOT_IMPLEMENTED,
   });
 
+  static readonly OCPP_DATA_TRANSFER_RESPONSE_ACCEPTED = Object.freeze({
+    status: DataTransferStatus.ACCEPTED,
+  });
+
   static readonly OCPP_DATA_TRANSFER_RESPONSE_REJECTED = Object.freeze({
     status: DataTransferStatus.REJECTED,
   });
 
-  private constructor() {
+  static readonly OCPP_DATA_TRANSFER_RESPONSE_UNKNOWN_VENDOR_ID = Object.freeze({
+    status: DataTransferStatus.UNKNOWN_VENDOR_ID,
+  });
+
+  static readonly OCPP_RESERVATION_RESPONSE_ACCEPTED = Object.freeze({
+    status: ReservationStatus.ACCEPTED,
+  }); // Reservation has been made
+
+  static readonly OCPP_RESERVATION_RESPONSE_FAULTED = Object.freeze({
+    status: ReservationStatus.FAULTED,
+  }); // Reservation has not been made, because of connector in FAULTED state
+
+  static readonly OCPP_RESERVATION_RESPONSE_OCCUPIED = Object.freeze({
+    status: ReservationStatus.OCCUPIED,
+  }); // Reservation has not been made, because all connectors are OCCUPIED
+
+  static readonly OCPP_RESERVATION_RESPONSE_REJECTED = Object.freeze({
+    status: ReservationStatus.REJECTED,
+  }); // Reservation has not been made, because charging station is not configured to accept reservations
+
+  static readonly OCPP_RESERVATION_RESPONSE_UNAVAILABLE = Object.freeze({
+    status: ReservationStatus.UNAVAILABLE,
+  }); // Reservation has not been made, because connector is in UNAVAILABLE state
+
+  static readonly OCPP_CANCEL_RESERVATION_RESPONSE_ACCEPTED = Object.freeze({
+    status: GenericStatus.Accepted,
+  }); // Reservation for id has been cancelled
+
+  static readonly OCPP_CANCEL_RESERVATION_RESPONSE_REJECTED = Object.freeze({
+    status: GenericStatus.Rejected,
+  }); // Reservation could not be cancelled, because there is no reservation active for id
+
+  protected constructor() {
     // This is intentional
   }
 }