+ private buildMessageToSend(messageId: string, commandParams: any, messageType: MessageType, commandName: RequestCommand | IncomingRequestCommand,
+ responseCallback: (payload: Record<string, unknown> | string, requestPayload: Record<string, unknown>) => Promise<void>, rejectCallback: (error: OCPPError) => void): string {
+ let messageToSend: string;
+ // Type of message
+ switch (messageType) {
+ // Request
+ case MessageType.CALL_MESSAGE:
+ // Build request
+ this.chargingStation.requests.set(messageId, [responseCallback, rejectCallback, commandParams as Record<string, unknown>]);
+ messageToSend = JSON.stringify([messageType, messageId, commandName, commandParams]);
+ break;
+ // Response
+ case MessageType.CALL_RESULT_MESSAGE:
+ // Build response
+ messageToSend = JSON.stringify([messageType, messageId, commandParams]);
+ break;
+ // Error Message
+ case MessageType.CALL_ERROR_MESSAGE:
+ // Build Error Message
+ messageToSend = JSON.stringify([messageType, messageId, commandParams?.code ?? ErrorType.GENERIC_ERROR, commandParams?.message ?? '', commandParams?.details ?? {}]);
+ break;
+ }
+ return messageToSend;
+ }
+