- ProtocolRequest,
- ProtocolRequestHandler,
- ProtocolResponse,
- ProtocolVersion,
- RequestPayload,
- ResponsePayload,
- ResponseStatus,
-} from '../../../types/UIProtocol';
-import logger from '../../../utils/Logger';
-import Bootstrap from '../../Bootstrap';
-import UIServiceWorkerBroadcastChannel from '../../UIServiceWorkerBroadcastChannel';
-import type { AbstractUIServer } from '../AbstractUIServer';
-
-const moduleName = 'AbstractUIService';
-
-export default abstract class AbstractUIService {
- protected readonly version: ProtocolVersion;
- protected readonly uiServer: AbstractUIServer;
- protected readonly requestHandlers: Map<ProcedureName, ProtocolRequestHandler>;
- protected uiServiceWorkerBroadcastChannel: UIServiceWorkerBroadcastChannel;
-
- constructor(uiServer: AbstractUIServer, version: ProtocolVersion) {
- this.version = version;
- this.uiServer = uiServer;
+ BroadcastChannelProcedureName
+ >([
+ [ProcedureName.START_CHARGING_STATION, BroadcastChannelProcedureName.START_CHARGING_STATION],
+ [ProcedureName.STOP_CHARGING_STATION, BroadcastChannelProcedureName.STOP_CHARGING_STATION],
+ [ProcedureName.CLOSE_CONNECTION, BroadcastChannelProcedureName.CLOSE_CONNECTION],
+ [ProcedureName.OPEN_CONNECTION, BroadcastChannelProcedureName.OPEN_CONNECTION],
+ [
+ ProcedureName.START_AUTOMATIC_TRANSACTION_GENERATOR,
+ BroadcastChannelProcedureName.START_AUTOMATIC_TRANSACTION_GENERATOR
+ ],
+ [
+ ProcedureName.STOP_AUTOMATIC_TRANSACTION_GENERATOR,
+ BroadcastChannelProcedureName.STOP_AUTOMATIC_TRANSACTION_GENERATOR
+ ],
+ [ProcedureName.SET_SUPERVISION_URL, BroadcastChannelProcedureName.SET_SUPERVISION_URL],
+ [ProcedureName.START_TRANSACTION, BroadcastChannelProcedureName.START_TRANSACTION],
+ [ProcedureName.STOP_TRANSACTION, BroadcastChannelProcedureName.STOP_TRANSACTION],
+ [ProcedureName.AUTHORIZE, BroadcastChannelProcedureName.AUTHORIZE],
+ [ProcedureName.BOOT_NOTIFICATION, BroadcastChannelProcedureName.BOOT_NOTIFICATION],
+ [ProcedureName.STATUS_NOTIFICATION, BroadcastChannelProcedureName.STATUS_NOTIFICATION],
+ [ProcedureName.HEARTBEAT, BroadcastChannelProcedureName.HEARTBEAT],
+ [ProcedureName.METER_VALUES, BroadcastChannelProcedureName.METER_VALUES],
+ [ProcedureName.DATA_TRANSFER, BroadcastChannelProcedureName.DATA_TRANSFER],
+ [
+ ProcedureName.DIAGNOSTICS_STATUS_NOTIFICATION,
+ BroadcastChannelProcedureName.DIAGNOSTICS_STATUS_NOTIFICATION
+ ],
+ [
+ ProcedureName.FIRMWARE_STATUS_NOTIFICATION,
+ BroadcastChannelProcedureName.FIRMWARE_STATUS_NOTIFICATION
+ ]
+ ])
+
+ protected readonly requestHandlers: Map<ProcedureName, ProtocolRequestHandler>
+ private readonly version: ProtocolVersion
+ private readonly uiServer: AbstractUIServer
+ private readonly uiServiceWorkerBroadcastChannel: UIServiceWorkerBroadcastChannel
+ private readonly broadcastChannelRequests: Map<string, number>
+
+ constructor (uiServer: AbstractUIServer, version: ProtocolVersion) {
+ this.uiServer = uiServer
+ this.version = version