Skip to content

Commit

Permalink
Merge pull request #18 from juherr/bugfix/ocpp-answer-body
Browse files Browse the repository at this point in the history
fix: the result payload must not have action
  • Loading branch information
shiv3 authored Oct 17, 2024
2 parents ec43614 + be4eabe commit 4b9dc14
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 22 deletions.
24 changes: 6 additions & 18 deletions src/cp/OCPPMessageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ export class OCPPMessageHandler {
const messageId = this.generateMessageId();
const payload: request.AuthorizeRequest = {idTag: tagId};
this.sendRequest(
OCPPMessageType.CALL,
OCPPAction.Authorize,
messageId,
payload
Expand All @@ -99,7 +98,6 @@ export class OCPPMessageHandler {
timestamp: transaction.startTime.toISOString(),
};
this.sendRequest(
OCPPMessageType.CALL,
OCPPAction.StartTransaction,
messageId,
payload,
Expand All @@ -116,7 +114,6 @@ export class OCPPMessageHandler {
timestamp: transaction.stopTime!.toISOString(),
};
this.sendRequest(
OCPPMessageType.CALL,
OCPPAction.StopTransaction,
messageId,
payload,
Expand All @@ -138,7 +135,6 @@ export class OCPPMessageHandler {
meterSerialNumber: bootPayload.MeterSerialNumber,
};
this.sendRequest(
OCPPMessageType.CALL,
OCPPAction.BootNotification,
messageId,
payload,
Expand All @@ -149,7 +145,6 @@ export class OCPPMessageHandler {
const messageId = this.generateMessageId();
const payload: request.HeartbeatRequest = {};
this.sendRequest(
OCPPMessageType.CALL,
OCPPAction.Heartbeat,
messageId,
payload
Expand All @@ -169,7 +164,6 @@ export class OCPPMessageHandler {
],
};
this.sendRequest(
OCPPMessageType.CALL,
OCPPAction.MeterValues,
messageId,
payload
Expand All @@ -184,22 +178,20 @@ export class OCPPMessageHandler {
status: status,
};
this.sendRequest(
OCPPMessageType.CALL,
OCPPAction.StatusNotification,
messageId,
payload
);
}

private sendRequest(
type: OCPPMessageType,
action: OCPPAction,
id: string,
payload: OcppMessageRequestPayload,
connectorId?: number
): void {
this._requests.add({type, action, id, payload, connectorId});
this._webSocket.send(type, id, action, payload);
this._requests.add({type: OCPPMessageType.CALL, action, id, payload, connectorId});
this._webSocket.sendAction(id, action, payload);
}

private handleIncomingMessage(
Expand Down Expand Up @@ -472,11 +464,9 @@ export class OCPPMessageHandler {
}

private sendCallResult(messageId: string, payload: OcppMessageResponsePayload): void {
this._webSocket.send(
OCPPMessageType.CALL_RESULT,
this._webSocket.sendResult(
messageId,
"" as OCPPAction,
payload
payload,
);
}

Expand All @@ -489,11 +479,9 @@ export class OCPPMessageHandler {
errorCode: errorCode,
errorDescription: errorDescription,
};
this._webSocket.send(
OCPPMessageType.CALL_ERROR,
this._webSocket.sendError(
messageId,
"" as OCPPAction,
errorDetails
errorDetails,
);
}

Expand Down
27 changes: 23 additions & 4 deletions src/cp/OCPPWebSocket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,14 +104,33 @@ export class OCPPWebSocket {
}
}

public send(
messageType: OCPPMessageType,
public sendAction(
messageId: string,
action: OCPPAction,
payload: OcppMessagePayload
payload: OcppMessageRequestPayload,
): void {
const message = JSON.stringify([OCPPMessageType.CALL, messageId, action, payload]);
this.send(message);
}

public sendResult(
messageId: string,
payload: OcppMessageResponsePayload,
): void {
const message = JSON.stringify([OCPPMessageType.CALL_RESULT, messageId, payload]);
this.send(message);
}

public sendError(
messageId: string,
payload: OcppMessageErrorPayload,
): void {
const message = JSON.stringify([OCPPMessageType.CALL_ERROR, messageId, payload]);
this.send(message);
}

private send(message: string): void {
if (this._ws && this._ws.readyState === WebSocket.OPEN) {
const message = JSON.stringify([messageType, messageId, action, payload]);
this._ws.send(message);
this._logger.log(`Sent: ${message}`);
} else {
Expand Down

0 comments on commit 4b9dc14

Please sign in to comment.