Add Hearbeat command to OCPP 2.0.1
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / Responses.ts
1 import type ChargingStation from '../../charging-station/ChargingStation';
2 import type { JsonType } from '../JsonType';
3 import type { OCPP16MeterValuesResponse } from './1.6/MeterValues';
4 import {
5 OCPP16AvailabilityStatus,
6 type OCPP16BootNotificationResponse,
7 OCPP16ChargingProfileStatus,
8 OCPP16ClearChargingProfileStatus,
9 OCPP16ConfigurationStatus,
10 type OCPP16DataTransferResponse,
11 OCPP16DataTransferStatus,
12 type OCPP16DiagnosticsStatusNotificationResponse,
13 type OCPP16FirmwareStatusNotificationResponse,
14 type OCPP16HeartbeatResponse,
15 type OCPP16StatusNotificationResponse,
16 OCPP16TriggerMessageStatus,
17 OCPP16UnlockStatus,
18 } from './1.6/Responses';
19 import type { OCPP20BootNotificationResponse, OCPP20ClearCacheResponse } from './2.0/Responses';
20 import type { ErrorType } from './ErrorType';
21 import type { MessageType } from './MessageType';
22
23 export type Response = [MessageType.CALL_RESULT_MESSAGE, string, JsonType];
24
25 export type ErrorResponse = [MessageType.CALL_ERROR_MESSAGE, string, ErrorType, string, JsonType];
26
27 export type ResponseHandler = (
28 chargingStation: ChargingStation,
29 payload: JsonType,
30 requestPayload?: JsonType
31 ) => void | Promise<void>;
32
33 export type BootNotificationResponse =
34 | OCPP16BootNotificationResponse
35 | OCPP20BootNotificationResponse;
36
37 export type HeartbeatResponse = OCPP16HeartbeatResponse;
38
39 export type ClearCacheResponse = DefaultResponse | OCPP20ClearCacheResponse;
40
41 export type StatusNotificationResponse = OCPP16StatusNotificationResponse;
42
43 export type MeterValuesResponse = OCPP16MeterValuesResponse;
44
45 export type DataTransferResponse = OCPP16DataTransferResponse;
46
47 export type DiagnosticsStatusNotificationResponse = OCPP16DiagnosticsStatusNotificationResponse;
48
49 export type FirmwareStatusNotificationResponse = OCPP16FirmwareStatusNotificationResponse;
50
51 export enum DefaultStatus {
52 ACCEPTED = 'Accepted',
53 REJECTED = 'Rejected',
54 }
55
56 export type DefaultResponse = {
57 status: DefaultStatus;
58 };
59
60 export enum RegistrationStatusEnumType {
61 ACCEPTED = 'Accepted',
62 PENDING = 'Pending',
63 REJECTED = 'Rejected',
64 }
65
66 export const AvailabilityStatus = {
67 ...OCPP16AvailabilityStatus,
68 } as const;
69 export type AvailabilityStatus = OCPP16AvailabilityStatus;
70
71 export const ChargingProfileStatus = {
72 ...OCPP16ChargingProfileStatus,
73 } as const;
74 export type ChargingProfileStatus = OCPP16ChargingProfileStatus;
75
76 export const ClearChargingProfileStatus = {
77 ...OCPP16ClearChargingProfileStatus,
78 } as const;
79 export type ClearChargingProfileStatus = OCPP16ClearChargingProfileStatus;
80
81 export const ConfigurationStatus = {
82 ...OCPP16ConfigurationStatus,
83 } as const;
84 export type ConfigurationStatus = OCPP16ConfigurationStatus;
85
86 export const UnlockStatus = {
87 ...OCPP16UnlockStatus,
88 } as const;
89 export type UnlockStatus = OCPP16UnlockStatus;
90
91 export const TriggerMessageStatus = {
92 ...OCPP16TriggerMessageStatus,
93 } as const;
94 export type TriggerMessageStatus = OCPP16TriggerMessageStatus;
95
96 export const DataTransferStatus = {
97 ...OCPP16DataTransferStatus,
98 } as const;
99 export type DataTransferStatus = OCPP16DataTransferStatus;