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

Langage PHP Discussion :

[PHP-JS] Communiquer avec le port RS232


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut [PHP-JS] Communiquer avec le port RS232
    Bonjour,
    je suis tout nouveau sur ce forum et débutant en PHP (j'arrive à écrire "Hello World" quand même ).

    Je souhaiterai lire les données d'un ordinateur de plongée qui se connecte par le port RS232 avec un script php.

    J'ai commencé mes recherches et je suis tombé sur les fonctions dio_open, dio_tcetattr, dio_read et dio_close.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <?php
     
    $fd = dio_open('/dev/ttyS0', O_RDWR);
     
     
    dio_tcsetattr($fd, array(
      'baud' => 19200,
      'bits' => 8,
      'stop'  =>1,
      'parity' => 0
    ));
     
     
     
    while (1) {
     
      $data = dio_read($fd,1);
     
      if ($data) {
          echo $data;
      }
    }
     
     
    dio_close($fd);
    ?>
    Mais (il y a toujours un mais...), ça ne semble pas fonctionner.

    Pour l'instant je cherche à faire quelque chose de simple.
    Le protocole de communication est le suivant : http://damien.douxchamps.net/aladin/...d/protocol.pdf

    et j'ai de disponible un code source en C et en java.
    je souhaiterai les adapter en php, simplement pour stocker dans un fichier (pour l'instant).

    Petite précision, mon PC est sous linux (UBUNTU 7.04).

    J'espère que j'ai été clair dans mes questions...

    Cordialement,

  2. #2
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut
    (...) ça semble ne pas fonctionner (...)
    Qu'est-ce qui semble ne pas fonctionner? Vous avez un message d'erreur? Qu'ententez-vous par le verbe sembler? (en général ça fonctionne ou ça ne fonctionne pas)

  3. #3
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    le programme php tourne, je n'arrive pas à mettre l'ordinateur de plongée dans la bonne configuration (court-circuit sur les 2 fils?) et donc... rien, pas de transfert.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut forum hardware...?
    Peut-être vaudrait mieux aller sur le forum hardware poser la question si cela ne vient pas de PHP mais d'un mauvais branchement.

  5. #5
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Cela ne vient pas d'un mauvais branchement, car j'ai un programme sous windows, que je fais tourner avec wine et qui fonctionne très bien. Donc, c'est uniquement du code qui me permettra d'arriver à mes fins.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut
    Citation Envoyé par vavincavent Voir le message
    le programme php tourne, je n'arrive pas à mettre l'ordinateur de plongée dans la bonne configuration (court-circuit sur les 2 fils?) et donc... rien, pas de transfert.
    Qu'est-ce que vous voulez dire alors avec ce post? Rappelez-vous qu'on n'est pas dans votre tête et qu'on ne sait rien de votre projet.

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Bonjour !

    J'ajouterai une chose toute bete mais qui arrive parfois. Pour commencer tes tests, enlève la boucle while(1) essaie de récupérer juste une ligne au début. En effet la tu fais un echo dans une boucle while infinie (sans sleep() ni rien). Il arrive parfois que les echo ne soient pas envoyés directement, du coup tu lis peut etre des caractères que tu ne "vois pas s'afficher".

  8. #8
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Bon,

    je vais essayer d'ouvrir un peu ma tete

    L'ordinateur de plongée : un aladin pro, il possède 4 touches "sensitives"
    L'orsque l'on veut envoyer des données vers un pc, il faut cabler 2 des touches (via rs232) puis par une combinaison sur les touches (avec 2 doigts mouillés) passer dans le mode "logbook".
    L'ordinateur de plongée envoie alors sa séquence sur les cables rs232.

    Actuellement, je n'arrive pas à passer dans le mode logbook, la rs232 ne dois pas être dans un état correct (je suppose) et provoque un court circuit qui a pour effet de passer l'ordinateur en mode "diveplan" sans modification possible pour un retour en "logbook" en gardant la rs232 connectée.

    J'espère que vous m'avez compris, je comprend que ça ne soit pas évident.

    voici un lien qui donne le protocole complet :
    http://damien.douxchamps.net/aladin/...d/protocol.xls

    merci,

  9. #9
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut oui ça l'est
    Effectivement, c'est beaucoup plus clair.

    Ce qui me surprend, c'est que le prog soit fait en PHP au lieu de C ou assembleur.

    J'ai regardé le protocole mais j'ai trop peu de données pour pouvoir te dire d'où vient le problème.

  10. #10
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    J'ai des sources en java et en C.

    Je souhaiterai écrire un programme en php, afin de pouvoir l'utiliser de partout.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut je comprends pas
    Citation Envoyé par vavincavent Voir le message
    J'ai des sources en java et en C.

    Je souhaiterai écrire un programme en php, afin de pouvoir l'utiliser de partout.
    Et en quoi le C ou le Java, tu ne peux pas l'utiliser de partout? Qu'est-ce que tu entends par "l'utiliser de partout"?

  12. #12
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    j'entends "de partout" simplement avec un client web et l'interface rs232, sans avoir besoin d'installer un quelconque logiciel.
    Donc en voyage, j'emmènerai l'interface et c'est tout! Il suffit d'avoir accès à un ordinateur relié à internet.

  13. #13
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par vavincavent Voir le message
    j'entends "de partout" simplement avec un client web et l'interface rs232, sans avoir besoin d'installer un quelconque logiciel.
    Donc en voyage, j'emmènerai l'interface et c'est tout! Il suffit d'avoir accès à un ordinateur relié à internet.
    Je suis pas sur là. Parce que ton script php est exécuté coté serveur, ca signifie donc que le port série qui est accédé est celui de la machine serveur (celle qui contient le script php) pas de la machine client (celle que t'emmenes en voyage).
    Et si tu emmenes un pc et un port série et le script PHP ca revient au meme que d'emmener un programme C ou java.

  14. #14
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    ah...
    avec un script php (sur un serveur) on peut accéder à un répertoire du disque dur (local), alors pourquoi ne pas accéder au port rs232 (ttyS0) qui je pense sous linux est un fichier du disque dur.

    Ou alors je me trompe (ce qui entre nous ne m'etonnerai pas)

  15. #15
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par vavincavent Voir le message
    ah...
    avec un script php (sur un serveur) on peut accéder à un répertoire du disque dur (local), alors pourquoi ne pas accéder au port rs232 (ttyS0) qui je pense sous linux est un fichier du disque dur.

    Ou alors je me trompe (ce qui entre nous ne m'etonnerai pas)
    Avec php tu ne peux pas du tout accéder a un disque dur en local, PHP n'a d'effet que coté serveur (sauf si t'installes un serveur web sur ta machine mais dans ce cas ca marche parce que machine locale = machine client en fait).

    Si tu fais référence à l'upload de fichiers (qui permet de parcourir le disque dur par exemple) c'est un formulaire html, ca n'est pas du tout lié à PHP.

  16. #16
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Je perds espoir là...

    Donc impossible d'accéder au port com d'un ordinateur local depuis un script php et/ou un formulaire html installé sur un serveur distant?

  17. #17
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par vavincavent Voir le message
    Je perds espoir là...

    Donc impossible d'accéder au port com d'un ordinateur local depuis un script php et/ou un formulaire html installé sur un serveur distant?
    La réponse est non.
    Maintenant en javascript avec un activeX windows sous IE peut etre mais comme t'es sous linux ca ne résoud pas plus la question.

  18. #18
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Bon,
    il ne me reste plus que la solution live cd ou live usb linux, ou "portableapps".

    Merci beaucoup de vos réponses.

  19. #19
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut et les autres langages?
    Pourquoi tu refuses la solution en C ou en Java?
    D'accord cela risque de t'obliger d'installer des fois le logiciel sur une autre machine mais c'est mieux que de galérer.

  20. #20
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Je refuse car j'ai des logiciels qui tournent bien chez moi, mais ce que je souhaite c'est des solutions sur des ordinateurs que je ne "maitrise" pas, sur lesquels je n'aurais pas la possibilité d'installer quoi que ce soit (cybercafés, etc...).
    La seule solution à mes yeux aurait été un scrip html/php installé sur un serveur que je maitrise, accessible partout dans le monde par le biais d'un simple client web.

Discussions similaires

  1. Communiquer avec le port serie (RS232)
    Par wadwin dans le forum C++
    Réponses: 2
    Dernier message: 18/06/2008, 09h49
  2. Communiquer avec un port RS232
    Par Yvanou dans le forum Tcl/Tk
    Réponses: 2
    Dernier message: 18/06/2007, 22h49
  3. [Système] Comment communiquer avec un port serie ou usb en php?
    Par thenightmare1985 dans le forum Langage
    Réponses: 3
    Dernier message: 05/12/2006, 13h12
  4. Réponses: 2
    Dernier message: 17/03/2006, 09h26
  5. Besoin de communiquer avec un port serie RS232 ?
    Par MonsieurAk dans le forum Linux
    Réponses: 2
    Dernier message: 01/02/2006, 17h13

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