- public abstract sendHeartbeat(): Promise<void>;
- public abstract sendBootNotification(chargePointModel: string, chargePointVendor: string, chargeBoxSerialNumber?: string, firmwareVersion?: string, chargePointSerialNumber?: string, iccid?: string, imsi?: string, meterSerialNumber?: string, meterType?: string): Promise<BootNotificationResponse>;
+ private buildMessageToSend(messageId: string, messageData: JsonType | OCPPError, messageType: MessageType, commandName: RequestCommand | IncomingRequestCommand,
+ responseCallback: (payload: JsonType | string, requestPayload: JsonType) => Promise<void>,
+ rejectCallback: (error: OCPPError, requestStatistic?: boolean) => void): string {
+ let messageToSend: string;
+ // Type of message
+ switch (messageType) {
+ // Request
+ case MessageType.CALL_MESSAGE:
+ // Build request
+ this.chargingStation.requests.set(messageId, [responseCallback, rejectCallback, commandName, messageData]);
+ messageToSend = JSON.stringify([messageType, messageId, commandName, messageData]);
+ break;
+ // Response
+ case MessageType.CALL_RESULT_MESSAGE:
+ // Build response
+ messageToSend = JSON.stringify([messageType, messageId, messageData]);
+ break;
+ // Error Message
+ case MessageType.CALL_ERROR_MESSAGE:
+ // Build Error Message
+ messageToSend = JSON.stringify([messageType, messageId, messageData?.code ?? ErrorType.GENERIC_ERROR, messageData?.message ?? '', messageData?.details ?? {}]);
+ break;
+ }
+ return messageToSend;
+ }
+
+ public abstract sendHeartbeat(params?: SendParams): Promise<void>;
+ public abstract sendBootNotification(chargePointModel: string, chargePointVendor: string, chargeBoxSerialNumber?: string, firmwareVersion?: string, chargePointSerialNumber?: string, iccid?: string, imsi?: string, meterSerialNumber?: string, meterType?: string, params?: SendParams): Promise<BootNotificationResponse>;