IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Recherche piste de réflexion/tutoriel pour communication entre un programme en c++ avec BDD


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut Recherche piste de réflexion/tutoriel pour communication entre un programme en c++ avec BDD
    Bonjour à toutes et à tous,

    Ce que je vais présenter ici risque de vous paraitre assez obscur (dans la formulation) car je n'arriverais sans doute pas expliquer correctement ce que je veux faire, je vous pris donc de bien vouloir m'en excuser.

    Actuellement, j'ai développé un programme en C++ sous Qt (avec une IHM) pour établir une communication série entre mon PC et un automate. Ce programme me permet aussi de pouvoir allumer ou éteindre des LEDs se trouvant sur les sorties TOR de l'automate lorsque j'appuie sur des boutons sur l'IHM. Le programme marche pour l'instant.

    Maintenant, je voudrais déporté mon IHM Qt sur une page web et pouvoir interagir depuis ma page web sur mon automate. En gros, je veux faire exactement comme si j'utilisais l'IHM développé sous Qt mais sur un navigateur web. Je suppose donc qu'il va falloir opter sur une architecture client/serveur et donc rajouter une fonction serveur à mon programme.

    J'ai déjà essayer plusieurs solutions mais sans succès (en témoigne de nombreux topics que j'ai ouvert) et si je me souviens bien, il a émis une fois l'utilisation de BDD (base de données).
    Si je me souviens bien, l'idée serait:
    1-La page web envoit l'ordre que je veux effectuer dans la base de donnée
    2-L'ordre est stocké dans la base de donnée
    3-Le serveur interroge la base de donnée pour voir s'il y a un ordre de stocké
    4-Le serveur trouve l'ordre dans la base de donnée et l'exécute.

    Je fais appel à mes souvenirs donc j'ai quand même un doute sur la véracité de cette technique mais si elle est possible, pouvez-vous me renseigner sur de la documentation/tutoriels qui pourrais m'aider ?

    Cordialement,
    Clairetj

  2. #2
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 871
    Par défaut
    Ce que tu pourrais faire c'est juste un serveur qui execute l'ordre donne. Si tu utilises le protocole html il te suffira de parser la requete pour savoir quelle ordre executer (il me semble que Qt a une classe pour ca). Je vois pas vraiment pourquoi tu voudrais utiliser une bdd par-contre. Tu veux sauvegarder les commandes executees ?

  3. #3
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut
    Je ne pense pas que sauvegarder le commander me soit vraiment utile

    Par contre est-ce que tu pourrais détailler un peu plus ton idée quand tu dit
    Si tu utilises le protocole html il te suffira de parser la requete pour savoir quelle ordre executer (il me semble que Qt a une classe pour ca)
    parce ue j'ai essayer une multitude de chose sans que cela marche.

    Quelle est la classe Qt qui ferai cela ?

  4. #4
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Je ne sais pas qui t’a conseillé de passer par une base de données, mais ça me semble une mauvaise idée : compliqué à mettre en œuvre, pas fiable, nécessité de faire un polling actif… Personnellement, je déconseille fortement cette solution.

    D’autant que… comme tu as probablement bien architecturé ton projet (et si ce n’est pas le cas, il n’est pas trop tard pour le corriger) ta couche de présentation est logiquement indépendante de tout ton code métier (celui qui communique avec l’automate).

    Donc je te propose plutôt de changer uniquement ta couche de présentation, par une autre. Deux solutions :
    - soit tu fournis un web-service ou assimilé (json-rpc), et une interface purement javascript/html5
    - soit tu fournis une application web, réalisée par exemple avec la librairie webtoolkit (attention, elle est payante si la GPL n’est pas adaptée).

  5. #5
    Membre éclairé

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2011
    Messages : 532
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    D’autant que… comme tu as probablement bien architecturé ton projet (et si ce n’est pas le cas, il n’est pas trop tard pour le corriger) ta couche de présentation est logiquement indépendante de tout ton code métier (celui qui communique avec l’automate).
    Bon déjà, on va dire que qu'à la base, je reprend le projet de mon prédécésseur et on va dire que le code qu'il m'a laisser pour la communication avec l'automate est un peu fouillis mais j'arrive encore à m'en sortir. Sauf que je suis allé tellement de fois dans le mur que je repart sur ma base de départ que je pose ici.
    Actuellement, j'ai:
    -mainwindow.ui qui est mon IHM pour faire la communication entre mon PC et l'automate (et allumer/éteindre des LEDs)
    mainwindow.ccp et mainwindow.h qui sont les deux fichiers de mon programme de communication entre mon PC et mon automate.
    -main.cpp ba c'est mon main qui me lance mon programme

    Citation Envoyé par white_tentacle Voir le message
    Donc je te propose plutôt de changer uniquement ta couche de présentation, par une autre. Deux solutions :
    - soit tu fournis un web-service ou assimilé (json-rpc), et une interface purement javascript/html5
    - soit tu fournis une application web, réalisée par exemple avec la librairie webtoolkit (attention, elle est payante si la GPL n’est pas adaptée).
    Je pense prendre la première solution donc dit moi moi si je me trompe.
    Dans mon programme actuel, il faut que je rajoute (par exemple) un fichier serveur.cpp et serveur.h créant une classe pour faire mon serveur. Et ensuite je crée une interface web en html (je ne connais pas le javascript donc j'opterai pour le html). Est-ce que ma démarche semble logique ?

    Par contre, en faisant des recherches, j'ai lu que je risque fortement d'utiliser le protocole HTTP; or je ne le connait pas donc est-ce que quelqu'un aurait une documentation/tutoriel à me conseiller ?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Par défaut
    Citation Envoyé par clairetj Voir le message
    en html (je ne connais pas le javascript donc j'opterai pour le html)
    Globalement c'est l'idée, mais concernant HTML...en HTML, surtout en HTML5, HTLM ne sert qu'à spécifier la partie "visuelle" de l'interface, le comportement, lui, est décrit en...javascript
    Allez, des appels de servcie en js ce n'est pas la mort, rassure-toi, même moi qui suis loin d'être un fan de javascript je le dis

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/08/2012, 20h13
  2. [2.x] Recherche d'un bon tutoriel pour étdendre FosUserBundle
    Par pmithrandir dans le forum Symfony
    Réponses: 3
    Dernier message: 06/05/2012, 21h44
  3. [Toutes versions] Recherche d'un numéro d'identification commun entre 2 feuilles excel
    Par thirdeye dans le forum Excel
    Réponses: 2
    Dernier message: 15/09/2010, 14h38
  4. Réponses: 4
    Dernier message: 21/08/2009, 10h48
  5. Communication entre 2 programmes (débutant)
    Par mandaillou dans le forum C++
    Réponses: 43
    Dernier message: 12/12/2006, 21h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo