[OM2008.9][GTA02] a simple and quick GPS logger v0.1

vasco.nevoa at sapo.pt vasco.nevoa at sapo.pt
Fri Oct 10 17:37:49 CEST 2008


I wanted something simple, reliable, and fast to load and stop.
So I cooked up a couple of shell scripts and desktop shortcuts to  
allow me to just press a button and get the Neo to log the GPS track  
on a file.
The scripts take care of turning on the GPS receiver, avoiding  
suspension during logging, and putting the data in the right place.
Enjoy, cut up, mash up, and otherwise use at will. :)

Requirements: gpspipe (opkg install gps-utils)

*** Desktop file to turn on (/usr/share/applications/GpsLogOn.desktop):
[Desktop Entry]
Name=LogGps:1
Comment=Start GPS logging
Encoding=UTF-8
Version=1.0
Type=Application
Exec=/home/root/myScripts/log_gps_track.sh
Icon=fixme
Terminal=true
SingleInstance=true
StartupNotify=false

*** Turn-on script (~myScripts/log_gps_track.sh):
#!/bin/sh
. $HOME/myScripts/om_suspend_functions.sh
dir=$HOME/myData/Gps
name=`date +Log_%y%m%d_%H%M%S.nmea`
gps_power=/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron
# wake up GPS hardware:
echo 1 > $gps_power
# tell ompower to keep from suspending while logging:
request_power_state $name "keep_on"
# automatically allow suspending after exit (no need for switching off  
GPS, suspend does that):
cleanup() { echo "Stopped logging!"; sync; request_power_state $name  
"may_off"; exit 0; }
trap cleanup KILL
trap cleanup INT
trap cleanup EXIT
# start logging to file:
echo Logging into $name
gpspipe -r > $dir/$name
# end.

*** Helper function library for power management  
(~myScripts/om_suspend_functions.sh):
#!/bin/sh
request_power_state() {
requester=$1
state=$2
if [ $state == "keep_on" ]; then
  echo "$requester is preventing OM from sleeping."
  dbus-send --system --dest=org.openmoko.Power /  
org.openmoko.Power.Core.RequestResourceState string:cpu  
string:$requester string:on
elif [ $state == "may_off" ]; then
  echo "$requester is allowing OM to sleep."
  dbus-send --system --dest=org.openmoko.Power /  
org.openmoko.Power.Core.RemoveRequestedResourceState string:cpu  
string:$requester
elif [ $state == "go_off" ]; then
  echo "$requester is forcing OM to sleep."
  dbus-send --system --dest=org.openmoko.Power /  
org.openmoko.Power.Core.RequestResourceState string:cpu  
string:$requester string:off
else
  echo "Unknown power state requested ('$name', '$state'). Pick  
'keep_on', 'may_off', or 'go_off'."
fi
}

*** Desktop file to turn off:
[Desktop Entry]
Name=LogGps:0
Comment=Stop GPS logging
Encoding=UTF-8
Version=1.0
Type=Application
Exec=killall gpspipe
Icon=fixme
Terminal=true
SingleInstance=true
StartupNotify=false

********************************************




More information about the community mailing list