CRLG / LABOTBOX

Outil de contrôle et mise au point pour robot CRLG
GNU General Public License v3.0
2 stars 1 forks source link

[DataManager] Création automatique de la Data si elle n'existe pas dans la méthode getData() #47

Closed NicoFarmer closed 4 years ago

NicoFarmer commented 4 years ago

Dans la situation actuelle, dans un module souhaitant établir une connexion entre une Data et un slot, il faut au préalable s'assurer que la data existe. Pour s'en assurer, un premier appel à la fonction write doit être appelé puis la connexion peut être faite. Il est donc nécessaire d'avoir 2 instructions. Exemple avant modification:

  m_application->m_data_center->write("PowerElectrobot.output1", 0);
  connect(m_ihm.ui.output_1, SIGNAL(clicked(bool)), m_application->m_data_center->getData("PowerElectrobot.output1"), SLOT(write(bool)));

Pour simplifier l'utilisation dans l'applicatif avec une seule instruction, la méthode getData() peut être enrichie pour que la Data soit créé automatiquement si elle n'existe pas déjà. Cela évite d'avoir à appeler une première fois la fonction write. Exemple après modification:

  connect(m_ihm.ui.output_1, SIGNAL(clicked(bool)), m_application->m_data_center->getData("PowerElectrobot.output1", true), SLOT(write(bool)));
NicoFarmer commented 4 years ago

Modification implémentée et testée.