|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE task |
|
11 PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd"> |
|
12 <task id="GUID-3319E01A-F500-5F5C-9798-351C6F3EC583" xml:lang="en"><title>Updating |
|
13 the GPS/A-GPS Central Repository Initialisation File </title><shortdesc>This shows how to modify the settings of the GPS/A-GPS PSY and |
|
14 the A-GPS Integration Module so that they do not conflict with each other. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody> |
|
15 <context><p>As described in <xref href="GUID-D0C20045-FCC5-53CB-BBDB-7AA058C9139E.dita">GPS/A-GPS |
|
16 PSY Overview</xref>, the GPS/A-GPS PSY does not integrate directly with positioning |
|
17 hardware. It uses the A-GPS Location Manager with an A-GPS Integration Module |
|
18 to connect the Location Server (<codeph>eposserver.exe</codeph>) to positioning |
|
19 hardware. </p> <p>The same A-GPS Integration Module can be used by both the |
|
20 GPS PSY and the A-GPS PSY, potentially at the same time. There are two places |
|
21 that information about the properties of the GPS/A-GPS PSY and A-GPS Integration |
|
22 Module are stored: </p> <ul> |
|
23 <li id="GUID-E71A7995-B0EA-523A-BEF3-D677086C18B8"><p>The GPS/A-GPS PSY registers |
|
24 itself as a PSY with the LBS subsystem using a Central Repository initialisation |
|
25 file with keys defined by the <xref href="GUID-DA2DC704-CE65-54FB-9049-4E1C73092EDF-GENID-1-7-1-15-1-1-10-1-5-1-5-1-8-1.dita">Positioning |
|
26 Plug-in Information API</xref>. The GPS PSY and the A-GPS PSY have separate |
|
27 initialisation files. </p> </li> |
|
28 <li id="GUID-ADDBC706-ACE3-544F-9CD4-EC5F4DD95445"><p>The A-GPS Location Manager |
|
29 uses a <codeph>.ini</codeph> file that specifies the properties |
|
30 of the A-GPS Integration Module. </p> </li> |
|
31 </ul> <p>The description of the properties of the PSY and the Integration |
|
32 Module must be the same in both files. </p><p>The following procedure assumes |
|
33 you have created an A-GPS Integration Module for your device's positioning |
|
34 hardware and have created a module .ini file that correctly describes the |
|
35 properties of the positioning hardware. The format of the .ini file is described |
|
36 in <xref href="GUID-5DD17088-1F9C-5810-8143-5067A2B18330.dita">A-GPS Location Data |
|
37 Source API</xref>. An example file containing some typical values is shown |
|
38 below. Your A-GPS Integration Module may have different parameters: </p><codeblock xml:space="preserve"># example_datasource.ini |
|
39 [1] |
|
40 Version= 0.2.1 # |
|
41 ModuleId= 271064388 # dec |
|
42 ModuleName= "Example_AGPS_Moduleā |
|
43 TechnologyType= 0101 # binary |
|
44 DeviceLocation= 1 # binary |
|
45 Capabilities= 11111 # binary |
|
46 ClassesSupported= 111111 # binary |
|
47 TimeToFirstFix= 90000 # ms |
|
48 TimeToNextFix= 1000 # ms |
|
49 HorizontalAccuracy= 5.4 # real |
|
50 VerticalAccuracy= 5.4 # real |
|
51 CostIndicator= 2 # dec |
|
52 PowerConsumption= 2 # dec |
|
53 DataSourceId= 271065673 # dec |
|
54 ExecutableName= "lbsgpslocmanager.exe" |
|
55 DeviceGpsModeCaps=1011 # binary - Exclusive TA OR TB (+ Autonomous)</codeblock> </context> |
|
56 <steps id="GUID-20C3ADEC-CF35-5A8E-903E-E32D7CDD004B"> |
|
57 <step id="GUID-E4B40CA8-FFC8-570D-87BA-530E796695E5"><cmd>If you want to use |
|
58 the A-GPS PSY with your Integration Module, modify the Central Repository |
|
59 initialisation file(s) for the PSY so that the values are the same as those |
|
60 in your Integration Module .ini file. </cmd> |
|
61 <info>The Central Repository initialisation file for the A-GPS PSY implementation |
|
62 supplied with the Symbian platform is in <filepath>datasourcemodules\lbsposfwadaptation\lbsgpsagpspsy\lbsagpspsy\cenrep\10285abc.txt</filepath>. |
|
63 The version supplied with the Symbian platform contains the following: </info> |
|
64 <stepxmp><codeblock id="GUID-3EB956AB-8D32-548E-A9FF-E6712631B43A" xml:space="preserve"> |
|
65 cenrep |
|
66 version 1 |
|
67 [owner] |
|
68 0x101f97b2 |
|
69 [defaultmeta] |
|
70 0 |
|
71 [platsec] |
|
72 cap_rd=ReadDeviceData cap_wr=WriteDeviceData |
|
73 [Main] |
|
74 0x1 int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
75 0x2 int 0 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
76 0x3 int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
77 0x4 int 90000000 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
78 0x5 int 1000000 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
79 0x6 real 5.4 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
80 0x7 real 5.4 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
81 0x8 int 2 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
82 0x9 int 2 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
83 0xa int 5 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
84 0xb int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
85 0xc int 31 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
86 0xd int 31 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
87 0xe int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
88 0xf string "\\resource\\lbsagpspsy_name.rsc" 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
89 0x10000000 int 2000000 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
90 </codeblock> </stepxmp> |
|
91 <info>For a full description of the meanings of these keys, see <xref href="GUID-DA2DC704-CE65-54FB-9049-4E1C73092EDF-GENID-1-7-1-15-1-1-10-1-5-1-5-1-8-1.dita">Positioning |
|
92 Plug-in Information API</xref>. </info> |
|
93 <info>The important keys for this task are as shown in the following table: </info> |
|
94 <stepxmp><table id="GUID-A227F71E-9B87-54D7-ABDF-4C29D1CF6F37"> |
|
95 <tgroup cols="4"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/> |
|
96 <thead> |
|
97 <row> |
|
98 <entry>Key name</entry> |
|
99 <entry>Key value</entry> |
|
100 <entry>Meaning</entry> |
|
101 <entry>Description</entry> |
|
102 </row> |
|
103 </thead> |
|
104 <tbody> |
|
105 <row> |
|
106 <entry><p> <codeph>KPSYTimeToFirstFix</codeph> </p> </entry> |
|
107 <entry><p> <codeph>0x4</codeph> </p> </entry> |
|
108 <entry><p>Time to First Fix </p> </entry> |
|
109 <entry><p>This must be the same time as the <codeph>TimeToFirstFix</codeph> value |
|
110 in your Integration Module .ini file. </p> <p> <b>Important note: In the PSY |
|
111 file the time is specified in microseconds. In the Integration Module .ini |
|
112 file the time is specified in milliseconds.</b> </p> </entry> |
|
113 </row> |
|
114 <row> |
|
115 <entry><p> <codeph>KPSYTimeToNextFix</codeph> </p> </entry> |
|
116 <entry><p> <codeph>0x5</codeph> </p> </entry> |
|
117 <entry><p>Time to Next Fix </p> </entry> |
|
118 <entry><p>This must be the same time as the <codeph>TimeToNextFix</codeph> value |
|
119 in your Integration Module .ini file. </p> <p> <b>Important note: In the PSY |
|
120 file the time is specified in microseconds. In the Integration Module .ini |
|
121 file the time is specified in milliseconds.</b> </p> </entry> |
|
122 </row> |
|
123 <row> |
|
124 <entry><p> <codeph>KPSYHorizontalAccuracy</codeph> </p> </entry> |
|
125 <entry><p> <codeph>0x6</codeph> </p> </entry> |
|
126 <entry><p>Horizontal Accuracy </p> </entry> |
|
127 <entry><p>This must be the same as the <codeph>HorizontalAccuracy</codeph> value |
|
128 in your Integration Module .ini file. The value is specified in metres. </p> </entry> |
|
129 </row> |
|
130 <row> |
|
131 <entry><p> <codeph>KPSYVerticalAccuracy</codeph> </p> </entry> |
|
132 <entry><p> <codeph>0x7</codeph> </p> </entry> |
|
133 <entry><p>Vertical Accuracy </p> </entry> |
|
134 <entry><p>This must be the same as the <codeph>VerticalAccuracy</codeph> value |
|
135 in your Integration Module .ini file. The value is specified in metres. </p> </entry> |
|
136 </row> |
|
137 <row> |
|
138 <entry><p> <codeph>KPSYCostIndicator</codeph> </p> </entry> |
|
139 <entry><p>0x8 </p> </entry> |
|
140 <entry><p>Cost Indicator </p> </entry> |
|
141 <entry><p>This must be the same as the <codeph>CostIndicator</codeph> value |
|
142 in your Integration Module .ini file. The value is an integer taken from the <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-78C084A0-43F8-3040-BD98-70E2E62A5D45"><apiname>TPositionQuality::TCostIndicator</apiname></xref> enum. </p> </entry> |
|
143 </row> |
|
144 <row> |
|
145 <entry><p> <codeph>KPSYPowerConsumption</codeph> </p> </entry> |
|
146 <entry><p> <codeph>0x9</codeph> </p> </entry> |
|
147 <entry><p>Power Consumption </p> </entry> |
|
148 <entry><p>This must be the same as the <codeph>PowerConsumption</codeph> value |
|
149 in your Integration Module .ini file. The value is an integer taken from the <xref href="GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D.dita#GUID-1AA235FA-CEC1-3853-8F96-C538C02B596D/GUID-AD77543D-625A-39CF-A1D5-F5B5636E17F7"><apiname>TPositionQuality::TPowerConsumption</apiname></xref> enum. </p> </entry> |
|
150 </row> |
|
151 <row> |
|
152 <entry><p> <codeph>KPSYTechnologyType</codeph> </p> </entry> |
|
153 <entry><p> <codeph>0xa</codeph> </p> </entry> |
|
154 <entry><p>Technology Type </p> </entry> |
|
155 <entry><p>This must be the same as the <codeph>TechnologyType</codeph> value |
|
156 in your Integration Module .ini file. The value is taken from the <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-03AF8C51-1CAF-3F4C-BED1-17844FAE8423"><apiname>TPositionModuleInfo::_TTechnologyType</apiname></xref> enum. </p> <p> <b>Important |
|
157 note: In the PSY file the value is specified as decimal integer. In the Integration |
|
158 Module .ini file the value is specified in binary.</b> </p> <p>In the files |
|
159 shown above, the value of 5 for this key specifies that the PSY/Integration |
|
160 Module supports a technology type of <codeph>ETechnologyTerminal</codeph> + <codeph>ETechnologyAssisted</codeph> = |
|
161 1 + 4 = 0101 in binary. </p> </entry> |
|
162 </row> |
|
163 <row> |
|
164 <entry><p> <codeph>KPSYCapabilities</codeph> </p> </entry> |
|
165 <entry><p> <codeph>0xc</codeph> </p> </entry> |
|
166 <entry><p>Device Capabilities </p> </entry> |
|
167 <entry><p>This must be the same as the <codeph>Capabilities</codeph> value |
|
168 in your Integration Module .ini file. The value is taken from the <xref href="GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26.dita#GUID-B098F3DB-E2FE-3C5A-8508-4B04D954AB26/GUID-4A84D57F-D202-3F79-8094-139D69630C6D"><apiname>TPositionModuleInfo::_Capabilities</apiname></xref> enum. </p> <p> <b>Important |
|
169 note: In the PSY file the value is specified as a decimal integer. In the |
|
170 Integration Module .ini file the value is specified in binary.</b> </p> <p>In |
|
171 the files shown above the value of 31 for this key specifies that the PSY/Integration |
|
172 Module supports the capabilities: <codeph>ECapabilityHorizontal + ECapabilityVertical |
|
173 + ECapabilitySpeed + ECapabilityDirection + ECapabilitySatellite </codeph> = |
|
174 31 decimal or 11111 in binary. </p> </entry> |
|
175 </row> |
|
176 <row> |
|
177 <entry><p> <codeph>KPSYClassesSupported</codeph> </p> </entry> |
|
178 <entry><p> <codeph>0xd</codeph> </p> </entry> |
|
179 <entry><p>Supported Positioning classes </p> </entry> |
|
180 <entry><p>This must be the same as the <codeph>ClassesSupported</codeph> value |
|
181 in your Integration Module .ini file. The value is taken from the <xref href="GUID-BC8B2D08-1B64-35BB-8F58-4E7123650BD7.dita"><apiname>_TPositionInfoClassType</apiname></xref> enum. </p> <p> <b>Important |
|
182 note: In the PSY file the value is specified as decimal integer. In the Integration |
|
183 Module .ini file the value is specified in binary.</b> </p> <p>In the files |
|
184 shown above the value of 31 for this key specifies that the PSY/Integration |
|
185 Module supports the positioning classes: <codeph>EPositionGpsMeasurementInfoClass |
|
186 + EPositionCourseInfoClass + EPositionGenericInfoClass |
|
187 + EPositionInfoClass</codeph> = 31 decimal or 11111 in binary. </p> </entry> |
|
188 </row> |
|
189 </tbody> |
|
190 </tgroup> |
|
191 </table> </stepxmp> |
|
192 </step> |
|
193 <step id="GUID-CFB743FE-C90C-569D-B1CD-433930702B07"><cmd>If you want to use |
|
194 the GPS PSY with your Integration Module, modify the Central Repository initialisation |
|
195 file(s) for the PSY so that the values are the same as those in your Integration |
|
196 Module .ini file. </cmd> |
|
197 <info>The Central Repository initialisation file for the GPS PSY implementation |
|
198 with the Symbian platform is <filepath>datasourcemodules\lbsposfwadaptation\lbsgpsagpspsy\lbsagpspsy\cenrep\102869C7.txt</filepath>. |
|
199 It contains the following: </info> |
|
200 <stepxmp><codeblock id="GUID-63A5B375-F712-5515-A985-5F54BCD52AD9" xml:space="preserve"> |
|
201 cenrep |
|
202 version 1 |
|
203 [owner] |
|
204 0x101f97b2 |
|
205 [defaultmeta] |
|
206 0 |
|
207 [platsec] |
|
208 cap_rd=ReadDeviceData cap_wr=WriteDeviceData |
|
209 [Main] |
|
210 0x1 int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
211 0x2 int 0 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
212 0x3 int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
213 0x4 int 90000000 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
214 0x5 int 1000000 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
215 0x6 real 5.4 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
216 0x7 real 5.4 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
217 0x8 int 2 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
218 0x9 int 2 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
219 0xa int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
220 0xb int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
221 0xc int 31 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
222 0xd int 31 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
223 0xe int 1 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
224 0xf string "\\resource\\lbsgpspsy_name.rsc" 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
225 0x10000000 int 2000000 0 cap_rd=alwayspass cap_wr=alwaysfail |
|
226 </codeblock> </stepxmp> |
|
227 <info>This is the same as the repository file for the A-GPS implementation |
|
228 [1], except the value for key <codeph>0xa</codeph> (Technology Type) is <codeph>ETechnologyTerminal</codeph> = |
|
229 1, to indicate that the PSY uses autonomous GPS. </info> |
|
230 <info>See step 1 above for details about which values you may need to change |
|
231 so that this file accurately describes the properties of your A-GPS Integration |
|
232 Module. </info> |
|
233 </step> |
|
234 <step id="GUID-CC2CC449-7A14-5143-9B87-80D1D887234E"><cmd>Make a binary version |
|
235 of the Central Repository initialisation file(s) and install them on the device. </cmd> |
|
236 <info>The LBS build process makes a binary version of the PSY Central Repository |
|
237 initialisation files and copies them to <filepath>epoc32\winscw\c\private\10202BE9</filepath>. </info> |
|
238 <info>To rebuild the A-GPS PSY Central Repository initialisation file you |
|
239 can use the makefile <filepath>createlbsagpspsyrep.mk</filepath> in <filepath>datasourcemodules\lbsposfwadaptation\lbsgpsagpspsy\lbsagpspsy\group</filepath>. </info> |
|
240 <info>To rebuild the GPS PSY Central Repository initialisation file you can |
|
241 use the makefile <filepath>createlbsgpspsyrep.mk</filepath> in <filepath>datasourcemodules\lbsposfwadaptation\lbsgpsagpspsy\lbsgpspsy\group</filepath>. </info> |
|
242 <info>Use the <xref href="GUID-9BB4A44E-6870-5A25-8EA8-0B0F1565213F.dita">ROM macros</xref> to |
|
243 copy the GPS/A-GPS PSY DLL and the repository files into a device ROM. </info> |
|
244 </step> |
|
245 </steps> |
|
246 </taskbody><related-links> |
|
247 <link href="GUID-D0C20045-FCC5-53CB-BBDB-7AA058C9139E.dita"><linktext>GPS/A-GPS |
|
248 PSY Overview</linktext></link> |
|
249 <link href="GUID-9BB4A44E-6870-5A25-8EA8-0B0F1565213F.dita"><linktext>Include the |
|
250 GPS/A-GPS PSY in ROM</linktext></link> |
|
251 </related-links></task> |