X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2F1.6%2FOCPP16ResponseService.ts;h=effa3abd0ada1244ba1ec1326e92c66848415dca;hb=59395dc149654128f2996f4999bccb66270f54e4;hp=61d1ffad5f1d5d262ed1bf785b802c29b9965a10;hpb=f03e10429357538c286b94a99c9ccc5dfe43b348;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts b/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts index 61d1ffad..effa3abd 100644 --- a/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts +++ b/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts @@ -6,6 +6,7 @@ import { fileURLToPath } from 'url'; import type { JSONSchemaType } from 'ajv'; +import { OCPP16ServiceUtils } from './OCPP16ServiceUtils'; import OCPPError from '../../../exception/OCPPError'; import type { JsonObject, JsonType } from '../../../types/JsonType'; import { OCPP16ChargePointErrorCode } from '../../../types/ocpp/1.6/ChargePointErrorCode'; @@ -60,7 +61,6 @@ import Utils from '../../../utils/Utils'; import type ChargingStation from '../../ChargingStation'; import { ChargingStationConfigurationUtils } from '../../ChargingStationConfigurationUtils'; import OCPPResponseService from '../OCPPResponseService'; -import { OCPP16ServiceUtils } from './OCPP16ServiceUtils'; const moduleName = 'OCPP16ResponseService'; @@ -569,7 +569,7 @@ export default class OCPP16ResponseService extends OCPPResponseService { ' Starting transaction id ' + payload.transactionId.toString() + " REJECTED with status '" + - payload?.idTagInfo?.status + + payload.idTagInfo?.status + "', idTag '" + requestPayload.idTag + "'" @@ -614,72 +614,65 @@ export default class OCPP16ResponseService extends OCPPResponseService { ); return; } - if (payload.idTagInfo?.status === OCPP16AuthorizationStatus.ACCEPTED) { - chargingStation.getBeginEndMeterValues() === true && - chargingStation.getOcppStrictCompliance() === false && - chargingStation.getOutOfOrderEndMeterValues() === true && - (await chargingStation.ocppRequestService.requestHandler< - OCPP16MeterValuesRequest, - OCPP16MeterValuesResponse - >(chargingStation, OCPP16RequestCommand.METER_VALUES, { - connectorId: transactionConnectorId, - transactionId: requestPayload.transactionId, - meterValue: [ - OCPP16ServiceUtils.buildTransactionEndMeterValue( - chargingStation, - transactionConnectorId, - requestPayload.meterStop - ), - ], - })); - if ( - chargingStation.isChargingStationAvailable() === false || - chargingStation.isConnectorAvailable(transactionConnectorId) === false - ) { - await chargingStation.ocppRequestService.requestHandler< - OCPP16StatusNotificationRequest, - OCPP16StatusNotificationResponse - >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, { - connectorId: transactionConnectorId, - status: OCPP16ChargePointStatus.UNAVAILABLE, - errorCode: OCPP16ChargePointErrorCode.NO_ERROR, - }); - chargingStation.getConnectorStatus(transactionConnectorId).status = - OCPP16ChargePointStatus.UNAVAILABLE; - } else { - await chargingStation.ocppRequestService.requestHandler< - OCPP16BootNotificationRequest, - OCPP16BootNotificationResponse - >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, { - connectorId: transactionConnectorId, - status: OCPP16ChargePointStatus.AVAILABLE, - errorCode: OCPP16ChargePointErrorCode.NO_ERROR, - }); - chargingStation.getConnectorStatus(transactionConnectorId).status = - OCPP16ChargePointStatus.AVAILABLE; - } - if (chargingStation.stationInfo.powerSharedByConnectors) { - chargingStation.powerDivider--; - } - chargingStation.resetConnectorStatus(transactionConnectorId); - logger.info( - chargingStation.logPrefix() + - ' Transaction ' + - requestPayload.transactionId.toString() + - ' STOPPED on ' + - chargingStation.stationInfo.chargingStationId + - '#' + - transactionConnectorId.toString() - ); + chargingStation.getBeginEndMeterValues() === true && + chargingStation.getOcppStrictCompliance() === false && + chargingStation.getOutOfOrderEndMeterValues() === true && + (await chargingStation.ocppRequestService.requestHandler< + OCPP16MeterValuesRequest, + OCPP16MeterValuesResponse + >(chargingStation, OCPP16RequestCommand.METER_VALUES, { + connectorId: transactionConnectorId, + transactionId: requestPayload.transactionId, + meterValue: [ + OCPP16ServiceUtils.buildTransactionEndMeterValue( + chargingStation, + transactionConnectorId, + requestPayload.meterStop + ), + ], + })); + if ( + chargingStation.isChargingStationAvailable() === false || + chargingStation.isConnectorAvailable(transactionConnectorId) === false + ) { + await chargingStation.ocppRequestService.requestHandler< + OCPP16StatusNotificationRequest, + OCPP16StatusNotificationResponse + >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, { + connectorId: transactionConnectorId, + status: OCPP16ChargePointStatus.UNAVAILABLE, + errorCode: OCPP16ChargePointErrorCode.NO_ERROR, + }); + chargingStation.getConnectorStatus(transactionConnectorId).status = + OCPP16ChargePointStatus.UNAVAILABLE; } else { - logger.warn( - chargingStation.logPrefix() + - ' Stopping transaction id ' + - requestPayload.transactionId.toString() + - " REJECTED with status '" + - payload.idTagInfo?.status + - "'" - ); + await chargingStation.ocppRequestService.requestHandler< + OCPP16BootNotificationRequest, + OCPP16BootNotificationResponse + >(chargingStation, OCPP16RequestCommand.STATUS_NOTIFICATION, { + connectorId: transactionConnectorId, + status: OCPP16ChargePointStatus.AVAILABLE, + errorCode: OCPP16ChargePointErrorCode.NO_ERROR, + }); + chargingStation.getConnectorStatus(transactionConnectorId).status = + OCPP16ChargePointStatus.AVAILABLE; + } + if (chargingStation.stationInfo.powerSharedByConnectors) { + chargingStation.powerDivider--; + } + chargingStation.resetConnectorStatus(transactionConnectorId); + const logMsg = `${chargingStation.logPrefix()} Transaction ${requestPayload.transactionId.toString()} STOPPED on ${ + chargingStation.stationInfo.chargingStationId + }#${transactionConnectorId.toString()} with status '${ + payload.idTagInfo?.status ?? 'undefined' + }'`; + if ( + Utils.isNullOrUndefined(payload.idTagInfo) || + payload.idTagInfo?.status === OCPP16AuthorizationStatus.ACCEPTED + ) { + logger.info(logMsg); + } else { + logger.warn(logMsg); } }