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 :

Récupérer information depuis liaison RS232


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Points : 121
    Points
    121
    Par défaut Récupérer information depuis liaison RS232
    Bonsoir,

    Je viens vers vous afin d'avoir l'avis des plus expérimenté que ma personne.
    J'ai un client qui utilise un indicateur de pesage des camions relié à un PC via une liaison RS232, à l'époque un ancien collègue avais programmé un code en C afin de créer un exécutable permettant de récupérer les valeurs de l'indicateur de pesage.
    Le PC faisant tourner l'application de gestion des bons de transport étant âgé, il a donc été décider de refaire l'application métier au dernière norme PHP et de passer sur un Mac.
    L'application métier sera hébergé sur le Mac en question, les ports RS232n'existant pas sur Mac nous utiliserons un adaptateur RS232/USB

    Ma question est-il possible de récupérer via PHP ce qui est envoyé sur ce port USB/RS232

    Si oui par qu'elle méthode ?

    Enfin comment sont exploitable ces données ?

    Merci par avance.

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 895
    Points : 6 651
    Points
    6 651
    Par défaut
    D'après moi, mais peut-être que certains plus bricolos que moi vont me démentir, PHP n'a rien à faire dans ce genre de tâches, quand bien même on peut l'utiliser en ligne de commande. À ta place je poserai mes questions dans la section C à des gens qui soient calés en programmation système/réseau.

    PS: Si tu réussis à t'en sortir, n'hésite pas à me faire signe, je viendrai avec ma manette Atari.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Points : 121
    Points
    121
    Par défaut
    Bonsoir,

    Justement après avoir posé mes questions et présenté le code source que j’ai dans la section C on m’a indiqué qu’il serait très fortement possible de le faire via PHP d’où mon sujet ici
    Tu peux peut être commencer à préparer ta manette Atari lol

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 702
    Points : 43 779
    Points
    43 779
    Par défaut
    En théorie, sous Unix tout étant fichier (Mac OS est basé sur FreeBSD), tu devrais pouvoir accéder au port en ouvrant le pseudo fichier /dev/xxx (correspondant à ton port COM en USB).

    Dans la réalité, tu vas en chier. déjà trouver un adaptateur USB/COM avec pilote MAC... j'en ai jamais vu.

    Ensuite, je pense que sur un mac OS récent, un accès direct au périphérique par php va être compliqué avec les protections système.

    PHP n'est pas la meilleure solution pour cela.

    En dehors de l'aspect mac, vu que tu as déjà un code C existant, tu pourrais l'interfacer avec ton code PHP en l'appelant via exec() ou passthru().

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Points : 121
    Points
    121
    Par défaut
    Bonjour,

    C’est déjà ce que je fais avec le code actuel mais c’est en .exe qui ne fonctionnera pas sous Mac.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     $output = array();
    	$fin = 0;
     
    	// POIDS et DSD
    	$retour = exec( "BASCULE.EXE", $output, $fin );
    	$poids = substr( $output[1], 2, 5 );
    	$poids /= 1000;
    	$dsd = substr( $output[2], 21, 6 );

    Ensuite pour ce qui est de la source en «*.c*» d’après une personnes d’une forum «*c*» il m’a mis ceci.

    Citation Envoyé par dalfab Voir le message
    Bonjour,

    Un exe, ça ne marche que pour le système pour lequel ça a été compilé! Ici ça semble prévu pour une machine basée sur un processeur X86. Le code est de très très bas niveau (donc c'est plus plus de l'assembleur que du C). Il émet directement des ordres au bus du processeur pour parler directement à un composant série (le bon vieux 16550). Une chose certaine, ça ne sera utilisable sur aucun système récent même si des cartes mères ont encore le 16550.

    Maintenant c'est un code qui a été écrit en quelques heures ou jours au plus. Le php devrait être capable d'envoyer/recevoir des données dans le nouveau format du nouveau matériel sans passer par cet exe intermédiaire.
    Donc logiquement mon programme C ne tournera pas non plus :/

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    C'est en théorie possible en PHP puisque les ports series ne sont que de "simple" fichier sur sytem UNIX.
    Il existe pas mal de classe qui simplifie le procédé : https://packagist.org/packages/lepiaf/serialport

    Maintenant est ce que PHP est le bon outil ? , probablement pas.

    D'ailleurs comment tu vas gérer les accès multiple ? Si X client tente de lire le port serie en même temps qu'est ce qui se passe ?
    Si c'est une application unique sur un seul PC ca confirme que PHP n'est pas le bon outil.

    Pour ton programme en C , il y'a de forte chance qu'il suffise de le recompiler sous un mac. Le C est relativement portable.

    Il y'a aussi peut être l'alternative d'un COM/Ethernet qui rend le port com disponible sur le reseau via TCP/IP (et donc socket php par exemple)

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Points : 121
    Points
    121
    Par défaut
    Bonjour,

    Merci pour la réponse, il s'agit d'un PC isolé au milieu de la carrière.
    Il y a qu'un accès celui du PC et de l'application pas de risque de plusieurs connexion.

    Si vous avez des connaissances dans votre entourage en Freelance je suis preneur pour le coup car le je suis pommé et c'est en dehors de mes cordes

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    De toute manière sans connaitre le protocole utilisé par la balance pour communiquer ca va être difficile. C'est pas vraiment le genre de chose qu'on peut codé comme ca sans avoir le matériel sous la main.
    Mais à mon avis ca vaudrait le coup d'essayer de recompiler le code C sous macos , peut être que ca va passer tout debout et que le pb sera résolu

Discussions similaires

  1. [PHP 5.2] gethostbyname() : récupérer l'information depuis un autre serveur
    Par eric41 dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2015, 14h05
  2. Recueillir les informations d'une liaison RS232
    Par tibo7 dans le forum LabVIEW
    Réponses: 6
    Dernier message: 21/09/2008, 12h25
  3. [WD11] Récupérer des informations depuis un site ?
    Par win_devv dans le forum WinDev
    Réponses: 4
    Dernier message: 15/09/2008, 13h48
  4. Langage C et liaison RS232
    Par Spikedu63 dans le forum C
    Réponses: 9
    Dernier message: 17/09/2005, 12h26
  5. Récupérer informations IP, ...
    Par jpdelx dans le forum ASP
    Réponses: 6
    Dernier message: 16/11/2003, 05h56

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