pour une histoire de pratique, je développe j'essaie de développer un site en php et d'y récupérer des valeurs envoyées par une balance connectée en RS232.
MON SITE EST EN LOCAL
J'ai bien la valeur qui s'affiche à l'écran mais je souhaiterai effectuer plusieurs pesées successivement.
Pour ça j'utilise la fonction fopen() et à chaque fois que je veux récupérer un poids, je dois actualiser ma page or je voudrais stocker toutes les pesées dans un tableau par exemple.
Une boucle for suffit largement SAUF que je n'ai qu'une valeur de correcte (la première).
Voilà mon code :
<?php
'mode com1: BAUD=1200 PARITY=P data=7 stop=1 xon=off';
$fp = fopen ("COM1:", "w+");
if (!$fp)
{
echo "Erreur ouverture port.".'<br>'.'<br>';
}
else
{
echo "Port ouvert.".'<br>'.'<br>';
for ($i=0;$i<5;$i++)
{
//lecture de la trame
$val = fread($fp,15);
echo $val;
//Lecture du poids
$poids = substr($val,5,-2);
echo "poids = ".$poids.'<br>';
echo "compteur = ".$i.'<br>'.'<br>';
}
//Fermeture Port
if(fclose ($fp)==1)
echo '<br>'.'<br>'."Port Fermé";
else
echo '<br>'.'<br>'."Pb fermeure port";
}
?>
Donc là, le site attend bien les 5 pesées sinon il reste bloqué mais voilà l'affichage :
Le poids est de 77,7 et je l'envois 5 fois..Port ouvert.
poids = 77.7
compteur = 0
poids = + 77
compteur = 1
poids = +
compteur = 2
poids = +
compteur = 3
poids = g +
compteur = 4
Port Fermé
EDIT: avec un array() qui récupère les valeurs dans la boucle, l'affichage donne :
Array ( [0] => 77.7 [1] => + 77 [2] => + [3] => + [4] => g + )