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 :

Récupérer des informations console


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Par défaut Récupérer des informations console
    Bonjour a tous et a toutes d'un petit nouveau sur le forum !

    Rentrons tout de suite dans le vif du sujet :

    Mon projet de fin d'année est la réalisation d'un logiciel de domotique sur une petite borne tactile (ARM-9) sous Linux.
    Pour les besoins du projet, je dois intégrer un widget "thermomètre" qui indique la température (étrange en effet ! ).
    Les modules domotiques que je manipule utilisent le protocole X10 et j'ai à ma disposition "Heyu" qui me permet de facilement manipuler ce protocole (sans devoir toucher au variation de fréquence du courant et ce genre d'élément indigeste ).
    Le module Thermostat est un émetteur, je dois donc récupérer les informations qu'il envoi grace à une commande heyu qui récupère justement les informations envoyés par les emetteurs et les affiches sur le terminal.

    Jusque là, tout va bien.
    Mon problème vient du fait que je ne trouve pas le moyens de récupérer les informations qui ont été affiché sur ce terminal...

    Est-ce qu'il y a une fonction C++ qui permet cela ?

    Dans le cas contraire j'ai déjà imaginé une solution temporaire : rediriger la ligne affichée dans un fichier lorsque l'information arrive. Mais un deuxième problème se pose : Est-il possible de signaler au logiciel qu'une nouvelle ligne vient de s'afficher sur le terminal ?

    Merci de votre aide !

  2. #2
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    D'après ce que je comprend tu veux d'interfacé avec un logiciel en ligne de commande. Regard donc du coté des pipes :
    http://tldp.org/LDP/lpg/node11.html

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Par défaut
    Oui j'ai déjà pensé à faire un pipe, seulement heyu n'est pas un programme que j'ai créé, et quand bien même il est open source, je ne pense pas pouvoir modifier le source et le recompiler pour intégrer une écriture dans un pipe... Je pense que c'est une trop grosse machine à mettre en place pour un petit problème.

    N'y a t'il pas une interruption logicielle générée lorsqu'une ligne est écrite sur le terminal ?
    J'ai beau cherché je n'arrive pas à trouver la réponse.

  4. #4
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    ton programme "Heyu" affiche la ligne que tu veux lire ?
    Peut tu faire une ligne de ce style ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Heyu -arg1 -arg2 > file_out
    Où file_out contient les informations que tu veux récupérer ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Par défaut
    Oui, heyu affiche la ligne que je veux lire, et je pourrais faire une redirection de ce type :
    Citation Envoyé par themadmax Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Heyu -arg1 -arg2 > file_out
    Seulement la ligne que je veux lire est une ligne émise automatiquement par un module, ce n'est pas moi qui l'écrit ( je ne donne pas l'ordre au module de l'écrire).

    Je reçois sur le terminal une ligne de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    module AH send 0x2566356
    Je souhaite justement récupérer cette ligne lorsqu'elle apparaît.

  6. #6
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <stdio.h>
    int main(int argc,char** argv) {
       char data[256];
       fread( data, 1, 5, stdin );
       printf("readed : '%s'\n", data );
    }
    Tu compile le programme en "program"
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Hello" | ./program

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Par défaut
    Hum non, j'ai du mal m'exprimer.
    Le module émetteur est un thermostat, qui émet à intervalle régulier des informations (comme un GPS). Le thermostat n'est pas programmé par moi, c'est un module physique commercialisé qui utilise la norme X10.

    Heyu permet de lancer un "monitor", dans un terminal. Le monitor va continuellement récupérer les données reçues et les afficher. Là encore, je n'ai rien créée. C'est un logiciel fournit qui effectue des informations de base programmé par le développeur de Heyu.

    Mon but est de détecter quand il y a une nouvelle entrée sur le terminal, et enregistrer la ligne qu'il y a afficher dessus. Étant donné que je n'agit pas sur l'envoi des informations par le thermostat, il m'est impossible d'effectuer une redirection standard dans un fichier...

    J'espère que je suis pas trop vague... En tout cas merci pour ton aide !

  8. #8
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    Salut,
    Citation Envoyé par hijackMe Voir le message
    Hum non, j'ai du mal m'exprimer.
    Le module émetteur est un thermostat, qui émet à intervalle régulier des informations (comme un GPS).
    Justement ! dans l'exemple que t'as proposé themadmax, "program" reçoit les informations au fur et à mesure que la 1ere commande (ici echo mais tu peux remplacer par Heyu) les envoie.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Par défaut
    Bon, aprés une bonne nuit de sommeil, je me replonge dans le problème !
    J'aborde ce matin le problème dans un autre sens et en effet la solution de themadmax est peut-être la bonne !

    Bon je fait quelques test et peut être qu'un drapeau [Résolu] apparaîtra dans le titre !

    EDIT : Problème réglé, je l'avais pris dans le mauvais sens et finalement ta solution fut la bonne themadmax !
    Merci pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer des informations sur les connexions réseau
    Par Leobaillard dans le forum Delphi
    Réponses: 8
    Dernier message: 31/08/2006, 01h20
  2. Récupérer des informations (JVCL)
    Par cat1982 dans le forum Delphi
    Réponses: 2
    Dernier message: 15/05/2006, 12h00
  3. Récupérer des informations sur le matériel
    Par RaphAstronome dans le forum Windows
    Réponses: 5
    Dernier message: 31/03/2006, 15h32
  4. Récupérer des Informations sur un PC via un Réseau ?
    Par MaTHieU_ dans le forum Administration
    Réponses: 6
    Dernier message: 22/11/2005, 12h39
  5. Réponses: 6
    Dernier message: 28/09/2003, 17h49

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