C# týden ITnetwork Flashka zdarma
Akce! Pouze tento týden sleva až 80 % na kurzy C# .NET. Lze kombinovat s akcí 50 % bodů navíc na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!

Diskuze: Zobrazení hodnoty z payloadu TTN

Aktivity (2)
Avatar
Zdeněk Hrnčárek:12. dubna 17:22

Ahoj, snažím se rozchodit zobrazování hodnot z čidla od solidustechu a asi dělám někde chybu v parsingu. Používám na test tento script viz níže. payload je 98 FF 01 13 80 64 v payloadu vidím 0x0113 což je 275 takže teplota 27.5 ,ale decoder v ttn ukazuje 14.7 stupňů. Kde dělám chybu a jak správně tu hodnotu zobrazit ?

Zkusil jsem: function Decoder(bytes, port) {
var celsiusInt = (bytes[3]) | bytes[4];

return {
temperature: celsiusInt / 10
}
}

 
Odpovědět 12. dubna 17:22
Avatar
Daniel
Člen
Avatar
Daniel:15. dubna 15:51

Můžu se zeptat to je Java nebo JavaScript?

 
Nahoru Odpovědět 15. dubna 15:51
Avatar
Daniel
Člen
Avatar
Daniel:15. dubna 15:52

Nebo to je jiný programovací jazyk?

 
Nahoru Odpovědět 15. dubna 15:52
Avatar
Odpovídá na Daniel
Zdeněk Hrnčárek:15. dubna 17:57

Javascript a jedná se o The things network.

 
Nahoru Odpovědět 15. dubna 17:57
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Zdeněk Hrnčárek
Taskkill:15. dubna 22:08
0x13 | 0x80 = 147

jen strilim od boku, ale hadam ze jde o spatne indexy(?)
zkus

bytes[2] | bytes[3]
Editováno 15. dubna 22:08
 
Nahoru Odpovědět 15. dubna 22:08
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:16. dubna 7:26

0x0113 hex = 275 dec - ok, podle kalkulacky ve win (jenze ta je nespolehliva)
98 FF 01 13 80 64
98 = bytes[0]
FF = bytes[1]
01 = bytes[2]
13 = bytes[3]
...

 
Nahoru Odpovědět 16. dubna 7:26
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:16. dubna 7:33

mimochodem, viz taskkill

0x13 | 0x80 = 0001 0011 | 1000 0000 = 1001 0011 = 147 dec
0x01 | 0x13 = 0000 0001 | 0000 1011 = 0000 1011 = 13 dec

takze ta operace je samozrejme od zacatku spatna. Potrebujes tam shift.

(0x01<<8) | 0x13 = 0000 0001 0000 0000 | 0000 1011 = 0000 0001 0000 1011 = 0x1380
Editováno 16. dubna 7:34
 
Nahoru Odpovědět 16. dubna 7:33
Avatar
Odpovídá na Zdeněk Hrnčárek
Vladislav Ladicky:16. dubna 15:18

Prevod zo šestnástkovej do desiatkovej sústavy sa v JS robí ľahko:

let temp = parseInt('0x0113', 16) / 10

Jediný problém je, že si najskôr musíš z tých bajtov vyskladať ten šestnástkový string.

 
Nahoru Odpovědět 16. dubna 15:18
Avatar
 
Nahoru Odpovědět 16. dubna 17:12
Avatar
Odpovídá na Zdeněk Hrnčárek
Vladislav Ladicky:16. dubna 18:34

To záleží od toho, v akom tvare ti prídu tie dáta s teplotou. Lebo neviem či dostaneš array, či string, či čo. Napíš bližšie ako si pýtaš tie dáta. Ajaxom? Ak áno, napíš presne čo ti príde v odpovedi.

 
Nahoru Odpovědět 16. dubna 18:34
Avatar
Odpovídá na Vladislav Ladicky
Zdeněk Hrnčárek:16. dubna 19:25

Zatím si tvořím testovací decoder payloadu přímo v konzoli TTN v Javascriptu. Tam vidím payload např tenhle 98 FF 01 13 80 64 a ten musím dekodovat podle toho budu pak dělat dotazy a zapís do DB. A ještě řeším jeden problém jak rozlišit payload od ruzných device protože každý senzor používá jiné byte pro ruzné hodnoty.

 
Nahoru Odpovědět 16. dubna 19:25
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:17. dubna 7:52

To cidlo ti posila data pres nejakou ip adresu. Tu muzes odesilat tomu js take, ne? Pripadne schovat do hlavicek, headers.
Mozna mas nekde pole, seznam ip, na kterych mas cidla. Stacilo by odeslat poradove cislo misto ip.

echo $poradove_cislo.file_get_contents($url);

Nebo, vubec netusim, jak to cele komunikuje. Mozna mas tu tabulku adres primo v js. Ale to neni moc dobry napad. Treba v pripade videokamer si muze kazdy z takoveho js precist ip adresy.

 
Nahoru Odpovědět 17. dubna 7:52
Avatar
Odpovídá na Peter Mlich
Zdeněk Hrnčárek:17. dubna 12:00

Ty čidla komunikují přes síť the Things network nemají ip adresy jsou to Lorawan čidla.

Editováno 17. dubna 12:00
 
Nahoru Odpovědět 17. dubna 12:00
Avatar
Peter Mlich
Člen
Avatar
Odpovídá na Zdeněk Hrnčárek
Peter Mlich:17. dubna 12:55

To mi stejne nic nerika :) Cidla jsem zatim nepripojoval.

 
Nahoru Odpovědět 17. dubna 12:55
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.