@@ -201,8 +201,8 @@ void StatusManager::resetHeartBeatTimer()
201201
202202// ITriggerMessageHandler interfaces
203203
204- /* * @copydoc bool ITriggerMessageHandler::onTriggerMessage(ocpp::types::MessageTrigger, unsigned int) */
205- bool StatusManager::onTriggerMessage (ocpp::types::MessageTrigger message, unsigned int connector_id)
204+ /* * @copydoc bool ITriggerMessageHandler::onTriggerMessage(ocpp::types::MessageTrigger, const ocpp::types::Optional< unsigned int>& ) */
205+ bool StatusManager::onTriggerMessage (ocpp::types::MessageTrigger message, const ocpp::types::Optional< unsigned int >& connector_id)
206206{
207207 bool ret = true ;
208208 switch (message)
@@ -233,13 +233,31 @@ bool StatusManager::onTriggerMessage(ocpp::types::MessageTrigger message, unsign
233233
234234 case MessageTrigger::StatusNotification:
235235 {
236- m_worker_pool.run <void >(
237- [this , connector_id]
236+ if (connector_id.isSet ())
237+ {
238+ unsigned int id = connector_id;
239+ m_worker_pool.run <void >(
240+ [this , id]
241+ {
242+ // To let some time for the trigger message reply
243+ std::this_thread::sleep_for (std::chrono::milliseconds (250u ));
244+ statusNotificationProcess (id);
245+ });
246+ }
247+ else
248+ {
249+ for (const Connector* connector : m_connectors.getConnectors ())
238250 {
239- // To let some time for the trigger message reply
240- std::this_thread::sleep_for (std::chrono::milliseconds (250u ));
241- statusNotificationProcess (connector_id);
242- });
251+ unsigned int id = connector->id ;
252+ m_worker_pool.run <void >(
253+ [this , id]
254+ {
255+ // To let some time for the trigger message reply
256+ std::this_thread::sleep_for (std::chrono::milliseconds (250u ));
257+ statusNotificationProcess (id);
258+ });
259+ }
260+ }
243261 break ;
244262 }
245263
@@ -253,8 +271,8 @@ bool StatusManager::onTriggerMessage(ocpp::types::MessageTrigger message, unsign
253271 return ret;
254272}
255273
256- /* * @copydoc bool ITriggerMessageHandler::onTriggerMessage(ocpp::types::MessageTriggerEnumType, unsigned int) */
257- bool StatusManager::onTriggerMessage (ocpp::types::MessageTriggerEnumType message, unsigned int connector_id)
274+ /* * @copydoc bool ITriggerMessageHandler::onTriggerMessage(ocpp::types::MessageTriggerEnumType, const ocpp::types::Optional< unsigned int>& ) */
275+ bool StatusManager::onTriggerMessage (ocpp::types::MessageTriggerEnumType message, const ocpp::types::Optional< unsigned int >& connector_id)
258276{
259277 bool ret = true ;
260278 switch (message)
@@ -285,13 +303,31 @@ bool StatusManager::onTriggerMessage(ocpp::types::MessageTriggerEnumType message
285303
286304 case MessageTriggerEnumType::StatusNotification:
287305 {
288- m_worker_pool.run <void >(
289- [this , connector_id]
306+ if (connector_id.isSet ())
307+ {
308+ unsigned int id = connector_id;
309+ m_worker_pool.run <void >(
310+ [this , id]
311+ {
312+ // To let some time for the trigger message reply
313+ std::this_thread::sleep_for (std::chrono::milliseconds (250u ));
314+ statusNotificationProcess (id);
315+ });
316+ }
317+ else
318+ {
319+ for (const Connector* connector : m_connectors.getConnectors ())
290320 {
291- // To let some time for the trigger message reply
292- std::this_thread::sleep_for (std::chrono::milliseconds (250u ));
293- statusNotificationProcess (connector_id);
294- });
321+ unsigned int id = connector->id ;
322+ m_worker_pool.run <void >(
323+ [this , id]
324+ {
325+ // To let some time for the trigger message reply
326+ std::this_thread::sleep_for (std::chrono::milliseconds (250u ));
327+ statusNotificationProcess (id);
328+ });
329+ }
330+ }
295331 break ;
296332 }
297333
0 commit comments