Hi Rafael,

> +Location Reporting hierarchy
> +=================
> +
> +Service              org.ofono
> +Interface    org.ofono.LocationReporting
> +Object path  [variable prefix]/{modem0,modem1,...}
> +
> +Methods              dict GetProperties()
> +
> +                     Returns all Gps properties. See the
> +                     properties section for available properties.
> +
> +                     Possible Errors: [service].Error.InProgress
> +                                      [service].Error.Failed
> +
> +             void SetProperty(string name, variant value)
> +
> +                     Changes the value of the specified property. Only
> +                     properties that are listed as read-write are
> +                     changeable. On success a PropertyChanged signal
> +                     will be emitted.
> +
> +                     Possible Errors: [service].Error.InvalidArguments
> +                                      [service].Error.InProgress
> +                                      [service].Error.Failed
> +
> +Signals              PropertyChanged(string property, variant value)
> +
> +                     This signal indicates a changed value of the given
> +                     property.
> +
> +Properties   boolean Powered [readwrite]
> +
> +                     This property will power or disable the GPS feature in
> +                     the modem.
> +
> +                     Many modem manufacturers provide a GPS unit with their
> +                     modem hardware. This unit can be turned on or off and
> +                     frequently takes over one of the tty ports that the
> +                     modem provides.

So after discussing this some more with Marcel I'd like to change the
API slightly.  Instead of using a Powered property, let us use an Agent
with file descriptor passing instead.  The flow will roughly go like this:

LocationReporting interface becomes available and the string Type
property is known.  An external client registers an Agent with this
interface.  Internally this triggers the driver function to bring up the
GPS device and return the file descriptor to the core.  The core takes
care of calling the Agent with the file descriptor using DBus FD passing
mechanisms.

Once the remote client receives the file descriptor it can use it to
receive e.g. NMEA data.

Unregistering the agent or if the remote client exits unexpectedly
terminates should close the file descriptor and deactivate the NMEA stream.

> +
> +             dict Settings [readonly]
> +

This dictionary is no longer necessary.

> +                     Holds the location information settings
> +
> +                     string Device [readonly]
> +
> +                             Holds the device from which the location
> +                             information can be obtained (e.g. 
> "/dev/ttyACM2")
> +

This makes this property unnecessary

> +                     string Type [readonly]
> +
> +                             Holds the type of the device (e.g. "nmea")
> +

And this property should be moved to a top level property instead of
being inside the Settings dict.

I hope my explanation was pretty clear, if not, find me on IRC.

Regards,
-Denis
_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to