FSO resources, GPS-TTFF example (Was: is wifi-driver developed anymore?)

Rask Ingemann Lambertsen ccc94453 at vip.cybercity.dk
Thu Aug 13 15:34:37 CEST 2009


On Thu, Aug 13, 2009 at 11:15:31AM +0200, arne anka wrote:
> 
> >> - the fso way of retrieving the resource is discouraged
> >
> > Hm, no? fsoraw does exactly that: manages access to resources the fso
> > way.
> 
> it's not that i know all these fso dbus commands by heart, but
> 
> mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage  
> org.freesmartphone.Usage.SetResourcePolicy WiFi enabled
> 
> which you called "in this particular case harmful", looks pretty much like  
> the fso way to me. am i wrong?

   Yes. :-( You should not use SetResourcePolicy if you can at all avoid
it. If an app needs a resource, it should call RequestResource instead.
If the app doesn't have FSO support, use fsoraw to request the resource.

   There is a bit of trickery in using fsoraw with a shell script. You can
either make the script call itself with fsoraw except if given a command
line option such as --no-fsoraw, or use a here-document. Example of the
latter:

#!/bin/sh

# GPS-TTFF - Find GPS time to first fix using all the important buzz-words
# such as D-bus, Gypsy, freedesktop.org and freesmartphone.org.

# Destinations and paths are listed in /etc/dbus-1/system.d/*.
# Interfaces are "documented" at <URL:http://docs.freesmartphone.org/>.

fsoraw -r GPS -- sh <<"__end_of_script"

DBUSCALL_='dbus-send --print-reply=undocumented --system --type=method_call --dest='

if [ "--coldstart" = "$1" ]; then
	rm -f /var/lib/freesmartphone/ogpsd.pickle
fi

START=$(date +%s)

# Where is the first return value from GetPosition documented?
while ${DBUSCALL_}org.freedesktop.Gypsy /org/freedesktop/Gypsy org.freedesktop.Gypsy.Position.GetPosition \
	| head -n 1 | grep -q -v -F -e 'int32 15' -e 'int32 7'; do
	sleep 1
done

FINISH=$(date +%s)

echo "Time to first fix: $((${FINISH} - ${START})) s"

${DBUSCALL_}org.freedesktop.Gypsy /org/freedesktop/Gypsy org.freedesktop.Gypsy.Position.GetPosition
__end_of_script

   Please compare with how it should not be done, by a clueless newbie:
https://lists.openmoko.org/pipermail/community/2009-July/050629.html

> why is simply requesting the resource like openmoko-panel-plugin does,  
> sufficient?

   Requesting the resource tells FSO that an app wants to use the resource.
If the policy permits, FSO will arrange for the resource to be available.

> which is the rationale for fsoraw here?

   To request resources for apps that don't have FSO support themselves.

> why using fsoraw, why isn't fso sufficient?

   You are confused. Fsoraw uses FSO.

-- 
Rask Ingemann Lambertsen
Danish law requires addresses in e-mail to be logged and stored for a year



More information about the community mailing list