repositories
/
e-mobility-charging-stations-simulator.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Optimization: bind to this sendMessage()
[e-mobility-charging-stations-simulator.git]
/
src
/
charging-station
/
ChargingStation.ts
diff --git
a/src/charging-station/ChargingStation.ts
b/src/charging-station/ChargingStation.ts
index 767ea76d913cae9dfe51e2bc4cc17af9afab7b07..1845d35b220186bce42f042d29cf40930fddeb7f 100644
(file)
--- a/
src/charging-station/ChargingStation.ts
+++ b/
src/charging-station/ChargingStation.ts
@@
-731,6
+731,7
@@
export default class ChargingStation {
} else {
this.automaticTransactionGenerator.start();
}
} else {
this.automaticTransactionGenerator.start();
}
+ parentPort.postMessage(MessageChannelUtils.buildUpdatedMessage(this));
}
public stopAutomaticTransactionGenerator(connectorIds?: number[]): void {
}
public stopAutomaticTransactionGenerator(connectorIds?: number[]): void {
@@
-740,8
+741,8
@@
export default class ChargingStation {
}
} else {
this.automaticTransactionGenerator?.stop();
}
} else {
this.automaticTransactionGenerator?.stop();
- this.automaticTransactionGenerator = null;
}
}
+ parentPort.postMessage(MessageChannelUtils.buildUpdatedMessage(this));
}
public async stopTransactionOnConnector(
}
public async stopTransactionOnConnector(
@@
-1483,7
+1484,7
@@
export default class ChargingStation {
// Respond
cachedRequest = this.requests.get(messageId);
if (Array.isArray(cachedRequest) === true) {
// Respond
cachedRequest = this.requests.get(messageId);
if (Array.isArray(cachedRequest) === true) {
- [responseCallback, , requestCommandName, requestPayload] = cachedRequest;
+ [responseCallback,
errorCallback
, requestCommandName, requestPayload] = cachedRequest;
} else {
throw new OCPPError(
ErrorType.PROTOCOL_ERROR,
} else {
throw new OCPPError(
ErrorType.PROTOCOL_ERROR,
@@
-1574,8
+1575,12
@@
export default class ChargingStation {
[MessageType.CALL_RESULT_MESSAGE, MessageType.CALL_ERROR_MESSAGE].includes(messageType) ===
true
) {
[MessageType.CALL_RESULT_MESSAGE, MessageType.CALL_ERROR_MESSAGE].includes(messageType) ===
true
) {
- //
Remove the request from the cache
+ //
Always remove the request from the cache in case of error at response handling
this.requests.delete(messageId);
this.requests.delete(messageId);
+ // Always reject the deferred promise in case of error at response handling (rejecting an already fulfilled promise is a no-op)
+ if (errorCallback) {
+ errorCallback(error as OCPPError, false);
+ }
}
}
}
}
}
}