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) :
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);
}
?>
L'erreur :
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 ...