From: Jérôme Benoit Date: Tue, 4 Jun 2024 23:17:08 +0000 (+0200) Subject: refactor: refine OCPP message sending error handling X-Git-Tag: v1.3.4~27 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=436569b1470c8e6187c63d974304bd1b99f35ba3;p=e-mobility-charging-stations-simulator.git refactor: refine OCPP message sending error handling Signed-off-by: Jérôme Benoit --- diff --git a/src/charging-station/ocpp/OCPPRequestService.ts b/src/charging-station/ocpp/OCPPRequestService.ts index a3eca070..d396f354 100644 --- a/src/charging-station/ocpp/OCPPRequestService.ts +++ b/src/charging-station/ocpp/OCPPRequestService.ts @@ -28,7 +28,7 @@ import { } from '../../utils/index.js' import { OCPPConstants } from './OCPPConstants.js' import type { OCPPResponseService } from './OCPPResponseService.js' -import { OCPPServiceUtils } from './OCPPServiceUtils.js' +import { getMessageTypeString, OCPPServiceUtils } from './OCPPServiceUtils.js' type Ajv = _Ajv.default // eslint-disable-next-line @typescript-eslint/no-redeclare const Ajv = _Ajv.default @@ -94,9 +94,15 @@ export abstract class OCPPRequestService { commandName ) } catch (error) { - handleSendMessageError(chargingStation, commandName, error as Error, { - throwError: true - }) + handleSendMessageError( + chargingStation, + commandName, + MessageType.CALL_RESULT_MESSAGE, + error as Error, + { + throwError: true + } + ) return null } } @@ -117,7 +123,12 @@ export abstract class OCPPRequestService { commandName ) } catch (error) { - handleSendMessageError(chargingStation, commandName, error as Error) + handleSendMessageError( + chargingStation, + commandName, + MessageType.CALL_ERROR_MESSAGE, + error as Error + ) return null } } @@ -143,9 +154,15 @@ export abstract class OCPPRequestService { params ) } catch (error) { - handleSendMessageError(chargingStation, commandName, error as Error, { - throwError: params.throwError - }) + handleSendMessageError( + chargingStation, + commandName, + MessageType.CALL_MESSAGE, + error as Error, + { + throwError: params.throwError + } + ) return null } } @@ -291,7 +308,7 @@ export abstract class OCPPRequestService { ) } logger.error( - `${chargingStation.logPrefix()} Error occurred at ${OCPPServiceUtils.getMessageTypeString( + `${chargingStation.logPrefix()} Error occurred at ${getMessageTypeString( messageType )} command ${commandName} with PDU %j:`, messagePayload, @@ -358,7 +375,7 @@ export abstract class OCPPRequestService { clearTimeout(sendTimeout) if (error == null) { logger.debug( - `${chargingStation.logPrefix()} >> Command '${commandName}' sent ${OCPPServiceUtils.getMessageTypeString( + `${chargingStation.logPrefix()} >> Command '${commandName}' sent ${getMessageTypeString( messageType )} payload: ${messageToSend}` ) diff --git a/src/utils/ErrorUtils.ts b/src/utils/ErrorUtils.ts index 36a5f04c..f74c48e8 100644 --- a/src/utils/ErrorUtils.ts +++ b/src/utils/ErrorUtils.ts @@ -3,12 +3,14 @@ import process from 'node:process' import chalk from 'chalk' import type { ChargingStation } from '../charging-station/index.js' +import { getMessageTypeString } from '../charging-station/ocpp/OCPPServiceUtils.js' import type { EmptyObject, FileType, HandleErrorParams, IncomingRequestCommand, JsonType, + MessageType, RequestCommand } from '../types/index.js' import { logger } from './Logger.js' @@ -79,6 +81,7 @@ export const handleFileException = ( export const handleSendMessageError = ( chargingStation: ChargingStation, commandName: RequestCommand | IncomingRequestCommand, + messageType: MessageType, error: Error, params: HandleErrorParams = { throwError: false, @@ -86,7 +89,10 @@ export const handleSendMessageError = ( } ): void => { setDefaultErrorParams(params, { throwError: false, consoleOut: false }) - logger.error(`${chargingStation.logPrefix()} Request command '${commandName}' error:`, error) + logger.error( + `${chargingStation.logPrefix()} Send ${getMessageTypeString(messageType)} command '${commandName}' error:`, + error + ) if (params.throwError === true) { throw error }