FOR TIPS, gUIDES & TUTORIALS

subscribe to our Youtube

GO TO YOUTUBE

14455 questions

17168 answers

28195 comments

0 members

We are migrating to our new platform at https://community.teltonika.lt. Moving forward, you can continue discussions on this new platform. This current platform will be temporarily maintained for reference purposes.
+1 vote
1,451 views 3 comments
by
Hi There,

i log the GPS Data of the RUT955 via shell. works great!! - i'll post the script, if anybody like to use it - feel free

Now i would like to:
a) UPDATE a Geofence Location via Script if an input goes low. (Ignition of a car is switched off)
b) log the GPS Date only if the ignition is ON

is that possible? and how?!
Thanks ahead
by
#!/bin/ash
# GPS Datei(en) werden tagesabhängig geschrieben
# Datum: 14.03.2019

# USB Mount Point
USB_FOLDER=/mnt/sda1/

# micro SD Mount Point
mSD_FOLDER=/mnt/mmcblk0p1/

# Logintervall in Sek.
FREQUENCY=20

while [ 1 ]; do         # Dauerschleife

# Dateiname
# Beispiel: GPS-Track-2019-03-14.csv
FILENAME=GPS-Track-$(date -Idate)
# Dateiendung
FILE_EXT=.csv
FILE=$mSD_FOLDER$FILENAME$FILE_EXT



if     [ $(gpsctl -s) -eq 1 ]; then   # Wenn GPS Signal vorhanden
    if [ ! -f $FILE ]; then   # gibt es die akt. benötigte Datei? falls nicht: erzeuge diese und generiere die Überschriften
        echo -e 'Latitude;Longitude;Datetime;Altitude;Speed;Course over ground;Sat\r' > $FILE
    fi
   # Logge die GPS Positionen
    echo -e $(gpsctl -i) ';' $(gpsctl -x) ';' $(gpsctl -e) ';' $(gpsctl -a) ';' $(gpsctl -v) ';' $(gpsctl -c) ';' $(gpsctl -p)'\r' >> $FILE

fi
# Warte die angegebene Zeitspanne
sleep $FREQUENCY

done


2 Answers

0 votes
by anonymous

Hi, maybe a little bit late but if anyone else has the same problem, here is an user script you can use:

#!/bin/ash

# retrieve latitude and longitude
latitude=$(gpsctl -i)
longitude=$(gpsctl -x)


# set latitude and longitude as geofence
uci set gps.Homebase.longitude=$longitude
uci set gps.Homebase.latitude=$latitude
uci commit gps

# output coordinates
echo "latitude: $latitude"
echo "longitude: $longitude"

Replace Homebase with your geofence name.

You can start the script as action in your input/output juggler.

Best regards!

Marcel

Best answer
+2 votes
by

Hello,

A) Do you mean the overall geofencing zone location or the unit that is in the location?

If the answer is the overall location - the script needs to edit uci configuration to update geofencing zone on your desired options as in:

Let's say we have a zone with a name "zone_name". We get "gps" uci file "geofencing" section with name "zone_name" and by gathered info update options:

  • longitude
  • latitude
But this also needs to restart the process to update the geofence location values - so it is required to restart "gps" process (look EX. 1).
If it's to update units info for geofence the only option I could think of is to restart the "gps" process as in restart the process:
(EX. 1)
/etc/init.d/gpsd restart 
However doing this wouldn't create zone check event trigger. This option is checked on unit's location change to the geofencing zone radius and as the process is rebooted it reinitialize the units location values thus to create event trigger unit's location has to be checked while the program is executing.
The reason is "gps" process gather's geofencing information only on the start of the process.

B) Do you mean the overall gps process or only the logging?

If it's overall gps process the initialization script has to be edited to also check if the ignition value has changed to start the process. Because of this the process has to be checked periodically to find out if ignition value has changed.

Initialization script is at "/etc/init.d/gpsd"

If you mean only the logging for the given example script - you only need to check the ignition state to know if it's worth to gather needed logged info from "gps" process.

C) This part is for asking via what I/O is the ignition connected that is DIGITAL1 or DIGITAL2 or ANALOG?

Regards,

Giedrius

by

To check for the I/O state:

gpio.sh -h (SHOWS ALL THE POSSIBLE OPTIONS)

EXAMPLE FOR CHECKIN I/O STATE:

gpio.sh get DOUT1

by
Hi Giedrius,
you helped me a lot with the gpio.sh - that is for getting the Ingnition status.
I will test that.

GEOFENCE - my idea is:
If the ignition stats goes to low (car/camper with the RUT955 onboeard is stopped anywhere) to update an existing geofence (let's call it: "ActualParkPosition") to get the event trigger (wich is alway on) when the RUT left the the GEOFENCE.
My plan is to put it all into the script above!

I still have now idea how to update the act. Pos. into the geofence.

Thanks ahead for a little more infos / help!

Regards,

Dirk