All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [PATCH] doc: Add Location Services API
Date: Thu, 11 Nov 2010 15:49:53 -0600	[thread overview]
Message-ID: <4CDC6501.3070206@gmail.com> (raw)
In-Reply-To: <1289504685-9134-1-git-send-email-sjurbren@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4654 bytes --]

Hi Sjur and Simon,

On 11/11/2010 01:44 PM, Sjur Brændeland wrote:
> From: Sjur Brændeland <sjur.brandeland@stericsson.com>
> 
> As requested, this is our initial proposal for a minimal API
> in order to support E911, based on the 27.007 defined AT
> commands.
> 
> We've discussed internally different names for this API:
> AGNSSManager or AssistedGlobalNavigationSatelliteSystem,
> but ended up with the simpler LocationServicesManager.
> 
> Looking forward to your comments on this API.
> 
> Regards,
> Simon Lethbridge and
> Sjur Brændeland
> ---
>  doc/location-services-api.txt |   56 +++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 56 insertions(+), 0 deletions(-)
>  create mode 100644 doc/location-services-api.txt
> 
> diff --git a/doc/location-services-api.txt b/doc/location-services-api.txt
> new file mode 100644
> index 0000000..18ef230
> --- /dev/null
> +++ b/doc/location-services-api.txt
> @@ -0,0 +1,56 @@
> +LocationServicesManager hierarchy
> +=================================
> +
> +Service	org.ofono
> +Interface	org.ofono.LocationServicesManager

I actually think LocationServices is enough..

So let me summarize 27.007 briefly.  It defines the following elements
for +CPOS/+CPOSR:

- location
- assist_data
- pos_meas
- GPS_meas
- GPS_assist_req
- msg
- pos_err

So from my understanding +CPOS command can be used to send <location>,
<GPS_assist_req> and <pos_err> elements.

And +CPOSR can transfer the following elements from the network:
<assist_data>, <pos_meas>, <msg>.

Am I right so far?

Where does the <GPS_meas> element fall into?

> +Object path	[variable prefix]/{modem0,modem1,...}
> +
> +Methods	dict GetProperties()
> +
> +			Returns properties for the modem object. See
> +			the properties section for available properties.
> +
> +			Possible Errors: [service].Error.InvalidArguments
> +
> +		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.DoesNotExist

I think we can get rid of the above two methods, see below...

> +
> +		void SendPositioningControl(string xml_element)
> +
> +			Send an XML element conforming to the XML DTD for <pos>
> +			as defined in 3GPP 27.007 Table 8.55-2.  This xml is
> +			used for transferring data associated with positioning
> +			requests received via control plane from the network.
> +			This includes assistance data requests and the results
> +			of positioning procedures. This method maps directly to
> +			the 3GPP 27.007 AT+CPOS command.
> +
> +
> +Signals	PropertyChanged(string name, variant value)
> +
> +			This signal indicates a changed value of the given
> +			property.
> +
> +		PositioningRequest(string xml_element)
> +
> +			Receive an XML element conforming to the XML DTD for
> +			<pos> in 3GPP 27.007. This xml is used for transferring
> +			data associated with positioning requests received, via
> +			control plane, from the network. This includes
> +			measurement requests and assistance data. This signal
> +			maps directly to the 3GPP defined +CPOSR unsolicited
> +			result code.

How about transforming this signal into an Agent based API instead.  So
let us have a LocationServicesAgent API with the following rough API:

LocationServicesAgent

* Release() - Self explanatory
* HandleRequest(string xml) - Essentially gets passed the data from the
+CPOSR unsolicited response.

We can then add two more methods to the LocationServices interface:

* RegisterAgent()
* UnregisterAgent()

> +
> +Properties	boolean NetworkInitiatedProceduresEnabled [readwrite]
> +
> +			If NetworkInitiatedProceduresEnabled is False, then
> +			no Position Requests from the network are accepted.
> +			The modem is not enabled for positioning requests
> +			from the networks view point.

This property can then be potentially made redundant.  E.g. if there's
no agent registered, the network position requests are turned off.  Once
the agent is registered, they are turned on.

The SendPositioningControl function can then be tweaked to return an
error if the Agent is not registered.  I assume there's nothing useful
we can do without someone handling the data returned by +CPOSR.

What about other location services related commands defined in 27.007?
How do they fit in? E.g.:
- +CMOLR
- +CMTLR
- +CMTLRA

Regards,
-Denis

  reply	other threads:[~2010-11-11 21:49 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-11 19:44 [PATCH] doc: Add Location Services API Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
2010-11-11 21:49 ` Denis Kenzior [this message]
2010-11-11 23:03   ` Marcel Holtmann
2010-11-17  6:34     ` Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
2010-11-15 11:19   ` Simon LETHBRIDGE
2010-11-18  9:50   ` [PATCH] doc: Add Location Services API (resending now that I am on ofono mailing list) Simon LETHBRIDGE
2010-11-22 21:50     ` Joly, Frederic
2010-11-18 10:57   ` [PATCH] doc: Add Location Services API Simon LETHBRIDGE
2010-11-20  1:01 ` Bastian, Waldo
2010-11-20  2:04   ` Bastian, Waldo
2010-11-22  9:01     ` Marko.Ovaska
2010-11-22 23:16       ` Joly, Frederic
2010-11-23 17:16         ` Simon LETHBRIDGE
2010-11-26 15:29         ` Marko.Ovaska
2010-11-26 16:20         ` =?unknown-8bit?q?R=C3=A9mi?= Denis-Courmont
2010-11-22 14:04     ` Simon LETHBRIDGE
2010-11-26 16:11   ` =?unknown-8bit?q?R=C3=A9mi?= Denis-Courmont
2010-12-01 13:35     ` Simon LETHBRIDGE
2010-11-22 15:11 ` [RFCv2] doc: Assisted Satellite Navigation API and Agent API Sjur =?unknown-8bit?q?Br=C3=A6ndeland?=
2010-11-23 13:28   ` andrzej zaborowski
2010-11-23 15:07     ` Simon LETHBRIDGE
2010-11-23 17:15       ` andrzej zaborowski
2010-11-23 17:24         ` Simon LETHBRIDGE
2010-11-30 13:23   ` Denis Kenzior
2011-01-26 14:52     ` Simon LETHBRIDGE

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CDC6501.3070206@gmail.com \
    --to=denkenz@gmail.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.