This entry has been published on 2012-10-29 and may be out of date.
Last Updated on 2012-10-29.
Wenn man den Befehl groupwrite des eibd verwenden möchte, um z.B. 2-Byte-Datentelegramme auf den Bus zu schicken, steht man zuerst vor der Herausforderung, dass der Wert meist von einer Integer-Zahl auf 2-Byte Hex umgewandelt werden muss.
Dies funktioniert folgendermaßen:
function Value2Eis5($value)
{
$value *= 100;
$eis5 = 0;
$exponent = 0;
if ($value < 0)
{
$eis5 = 0x08000;
$value = -$value;
}
while ($value > 0x07ff)
{
$value >>= 1;
$exponent++;
}
if ($eis5 != 0)
$value = - $value;
$eis5 |= $value & 0x7ff;
$eis5 |= ($exponent << 11) & 0x07800;
$tmp = $eis5 & 0x0ffff;
return dechex($tmp);
}
echo Value2Eis5($value)."<br>";