Salut,
Pour un projet d'étude, j'essaye de mettre en place un système de lecture de TAG RFID via le port série, avec un traitement sous PHP.
L'environnement :
Windows XP / EasyPHP 1.8 (donc PHP 4.3.10)
Le code (de test) :
L'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php exec(`mode com4: BAUD=4800 PARITY=N data=8 stop=1 xon=on`); $flux = fopen ("COM4:", "r"); if (!$flux) {echo "Erreur d'ouverture du port.";} else { echo "Lecture des données :"; $resultat = fgets($flux,10); echo $resultat; fclose ($flux); } ?>
La page se charge, se charge, se charge et rien n'apparait ...
Cela doit donc signifier qu'il reste figé sur la ligne de lecture des données !
(J'ai essayé fgets et fgetc : idem)
Sous hyperterminal, aucun probleme tous s'affiche correctement.
Mais impossible d'obtenir le moindre caractère avec PHP.
Après quelques recherches, j'ai trouvé le jeu de fonction dio*, mais elle ne semblent pas fonctionner sous windows !
On ne peut pas dire que ce code soit compliqué ! J'ai aussi essayé de choper des caractères à'lintérieur d'une boucle, mais dans tous les cas, il semble que le code PHP ne passe pas la première lecture de données.
Mes Questions :
1 - Quelqu'un à t il une idée de la raison pour laquelle cela ne fonctionne pas ?
2 - Est ce que l'un de vous a déjà utilisé le port série pour ce genre d'application ?
3 - Comment faire un code propre pour que la lecture du port série se fasse en continue, une fois que la page est chargée ? (et non pas à l'ouverture de la page)
4 - Peut on être sur que le exec(mode com ...) fonctionne bien ?
5 - Des commentaires ?
Merci pour votre aide ...
Partager