satsol protocol. SAT-LITE 4 device

diagnoza year ago

I found that the traccar supports SAT-LITE 4 devices.
I tried to connect the device.

But in server log I see error:

Latitude out of range - IllegalArgumentException (Position:236 < SatsolProtocolDecoder:70 < ExtendedObjectDecoder:75 < ...)

Any ideas ?

Anton Tananaeva year ago

Do you have the HEX sample before the error?

diagnoza year ago

Yes I have:

2023-09-06 19:00:45  INFO: [T114c5dde: satsol < 178.178.94.108] 78b82c8a1d8b020057009af9000003e10b5e4c000800ffffffffffffffff0000000000000000069c8301006382f8644c000800ffffffffffffffff00000000000000000686>
2023-09-06 19:00:45  INFO: [T114c5dde] error - Latitude out of range - IllegalArgumentException (Position:236 < SatsolProtocolDecoder:70 < ExtendedObjectDecoder:75 < ...)
2023-09-06 19:00:45  INFO: [T114c5dde] disconnected
Anton Tananaeva year ago

It doesn't match the protocol, so it must be using some different format.

diagnoza year ago

I use last modification SAT-LITE4 with usual protocol, and got error:

2023-09-07 15:52:54  INFO: [T5d3b4d22: satsol < 178.178.95.254] f7312c8a208b0200aa059af9000003e10b5e4c000800ffffffffffffffff000000000000000006de4d01002ee20b5e4c000800ffffffffffffffff00000000000000000e8a>
2023-09-07 15:52:54  INFO: [T5d3b4d22] error - Adjusted frame length exceeds 1400: 1460 - discarded - TooLongFrameException (... < WrapperInboundHandler:57 < ... < StandardLoggingHandler:44 < ... < Netw>
2023-09-07 15:52:54  INFO: [T5d3b4d22] disconnected
diagnoza year ago

I found error in parser.

In potocol guide we can look at stuct:

         typedef struct {
        uint16_t crc;
        uint16_t serial_id;
        uint32_t timestamp;
        uint16_t packet_type;
        uint16_t packet_len;
        uint32_t x_coord;
        uint32_t y_coord;
        uint8_t sf;
        } t_common_data_header;

In server code:

        List<Position> positions = new LinkedList<>();

        while (buf.isReadable()) {

            buf.readUnsignedShortLE(); // checksum
            buf.readUnsignedShortLE(); // checksum

            // THERE YOU MUST READ TIMESTAMP double word size

            buf.readUnsignedShortLE(); // type
            int length = buf.readUnsignedShortLE();
diagnoza year ago

Code from class: "SatsolProtocolDecoder "
protocol guide: http://satsol.ru/static/devices/files/satlite3/protocol.pdf

Anton Tananaeva year ago

There's no in parser. It's just a completely different protocol.

diagnoza year ago

Could u give me link to protocol (pdf) description that matches the current parser "SatsolProtocolDecoder" ?