Ik vermoed dat de checksum moet kloppen.
Maar ik begrijp nog niet hoe ik deze kan berekenen.
code:
1
| 80 00 00 00 11 {WifiBridgeID} 00 00 {SequenceNumber} 00 {COMMAND} {ZONE NUMBER} 00 {Checksum} |
80 00 00 00 11 = Wifi Bridge Lamp (iBox led)
Ik tel 5 variabelen:
code:
1
2
3
4
5
| {WifiBridgeID}
{SequenceNumber}
{COMMAND}
{ZONE NUMBER}
{Checksum} |
WifiBridgeID, lijkt mij het MAC adres van de Wifi Bridge of hetgeen wat teruggeven wordt door het commando "HF-A11ASSISTHREAD" te versturen naar de Wifi Bridge. Maar wanneer ik op /dev kijk dan lees ik het volgende: "WB = Wifi Bridge ID 0×01 -> 0xFF", vertaald naar decimaal betekend dit dus dat de mogelijke waarde 1-255 kan zijn. Maar ik zie niet hoe ik de ID dan kan ophalen, aangezien een MAC adres zich niet laat vertalen naar een enkele decimaal.
SequenceNumber (SN = 0×01 -> 0xFF), vertaald zich ook naar een decimaal van tussen de 1 en de 255. Volgens mij is dit van belang voor commando's die in een bepaalde volgorde uitgevoerd moeten worden.
Checksum, "RGBW/WW/CW Checksum Byte Calculation is the sum of the last 11 bytes before end of the UDP packet. The checksum is then added to the end of the UDP message".
Ik weet niet hoe ik dit makkelijk kan uitrekenen.
code:
1
2
3
4
| Checksum berekenen
{COMMAND} {ZONE NUMBER} 00
Zijn HEX waardes. (Let op! geen decimalen). |
Op basis van dit gegeven, en de instructies, is het mogelijk om een checksum te berekenen. Maar eerst zal het bovenstaande omgerekend moeten worden naar decimalen. Hiervoor kan je de
http://ascii.cl/ tabel gebruiken. Ik maakte de vergissing om de Hex waardes te interpreteren als Decimalen. En dan gaat het voorbeeld om de Checksum te berekenen op /dev fout:
code:
1
| e.g. SUM((31 00 00 08 04 01 00 00 00)(command) 01(zone) 00) = 3F(chksum) |
Dit vertaald zich als volgt: HEX 31 (= 49 ASCII) HEX 00 (=0 ASCII) etc, HEX 08 (=8 ASCII), vervolgens moet je de som van nemen van de ASCII waarden (alles bij elkaar optellen) en dit levert de checksum op. In het voorbeeld HEX 3F, wat zich vertaald naar 63 ASCII. En dat klopt.
Ik heb het e.e.a. geprobeerd met "Packet Sender". Door naar het IP adres van de Wifi iBox UDP commando's te versturen. Maar tot dusver geen gewenst resultaat.
[
Voor 27% gewijzigd door
aex351 op 27-11-2016 15:08
]