Skip to content

Commit 1769a97

Browse files
authored
EvseV2G: Switch dlink action to enum class (EVerest#1600)
Additionally, improved the naming of the elements and class member. EvseV2G: Set default d_link_action to D_LINK_ACTION_TERMINATE Removed the unused D_LINK_ACTION_ERROR and made D_LINK_ACTION_TERMINATE the new default value after initilization of the "conn" structure. This commit solves the issue that d_link_action is not correctly configured to D_LINK_ACTION_TERMINATE when a session ends unexpectedly without SessionStop (before lingered on D_LINK_ACTION_ERROR). Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com>
1 parent 00decea commit 1769a97

File tree

5 files changed

+13
-17
lines changed

5 files changed

+13
-17
lines changed

modules/EVSE/EvseV2G/connection/connection.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -379,15 +379,12 @@ void connection_teardown(struct v2g_connection* conn) {
379379
v2g_ctx_init_charging_session(conn->ctx, true);
380380

381381
/* print dlink status */
382-
switch (conn->dlink_action) {
383-
case MQTT_DLINK_ACTION_ERROR:
384-
dlog(DLOG_LEVEL_TRACE, "d_link/error");
385-
break;
386-
case MQTT_DLINK_ACTION_TERMINATE:
382+
switch (conn->d_link_action) {
383+
case dLinkAction::D_LINK_ACTION_TERMINATE:
387384
conn->ctx->p_charger->publish_dlink_terminate(nullptr);
388385
dlog(DLOG_LEVEL_TRACE, "d_link/terminate");
389386
break;
390-
case MQTT_DLINK_ACTION_PAUSE:
387+
case dLinkAction::D_LINK_ACTION_PAUSE:
391388
conn->ctx->p_charger->publish_dlink_pause(nullptr);
392389
dlog(DLOG_LEVEL_TRACE, "d_link/pause");
393390
break;

modules/EVSE/EvseV2G/din_server.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -923,7 +923,7 @@ static enum v2g_event handle_din_session_stop(struct v2g_connection* conn) {
923923
utils::din_validate_response_code(&res->ResponseCode, conn);
924924

925925
/* Setuo dlink action */
926-
conn->dlink_action = MQTT_DLINK_ACTION_TERMINATE;
926+
conn->d_link_action = dLinkAction::D_LINK_ACTION_TERMINATE;
927927

928928
/* Set next expected req msg */
929929
conn->ctx->state = WAIT_FOR_TERMINATED_SESSION; // [V2G-DC-451]

modules/EVSE/EvseV2G/iso_server.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2149,7 +2149,7 @@ static enum v2g_event handle_iso_session_stop(struct v2g_connection* conn) {
21492149
/* Set the next charging state */
21502150
switch (req->ChargingSession) {
21512151
case iso2_chargingSessionType_Terminate:
2152-
conn->dlink_action = MQTT_DLINK_ACTION_TERMINATE;
2152+
conn->d_link_action = dLinkAction::D_LINK_ACTION_TERMINATE;
21532153
conn->ctx->hlc_pause_active = false;
21542154
/* Set next expected req msg */
21552155
conn->ctx->state = (int)iso_dc_state_id::WAIT_FOR_TERMINATED_SESSION;
@@ -2160,21 +2160,21 @@ static enum v2g_event handle_iso_session_stop(struct v2g_connection* conn) {
21602160
/* Check if the EV is allowed to request the sleep mode. TODO: Remove "true" if sleep mode is supported */
21612161
if (((conn->ctx->last_v2g_msg != V2G_POWER_DELIVERY_MSG) &&
21622162
(conn->ctx->last_v2g_msg != V2G_WELDING_DETECTION_MSG))) {
2163-
conn->dlink_action = MQTT_DLINK_ACTION_TERMINATE;
2163+
conn->d_link_action = dLinkAction::D_LINK_ACTION_TERMINATE;
21642164
res->ResponseCode = iso2_responseCodeType_FAILED;
21652165
conn->ctx->hlc_pause_active = false;
21662166
conn->ctx->state = (int)iso_dc_state_id::WAIT_FOR_TERMINATED_SESSION;
21672167
} else {
21682168
/* Init sleep mode for the EV */
2169-
conn->dlink_action = MQTT_DLINK_ACTION_PAUSE;
2169+
conn->d_link_action = dLinkAction::D_LINK_ACTION_PAUSE;
21702170
conn->ctx->hlc_pause_active = true;
21712171
conn->ctx->state = (int)iso_dc_state_id::WAIT_FOR_SESSIONSETUP;
21722172
}
21732173
break;
21742174

21752175
default:
21762176
/* Set next expected req msg */
2177-
conn->dlink_action = MQTT_DLINK_ACTION_TERMINATE;
2177+
conn->d_link_action = dLinkAction::D_LINK_ACTION_TERMINATE;
21782178
conn->ctx->state = (int)iso_dc_state_id::WAIT_FOR_TERMINATED_SESSION;
21792179
}
21802180

modules/EVSE/EvseV2G/v2g.hpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -366,10 +366,9 @@ struct v2g_context {
366366
bool connection_initiated;
367367
};
368368

369-
enum mqtt_dlink_action {
370-
MQTT_DLINK_ACTION_ERROR,
371-
MQTT_DLINK_ACTION_TERMINATE,
372-
MQTT_DLINK_ACTION_PAUSE,
369+
enum class dLinkAction {
370+
D_LINK_ACTION_TERMINATE,
371+
D_LINK_ACTION_PAUSE
373372
};
374373

375374
/**
@@ -410,7 +409,7 @@ struct v2g_connection {
410409
struct iso2_exiDocument* iso2EXIDocument;
411410
} exi_out;
412411

413-
enum mqtt_dlink_action dlink_action; /* signaled action after connection is closed */
412+
dLinkAction d_link_action; /* signaled data-link action after connection is closed */
414413
};
415414

416415
#endif /* V2G_H */

modules/EVSE/EvseV2G/v2g_server.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ int v2g_handle_connection(struct v2g_connection* conn) {
373373

374374
/* Here is a good point to wait until the customer is ready for a resumed session,
375375
* because we are waiting for the incoming message of the ev */
376-
if (conn->dlink_action == MQTT_DLINK_ACTION_PAUSE) {
376+
if (conn->d_link_action == dLinkAction::D_LINK_ACTION_PAUSE) {
377377
// TODO: D_LINK pause
378378
}
379379

0 commit comments

Comments
 (0)