subscribe to our Youtube

Ask a question

3964 questions

4513 answers


50796 members

Ask a question
0 votes
in Vehicle tracking by

I looked at an example of parsing data in hexadecimal format at the link:

I received data in hex stream via UDP protocol from fmb204:


I highlighted the fake IMEI of my device. From the example linked above, the Priority attribute should be followed by the Longitude and Latitude attributes. I've highlighted the Longitude and Latitude attributes in light blue. This may be a mistake.

I don't understand how to decipher the latitude and longitude in the response from fmb204. Please help me with the example code above.

2 Answers

0 votes

Please visit Teltonika Universal Device Test Guide Wiki:

You can download a software pack with TCP and UDP listener and records parser, which will help you to parse records.

ago by
Thanks. I have downloaded the UDP parser. My string is not decrypted. Error: "Value does not fall within the expected range".

Could this be related to my tracker version? My FMB Ver: 03.10.08_00.
ago by
I encourage you to update tracker firmware, to the current version:

Presented UPD packet is not in accordance with codec 8 or codec 8 extended, for exmple Codec ID and Number Of data is not correct.

Please veify
0 votes
ago by
Hello , I have a suggestion for you

The FMB204 is a GPS tracker that can send location data in a hex stream format. To decode the latitude and longitude from this hex stream, you can follow these steps:

Convert the hex stream to binary format: Each hex digit represents four binary digits, so you need to convert the hex stream to binary format. You can use an online hex to binary converter for this.

Extract the latitude and longitude data: The latitude and longitude data are usually stored in a specific format in the binary data stream. For example, the latitude might be stored in bytes 11-14, while the longitude might be stored in bytes 15-18. Check the FMB204 user manual to determine the exact location of the latitude and longitude data in the binary stream.

Convert the latitude and longitude data to decimal format: Once you have extracted the latitude and longitude data from the binary stream, you need to convert it to decimal format. The conversion formula is:

Decimal value = (Binary value / (2 ^ number of bits)) * 360

For example, if the latitude is stored in 32 bits, the conversion formula would be:

Decimal latitude = (Binary latitude / (2^32)) * 360

Determine the direction: The direction of the latitude and longitude data (i.e. whether it is north or south, east or west) is usually stored in a separate byte or bit in the binary stream. Check the FMB204 user manual to determine the location of the direction data.

By following these steps, you should be able to decode the latitude and longitude data from the hex stream sent by the FMB204 GPS tracker.

Hope so it will helps.
ago by

Thank you very much for the detailed answer!!! The response from FMB204 comes to me in the format: "b'\x03\xd8\xca\xfe\x01\x0c\x00\x0f352093085506888\x08\x10\x00\x00\x01\x86\xe6A\xc3x\x00\x16k9\xbb! O\xaa\xd0\x00\...etc."

What parameter should be changed in the GPS tracker so that the response comes in hexadecimal format?

To transform my response, I write the data to a Python list. I get integers from 0 to 255. Then I convert them to hexadecimal system. That's right?

v_flex = b'\x03\xd8\xca\xfe\x01\x0c\x00\x0f352093085506888\x08\x10\x00\x00...etc.'
v_flex = list(v_flex)
v_str = ""
for i in v_flex:
        v_str += str(convert_base(i, to_base=16))+ ""
# def convert_base(num, to_base=10, from_base=10):
#     # first convert to decimal number
#     if isinstance(num, str):
#         n = int(num, from_base)
#     else:
#         n = int(num)
#     # now convert decimal to 'to_base' base
#     alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#     if n < to_base:
#         return alphabet[n]
#     else:
#         return convert_base(n // to_base, to_base) + alphabet[n % to_base]