X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Ftypes%2Focpp%2FRequests.ts;h=0d60daf5872044d5a365da2ce75ef01c179a70c3;hb=f5a1ff8ce8f87a149791c2c98fe7c5e8a20b5392;hp=60724254c8a61390bcee73787bfc4facdaa8514f;hpb=e3822d6f1b40477f7308ad70c290ed2c4106c585;p=e-mobility-charging-stations-simulator.git diff --git a/src/types/ocpp/Requests.ts b/src/types/ocpp/Requests.ts index 60724254..0d60daf5 100644 --- a/src/types/ocpp/Requests.ts +++ b/src/types/ocpp/Requests.ts @@ -1,73 +1,109 @@ +import { OCPP16DiagnosticsStatus } from './1.6/DiagnosticsStatus.js'; +import type { OCPP16MeterValuesRequest } from './1.6/MeterValues.js'; import { OCPP16AvailabilityType, - OCPP16BootNotificationRequest, - OCPP16HeartbeatRequest, + type OCPP16BootNotificationRequest, + type OCPP16CancelReservationRequest, + type OCPP16DataTransferRequest, + type OCPP16DiagnosticsStatusNotificationRequest, + OCPP16FirmwareStatus, + type OCPP16FirmwareStatusNotificationRequest, + type OCPP16HeartbeatRequest, OCPP16IncomingRequestCommand, + OCPP16MessageTrigger, OCPP16RequestCommand, - OCPP16StatusNotificationRequest, -} from './1.6/Requests'; - -import { JsonObject } from '../JsonType'; -import { MessageType } from './MessageType'; -import { OCPP16DiagnosticsStatus } from './1.6/DiagnosticsStatus'; -import { OCPP16MeterValuesRequest } from './1.6/MeterValues'; -import OCPPError from '../../exception/OCPPError'; - -export type OutgoingRequest = [MessageType.CALL_MESSAGE, string, RequestCommand, JsonObject]; - -export type IncomingRequest = [ - MessageType.CALL_MESSAGE, - string, - IncomingRequestCommand, - JsonObject -]; - -export type CachedRequest = [ - (payload: JsonObject, requestPayload: JsonObject) => void, - (error: OCPPError, requestStatistic?: boolean) => void, - RequestCommand | IncomingRequestCommand, - JsonObject -]; + type OCPP16ReserveNowRequest, + type OCPP16StatusNotificationRequest, +} from './1.6/Requests.js'; +import { OperationalStatusEnumType } from './2.0/Common.js'; +import { + type OCPP20BootNotificationRequest, + OCPP20IncomingRequestCommand, + OCPP20RequestCommand, + type OCPP20StatusNotificationRequest, +} from './2.0/Requests.js'; +import type { MessageType } from './MessageType.js'; +import type { ChargingStation } from '../../charging-station/index.js'; +import type { OCPPError } from '../../exception/index.js'; +import type { JsonType } from '../JsonType.js'; -export type IncomingRequestHandler = ( - commandPayload: JsonObject -) => JsonObject | Promise; +export const RequestCommand = { + ...OCPP16RequestCommand, + ...OCPP20RequestCommand, +} as const; +export type RequestCommand = OCPP16RequestCommand | OCPP20RequestCommand; -export type ResponseType = JsonObject | OCPPError; +export type OutgoingRequest = [MessageType.CALL_MESSAGE, string, RequestCommand, JsonType]; export interface RequestParams { skipBufferingOnError?: boolean; triggerMessage?: boolean; + throwError?: boolean; } -export type BootNotificationRequest = OCPP16BootNotificationRequest; +export const IncomingRequestCommand = { + ...OCPP16IncomingRequestCommand, + ...OCPP20IncomingRequestCommand, +} as const; +export type IncomingRequestCommand = OCPP16IncomingRequestCommand | OCPP20IncomingRequestCommand; + +export type IncomingRequest = [MessageType.CALL_MESSAGE, string, IncomingRequestCommand, JsonType]; + +export type IncomingRequestHandler = ( + chargingStation: ChargingStation, + commandPayload: JsonType, +) => JsonType | Promise; + +export type ResponseCallback = (payload: JsonType, requestPayload: JsonType) => void; + +export type ErrorCallback = (ocppError: OCPPError, requestStatistic?: boolean) => void; + +export type CachedRequest = [ + ResponseCallback, + ErrorCallback, + RequestCommand | IncomingRequestCommand, + JsonType, +]; + +export const MessageTrigger = { + ...OCPP16MessageTrigger, +} as const; +export type MessageTrigger = OCPP16MessageTrigger; + +export type BootNotificationRequest = OCPP16BootNotificationRequest | OCPP20BootNotificationRequest; export type HeartbeatRequest = OCPP16HeartbeatRequest; -export type StatusNotificationRequest = OCPP16StatusNotificationRequest; +export type StatusNotificationRequest = + | OCPP16StatusNotificationRequest + | OCPP20StatusNotificationRequest; export type MeterValuesRequest = OCPP16MeterValuesRequest; -export type AvailabilityType = OCPP16AvailabilityType; +export type DataTransferRequest = OCPP16DataTransferRequest; + +export type DiagnosticsStatusNotificationRequest = OCPP16DiagnosticsStatusNotificationRequest; + +export type FirmwareStatusNotificationRequest = OCPP16FirmwareStatusNotificationRequest; export const AvailabilityType = { ...OCPP16AvailabilityType, -}; - -export type RequestCommand = OCPP16RequestCommand; + ...OperationalStatusEnumType, +} as const; +export type AvailabilityType = OCPP16AvailabilityType | OperationalStatusEnumType; -export const RequestCommand = { - ...OCPP16RequestCommand, -}; +export const DiagnosticsStatus = { + ...OCPP16DiagnosticsStatus, +} as const; +export type DiagnosticsStatus = OCPP16DiagnosticsStatus; -export type IncomingRequestCommand = OCPP16IncomingRequestCommand; +export const FirmwareStatus = { + ...OCPP16FirmwareStatus, +} as const; +export type FirmwareStatus = OCPP16FirmwareStatus; -export const IncomingRequestCommand = { - ...OCPP16IncomingRequestCommand, -}; +export type ResponseType = JsonType | OCPPError; -export type DiagnosticsStatus = OCPP16DiagnosticsStatus; +export type ReserveNowRequest = OCPP16ReserveNowRequest; -export const DiagnosticsStatus = { - ...OCPP16DiagnosticsStatus, -}; +export type CancelReservationRequest = OCPP16CancelReservationRequest;