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

Lazarus Pascal Discussion :

Obtenir la réponse d'une commande sur Raspberry Pi [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    1 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 331
    Points : 567
    Points
    567
    Par défaut Obtenir la réponse d'une commande sur Raspberry Pi
    Bonjour à toutes et à tous,

    Je pensais pouvoir récupérer une valeur de la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i2cget -y 1 0x1e 0x03 b
    qui, lancée dans un terminal, retourne la valeur contenue dans le registre à l'adresse 0x03 d'un module sur le bus i2c (compas magnétique) à l'adresse 0x1e.

    Dans un programme sous Lazarus, j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val:= fpSystem('i2cget -y 1 0x1e 0x03 b');
    mais cela me retourne la valeur 0, qui n'est pas ce que j'y vois lorsque la commande est lancée dans un terminal, mais qui me semble être le code de retour comme quoi la commande a bien été réalisée.

    Donc, y a-t-il moyen de récupérer cette valeur avec fpSystem et comment faire ou bien y a-t-il un autre moyen.

    Merci de votre aide.

    Pierre

  2. #2
    Membre éclairé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    juillet 2011
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2011
    Messages : 263
    Points : 692
    Points
    692
    Par défaut
    Bonjour,

    Citation Envoyé par ChPr Voir le message

    mais cela me retourne la valeur 0, qui n'est pas ce qu j'y vois lorsque la commande est lancée dans un terminal, mais qui me semble être le code de retour comme quoi la commande a bien été réalisée.

    Donc, y a-t-il moyen de récupérer cette valeur avec fpSystem et comment faire ou bien y a-t-il un autre moyen.
    1/ Le retour est normal la fonction fpSystem lance un shell et retourne le code de sortie de la commande https://www.freepascal.org/docs-html.../fpsystem.html

    2/ Je vois deux méthodes pour récupérer le bon résultat :
    2a/ Utiliser une bibliothèque permettant de travailler avec le bus I2C sous lazarus
    2b/ utiliser un TProcess et analyser la sortie (sous format texte de ta commande) des exemples ici

    Cordialement

  3. #3
    Membre confirmé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    1 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 331
    Points : 567
    Points
    567
    Par défaut
    Citation Envoyé par acaumes Voir le message
    ... 2/ Je vois deux méthodes pour récupérer le bon résultat :
    2a/ Utiliser une bibliothèque permettant de travailler avec le bus I2C sous lazarus
    2b/ utiliser un TProcess ...
    Merci acaumes pour ce retour.

    Ayant vu qu'il existait de commandes simples pour s'interfacer avec le bus i2c, je me suis dit que si je pouvais me passer de bibliothèque, ce serait bien. Dans un terminal, ces commandes faisaient ce que je voulais.

    Comme je réalise mes programmes avec Lazarus, j'ai voulu utiliser fpSystem, mais n'ayant pas vu que fpSystem ne renvoyait que le code d'erreur, je m'étais lancé aveuglément dans son utilisation.

    J'ai trouvé une bibliothèque, rpi-hal, qui permait de jouer avec tous les bus et le GPIO ; je l'ai essayé sur mon composant i2c : c'est simple et ça fonctionne bien.

    Cordialement.

    Pierre

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

Discussions similaires

  1. [regex] j'ai pas compris l'utilisation du point
    Par argoet dans le forum java.util
    Réponses: 2
    Dernier message: 07/06/2011, 15h43
  2. Toujours pas compris comment on ouvre une image :/
    Par Antoine__ dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 22/07/2009, 10h14

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