NEWS
Hex zu Dezimal wandeln
-
Hallo!
Ich muss einen Hexadezimalen Wert in einen dezimalen Zahlenwert umwandeln. Kriegs aber nicht hin diese Funktion in Blockly einzubauen.
Die Javascript-Funktion ist laut meiner google-Forschung:
yourNumber = parseInt(hexString, 16);
"0800" bekomme ich als Wert beim "debug output/warning".
Und DER Wert muss umgewandelt werden.
Hab noch kein Tutorial dazu finden können wir man externen JavaScript einbinden kann...<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="s~NW?gEWyMa:exT(zi~e">result</variable> <variable type="" id="@+Cn|lE(3]0eu-`.DI^h">Liste</variable> </variables> <block type="schedule" id="j5{{PJPs5weVFqWD9b;!" x="-862" y="-887"> <field name="SCHEDULE">*/3 * * * * *</field> <statement name="STATEMENT"> <block type="debug" id="EcQt=m_*L:Fs!?Mc+W`D"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text" id="h!6ySBv9*gj7+}IOE*4N"> <field name="TEXT">3 Sekunden Trigger</field> </shadow> </value> <next> <block type="request" id="n8Dr(.}Qe)!GH.yiUxaI"> <mutation with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG">debug</field> <value name="URL"> <shadow type="text" id="`{D-$HwW!%t4.pdlipp*"> <field name="TEXT">http://192.168.1.58/allout?PW=33118&</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="2EItp@uj{t?bGqvpDCM2"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=",b.x;q*3$jX-[Nm%M!1("> <field name="TEXT">Request gesendet</field> </shadow> <block type="variables_get" id=",oKkXH#Z^PsRH8A10y7b"> <field name="VAR" id="s~NW?gEWyMa:exT(zi~e" variabletype="">result</field> </block> </value> <next> <block type="variables_set" id=",9sIQO1?SEt){mJ!3v0K"> <field name="VAR" id="@+Cn|lE(3]0eu-`.DI^h" variabletype="">Liste</field> <value name="VALUE"> <block type="lists_split" id="dlg`Mso*E#!A}[1!Ny]4"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id="q}Gg0G2u_.Kbu~NFg[z)"> <field name="VAR" id="s~NW?gEWyMa:exT(zi~e" variabletype="">result</field> </block> </value> <value name="DELIM"> <shadow type="text" id="hFr=?wGeHGPMjg.,(c4B"> <field name="TEXT">;</field> </shadow> </value> </block> </value> <next> <block type="debug" id="KjJH5^SQaU:;Gn=+v+`q"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text" id=",b.x;q*3$jX-[Nm%M!1("> <field name="TEXT">Request gesendet</field> </shadow> <block type="lists_getIndex" id="X9xwVN?rrUXw1sGf^k0,"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="}w%en#e^CBF6%_8iB:tX"> <field name="VAR" id="@+Cn|lE(3]0eu-`.DI^h" variabletype="">Liste</field> </block> </value> <value name="AT"> <block type="math_number" id="5`egA^s=sW_PD4Oz.OV1"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
@Roelli sagte:
man externen JavaScript einbinden kann...
Es gibt den Block JS-Funktion mit Ergebnis:
Inhalt der Funktion:
return parseInt(hex, 16);
-
@paul53
Da warste schneller, ich war noch am Screenshots machen...Edit: aber wieder was gelernt, denn meine Funktion sieht so aus.
(dass man auf die Variable verzichten kann, wusste ich nicht.
Kenn mich JS null aus, nur Blockly, aber wenn ich es jetzt so sehe, dann macht es Sinn...)
-
Supergeil! Danke!
Ich brauche natürlich nochmal Hilfe!
Ich habe diese Ding hier. Das hat 12 Ein und 12 Ausgänge.
Die Eingänge will ich alle 3 Sekunden abfragen.
Ich schicke an das Gerät: http://192.168.1.65/allout?PW=33118&
Und das Gerät schickt zurück: input;0800;output;0000;counter;126;111;0;0;0;0;0;0;0;0;0;0Das hinter dem Semikolon "0800" ist wohl der hexadezimale Wert.
Das ist quasi der Zustand aller 12 Eingänge.
Wie kann ma das denn sinnvoll und einfach so umwandeln das man damit 12 Datenpunkte steuert?
Ich glaube Hex zu Binär wäre besser? Und dann das 1. Element davon nehmen und checken ob es eine 0 oder 1 ist und damit den Datenpunkt steuern?Ich hab mal
Integer.parseInt(hex, 16);
als JS-Funktion ausprobiert (hab rumgegoogelt) Aber als Anwort kommt "0000NaN" Ich hätte mir an der Stelle etwas 12-stelligeres gewünscht.Hier gibt's ein paar Infos zu dem Modul - welche ich natürlich nicht verstehe.
WEB-IO Modul Programmieranleitung als PDFJemand ne Idee?
Danke!
-
@Roelli sagte:
input;0800;output;0000;counter;126;111;0;0;0;0;0;0;0;0;0;0
Das hinter dem Semikolon "0800" ist wohl der hexadezimale Wert.Versuche es mal so-
Die 12 Datenpunkte "0_userdata.0.iomodul.input1 .. 12" vom Typ "Logikwert" müssen vorher erzeugt werden.