fix: use nextTick to delay event emission
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / OCPPConstants.ts
CommitLineData
bf53cadf
JB
1import {
2 AvailabilityStatus,
3 ChargingProfileStatus,
4 ClearChargingProfileStatus,
5 ConfigurationStatus,
6 DataTransferStatus,
f03e1042 7 GenericStatus,
c3da35d4 8 MeterValueMeasurand,
a6ef1ece 9 ReservationStatus,
bf53cadf 10 TriggerMessageStatus,
66a7748d
JB
11 UnlockStatus
12} from '../../types/index.js'
13import { Constants } from '../../utils/index.js'
bf53cadf 14
66a7748d 15// eslint-disable-next-line @typescript-eslint/no-extraneous-class
268a74bb 16export class OCPPConstants {
66a7748d 17 static readonly OCPP_WEBSOCKET_TIMEOUT = 60000 // Ms
d8b1fab1 18
c3da35d4
JB
19 static readonly OCPP_MEASURANDS_SUPPORTED = Object.freeze([
20 MeterValueMeasurand.STATE_OF_CHARGE,
21 MeterValueMeasurand.VOLTAGE,
22 MeterValueMeasurand.POWER_ACTIVE_IMPORT,
23 MeterValueMeasurand.CURRENT_IMPORT,
66a7748d
JB
24 MeterValueMeasurand.ENERGY_ACTIVE_IMPORT_REGISTER
25 ])
c3da35d4 26
66a7748d
JB
27 static readonly OCPP_REQUEST_EMPTY = Constants.EMPTY_FROZEN_OBJECT
28 static readonly OCPP_RESPONSE_EMPTY = Constants.EMPTY_FROZEN_OBJECT
29 static readonly OCPP_RESPONSE_ACCEPTED = Object.freeze({ status: GenericStatus.Accepted })
30 static readonly OCPP_RESPONSE_REJECTED = Object.freeze({ status: GenericStatus.Rejected })
bf53cadf
JB
31
32 static readonly OCPP_CONFIGURATION_RESPONSE_ACCEPTED = Object.freeze({
66a7748d
JB
33 status: ConfigurationStatus.ACCEPTED
34 })
bf53cadf
JB
35
36 static readonly OCPP_CONFIGURATION_RESPONSE_REJECTED = Object.freeze({
66a7748d
JB
37 status: ConfigurationStatus.REJECTED
38 })
bf53cadf
JB
39
40 static readonly OCPP_CONFIGURATION_RESPONSE_REBOOT_REQUIRED = Object.freeze({
66a7748d
JB
41 status: ConfigurationStatus.REBOOT_REQUIRED
42 })
bf53cadf
JB
43
44 static readonly OCPP_CONFIGURATION_RESPONSE_NOT_SUPPORTED = Object.freeze({
66a7748d
JB
45 status: ConfigurationStatus.NOT_SUPPORTED
46 })
bf53cadf
JB
47
48 static readonly OCPP_SET_CHARGING_PROFILE_RESPONSE_ACCEPTED = Object.freeze({
66a7748d
JB
49 status: ChargingProfileStatus.ACCEPTED
50 })
bf53cadf
JB
51
52 static readonly OCPP_SET_CHARGING_PROFILE_RESPONSE_REJECTED = Object.freeze({
66a7748d
JB
53 status: ChargingProfileStatus.REJECTED
54 })
bf53cadf
JB
55
56 static readonly OCPP_SET_CHARGING_PROFILE_RESPONSE_NOT_SUPPORTED = Object.freeze({
66a7748d
JB
57 status: ChargingProfileStatus.NOT_SUPPORTED
58 })
bf53cadf
JB
59
60 static readonly OCPP_CLEAR_CHARGING_PROFILE_RESPONSE_ACCEPTED = Object.freeze({
66a7748d
JB
61 status: ClearChargingProfileStatus.ACCEPTED
62 })
bf53cadf
JB
63
64 static readonly OCPP_CLEAR_CHARGING_PROFILE_RESPONSE_UNKNOWN = Object.freeze({
66a7748d
JB
65 status: ClearChargingProfileStatus.UNKNOWN
66 })
bf53cadf 67
66a7748d 68 static readonly OCPP_RESPONSE_UNLOCKED = Object.freeze({ status: UnlockStatus.UNLOCKED })
bf53cadf 69 static readonly OCPP_RESPONSE_UNLOCK_FAILED = Object.freeze({
66a7748d
JB
70 status: UnlockStatus.UNLOCK_FAILED
71 })
bf53cadf
JB
72
73 static readonly OCPP_RESPONSE_UNLOCK_NOT_SUPPORTED = Object.freeze({
66a7748d
JB
74 status: UnlockStatus.NOT_SUPPORTED
75 })
bf53cadf
JB
76
77 static readonly OCPP_AVAILABILITY_RESPONSE_ACCEPTED = Object.freeze({
66a7748d
JB
78 status: AvailabilityStatus.ACCEPTED
79 })
bf53cadf
JB
80
81 static readonly OCPP_AVAILABILITY_RESPONSE_REJECTED = Object.freeze({
66a7748d
JB
82 status: AvailabilityStatus.REJECTED
83 })
bf53cadf
JB
84
85 static readonly OCPP_AVAILABILITY_RESPONSE_SCHEDULED = Object.freeze({
66a7748d
JB
86 status: AvailabilityStatus.SCHEDULED
87 })
bf53cadf
JB
88
89 static readonly OCPP_TRIGGER_MESSAGE_RESPONSE_ACCEPTED = Object.freeze({
66a7748d
JB
90 status: TriggerMessageStatus.ACCEPTED
91 })
bf53cadf
JB
92
93 static readonly OCPP_TRIGGER_MESSAGE_RESPONSE_REJECTED = Object.freeze({
66a7748d
JB
94 status: TriggerMessageStatus.REJECTED
95 })
bf53cadf
JB
96
97 static readonly OCPP_TRIGGER_MESSAGE_RESPONSE_NOT_IMPLEMENTED = Object.freeze({
66a7748d
JB
98 status: TriggerMessageStatus.NOT_IMPLEMENTED
99 })
bf53cadf 100
b63b4a73 101 static readonly OCPP_DATA_TRANSFER_RESPONSE_ACCEPTED = Object.freeze({
66a7748d
JB
102 status: DataTransferStatus.ACCEPTED
103 })
b63b4a73 104
bf53cadf 105 static readonly OCPP_DATA_TRANSFER_RESPONSE_REJECTED = Object.freeze({
66a7748d
JB
106 status: DataTransferStatus.REJECTED
107 })
022a231c 108
b63b4a73 109 static readonly OCPP_DATA_TRANSFER_RESPONSE_UNKNOWN_VENDOR_ID = Object.freeze({
66a7748d
JB
110 status: DataTransferStatus.UNKNOWN_VENDOR_ID
111 })
bf53cadf 112
66dd3447 113 static readonly OCPP_RESERVATION_RESPONSE_ACCEPTED = Object.freeze({
66a7748d
JB
114 status: ReservationStatus.ACCEPTED
115 }) // Reservation has been made
899cb106 116
66dd3447 117 static readonly OCPP_RESERVATION_RESPONSE_FAULTED = Object.freeze({
66a7748d
JB
118 status: ReservationStatus.FAULTED
119 }) // Reservation has not been made, because of connector in FAULTED state
899cb106 120
66dd3447 121 static readonly OCPP_RESERVATION_RESPONSE_OCCUPIED = Object.freeze({
66a7748d
JB
122 status: ReservationStatus.OCCUPIED
123 }) // Reservation has not been made, because all connectors are OCCUPIED
66dd3447
JB
124
125 static readonly OCPP_RESERVATION_RESPONSE_REJECTED = Object.freeze({
66a7748d
JB
126 status: ReservationStatus.REJECTED
127 }) // Reservation has not been made, because charging station is not configured to accept reservations
66dd3447
JB
128
129 static readonly OCPP_RESERVATION_RESPONSE_UNAVAILABLE = Object.freeze({
66a7748d
JB
130 status: ReservationStatus.UNAVAILABLE
131 }) // Reservation has not been made, because connector is in UNAVAILABLE state
66dd3447
JB
132
133 static readonly OCPP_CANCEL_RESERVATION_RESPONSE_ACCEPTED = Object.freeze({
66a7748d
JB
134 status: GenericStatus.Accepted
135 }) // Reservation for id has been cancelled
66dd3447
JB
136
137 static readonly OCPP_CANCEL_RESERVATION_RESPONSE_REJECTED = Object.freeze({
66a7748d
JB
138 status: GenericStatus.Rejected
139 }) // Reservation could not be cancelled, because there is no reservation active for id
899cb106 140
66a7748d 141 protected constructor () {
bf53cadf
JB
142 // This is intentional
143 }
144}