X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2F1.6%2FOCPP16IncomingRequestService.ts;h=2b34342e105ec2264f5f076d2a20062ca06910e4;hb=4e3b1d6bdc767ec63949b998f0375fe2b5bc2b28;hp=75f63fee53e6206ad10ad0febd73af999d1d43ba;hpb=53956a87e672adbbc6dff38b20d7e5d813e3e9cc;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts b/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts index 75f63fee..2b34342e 100644 --- a/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts +++ b/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts @@ -35,7 +35,6 @@ import { type GetDiagnosticsRequest, type GetDiagnosticsResponse, type IncomingRequestHandler, - type JsonObject, type JsonType, OCPP16AuthorizationStatus, OCPP16AvailabilityType, @@ -109,7 +108,7 @@ import { OCPPIncomingRequestService } from '../OCPPIncomingRequestService'; const moduleName = 'OCPP16IncomingRequestService'; export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { - protected jsonSchemas: Map>; + protected jsonSchemas: Map>; private incomingRequestHandlers: Map; public constructor() { @@ -187,7 +186,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { this.handleRequestCancelReservation.bind(this) as unknown as IncomingRequestHandler, ], ]); - this.jsonSchemas = new Map>([ + this.jsonSchemas = new Map>([ [ OCPP16IncomingRequestCommand.RESET, OCPP16ServiceUtils.parseJsonSchemaFile( @@ -340,7 +339,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ): Promise { let response: ResType; if ( - chargingStation.getOcppStrictCompliance() === true && + chargingStation.stationInfo?.ocppStrictCompliance === true && chargingStation.inPendingState() === true && (commandName === OCPP16IncomingRequestCommand.REMOTE_START_TRANSACTION || commandName === OCPP16IncomingRequestCommand.REMOTE_STOP_TRANSACTION) @@ -349,7 +348,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ErrorType.SECURITY_ERROR, `${commandName} cannot be issued to handle request PDU ${JSON.stringify( commandPayload, - null, + undefined, 2, )} while the charging station is in pending state on the central server`, commandName, @@ -358,7 +357,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { } if ( chargingStation.isRegistered() === true || - (chargingStation.getOcppStrictCompliance() === false && + (chargingStation.stationInfo?.ocppStrictCompliance === false && chargingStation.inUnknownState() === true) ) { if ( @@ -375,8 +374,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { } catch (error) { // Log logger.error( - `${chargingStation.logPrefix()} ${moduleName}.incomingRequestHandler: - Handle incoming request error:`, + `${chargingStation.logPrefix()} ${moduleName}.incomingRequestHandler: Handle incoming request error:`, error, ); throw error; @@ -387,7 +385,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ErrorType.NOT_IMPLEMENTED, `${commandName} is not implemented to handle request PDU ${JSON.stringify( commandPayload, - null, + undefined, 2, )}`, commandName, @@ -399,7 +397,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ErrorType.SECURITY_ERROR, `${commandName} cannot be issued to handle request PDU ${JSON.stringify( commandPayload, - null, + undefined, 2, )} while the charging station is not registered on the central server.`, commandName, @@ -429,8 +427,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ); } logger.warn( - `${chargingStation.logPrefix()} ${moduleName}.validatePayload: No JSON schema found - for command '${commandName}' PDU validation`, + `${chargingStation.logPrefix()} ${moduleName}.validatePayload: No JSON schema found for command '${commandName}' PDU validation`, ); return false; } @@ -450,8 +447,9 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { `${type}Reset` as OCPP16StopTransactionReason, ).catch(Constants.EMPTY_FUNCTION); logger.info( - `${chargingStation.logPrefix()} ${type} reset command received, simulating it. The station will be - back online in ${formatDurationMilliSeconds(chargingStation.stationInfo.resetTime!)}`, + `${chargingStation.logPrefix()} ${type} reset command received, simulating it. The station will be back online in ${formatDurationMilliSeconds( + chargingStation.stationInfo.resetTime!, + )}`, ); return OCPP16Constants.OCPP_RESPONSE_ACCEPTED; } @@ -463,8 +461,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { const { connectorId } = commandPayload; if (chargingStation.hasConnector(connectorId) === false) { logger.error( - `${chargingStation.logPrefix()} Trying to unlock a non existing - connector id ${connectorId}`, + `${chargingStation.logPrefix()} Trying to unlock a non existing connector id ${connectorId}`, ); return OCPP16Constants.OCPP_RESPONSE_UNLOCK_NOT_SUPPORTED; } @@ -514,7 +511,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { } else if (isNotEmptyArray(key) === true) { for (const k of key!) { const keyFound = getConfigurationKey(chargingStation, k, true); - if (keyFound) { + if (keyFound !== undefined) { if (isUndefined(keyFound.visible) === true) { keyFound.visible = true; } @@ -610,8 +607,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { const { connectorId, csChargingProfiles } = commandPayload; if (chargingStation.hasConnector(connectorId) === false) { logger.error( - `${chargingStation.logPrefix()} Trying to set charging profile(s) to a - non existing connector id ${connectorId}`, + `${chargingStation.logPrefix()} Trying to set charging profile(s) to a non existing connector id ${connectorId}`, ); return OCPP16Constants.OCPP_SET_CHARGING_PROFILE_RESPONSE_REJECTED; } @@ -627,8 +623,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { connectorId === 0 ) { logger.error( - `${chargingStation.logPrefix()} Trying to set transaction charging profile(s) - on connector ${connectorId}`, + `${chargingStation.logPrefix()} Trying to set transaction charging profile(s) on connector ${connectorId}`, ); return OCPP16Constants.OCPP_SET_CHARGING_PROFILE_RESPONSE_REJECTED; } @@ -639,8 +634,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { connectorStatus?.transactionStarted === false ) { logger.error( - `${chargingStation.logPrefix()} Trying to set transaction charging profile(s) - on connector ${connectorId} without a started transaction`, + `${chargingStation.logPrefix()} Trying to set transaction charging profile(s) on connector ${connectorId} without a started transaction`, ); return OCPP16Constants.OCPP_SET_CHARGING_PROFILE_RESPONSE_REJECTED; } @@ -651,10 +645,9 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { csChargingProfiles.transactionId !== connectorStatus?.transactionId ) { logger.error( - `${chargingStation.logPrefix()} Trying to set transaction charging profile(s) - on connector ${connectorId} with a different transaction id ${ - csChargingProfiles.transactionId - } than the started transaction id ${connectorStatus?.transactionId}`, + `${chargingStation.logPrefix()} Trying to set transaction charging profile(s) on connector ${connectorId} with a different transaction id ${ + csChargingProfiles.transactionId + } than the started transaction id ${connectorStatus?.transactionId}`, ); return OCPP16Constants.OCPP_SET_CHARGING_PROFILE_RESPONSE_REJECTED; } @@ -682,8 +675,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { const { connectorId, duration, chargingRateUnit } = commandPayload; if (chargingStation.hasConnector(connectorId) === false) { logger.error( - `${chargingStation.logPrefix()} Trying to get composite schedule to a - non existing connector id ${connectorId}`, + `${chargingStation.logPrefix()} Trying to get composite schedule to a non existing connector id ${connectorId}`, ); return OCPP16Constants.OCPP_RESPONSE_REJECTED; } @@ -813,8 +805,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { const { connectorId } = commandPayload; if (chargingStation.hasConnector(connectorId!) === false) { logger.error( - `${chargingStation.logPrefix()} Trying to clear a charging profile(s) to - a non existing connector id ${connectorId}`, + `${chargingStation.logPrefix()} Trying to clear a charging profile(s) to a non existing connector id ${connectorId}`, ); return OCPP16Constants.OCPP_CLEAR_CHARGING_PROFILE_RESPONSE_UNKNOWN; } @@ -861,8 +852,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { const { connectorId, type } = commandPayload; if (chargingStation.hasConnector(connectorId) === false) { logger.error( - `${chargingStation.logPrefix()} Trying to change the availability of a - non existing connector id ${connectorId}`, + `${chargingStation.logPrefix()} Trying to change the availability of a non existing connector id ${connectorId}`, ); return OCPP16Constants.OCPP_AVAILABILITY_RESPONSE_REJECTED; } @@ -1039,8 +1029,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ); } logger.warn( - `${chargingStation.logPrefix()} Remote starting transaction REJECTED on connector id - ${connectorId}, idTag '${idTag}', availability '${connectorStatus?.availability}', status '${connectorStatus?.status}'`, + `${chargingStation.logPrefix()} Remote starting transaction REJECTED on connector id ${connectorId}, idTag '${idTag}', availability '${connectorStatus?.availability}', status '${connectorStatus?.status}'`, ); return OCPP16Constants.OCPP_RESPONSE_REJECTED; } @@ -1053,8 +1042,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { if (chargingProfile?.chargingProfilePurpose === OCPP16ChargingProfilePurposeType.TX_PROFILE) { OCPP16ServiceUtils.setChargingProfile(chargingStation, connectorId, chargingProfile); logger.debug( - `${chargingStation.logPrefix()} Charging profile(s) set at remote start transaction - on connector id ${connectorId}: %j`, + `${chargingStation.logPrefix()} Charging profile(s) set at remote start transaction on connector id ${connectorId}: %j`, chargingProfile, ); return true; @@ -1093,8 +1081,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { } } logger.warn( - `${chargingStation.logPrefix()} Trying to remote stop a non existing transaction with id - ${transactionId}`, + `${chargingStation.logPrefix()} Trying to remote stop a non existing transaction with id ${transactionId}`, ); return OCPP16Constants.OCPP_RESPONSE_REJECTED; } @@ -1111,8 +1098,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ) === false ) { logger.warn( - `${chargingStation.logPrefix()} ${moduleName}.handleRequestUpdateFirmware: - Cannot simulate firmware update: feature profile not supported`, + `${chargingStation.logPrefix()} ${moduleName}.handleRequestUpdateFirmware: Cannot simulate firmware update: feature profile not supported`, ); return OCPP16Constants.OCPP_RESPONSE_EMPTY; } @@ -1122,8 +1108,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { chargingStation.stationInfo.firmwareStatus !== OCPP16FirmwareStatus.Installed ) { logger.warn( - `${chargingStation.logPrefix()} ${moduleName}.handleRequestUpdateFirmware: - Cannot simulate firmware update: firmware update is already in progress`, + `${chargingStation.logPrefix()} ${moduleName}.handleRequestUpdateFirmware: Cannot simulate firmware update: firmware update is already in progress`, ); return OCPP16Constants.OCPP_RESPONSE_EMPTY; } @@ -1229,10 +1214,9 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { if (runningTransactions > 0) { const waitTime = secondsToMilliseconds(15); logger.debug( - `${chargingStation.logPrefix()} ${moduleName}.updateFirmwareSimulation: - ${runningTransactions} transaction(s) in progress, waiting ${formatDurationMilliSeconds( - waitTime, - )} before continuing firmware update simulation`, + `${chargingStation.logPrefix()} ${moduleName}.updateFirmwareSimulation: ${runningTransactions} transaction(s) in progress, waiting ${formatDurationMilliSeconds( + waitTime, + )} before continuing firmware update simulation`, ); await sleep(waitTime); transactionsStarted = true; @@ -1315,8 +1299,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ) === false ) { logger.warn( - `${chargingStation.logPrefix()} ${moduleName}.handleRequestGetDiagnostics: - Cannot get diagnostics: feature profile not supported`, + `${chargingStation.logPrefix()} ${moduleName}.handleRequestGetDiagnostics: Cannot get diagnostics: feature profile not supported`, ); return OCPP16Constants.OCPP_RESPONSE_EMPTY; } @@ -1354,8 +1337,9 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { }) .catch((error) => { logger.error( - `${chargingStation.logPrefix()} ${moduleName}.handleRequestGetDiagnostics: - Error while sending '${OCPP16RequestCommand.DIAGNOSTICS_STATUS_NOTIFICATION}'`, + `${chargingStation.logPrefix()} ${moduleName}.handleRequestGetDiagnostics: Error while sending '${ + OCPP16RequestCommand.DIAGNOSTICS_STATUS_NOTIFICATION + }'`, error, ); }); @@ -1471,7 +1455,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { .requestHandler( chargingStation, OCPP16RequestCommand.HEARTBEAT, - null, + undefined, { triggerMessage: true, }, @@ -1665,8 +1649,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { const reservation = chargingStation.getReservationBy('reservationId', reservationId); if (isUndefined(reservation)) { logger.debug( - `${chargingStation.logPrefix()} Reservation with id ${reservationId} - does not exist on charging station`, + `${chargingStation.logPrefix()} Reservation with id ${reservationId} does not exist on charging station`, ); return OCPP16Constants.OCPP_CANCEL_RESERVATION_RESPONSE_REJECTED; }