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