Ik werk regelmatig met GPS trackers die via TCP/UDP hun data naar mijn server sturen waar een tooltje op draait met als basis Traccar: http://traccar.org.
Normaal sturen deze apparaten een String, soms in HEX formaat maar meestal gewoon een plain string waar de coordinaten, IMEI etc. van een GPS staan. Nu heb ik echter een apparaatje die zijn gegevens via binary opstuurt.
Ik heb een klein voorbeeldje van de fabrikant ontvangen, maar ze willen me geloof ik niet echt een code sample geven van hoe ik het beste de gegevens kan omzetten naar een String.
Ik kan helaas ook niet teveel informatie over het apparaat weggeven, maar het is een vrij onbekend ding (anders had ik wel wat op Google gevonden natuurlijk).
Hier staat in ieder geval een klein stukje informatie uit hun documentatie, om het IMEI nummer uit de HEX string die ik ontvang te toveren, het is een tracker uit Litouwen dus het Engels is een beetje brak.
packed arrived through UDP or TCP
"085a629c834601008600a59b41c760ed5c0bc0d39204201909de41f95a5742001c72e400000000008000ed030101010903570b003000000040110583040d001200001f0c1a03c605004d690b0000416766ed5c0bc0d39204201909de41f95a5742001b72e400000000008000ee030101010903570b003000000040110583040d001200001f0c1a03c605004d690b0000a0"
08 5a 62 9c 83 46 01 00 (IMEI 0x146839c625a08 = 359006055062024)
86 00 (packet len 0x86 = 134 bytes)
a5 (Service FlashStack)
9b (Service 0xA5 confirmation key)
###(Start of structure #1 in packet)
41 (structure len 65 bytes)
c7 60 ed 5c (DT=7 Time=0x5ced60c*0x02+0x47798280=0x53172E98=1394028184= "GMT: Wed, 05 Mar 2014 14:03:04 GMT")
##(start of parsing detected DT=7 structure Masks)
0b c0 (Mask1 0xC00B = 0b1100000000001011 )
d3 92 (Mask2,becasue most significant bit in Mask1 set, Mask2 present 0x92d3 = 1001001011010011)
04 20 (Mask3,becasue most significant bit in Mask2 set, Mask3 present 0x2004 = 0010000000000100)
Mijn vraag is nu dus eigenlijk, om te beginnen, hoe komen zij van:
08 5a 62 9c 83 46 01 00 naar 359006055062024
Volgens mij is het wel vrij basic programmeren maar ik kom er niet uit
Normaal sturen deze apparaten een String, soms in HEX formaat maar meestal gewoon een plain string waar de coordinaten, IMEI etc. van een GPS staan. Nu heb ik echter een apparaatje die zijn gegevens via binary opstuurt.
Ik heb een klein voorbeeldje van de fabrikant ontvangen, maar ze willen me geloof ik niet echt een code sample geven van hoe ik het beste de gegevens kan omzetten naar een String.
Ik kan helaas ook niet teveel informatie over het apparaat weggeven, maar het is een vrij onbekend ding (anders had ik wel wat op Google gevonden natuurlijk).
Hier staat in ieder geval een klein stukje informatie uit hun documentatie, om het IMEI nummer uit de HEX string die ik ontvang te toveren, het is een tracker uit Litouwen dus het Engels is een beetje brak.
packed arrived through UDP or TCP
"085a629c834601008600a59b41c760ed5c0bc0d39204201909de41f95a5742001c72e400000000008000ed030101010903570b003000000040110583040d001200001f0c1a03c605004d690b0000416766ed5c0bc0d39204201909de41f95a5742001b72e400000000008000ee030101010903570b003000000040110583040d001200001f0c1a03c605004d690b0000a0"
08 5a 62 9c 83 46 01 00 (IMEI 0x146839c625a08 = 359006055062024)
86 00 (packet len 0x86 = 134 bytes)
a5 (Service FlashStack)
9b (Service 0xA5 confirmation key)
###(Start of structure #1 in packet)
41 (structure len 65 bytes)
c7 60 ed 5c (DT=7 Time=0x5ced60c*0x02+0x47798280=0x53172E98=1394028184= "GMT: Wed, 05 Mar 2014 14:03:04 GMT")
##(start of parsing detected DT=7 structure Masks)
0b c0 (Mask1 0xC00B = 0b1100000000001011 )
d3 92 (Mask2,becasue most significant bit in Mask1 set, Mask2 present 0x92d3 = 1001001011010011)
04 20 (Mask3,becasue most significant bit in Mask2 set, Mask3 present 0x2004 = 0010000000000100)
Mijn vraag is nu dus eigenlijk, om te beginnen, hoe komen zij van:
08 5a 62 9c 83 46 01 00 naar 359006055062024
Volgens mij is het wel vrij basic programmeren maar ik kom er niet uit
