18/05/2011, 17:30:56
> Entretemps, j'ai trouvé une routine PHP sur le forum allemand...
Je bloque sur un problème incompréhensible.
J'utilise la fonction GroupRead pour lire le contenu d'un GA, çà
fonctionne pour d'aures applications (également en PHP)
La fonction de conversion fonctionne aussi. Lorsque je force une
valeur à l'entrée i.e. 1902 il me sort bien 20,64°
Les 2 ensembles donnent des résultats irrationnels.
eibd tourne sur un NAS QNAP avec PHP5, il n'y a pas lieu de les
soupçonner car d'autres appli fonctionnent (affichage KNX sur l'écran
tactile d'un tf Cisco
Je joins un extrait du code
$value = GroupRead("127.0.0.1","0/6/38");
....
$eis5 = hexdec($value);
$wert = ($eis5 & 0x07ff);
if (($eis5 & 0x08000) != 0)
{
$wert = $wert | 0xfffff800;
$wert = $wert *-1;
}
$wert = $wert << (($eis5 & 0x07800) >> 11);
if (($eis5 & 0x08000) != 0)
{
$wert = $wert * -1;
}
$val = $wert/100;
......
$string = "Temp: " . $val . "°C";
Si quelqu'un à une idée concrète, je suis preneur
Je bloque sur un problème incompréhensible.
J'utilise la fonction GroupRead pour lire le contenu d'un GA, çà
fonctionne pour d'aures applications (également en PHP)
La fonction de conversion fonctionne aussi. Lorsque je force une
valeur à l'entrée i.e. 1902 il me sort bien 20,64°
Les 2 ensembles donnent des résultats irrationnels.
eibd tourne sur un NAS QNAP avec PHP5, il n'y a pas lieu de les
soupçonner car d'autres appli fonctionnent (affichage KNX sur l'écran
tactile d'un tf Cisco
Je joins un extrait du code
$value = GroupRead("127.0.0.1","0/6/38");
....
$eis5 = hexdec($value);
$wert = ($eis5 & 0x07ff);
if (($eis5 & 0x08000) != 0)
{
$wert = $wert | 0xfffff800;
$wert = $wert *-1;
}
$wert = $wert << (($eis5 & 0x07800) >> 11);
if (($eis5 & 0x08000) != 0)
{
$wert = $wert * -1;
}
$val = $wert/100;
......
$string = "Temp: " . $val . "°C";
Si quelqu'un à une idée concrète, je suis preneur