X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2FOCPPRequestService.ts;h=ef1e4749d56151d05eafd7ed438236018d8fcec1;hb=be9b0d5057a74c22b436cca1364ab1d8417144f7;hp=af23a1f4fcbdd55ac4c357dfc67c12e3c35d7e8e;hpb=16f20ae55b86d4e5de23c8f2c71938f1a172ad71;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/OCPPRequestService.ts b/src/charging-station/ocpp/OCPPRequestService.ts index af23a1f4..ef1e4749 100644 --- a/src/charging-station/ocpp/OCPPRequestService.ts +++ b/src/charging-station/ocpp/OCPPRequestService.ts @@ -1,8 +1,8 @@ import { IncomingRequestCommand, RequestCommand, + RequestParams, ResponseType, - SendParams, } from '../../types/ocpp/Requests'; import type ChargingStation from '../ChargingStation'; @@ -16,7 +16,6 @@ import OCPPError from '../../exception/OCPPError'; import type OCPPResponseService from './OCPPResponseService'; import PerformanceStatistics from '../../performance/PerformanceStatistics'; import Utils from '../../utils/Utils'; -import chalk from 'chalk'; import logger from '../../utils/Logger'; export default abstract class OCPPRequestService { @@ -34,7 +33,7 @@ export default abstract class OCPPRequestService { ) { this.chargingStation = chargingStation; this.ocppResponseService = ocppResponseService; - this.sendMessageHandler.bind(this); + this.requestHandler.bind(this); this.sendResult.bind(this); this.sendError.bind(this); } @@ -93,7 +92,7 @@ export default abstract class OCPPRequestService { messageId: string, messagePayload: JsonType, commandName: RequestCommand, - params: SendParams = { + params: RequestParams = { skipBufferingOnError: false, triggerMessage: false, } @@ -116,7 +115,7 @@ export default abstract class OCPPRequestService { messagePayload: JsonType | OCPPError, messageType: MessageType, commandName?: RequestCommand | IncomingRequestCommand, - params: SendParams = { + params: RequestParams = { skipBufferingOnError: false, triggerMessage: false, } @@ -127,7 +126,8 @@ export default abstract class OCPPRequestService { (!this.chargingStation.getOcppStrictCompliance() && this.chargingStation.isInUnknownState()) || this.chargingStation.isInAcceptedState() || - (this.chargingStation.isInPendingState() && params.triggerMessage) + (this.chargingStation.isInPendingState() && + (params.triggerMessage || messageType === MessageType.CALL_RESULT_MESSAGE)) ) { // eslint-disable-next-line @typescript-eslint/no-this-alias const self = this; @@ -152,10 +152,14 @@ export default abstract class OCPPRequestService { if (this.chargingStation.isWebSocketConnectionOpened()) { // Yes: Send Message const beginId = PerformanceStatistics.beginMeasure(commandName); - console.log(chalk`{blue >> Sending message = ${messageToSend}}`); // FIXME: Handle sending error this.chargingStation.wsConnection.send(messageToSend); PerformanceStatistics.endMeasure(commandName, beginId); + logger.debug( + `${this.chargingStation.logPrefix()} >> Command '${commandName}' sent ${this.getMessageTypeString( + messageType + )} payload: ${messageToSend}` + ); } else if (!params.skipBufferingOnError) { // Buffer it this.chargingStation.bufferMessage(messageToSend); @@ -206,7 +210,7 @@ export default abstract class OCPPRequestService { } // Handle the request's response try { - await self.ocppResponseService.handleResponse( + await self.ocppResponseService.responseHandler( commandName as RequestCommand, payload, requestPayload @@ -304,6 +308,17 @@ export default abstract class OCPPRequestService { return messageToSend; } + private getMessageTypeString(messageType: MessageType): string { + switch (messageType) { + case MessageType.CALL_MESSAGE: + return 'request'; + case MessageType.CALL_RESULT_MESSAGE: + return 'response'; + case MessageType.CALL_ERROR_MESSAGE: + return 'error'; + } + } + private handleRequestError( commandName: RequestCommand | IncomingRequestCommand, error: Error, @@ -320,9 +335,9 @@ export default abstract class OCPPRequestService { } // eslint-disable-next-line @typescript-eslint/no-unused-vars - public abstract sendMessageHandler( + public abstract requestHandler( commandName: RequestCommand, commandParams?: JsonType, - params?: SendParams + params?: RequestParams ): Promise; }