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>";