X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2F2.0%2FOCPP20ResponseService.ts;h=50566300231ddfe3347870f3234737d64d31df9e;hb=0ed4ca0a1bd55fddf3c219e8cca11ca6d7f33b54;hp=6772fd46a2b4406166833fa8f8eb17c32d0c6fcf;hpb=60a743910478b70e39dcefa5e1b752ec8a93880e;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/2.0/OCPP20ResponseService.ts b/src/charging-station/ocpp/2.0/OCPP20ResponseService.ts index 6772fd46..50566300 100644 --- a/src/charging-station/ocpp/2.0/OCPP20ResponseService.ts +++ b/src/charging-station/ocpp/2.0/OCPP20ResponseService.ts @@ -2,6 +2,7 @@ import type { JSONSchemaType } from 'ajv'; +import { OCPP20ServiceUtils } from './OCPP20ServiceUtils'; import { type ChargingStation, ChargingStationConfigurationUtils } from '../../../charging-station'; import { OCPPError } from '../../../exception'; import { @@ -20,7 +21,7 @@ import { type ResponseHandler, } from '../../../types'; import { logger } from '../../../utils'; -import { OCPP20ServiceUtils, OCPPResponseService } from '../internal'; +import { OCPPResponseService } from '../OCPPResponseService'; const moduleName = 'OCPP20ResponseService'; @@ -34,9 +35,9 @@ export class OCPP20ResponseService extends OCPPResponseService { private jsonSchemas: Map>; public constructor() { - if (new.target?.name === moduleName) { - throw new TypeError(`Cannot construct ${new.target?.name} instances directly`); - } + // if (new.target?.name === moduleName) { + // throw new TypeError(`Cannot construct ${new.target?.name} instances directly`); + // } super(OCPPVersion.VERSION_20); this.responseHandlers = new Map([ [OCPP20RequestCommand.BOOT_NOTIFICATION, this.handleResponseBootNotification.bind(this)], @@ -47,7 +48,7 @@ export class OCPP20ResponseService extends OCPPResponseService { [ OCPP20RequestCommand.BOOT_NOTIFICATION, OCPP20ServiceUtils.parseJsonSchemaFile( - '../../../assets/json-schemas/ocpp/2.0/BootNotificationResponse.json', + 'assets/json-schemas/ocpp/2.0/BootNotificationResponse.json', moduleName, 'constructor' ), @@ -55,7 +56,7 @@ export class OCPP20ResponseService extends OCPPResponseService { [ OCPP20RequestCommand.HEARTBEAT, OCPP20ServiceUtils.parseJsonSchemaFile( - '../../../assets/json-schemas/ocpp/2.0/HeartbeatResponse.json', + 'assets/json-schemas/ocpp/2.0/HeartbeatResponse.json', moduleName, 'constructor' ), @@ -63,7 +64,7 @@ export class OCPP20ResponseService extends OCPPResponseService { [ OCPP20RequestCommand.STATUS_NOTIFICATION, OCPP20ServiceUtils.parseJsonSchemaFile( - '../../../assets/json-schemas/ocpp/2.0/StatusNotificationResponse.json', + 'assets/json-schemas/ocpp/2.0/StatusNotificationResponse.json', moduleName, 'constructor' ), @@ -73,13 +74,17 @@ export class OCPP20ResponseService extends OCPPResponseService { [ OCPP20IncomingRequestCommand.CLEAR_CACHE, OCPP20ServiceUtils.parseJsonSchemaFile( - '../../../assets/json-schemas/ocpp/2.0/ClearCacheResponse.json', + 'assets/json-schemas/ocpp/2.0/ClearCacheResponse.json', moduleName, 'constructor' ), ], ]); - this.validatePayload.bind(this); + this.validatePayload = this.validatePayload.bind(this) as ( + chargingStation: ChargingStation, + commandName: OCPP20RequestCommand, + payload: JsonType + ) => boolean; } public async responseHandler( @@ -164,9 +169,7 @@ export class OCPP20ResponseService extends OCPPResponseService { {}, { overwrite: true, save: true } ); - chargingStation.heartbeatSetInterval - ? chargingStation.restartHeartbeat() - : chargingStation.startHeartbeat(); + OCPP20ServiceUtils.startHeartbeatInterval(chargingStation, payload.interval); } if (Object.values(RegistrationStatusEnumType).includes(payload.status)) { const logMsg = `${chargingStation.logPrefix()} Charging station in '${