[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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.