[php]Dez in 2 octal float

OP #3921983
Lesenswert?

Hallo,
Ich versuche von einem 1-wire Temperatur Sensor die Daten auf meinen KNX 
Bus zu senden.

Ich habe bereits ein php Programm gefunden, welches mir die dezimal in 
den gewünschten 2 octal float umwandelt.
das Problem ist jedoch das eibd ein Leerzeichen zwischen den Bytes 
braucht und das tut es nicht.
Könnt ihr mir helfen?
1
#!/usr/bin/php
2
<?php
3

4

5
function Value2Eis5($value)
6
{
7
    $value *= 100;
8

9
  $eis5 = 0;
10
  $exponent = 0;
11

12
  if ($value < 0)
13
  {
14
    $eis5 = 0x08000;
15
    $value = -$value;
16
  }
17
  while ($value > 0x07ff)
18
  {
19
    $value >>= 1;
20
    $exponent++;
21
  }
22
  if ($eis5 != 0)
23
    $value = - $value;
24

25
  $eis5 |= $value & 0x7ff;
26
  $eis5 |= ($exponent << 11) & 0x07800;
27
  $tmp = $eis5 & 0x0ffff;
28

29
  return dechex($tmp);
30
}
31
$value = 13.1;
32

33
echo Value2Eis5($value)."<br>";
34
ech
Gast #3970446
Lesenswert?

Marcus W. schrieb:
> Nachdem es bei PHP eh keine strikte Typisierung gibt, reicht es,
> das Ergebnis der Funktion mit z.b substr() aus ein an der zunehmen und
> mit Leerzeichen wieder zusammenzusetzen.

Nochmal ohne Handy Auto Korrektur:
...reicht es das Ergebnis der Funktion z.b. mit substr() 
auseinanderzunehmen und mit Leerzeichen wieder zusammenzusetzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren