- return Utils.promiseWithTimeout(
- new Promise((resolve, reject) => {
- const messageToSend = this.buildMessageToSend(
- chargingStation,
- messageId,
- messagePayload,
- messageType,
- commandName,
- responseCallback,
- errorCallback
- );
- if (chargingStation.getEnableStatistics() === true) {
- chargingStation.performanceStatistics.addRequestStatistic(commandName, messageType);
- }
- // Check if wsConnection opened
- if (chargingStation.isWebSocketConnectionOpened() === true) {
- // Yes: Send Message
- const beginId = PerformanceStatistics.beginMeasure(commandName as string);
- // FIXME: Handle sending error
- chargingStation.wsConnection.send(messageToSend);
- PerformanceStatistics.endMeasure(commandName as string, beginId);
- logger.debug(
- `${chargingStation.logPrefix()} >> Command '${commandName}' sent ${this.getMessageTypeString(
- messageType
- )} payload: ${messageToSend}`
- );
- } else if (params.skipBufferingOnError === false) {
- // Buffer it
- chargingStation.bufferMessage(messageToSend);
- const ocppError = new OCPPError(
- ErrorType.GENERIC_ERROR,
- `WebSocket closed for buffered message id '${messageId}' with content '${messageToSend}'`,
+ return await new Promise<ResponseType>((resolve, reject) => {
+ /**
+ * Function that will receive the request's response
+ *
+ * @param payload -
+ * @param requestPayload -
+ */
+ const responseCallback = (payload: JsonType, requestPayload: JsonType): void => {
+ if (chargingStation.stationInfo?.enableStatistics === true) {
+ chargingStation.performanceStatistics?.addRequestStatistic(