Skip to content

Commit 4b9dc14

Browse files
authored
Merge pull request #18 from juherr/bugfix/ocpp-answer-body
fix: the result payload must not have action
2 parents ec43614 + be4eabe commit 4b9dc14

File tree

2 files changed

+29
-22
lines changed

2 files changed

+29
-22
lines changed

src/cp/OCPPMessageHandler.ts

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ export class OCPPMessageHandler {
8383
const messageId = this.generateMessageId();
8484
const payload: request.AuthorizeRequest = {idTag: tagId};
8585
this.sendRequest(
86-
OCPPMessageType.CALL,
8786
OCPPAction.Authorize,
8887
messageId,
8988
payload
@@ -99,7 +98,6 @@ export class OCPPMessageHandler {
9998
timestamp: transaction.startTime.toISOString(),
10099
};
101100
this.sendRequest(
102-
OCPPMessageType.CALL,
103101
OCPPAction.StartTransaction,
104102
messageId,
105103
payload,
@@ -116,7 +114,6 @@ export class OCPPMessageHandler {
116114
timestamp: transaction.stopTime!.toISOString(),
117115
};
118116
this.sendRequest(
119-
OCPPMessageType.CALL,
120117
OCPPAction.StopTransaction,
121118
messageId,
122119
payload,
@@ -138,7 +135,6 @@ export class OCPPMessageHandler {
138135
meterSerialNumber: bootPayload.MeterSerialNumber,
139136
};
140137
this.sendRequest(
141-
OCPPMessageType.CALL,
142138
OCPPAction.BootNotification,
143139
messageId,
144140
payload,
@@ -149,7 +145,6 @@ export class OCPPMessageHandler {
149145
const messageId = this.generateMessageId();
150146
const payload: request.HeartbeatRequest = {};
151147
this.sendRequest(
152-
OCPPMessageType.CALL,
153148
OCPPAction.Heartbeat,
154149
messageId,
155150
payload
@@ -169,7 +164,6 @@ export class OCPPMessageHandler {
169164
],
170165
};
171166
this.sendRequest(
172-
OCPPMessageType.CALL,
173167
OCPPAction.MeterValues,
174168
messageId,
175169
payload
@@ -184,22 +178,20 @@ export class OCPPMessageHandler {
184178
status: status,
185179
};
186180
this.sendRequest(
187-
OCPPMessageType.CALL,
188181
OCPPAction.StatusNotification,
189182
messageId,
190183
payload
191184
);
192185
}
193186

194187
private sendRequest(
195-
type: OCPPMessageType,
196188
action: OCPPAction,
197189
id: string,
198190
payload: OcppMessageRequestPayload,
199191
connectorId?: number
200192
): void {
201-
this._requests.add({type, action, id, payload, connectorId});
202-
this._webSocket.send(type, id, action, payload);
193+
this._requests.add({type: OCPPMessageType.CALL, action, id, payload, connectorId});
194+
this._webSocket.sendAction(id, action, payload);
203195
}
204196

205197
private handleIncomingMessage(
@@ -472,11 +464,9 @@ export class OCPPMessageHandler {
472464
}
473465

474466
private sendCallResult(messageId: string, payload: OcppMessageResponsePayload): void {
475-
this._webSocket.send(
476-
OCPPMessageType.CALL_RESULT,
467+
this._webSocket.sendResult(
477468
messageId,
478-
"" as OCPPAction,
479-
payload
469+
payload,
480470
);
481471
}
482472

@@ -489,11 +479,9 @@ export class OCPPMessageHandler {
489479
errorCode: errorCode,
490480
errorDescription: errorDescription,
491481
};
492-
this._webSocket.send(
493-
OCPPMessageType.CALL_ERROR,
482+
this._webSocket.sendError(
494483
messageId,
495-
"" as OCPPAction,
496-
errorDetails
484+
errorDetails,
497485
);
498486
}
499487

src/cp/OCPPWebSocket.ts

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,33 @@ export class OCPPWebSocket {
104104
}
105105
}
106106

107-
public send(
108-
messageType: OCPPMessageType,
107+
public sendAction(
109108
messageId: string,
110109
action: OCPPAction,
111-
payload: OcppMessagePayload
110+
payload: OcppMessageRequestPayload,
112111
): void {
112+
const message = JSON.stringify([OCPPMessageType.CALL, messageId, action, payload]);
113+
this.send(message);
114+
}
115+
116+
public sendResult(
117+
messageId: string,
118+
payload: OcppMessageResponsePayload,
119+
): void {
120+
const message = JSON.stringify([OCPPMessageType.CALL_RESULT, messageId, payload]);
121+
this.send(message);
122+
}
123+
124+
public sendError(
125+
messageId: string,
126+
payload: OcppMessageErrorPayload,
127+
): void {
128+
const message = JSON.stringify([OCPPMessageType.CALL_ERROR, messageId, payload]);
129+
this.send(message);
130+
}
131+
132+
private send(message: string): void {
113133
if (this._ws && this._ws.readyState === WebSocket.OPEN) {
114-
const message = JSON.stringify([messageType, messageId, action, payload]);
115134
this._ws.send(message);
116135
this._logger.log(`Sent: ${message}`);
117136
} else {

0 commit comments

Comments
 (0)