Skip to content

Commit dd4ca6f

Browse files
committed
[chargepoint - connectors] Add transaction parent id tag to connector data
1 parent 790759d commit dd4ca6f

File tree

3 files changed

+32
-22
lines changed

3 files changed

+32
-22
lines changed

src/chargepoint/connector/Connector.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ struct Connector
9393
ocpp::types::DateTime transaction_start;
9494
/** @brief Id tag associated with the transaction */
9595
std::string transaction_id_tag;
96+
/** @brief Parent id tag associated with the transaction */
97+
std::string transaction_parent_id_tag;
9698

9799
// Reservation data
98100

src/chargepoint/connector/Connectors.cpp

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ void Connectors::initDatabaseTable()
8080
"[transaction_id_offline] INT,"
8181
"[transaction_start] BIGINT,"
8282
"[transaction_id_tag] VARCHAR(20),"
83+
"[transaction_parent_id_tag] VARCHAR(20),"
8384
"[reservation_id] INT,"
8485
"[reservation_id_tag] VARCHAR(20),"
8586
"[reservation_parent_id_tag] VARCHAR(20),"
@@ -95,10 +96,11 @@ void Connectors::initDatabaseTable()
9596

9697
// Create parametrized queries
9798
m_find_query = m_database.query("SELECT * FROM Connectors WHERE id=?;");
98-
m_insert_query = m_database.query("INSERT INTO Connectors VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
99+
m_insert_query = m_database.query("INSERT INTO Connectors VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
99100
m_update_query = m_database.query("UPDATE Connectors SET [status]=?, [last_notified_status]=?, [transaction_id]=?, "
100-
"[transaction_id_offline]=?, [transaction_start]=?, [transaction_id_tag]=?, [reservation_id]=?, "
101-
"[reservation_id_tag]=?, [reservation_parent_id_tag]=?, [reservation_expiry_date]=? WHERE id=?;");
101+
"[transaction_id_offline]=?, [transaction_start]=?, [transaction_id_tag]=?, "
102+
"[transaction_parent_id_tag]=?, [reservation_id]=?, [reservation_id_tag]=?, "
103+
"[reservation_parent_id_tag]=?, [reservation_expiry_date]=? WHERE id=?;");
102104

103105
// Load the connector state
104106
loadConnectors();
@@ -231,10 +233,11 @@ bool Connectors::loadConnector(Connector& connector)
231233
connector.transaction_id_offline = m_find_query->getInt32(4u);
232234
connector.transaction_start = static_cast<std::time_t>(m_find_query->getInt64(5u));
233235
connector.transaction_id_tag = m_find_query->getString(6u);
234-
connector.reservation_id = m_find_query->getInt32(7u);
235-
connector.reservation_id_tag = m_find_query->getString(8u);
236-
connector.reservation_parent_id_tag = m_find_query->getString(9u);
237-
connector.reservation_expiry_date = static_cast<std::time_t>(m_find_query->getInt64(10u));
236+
connector.transaction_parent_id_tag = m_find_query->getString(7u);
237+
connector.reservation_id = m_find_query->getInt32(8u);
238+
connector.reservation_id_tag = m_find_query->getString(9u);
239+
connector.reservation_parent_id_tag = m_find_query->getString(10u);
240+
connector.reservation_expiry_date = static_cast<std::time_t>(m_find_query->getInt64(11u));
238241

239242
LOG_DEBUG << "Connector " << connector.id << " loaded from database : "
240243
<< "status = " << ChargePointStatusHelper.toString(connector.status)
@@ -243,6 +246,7 @@ bool Connectors::loadConnector(Connector& connector)
243246
<< " - transaction_id_offline = " << connector.transaction_id_offline
244247
<< " - transaction_start = " << connector.transaction_start.str()
245248
<< " - transaction_id_tag = " << connector.transaction_id_tag
249+
<< " - transaction_parent_id_tag = " << connector.transaction_parent_id_tag
246250
<< " - reservation_id = " << connector.reservation_id
247251
<< " - reservation_id_tag = " << connector.reservation_id_tag
248252
<< " - reservation_parent_id_tag = " << connector.reservation_parent_id_tag
@@ -276,11 +280,12 @@ bool Connectors::saveConnector(const Connector& connector)
276280
m_update_query->bind(3u, connector.transaction_id_offline);
277281
m_update_query->bind(4u, connector.transaction_start);
278282
m_update_query->bind(5u, connector.transaction_id_tag);
279-
m_update_query->bind(6u, connector.reservation_id);
280-
m_update_query->bind(7u, connector.reservation_id_tag);
281-
m_update_query->bind(8u, connector.reservation_parent_id_tag);
282-
m_update_query->bind(9u, connector.reservation_expiry_date);
283-
m_update_query->bind(10u, connector.id);
283+
m_update_query->bind(6u, connector.transaction_parent_id_tag);
284+
m_update_query->bind(7u, connector.reservation_id);
285+
m_update_query->bind(8u, connector.reservation_id_tag);
286+
m_update_query->bind(9u, connector.reservation_parent_id_tag);
287+
m_update_query->bind(10u, connector.reservation_expiry_date);
288+
m_update_query->bind(11u, connector.id);
284289
ret = m_update_query->exec();
285290
if (ret)
286291
{
@@ -310,10 +315,11 @@ bool Connectors::createConnector(const Connector& connector)
310315
m_insert_query->bind(4u, connector.transaction_id_offline);
311316
m_insert_query->bind(5u, connector.transaction_start);
312317
m_insert_query->bind(6u, connector.transaction_id_tag);
313-
m_insert_query->bind(7u, connector.reservation_id);
314-
m_insert_query->bind(8u, connector.reservation_id_tag);
315-
m_insert_query->bind(9u, connector.reservation_parent_id_tag);
316-
m_insert_query->bind(10u, connector.reservation_expiry_date);
318+
m_insert_query->bind(7u, connector.transaction_parent_id_tag);
319+
m_insert_query->bind(8u, connector.reservation_id);
320+
m_insert_query->bind(9u, connector.reservation_id_tag);
321+
m_insert_query->bind(10u, connector.reservation_parent_id_tag);
322+
m_insert_query->bind(11u, connector.reservation_expiry_date);
317323
ret = m_insert_query->exec();
318324
if (ret)
319325
{

src/chargepoint/transaction/TransactionManager.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,10 @@ ocpp::types::AuthorizationStatus TransactionManager::startTransaction(unsigned i
158158
// Update status from response
159159
{
160160
std::lock_guard<std::mutex> lock(connector->mutex);
161-
connector->transaction_id = start_transaction_conf.transactionId;
162-
connector->transaction_start = start_transaction_req.timestamp;
163-
connector->transaction_id_tag = id_tag;
161+
connector->transaction_id = start_transaction_conf.transactionId;
162+
connector->transaction_start = start_transaction_req.timestamp;
163+
connector->transaction_id_tag = id_tag;
164+
connector->transaction_parent_id_tag = start_transaction_conf.idTagInfo.parentIdTag.value().str();
164165
m_connectors.saveConnector(connector->id);
165166
}
166167

@@ -223,9 +224,10 @@ bool TransactionManager::stopTransaction(unsigned int connector_id, const std::s
223224
// Reset transaction id
224225
{
225226
std::lock_guard<std::mutex> lock(connector->mutex);
226-
connector->transaction_id = 0;
227-
connector->transaction_id_tag = "";
228-
connector->transaction_start = 0;
227+
connector->transaction_id = 0;
228+
connector->transaction_id_tag = "";
229+
connector->transaction_parent_id_tag = "";
230+
connector->transaction_start = 0;
229231
m_connectors.saveConnector(connector->id);
230232
}
231233

0 commit comments

Comments
 (0)