Page 1 sur 1

Lire une interface USB simulée en port COM

Posté : 04 juil. 2012, 17:16
par Patriboom
Bonjour,

je viens de télécharger un logiciel (sous Linux, en libre, oui mais ...) qui exploite la libraire libdivecompter . Cette source permet de lire les données d'un ordinateur de plongée (communication série) à partir d'un port USB. Très bien, fort heureux, je trouve mes données dans le logiciel tout monté d'avance, rien à faire, les doigts dans le nez =D>

Voici où ça se complique: j'aimerais intégrer un outil semblable dans mon système PHP / mysql or je pars en blanc. Je n'ai aucune idée par où commencer pour lire un port, pour connecter à une interface. J'ai fait des recherches sur internet, mais je vous avoue que je m'y perds complètement. J'ai toujours l'impression qu'il m'en manque un trop grand bout pour m'atteler et me mouiller. C'en est au point où j'ai hésité à savoir où afficher le présent message, entre ici et "Débutant".

Je soupçonne néanmoins que la bibliothèque PECL pourrait m'aider. Qu'en dites-vous?

Par où commencer ?


Merci de votre aide.

Re: Lire une interface USB simulée en port COM

Posté : 05 juil. 2012, 11:17
par moogli
salut,

pecl oui s'il existe déjà quelque chose de fait pour la communication avec ton matos.

Sinon deux possibilités :
- Créer un soft en ligne de commande (peux être que celui que tu a déjà peu être utiliser en ligne de commande ?) et l'appeler depuis php (exec, system etc etc).
- Créer une extension pour php qui le taff pour toi et tu n'auras ainsi qu'a utiliser des fonction native :) (mais la heu c'est un poil plus complex :mrgreen: )

Sache qu'avec php tu doit pouvoir accéder aux ressource grâce aux système et après faire l'exploitation en php de ce que tu reçois. Mais dans tous les cas il te faudra savoir comment dialogue le matériel (protocole propriétaire, standard etc etc) et cela va nécessiter pas mal de taf je pense.

@+

Re: Lire une interface USB simulée en port COM

Posté : 05 juil. 2012, 11:28
par Patriboom
Merci pour ta réponse.

Entre temps, j'ai aussi cherché autres choses.
Voici qu'on me dit que l'extension utilisée par les autres logiciels peut aussi l'être par PHP.

J'ai tenté ceci: modifié mon php.ini pour inclure extension=/mon/chemin/libdivecomputer.co
Ça ne rouspète pas, mais je ne pourrai en faire autant sur mon serveur mutualisé car je n'en ai pas les accès nécessaires.

J'ai donc pensé à ceci: copier le fichier libdivecomputer.co dans mon répertoire et l'appeler ainsi dl('libdivecomputer.co');
J'obtiens la réponse étonnante suivante: Call to undefined function dl()

Je suis pourtant sous Linux, serveur php 5 et, plus précisément selon phpinfo(): PHP Version 5.3.3-7+squeeze9

Alors, que faire?

Merci

Re: Lire une interface USB simulée en port COM

Posté : 05 juil. 2012, 11:50
par Berzemus
Euh, j'ai cru lire serveur mutualisé. Je ne vois pas tout de suite comment tu pourrais brancher quelque chose en série sur un serveur mutualisé.

Re: Lire une interface USB simulée en port COM

Posté : 05 juil. 2012, 14:17
par Patriboom
Ok,

j'y voyais un obstacle aussi (brancher quelque chose sur un serveur distant),, mais j'aimerais régler mon problème en local. Je m'occuperai de l'histoire du mutualisé plus tard.

Merci

Re: Lire une interface USB simulée en port COM

Posté : 07 juil. 2012, 15:38
par Patriboom
Bonjour à nouveau,

Concernant la lecture locale:
la fonction dl refuse toujours d'agir, toujours le même message d'erreur.
J'ai fait charger mon extension par php.ini , comment vérifier si elle y est bien?
surtout ... comment l'exploiter?

en terminal linux, le lui passe simplement cette commande et le résultat escompté est tout là:

Code : Tout sélectionner

./universal -d Registre2 -f 0C07061603 -b vyper /dev/ttyUSB0
Dans le présent cas, je travail avec les fichiers binaire où universal et le fichier principal qui appelle vyper
Le tout est compilé en un fichier libdivecomputer.so C'est l'extension que je charge. Qu'en faire maintenant, que faire pour l'exploiter en PHP?


Merci


Concernant la lecture à distance:

il semblerait qu'un plugin programmé avec firebreath puisse permettre le téléchargement de données à partir d'un port USB (com) vers le serveur. À voir.

Toute piste d'information sera bienvenue.

Re: Lire une interface USB simulée en port COM

Posté : 18 juil. 2012, 17:26
par Patriboom
Bonjour,

je cherche toujours, mais ça n'avance pas. Pouvez-vous m'aider?
Je ne veux faire exécuter mon programme qu'en LOCAL, oubliez ce qui était écrit pour le mutualisé.

Voici mon code:
$QuelLOG = mysql_fetch_assoc(mysql_query($requLOG, $db));
$NomFichier = "temp/Log_".time().".xml";
$LaCommande =  "/home/patrick/universal -d ".$NomFichier." -f ".$QuelLOG["fingerprint"]." -b vyper /dev/ttyUSB0";
echo '<br/>Voici la commande à exécuter: ';
echo $LaCommande;
echo '<br/>';
echo (passthru($LaCommande)) ? 'Importation réalisée avec succès, voici le nom du fichier'.$NomFichier.'<br/>' : 'Échec dans l`importation du fichier<br/>';


J'ai essayé passtrhu, exec et system.
Rien n'y fait.

J'ai essayé avec une référence complète (/home/patrick/universal...) autant qu'avec une référence local ( ./universal ... ) Rien n'y fait.
En local ( racine de mon site ), j'ai un lien symbolique vers /home/patrick/universal ) Rien n'y fait.

Pourtant, les commande system('ls') et exec('ls') me renvoient bel et bien le contenu de mon sous-répertoire.

Une idée?