Logic to decide Valid updates (for Teltonika)

Dibbs4 years ago

Hi,

Is the logic that decides whether an update is Valid, global (i.e. does it for all protocols) or is it Local to each protocol? Any hints where I might find it?

Context - Teltonika devices normally send data packets when awake with mostly a full payload (Satellites, HDOP, PDOP, Nbr of Sats, Long, Lat, etc) but when they are in Deep Sleep mode and the unit believes it hasn't moved - it sends a minimal payload (i.e. doesn't send any of the following - GSM Signal, GNSS Status, GNSS PDOP, GNSS HDOP, GSM CellID, GSM Area Code, Active GSM Operator, Trip Odometer, Total Odometer, Speed, Fuel Rate GPS, Fuel Used GPS and ICCID)

Updates sent when the unit is in Deep Sleep - are in essence heartbeat packets. As the data packet doesn't contain certain items - Traccar is marking the update as Invalid, but I think for Teltonika devices, when the unit is in Deep Sleep - the updates might be better marked as valid (for me anyway) - hence the search for where the logic might be.

Thanks

Dibs

Anton Tananaev4 years ago

Validity flag should code directly from the GPS module.

Dibbs4 years ago

Hi Anton,

The GPS module on a Teltonika has the following states:

  • 1 (Active & Fix Obtained)
  • 2 (Active & Obtaining Fix)
  • 3 (Sleep)

It also has a IO variable of Sleep which has values of 0,1,2,3,4 & 5 (None, GPS Sleep, Deep Sleep, Online Deep Sleep & Ultra Sleep) - I don't know the IO variable off the top of my head but will find out which one.

GPS state = 3 only comes when Sleep != 0 and to my mind is Valid, hence the original question to find out where the logic lives etc.

I appreciate folk see things differently - I would like to have it so that when GPS = 3 & Sleep !=0 the update is Valid. Any pointers on to where to look and whether the logic is Global (to all protocols) or if it is Local (to each protocol) would be greatly appreciated.

Many Thanks

Anton Tananaev4 years ago

Looks like currently it's not implemented correctly:

position.setValid(satellites != 0);
Dibbs4 years ago

I looked in the DB and the valid field isn't populated, which makes me suspect it isn't the Backend I need to look at but the Front End - would that be right? Any pointers? [1 to expand my knowledge\learn & 2, folk can't expect you to do everything.]

Thanks

Dibbs4 years ago

I found where you were referring to - the protocol decoder for Teltonika.

Now just to read up on Builds, etc. ;)

Thanks