X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcharging-station%2Focpp%2F1.6%2FOCPP16IncomingRequestService.ts;h=6cafcd4bbc7ad0e136123cc2f1a173a2abe09c7a;hb=53d4c02ab3f09e4e622ac6b7558f26ec90816bdb;hp=0418266499bcc5b787a72e1ef70d29c05f880812;hpb=38ae4ce2dba0f31e0f21c20490be0e7d376ce47c;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 04182664..6cafcd4b 100644 --- a/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts +++ b/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts @@ -1,5 +1,6 @@ // Partial Copyright Jerome Benoit. 2021-2024. All Rights Reserved. +import { randomInt } from 'node:crypto' import { createWriteStream, readdirSync } from 'node:fs' import { dirname, extname, join, resolve } from 'node:path' import { fileURLToPath, URL } from 'node:url' @@ -104,7 +105,6 @@ import { convertToDate, convertToInt, formatDurationMilliSeconds, - getRandomInteger, isAsyncFunction, isNotEmptyArray, isNotEmptyString, @@ -441,7 +441,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ) } }) - .catch(error => { + .catch((error: unknown) => { logger.error( `${chargingStation.logPrefix()} ${moduleName}.constructor: Remote start transaction error:`, error @@ -473,7 +473,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ) } }) - .catch(error => { + .catch((error: unknown) => { logger.error( `${chargingStation.logPrefix()} ${moduleName}.constructor: Remote stop transaction error:`, error @@ -493,7 +493,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { return } const { requestedMessage, connectorId } = request - const errorHandler = (error: Error): void => { + const errorHandler = (error: unknown): void => { logger.error( `${chargingStation.logPrefix()} ${moduleName}.constructor: Trigger ${requestedMessage} error:`, error @@ -1153,7 +1153,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { ): Promise { const { connectorId: transactionConnectorId, idTag, chargingProfile } = commandPayload if (!chargingStation.hasConnector(transactionConnectorId)) { - return await this.notifyRemoteStartTransactionRejected( + return this.notifyRemoteStartTransactionRejected( chargingStation, transactionConnectorId, idTag @@ -1163,7 +1163,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { !chargingStation.isChargingStationAvailable() || !chargingStation.isConnectorAvailable(transactionConnectorId) ) { - return await this.notifyRemoteStartTransactionRejected( + return this.notifyRemoteStartTransactionRejected( chargingStation, transactionConnectorId, idTag @@ -1174,17 +1174,12 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { chargingStation.getAuthorizeRemoteTxRequests() && !(await OCPP16ServiceUtils.isIdTagAuthorized(chargingStation, transactionConnectorId, idTag)) ) { - return await this.notifyRemoteStartTransactionRejected( + return this.notifyRemoteStartTransactionRejected( chargingStation, transactionConnectorId, idTag ) } - await OCPP16ServiceUtils.sendAndSetConnectorStatus( - chargingStation, - transactionConnectorId, - OCPP16ChargePointStatus.Preparing - ) if ( chargingProfile != null && !this.setRemoteStartTransactionChargingProfile( @@ -1193,33 +1188,26 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { chargingProfile ) ) { - return await this.notifyRemoteStartTransactionRejected( + return this.notifyRemoteStartTransactionRejected( chargingStation, transactionConnectorId, idTag ) } logger.debug( - `${chargingStation.logPrefix()} Remote start transaction ACCEPTED on connector id ${transactionConnectorId}, idTag '${idTag}'` + `${chargingStation.logPrefix()} Remote start transaction ACCEPTED on ${chargingStation.stationInfo?.chargingStationId}#${transactionConnectorId}}, idTag '${idTag}'` ) return OCPP16Constants.OCPP_RESPONSE_ACCEPTED } - private async notifyRemoteStartTransactionRejected ( + private notifyRemoteStartTransactionRejected ( chargingStation: ChargingStation, connectorId: number, idTag: string - ): Promise { + ): GenericResponse { const connectorStatus = chargingStation.getConnectorStatus(connectorId) - if (connectorStatus?.status !== OCPP16ChargePointStatus.Available) { - await OCPP16ServiceUtils.sendAndSetConnectorStatus( - chargingStation, - connectorId, - OCPP16ChargePointStatus.Available - ) - } logger.debug( - `${chargingStation.logPrefix()} Remote start transaction REJECTED on connector id ${connectorId}, idTag '${idTag}', availability '${connectorStatus?.availability}', status '${connectorStatus?.status}'` + `${chargingStation.logPrefix()} Remote start transaction REJECTED on ${chargingStation.stationInfo?.chargingStationId}#${connectorId}, idTag '${idTag}', availability '${connectorStatus?.availability}', status '${connectorStatus?.status}'` ) return OCPP16Constants.OCPP_RESPONSE_REJECTED } @@ -1232,7 +1220,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 ${chargingStation.stationInfo?.chargingStationId}#${connectorId}`, chargingProfile ) return true @@ -1346,7 +1334,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { chargingStation.stationInfo?.firmwareUpgrade?.failureStatus === OCPP16FirmwareStatus.DownloadFailed ) { - await sleep(secondsToMilliseconds(getRandomInteger(maxDelay, minDelay))) + await sleep(secondsToMilliseconds(randomInt(minDelay, maxDelay))) await chargingStation.ocppRequestService.requestHandler< OCPP16FirmwareStatusNotificationRequest, OCPP16FirmwareStatusNotificationResponse @@ -1357,7 +1345,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { chargingStation.stationInfo.firmwareUpgrade.failureStatus return } - await sleep(secondsToMilliseconds(getRandomInteger(maxDelay, minDelay))) + await sleep(secondsToMilliseconds(randomInt(minDelay, maxDelay))) await chargingStation.ocppRequestService.requestHandler< OCPP16FirmwareStatusNotificationRequest, OCPP16FirmwareStatusNotificationResponse @@ -1413,8 +1401,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { transactionsStarted = false } } while (transactionsStarted) - !wasTransactionsStarted && - (await sleep(secondsToMilliseconds(getRandomInteger(maxDelay, minDelay)))) + !wasTransactionsStarted && (await sleep(secondsToMilliseconds(randomInt(minDelay, maxDelay)))) if (!checkChargingStation(chargingStation, chargingStation.logPrefix())) { return } @@ -1430,7 +1417,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { chargingStation.stationInfo?.firmwareUpgrade?.failureStatus === OCPP16FirmwareStatus.InstallationFailed ) { - await sleep(secondsToMilliseconds(getRandomInteger(maxDelay, minDelay))) + await sleep(secondsToMilliseconds(randomInt(minDelay, maxDelay))) await chargingStation.ocppRequestService.requestHandler< OCPP16FirmwareStatusNotificationRequest, OCPP16FirmwareStatusNotificationResponse @@ -1442,7 +1429,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { return } if (chargingStation.stationInfo?.firmwareUpgrade?.reset === true) { - await sleep(secondsToMilliseconds(getRandomInteger(maxDelay, minDelay))) + await sleep(secondsToMilliseconds(randomInt(minDelay, maxDelay))) await chargingStation.reset(OCPP16StopTransactionReason.REBOOT) } } @@ -1500,7 +1487,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { >(chargingStation, OCPP16RequestCommand.DIAGNOSTICS_STATUS_NOTIFICATION, { status: OCPP16DiagnosticsStatus.Uploading }) - .catch(error => { + .catch((error: unknown) => { logger.error( `${chargingStation.logPrefix()} ${moduleName}.handleRequestGetDiagnostics: Error while sending '${ OCPP16RequestCommand.DIAGNOSTICS_STATUS_NOTIFICATION