X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Ftypes%2FWorkerBroadcastChannel.ts;h=077c2f3750acce4fe2e6ece971e8aff3ba5d5d09;hb=2162e174630d4335e0fb8e7d587683b96af0d9a3;hp=61a47fa02eb272e0b98ca41efdee3c465d3175c4;hpb=32de5a575189d226213641f5ee36004f8454cb50;p=e-mobility-charging-stations-simulator.git diff --git a/src/types/WorkerBroadcastChannel.ts b/src/types/WorkerBroadcastChannel.ts index 61a47fa0..077c2f37 100644 --- a/src/types/WorkerBroadcastChannel.ts +++ b/src/types/WorkerBroadcastChannel.ts @@ -1,8 +1,46 @@ -import { ChargingStationData } from './ChargingStationWorker'; +import type { RequestPayload, ResponsePayload } from './UIProtocol.js' -// TODO: use a base payload type and extends it per procedure name -export interface WorkerBroadcastChannelData extends ChargingStationData { - connectorId?: number; - transactionId?: number; - idTag?: string; +export type BroadcastChannelRequest = [ + `${string}-${string}-${string}-${string}-${string}`, + BroadcastChannelProcedureName, + BroadcastChannelRequestPayload +] +export type BroadcastChannelResponse = [ + `${string}-${string}-${string}-${string}-${string}`, + BroadcastChannelResponsePayload +] + +export enum BroadcastChannelProcedureName { + START_CHARGING_STATION = 'startChargingStation', + STOP_CHARGING_STATION = 'stopChargingStation', + DELETE_CHARGING_STATIONS = 'deleteChargingStations', + OPEN_CONNECTION = 'openConnection', + CLOSE_CONNECTION = 'closeConnection', + START_AUTOMATIC_TRANSACTION_GENERATOR = 'startAutomaticTransactionGenerator', + STOP_AUTOMATIC_TRANSACTION_GENERATOR = 'stopAutomaticTransactionGenerator', + SET_SUPERVISION_URL = 'setSupervisionUrl', + START_TRANSACTION = 'startTransaction', + STOP_TRANSACTION = 'stopTransaction', + AUTHORIZE = 'authorize', + BOOT_NOTIFICATION = 'bootNotification', + STATUS_NOTIFICATION = 'statusNotification', + HEARTBEAT = 'heartbeat', + METER_VALUES = 'meterValues', + DATA_TRANSFER = 'dataTransfer', + DIAGNOSTICS_STATUS_NOTIFICATION = 'diagnosticsStatusNotification', + FIRMWARE_STATUS_NOTIFICATION = 'firmwareStatusNotification' +} + +export interface BroadcastChannelRequestPayload extends RequestPayload { + connectorId?: number + transactionId?: number +} + +export interface BroadcastChannelResponsePayload + extends Omit { + hashId: string | undefined +} + +export interface MessageEvent { + data: BroadcastChannelRequest | BroadcastChannelResponse }