EElink protocol decoding

Jeff Mattheson5 years ago

I'm not sure if this should go in the server or devices section but I chose server since the device seems to be doing what I am asking of it.

The problem I am having is the information displayed in traccar gets out of date.

It seems like the device sends an update roughly once per minute. This hex code may contain one or possibly many packages describing location or warnings or whatever correlating to the setting I have set using the COLLECT command on the eelink device. However it seems like traccar only responds to one package per transmission so the device continues to resend the other packages until traccar responds. I have manages to keep the info mostly up to date by setting the device to only send once per 90 seconds while active and once per 7 minutes while at rest. However it still gets behind because the device sends packages whenever the ignition goes on or off. Eventually the info can catch up unless the ignition goes on and off quickly for short trips or something.

It seems like traccar needs to decode and respond to all of the packages in each transmission. As far as I can tell it is only responding to one package per transmission, even though there are multiple included. I can share logs files if anyone is interested. Can anyone confirm or help me with this? Meanwhile I will get the source code and see if I can figure out the language enough to make some edits. I do PHP, javascript etc but not java.

Jeff Mattheson5 years ago

While the above is true when using a UDP port it seems that switching to a TCP port mitigates the problem. Traccar breaks down all the multiple packages in the entire transmission and responds to each one separately. I will test this for a few days and see what happens.

Jeff Mattheson5 years ago

OK, I tried TCP for awhile and it has it's own problems with connections hanging and the login package etc. UDP seems to be more reliable. However I still have the issue of traccar only responding to one package at a time when using UDP. I downloaded the source code and will try to see if I can modify it to respond to multiple packages at once.