Skip to content

Commit a086cec

Browse files
authored
Merge pull request #168 from mahdidadashi65/develop_dadashi
Change in the decision-making process for reservation recognition
2 parents 6b026de + 011e513 commit a086cec

File tree

4 files changed

+16
-23
lines changed

4 files changed

+16
-23
lines changed

examples/common/DefaultChargePointEventsHandler.cpp

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -168,24 +168,16 @@ bool DefaultChargePointEventsHandler::remoteStartTransactionRequested(unsigned i
168168
{
169169
bool ret = false;
170170
cout << "Remote start transaction : " << connector_id << " - " << id_tag << endl;
171-
if (connector_id != 0)
171+
172+
if(connector_id > m_config.ocppConfig().numberOfConnectors() || connector_id == 0)
172173
{
173-
m_remote_start_pending[connector_id - 1u] = true;
174-
m_remote_start_id_tag[connector_id - 1u] = id_tag;
175-
ret = true;
174+
ret=false;
176175
}
177176
else
178177
{
179-
for (size_t i = 1; i <= m_config.ocppConfig().numberOfConnectors(); i++)
180-
{
181-
if (m_chargepoint->getConnectorStatus(i) < ChargePointStatus::Charging)
182-
{
183-
m_remote_start_pending[i - 1u] = true;
184-
m_remote_start_id_tag[i - 1u] = id_tag;
185-
ret = true;
186-
break;
187-
}
188-
}
178+
m_remote_start_pending[connector_id - 1u] = true;
179+
m_remote_start_id_tag[connector_id - 1u] = id_tag;
180+
ret=true;
189181
}
190182
return ret;
191183
}

examples/common/config/OcppConfig.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@ ocpp::types::ConfigurationStatus OcppConfig::setConfiguration(const std::string&
207207
}
208208
}
209209

210-
if (ret != ConfigurationStatus::Rejected)
211-
{
210+
if (ret != ConfigurationStatus::Rejected)
211+
{
212212
if ((it->second & PARAM_OCPP) != 0)
213213
{
214214
m_config.set(OCPP_PARAMS, key, value);
@@ -225,7 +225,7 @@ ocpp::types::ConfigurationStatus OcppConfig::setConfiguration(const std::string&
225225
{
226226
ret = ConfigurationStatus::Accepted;
227227
}
228-
}
228+
}
229229
}
230230
else
231231
{

src/chargepoint/reservation/ReservationManager.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ ocpp::types::AuthorizationStatus ReservationManager::isTransactionAllowed(unsign
102102
if (connector)
103103
{
104104
// Check if connector is reserved
105-
if (connector->status == ChargePointStatus::Reserved)
105+
if (!connector->reservation_id_tag.empty())
106106
{
107107
// Check if id tag match
108108
if (id_tag == connector->reservation_id_tag)
@@ -130,7 +130,7 @@ ocpp::types::AuthorizationStatus ReservationManager::isTransactionAllowed(unsign
130130
{
131131
// Check if connector 0 is reserved
132132
Connector& charge_point = m_connectors.getChargePointConnector();
133-
if (charge_point.status == ChargePointStatus::Reserved)
133+
if (!charge_point.reservation_id_tag.empty())
134134
{
135135
// Ensure that the module functions properly even when the gun is inserted first by the user.
136136
if (m_connectors.getConnector(connector_id)->status == ChargePointStatus::Preparing)
@@ -234,6 +234,7 @@ bool ReservationManager::handleMessage(const ocpp::messages::ReserveNowReq& requ
234234
m_status_manager.updateConnectorStatus(connector->id, ChargePointStatus::Reserved);
235235
m_events_handler.reservationStarted(connector->id);
236236
});
237+
237238
break;
238239
}
239240

@@ -293,7 +294,7 @@ bool ReservationManager::handleMessage(const ocpp::messages::CancelReservationRe
293294
response.status = CancelReservationStatus::Rejected;
294295
for (const Connector* connector : m_connectors.getConnectors())
295296
{
296-
if ((connector->status == ChargePointStatus::Reserved) && (connector->reservation_id == request.reservationId))
297+
if ((!connector->reservation_id_tag.empty()) && (connector->reservation_id == request.reservationId))
297298
{
298299
// Cancel reservation
299300
m_worker_pool.run<void>([this, connector_id = connector->id] { endReservation(connector_id, true); });
@@ -316,7 +317,7 @@ void ReservationManager::checkExpiries()
316317
// Check reservations
317318
for (const Connector* connector : m_connectors.getConnectors())
318319
{
319-
if ((connector->status == ChargePointStatus::Reserved) && (connector->reservation_expiry_date <= now))
320+
if ((!connector->reservation_id_tag.empty()) && (connector->reservation_expiry_date <= now))
320321
{
321322
// End reservation
322323
m_worker_pool.run<void>(std::bind(&ReservationManager::endReservation, this, connector->id, false));

src/chargepoint/transaction/TransactionManager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ ocpp::types::AuthorizationStatus TransactionManager::startTransaction(unsigned i
9898
start_transaction_req.timestamp = DateTime::now();
9999

100100
// Check reservations
101-
if (connector->status == ChargePointStatus::Reserved)
101+
if (!connector->reservation_id_tag.empty())
102102
{
103103
// Fill reservation id
104104
start_transaction_req.reservationId = connector->reservation_id;
@@ -112,7 +112,7 @@ ocpp::types::AuthorizationStatus TransactionManager::startTransaction(unsigned i
112112
if (m_ocpp_config.reserveConnectorZeroSupported())
113113
{
114114
Connector& charge_point = m_connectors.getChargePointConnector();
115-
if (charge_point.status == ChargePointStatus::Reserved)
115+
if (!charge_point.reservation_id_tag.empty())
116116
{
117117
// Check if this transaction can be used for the charge point reservation
118118
if (m_reservation_manager.isTransactionAllowed(Connectors::CONNECTOR_ID_CHARGE_POINT, id_tag) ==

0 commit comments

Comments
 (0)