GPS Receiver Interface
Language
(GRIL)
Reflects Firmware Version 2.3
Last Updated: January 24, 2003
All rights reserved
Copyright  Topcon Positioning Systems, Inc 2003
INTRODUCTION / TERMS AND CONDITIONS
Thank you for purchasing your Topcon receiver. The materials available
in this Manual (the "Manual") have been prepared by Topcon
Positioning Systems, Inc. (“TPS”) for owners of Topcon products. It is
designed to assist owners with the use of GRIL (which is used with the
Topcon receiver) and its use is subject to these terms and conditions
(the “Terms and Conditions”).
PLEASE READ THESE TERMS AND CONDITIONS CAREFULLY.
PROFESSIONAL USE. Topcon receivers are designed to be used by a
professional. The user is required to be a professional surveyor or have
a good knowledge of surveying, in order to understand the user and
safety instructions before operating, inspecting or adjusting. Always
wear the required protectors (safety shoes, helmet, etc.) when operating
the receiver.
COPYRIGHT. All information contained in this Manual is the intellectual
property of, and copyrighted material of TPS. All rights are reserved.
You may not use, access, copy, store, display, create derivative works
of, sell, modify, publish, distribute, or allow any third party access to,
any graphics, content, information or data in this Manual without TPS’
express written consent and may only use such information for the care
and operation of your Receiver. The information and data in this Manual
are a valuable asset of TPS and are developed by the expenditure of
considerable work, time and money, and are the result of TPS ' original
selection,
coordination
and
arrangement.
TRADEMARKS. Topcon® and Topcon Positioning Systems™ are
trademarks of TPS. Windows® is a registered trademark of Microsoft
Corporation. Product and company names mentioned herein may be
trademarks
of
their
respective
owners.
DISCLAIMER OF WARRANTY:
EXCEPT FOR ANY WARRANTIES IN A
WARRANTY CARD ACCOMPANYING THE RECEIVER, THIS MANUAL AND THE
RECEIVER ARE PROVIDED “AS-IS.” THERE ARE NO OTHER WARRANTIES. TPS
DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
ANY PARTICULAR USE OR PURPOSE. TPS AND ITS DISTRIBUTORS SHALL NOT
BE LIABLE FOR TECHNICAL OR EDITORIAL ERRORS OR OMISSIONS CONTAINED
HEREIN; NOR FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES RESULTING
FROM THE FURNISHING, PERFORMANCE OR USE OF THIS MATERIAL, THE
SOFTWARE OR THE RECEIVER. SUCH DISCLAIMED DAMAGES INCLUDE BUT
ARE NOT LIMITED TO LOSS OF TIME, LOSS OR DESTRUCTION OF DATA, LOSS OF
PROFIT, SAVINGS OR REVENUE, OR LOSS OF THE PRODUCT’S USE. IN ADDITION
TPS IS NOT RESPONSIBLE OR LIABLE FOR DAMAGES OR COSTS INCURRED IN
CONNECTION WITH OBTAINING SUBSTITUTE PRODUCTS OR SOFTWARE,
CLAIMS BY OTHERS, INCONVENIENCE, OR ANY OTHER COSTS. IN ANY EVENT,
TPS SHALL HAVE NO LIABILITY FOR DAMAGES OR OTHERWISE TO YOU OR ANY
OTHER PERSON OR ENTITY IN EXCESS OF THE PURCHASE PRICE FOR THE
RECEIVER.
ii
LICENSE AGREEMENT. Use of the Floader Software and any other computer
programs or software supplied by TPS or downloaded from a TPS website (the
“Software”) in connection with a Topcon receiver constitutes acceptance of these
Terms and Conditions in this Manual and an agreement to abide by these Terms and
Conditions. The user is granted a personal, non-exclusive, non-transferable license to
use such Software under the terms stated herein and in any case only with a single
receiver or single computer. You may make one (1) backup copy of the Software.
Otherwise, the Software may not be copied or reproduced. You may not assign or
transfer the Software or this license without the express written consent of TPS. This
license is effective until terminated. You may terminate the license at any time by
destroying the Software and Manual. TPS may terminate the license if you fail to
comply with any of the Terms or Conditions. You agree to destroy the Software and
manual upon termination of your use of the receiver. All ownership, copyright and
other intellectual property rights in and to the Software belong to TPS. If these license
terms are not acceptable, return any unused Software and manual.
CONFIDENTIALITY. This Manual, its contents and the Software (collectively,
the “Confidential Information”) are the confidential and proprietary information
of TPS. You agree to treat TPS’ Confidential Information with a degree of care
no less stringent that the degree of care you would use in safeguarding your
own most valuable trade secrets. Nothing in this paragraph shall restrict you
from disclosing Confidential Information to your employees as may be
necessary or appropriate to operate or care for the receiver. Such employees
must also keep the Confidential Information confidential. In the event you
become legally compelled to disclose any of the Confidential Information, you
shall give TPS immediate notice so that it may seek a protective order or other
appropriate remedy.
WEBSITE; OTHER STATEMENTS. No statement contained at the TPS website
(or any other website) or in any other advertisements or TPS literature or made by an
employee or independent contractor of TPS modifies these Terms and Conditions
(including the Software license, warranty and limitation of liability).
SAFETY. Improper use of a Topcon receiver can lead to injury to persons or property
and/or malfunction of the product. The receiver should only be repaired by authorized
TPS warranty service centers. Users should review and heed the safety warnings in
the manual accompanying the receiver.
MISCELLANEOUS. The above Terms and Conditions may be amended, modified,
superseded, or canceled, at any time by TPS. The above Terms and Conditions will be
governed by, and construed in accordance with, the laws of the State of California,
without reference to conflict of laws.
iii
Table of Contents
1
Introduction............................................................................................................................................... 1
1.1
What is GRIL? .................................................................................................................................. 1
1.2
How is GRIL used?........................................................................................................................... 1
1.3
Objects .............................................................................................................................................. 1
1.4
Receiver Input Language .................................................................................................................. 1
1.5
Object Identifier ................................................................................................................................ 3
2 Receiver commands.................................................................................................................................. 4
2.1
set and print....................................................................................................................................... 4
2.2
get ..................................................................................................................................................... 5
2.3
list ..................................................................................................................................................... 6
2.4
create................................................................................................................................................. 7
2.5
remove .............................................................................................................................................. 8
2.6
em (enable message) ......................................................................................................................... 8
2.7
out (output message) ....................................................................................................................... 10
2.8
dm (disable message)...................................................................................................................... 10
2.9
event (Generating “Free-Form Events”) ......................................................................................... 11
2.10 init ................................................................................................................................................... 11
3 Receiver parameters................................................................................................................................ 13
3.1
General parameters ......................................................................................................................... 13
3.2
Automatic File Rotation Mode (AFRM)......................................................................................... 17
3.3
Two simultaneous log-files parameters .......................................................................................... 19
3.4
Antenna related parameters............................................................................................................. 20
3.5
Frequency source ............................................................................................................................ 21
3.6
GSM modem parameters ................................................................................................................ 22
3.6.1
Step-by-step instruction on using TPS receivers with GSM modems..................................... 24
3.7
Power management parameters ...................................................................................................... 26
3.8
Communication parameters ............................................................................................................ 30
3.8.1
TPS Eurocard J502 connector I/O pin support........................................................................ 35
3.9
Parameters to support logging history............................................................................................. 36
3.10 Output time-frame parameters ........................................................................................................ 37
3.11 Session programming...................................................................................................................... 38
3.11.1 Introduction............................................................................................................................. 38
3.11.2 Parameters............................................................................................................................... 39
3.12 Notebook parameters ...................................................................................................................... 46
3.13 Raw data management and signal processing parameters............................................................... 47
3.13.1 Loop parameters...................................................................................................................... 53
3.14 Positioning & Timing parameters ................................................................................................... 56
3.14.1 Datum parameters ................................................................................................................... 64
3.14.2 Filtering position estimates ..................................................................................................... 70
3.15 PPS signal parameters..................................................................................................................... 71
3.16 Event signal parameters .................................................................................................................. 74
3.16.1 How to synchronize the receiver clock with an external event generator ............................... 76
3.16.2 How to “coherently synchronize” the receiver’s frequency/clock with an external generator’s
frequency/clock....................................................................................................................................... 76
3.17 Differential mode parameters.......................................................................................................... 77
3.17.1 Base Station parameters .......................................................................................................... 78
3.17.1.1
RTCM related Base Station parameters .......................................................................... 80
3.17.1.2
CMR related Base Station parameters ............................................................................ 83
3.17.1.3
JPS related Base Station parameters ............................................................................... 85
3.17.2 Rover Station parameters ........................................................................................................ 86
3.17.2.1
RTCM related Rover Station parameters ........................................................................ 86
3.17.2.2
CMR related Rover Station parameters .......................................................................... 89
3.17.2.3
JPS related Rover Station parameters ............................................................................. 89
3.17.2.4
Carrier phase differential parameters .............................................................................. 90
3.17.2.4.1 Multiple reference stations ....................................................................................... 100
3.17.2.4.2 Ambiguity fixing statistics ....................................................................................... 102
3.17.2.5
Code differential parameters ......................................................................................... 104
3.17.2.5.1 Multi-base DGPS parameters ................................................................................... 105
iv
3.18 MINTER parameters..................................................................................................................... 108
3.18.1 Resume data recording after power failure ........................................................................... 110
3.19 Parameters governing Optimized Real Time Application messages ............................................ 111
3.20 RAIM parameters ......................................................................................................................... 111
3.21 Parameters related to NMEA messages ........................................................................................ 112
3.21.1 Resolution parameters for fractional data fields in NMEA messages................................... 113
3.22 WAAS/EGNOS parameters.......................................................................................................... 114
3.22.1 Step-by-step instructions about using TPS receivers in WAAS/EGNOS DGPS mode ........ 117
3.23 OmniSTAR parameters................................................................................................................. 118
3.24 Receiver options ........................................................................................................................... 120
3.25 Obsolete parameters...................................................................................................................... 126
4 Receiver Messages................................................................................................................................ 127
4.1
General Format of TPS Messages................................................................................................. 127
4.1.1
Message Identifier................................................................................................................. 127
4.1.2
The Length of Message Body Descriptor .............................................................................. 127
4.1.3
Message Body....................................................................................................................... 127
4.1.4
Non-standard Messages ........................................................................................................ 127
4.1.5
Parsing Message Stream ....................................................................................................... 128
4.1.5.1 Synchronization ................................................................................................................ 128
4.1.5.2 Changing to the Next Message ......................................................................................... 129
4.2
Attention users of Pinnacle™ and other TPS post-processing software ....................................... 129
4.3
Predefined Messages..................................................................................................................... 130
4.3.1
General Notes........................................................................................................................ 130
4.3.2
General Purpose Messages.................................................................................................... 131
4.3.2.1 [JP] Javad Positioning Systems File Identifier.................................................................. 131
4.3.2.2 [MF] Message Format and Identifier {9} ......................................................................... 132
4.3.2.3 [SE] Security {6} .............................................................................................................. 132
4.3.2.4 [||] Epoch End {1}............................................................................................................. 132
4.3.2.5 [::] Epoch Time {5} .......................................................................................................... 133
4.3.3
Time Messages...................................................................................................................... 133
4.3.3.1 [RD] Receiver Date {6}.................................................................................................... 134
4.3.3.2 [~~] Receiver Time {5} .................................................................................................... 134
4.3.3.3 [UO] Universal Coordinated Time (UTC) parameters {24}............................................. 134
4.3.3.4 [GT] GPS Time {7} .......................................................................................................... 134
4.3.3.5 [TO] Receiver Reference Time to Receiver Time Offset {9}........................................... 135
4.3.3.6 [DO] Derivative of Receiver Time Offset {5}.................................................................. 135
4.3.3.7 [OO] Oscillator Offset {5}................................................................................................ 135
4.3.3.8 [BP] Rough Indicator of Receiver Synchronization to Reference Time {5} .................... 135
4.3.3.9 [NT] GLONASS Time {7} ............................................................................................... 135
4.3.3.10
[NO] GLONASS to Receiver Time Offset {6} ............................................................ 135
4.3.3.11
[GO] GPS to Receiver Time Offset {6}........................................................................ 136
4.3.4
Optimized Real-Time Application Messages ....................................................................... 136
4.3.4.1 [rE] Reference Epoch {10} ............................................................................................... 137
4.3.4.2 [rM] Raw Measurements {var}......................................................................................... 139
4.3.4.3 [rV] Receiver’s Position and Velocity {42} ..................................................................... 141
4.3.5
Position/Velocity Messages .................................................................................................. 142
4.3.5.1 [PO] Cartesian Position {30}............................................................................................ 142
4.3.5.2 [VE] Cartesian Velocity {18} ........................................................................................... 142
4.3.5.3 [PV] Cartesian Position and Velocity {46}....................................................................... 142
4.3.5.4 [PG] Geodetic Position {30}............................................................................................. 143
4.3.5.5 [DP] Dilution of Precision (DOP) Parameters {14} ......................................................... 143
4.3.5.6 [SG] Position & Velocity RMS Errors (Horizontal and Vertical){18}............................. 143
4.3.5.7 [SP] Position Covariance Matrix {42}.............................................................................. 143
4.3.5.8 [SV] Velocity Covariance Matrix {42} ............................................................................ 144
4.3.5.9 [VG] NEU Velocity {18} ................................................................................................. 144
4.3.5.10
[BL] Base Line {34} ..................................................................................................... 144
4.3.5.11
[BI] Base station information {28} ............................................................................... 144
4.3.5.12
[PS] Position Statistics {9} ........................................................................................... 145
4.3.5.13
[ST] Solution Time-Tag {6} ......................................................................................... 145
4.3.5.14
[PT] Time of Continuous Position Computation {5}.................................................... 146
v
Satellite Data Messages ........................................................................................................ 146
4.3.6
4.3.6.1 [SI] Satellite Indices {nSats+1} ........................................................................................ 146
4.3.6.2 [NN] GLONASS Satellite System Numbers {nSats+1}................................................... 147
4.3.6.3 [EL] Satellite Elevations {nSats+1}.................................................................................. 147
4.3.6.4 [AZ] Satellite Azimuths {nSats+1} .................................................................................. 147
4.3.6.5 C/A Pseudorange Measurements ...................................................................................... 147
4.3.6.5.1 [RC] Full C/A Pseudoranges {8*nSats+1} ................................................................ 147
4.3.6.5.2 [rc] Delta C/A Pseudoranges {4*nSats+1} ................................................................ 148
4.3.6.6 P/L1 Pseudorange Measurements ..................................................................................... 148
4.3.6.6.1 [R1] Full P/ L1 Pseudoranges {8*nSats+1}............................................................... 148
4.3.6.6.2 [r1] Delta P/L1 Pseudoranges {4*nSats+1} ............................................................... 148
4.3.6.6.3 [1R] Relative P/L1 Pseudoranges {4*nSats+1} ......................................................... 148
4.3.6.6.4 [1r] Relative Delta P/L1 Pseudoranges {2*nSats+1}................................................. 149
4.3.6.7 P/L2 Pseudorange Measurements ..................................................................................... 149
4.3.6.7.1 [R2] Full P/L2 Pseudoranges {8*nSats +1}............................................................... 149
4.3.6.7.2 [r2] Delta P/L2 Pseudoranges {4*nSats+1} ............................................................... 149
4.3.6.7.3 [2R] Relative P/L2 Pseudoranges {4*nSats+1} ......................................................... 149
4.3.6.7.4 [2r] Relative Delta P/L2 Pseudoranges {2*nSats+1}................................................. 150
4.3.6.8 Pseudorange Smoothing Corrections&Intervals ............................................................... 150
4.3.6.8.1 [CC] Long C/A Pseudorange Smoothing Corrections {6*nSats+1}.......................... 150
4.3.6.8.2 [cc] Short C/A Pseudorange Smoothing Corrections {2*nSats+1} ........................... 150
4.3.6.8.3 [C1] Long P/L1 Pseudorange Smoothing Corrections {6*nSats+1}.......................... 151
4.3.6.8.4 [c1] Short P/L1 Pseudorange Smoothing Corrections {2*nSats+1} .......................... 151
4.3.6.8.5 [C2] Long P/L2 Pseudorange Smoothing Corrections {6*nSats+1}.......................... 151
4.3.6.8.6 [c2] Short P/L2 Pseudorange Smoothing Corrections {2*nSats+1} .......................... 151
4.3.6.9 C/A Carrier Phase Measurements ..................................................................................... 152
4.3.6.9.1 [PC] Full C/A Carrier Phases {8*nSats+1}................................................................ 152
4.3.6.9.2 [pc] 32-bit C/A Carrier Phases {4*nSats+1}.............................................................. 152
4.3.6.9.3 [CP] C/A Carrier Phases Computed Relative to [RC] Pseudoranges {4*nSats+1} ... 153
4.3.6.9.4 [cp] C/A Carrier Phases Computed Relative to [rc] Pseudoranges {4*nSats+1}....... 153
4.3.6.10
P/L1 Carrier Phase Measurements ................................................................................ 153
4.3.6.10.1 [P1] Full P/L1 Carrier Phases {8*nSats+1} ............................................................. 153
4.3.6.10.2 [p1] 32-bit P/L1 Carrier Phases {4*nSats+1} .......................................................... 153
4.3.6.10.3 [1P] P/L1 Carrier Phases Computed Relative to [RC] Pseudoranges {4*nSats+1}. 154
4.3.6.11
[1p] P/L1 Carrier Phases Computed Relative to [rc] Pseudoranges {4*nSats+1} ........ 155
4.3.6.12
P/L2 Carrier Phase Measurements ................................................................................ 155
4.3.6.12.1 [P2] Full P/L2 Carrier Phases {8*nSats+1} ............................................................. 155
4.3.6.12.2 [p2] 32-bit P/L2 Carrier Phases {4*nSats+1} .......................................................... 155
4.3.6.12.3 [2P] P/L2 Carrier Phases Computed Relative to [RC] Pseudoranges {4*nSats+1}. 156
4.3.6.12.4 [2p] P/L2 Carrier Phases Computed Relative to [rc] Pseudoranges {4*nSats+1} ... 156
4.3.6.13
Doppler ......................................................................................................................... 157
4.3.6.13.1 [DC] C/A Doppler {4*nSats+1} .............................................................................. 157
4.3.6.13.2 [D1] P/L1 Doppler {4*nSats+1}.............................................................................. 157
4.3.6.13.3 [D2] P/L2 Doppler {4*nSats+1}.............................................................................. 157
4.3.6.14
Carrier to Noise Ratio ................................................................................................... 157
4.3.6.14.1 [EC] C/A Carrier to Noise Ratio {nSats+1}............................................................. 157
4.3.6.14.2 [E1] P/L1 Carrier to Noise Ratio {nSats+1} ............................................................ 157
4.3.6.14.3 [E2] P/L2 Carrier to Noise Ratio {nSats+1} ............................................................ 158
4.3.6.15
[SS] Satellite navigation status {nSats+2} .................................................................... 158
4.3.6.16
[TC] Time Since Last Loss-of-Lock on particular C/A signal {nSats*2+1} ................ 158
4.3.6.17
[TT] Time Since Last Loss-of-Lock on all C/A signals {5} ......................................... 158
4.3.6.18
[GA] GPS Almanac {47}.............................................................................................. 159
4.3.6.19
[GE] GPS Ephemeris {123} ......................................................................................... 160
4.3.6.20
[NA] GLONASS Almanac {46}................................................................................... 161
4.3.6.21
[NE] GLONASS Ephemeris {80} ................................................................................ 162
4.3.6.22
[IO] Ionospheric Parameters {39} ................................................................................ 163
4.3.6.23
[ID] Ionospheric delays {8*nSats+1} ........................................................................... 163
4.3.6.24
[FC] C/A Signal Lock Loop Flags {nSat*2 + 1} .......................................................... 163
4.3.6.25
[F1] P/L1 Signal Lock Loop Flags {nSat*2 + 1}.......................................................... 164
4.3.6.26
[F2] P/L2 Signal Lock Loop Flags {nSat*2 + 1}.......................................................... 164
vi
WAAS messages................................................................................................................... 165
4.3.7
4.3.7.1 [WE] WAAS Ephemeris Message {39} ........................................................................... 165
4.3.7.2 [WA] WAAS Almanac Message {23} ............................................................................. 165
4.3.7.3 [WO] WAAS Time Message {31} ................................................................................... 166
4.3.8
Timing signal and Event marker Messages........................................................................... 166
4.3.8.1 [XA], [XB] External Event Messages {10} ...................................................................... 166
4.3.8.2 [ZA], [ZB] PPS offset {5} ................................................................................................ 166
4.3.8.3 [YA], [YB] The “receiver time vs. reference time” offset at PPS generation time {10} .. 167
4.3.9
[==] Event {var} ................................................................................................................... 167
4.3.10 [LT] Message Output Latency {2} ....................................................................................... 167
4.3.11 [>>] Wrapped Echo {var}..................................................................................................... 168
4.3.12 [LH] Logging History {var} ................................................................................................. 168
4.3.13 ASCII Messages.................................................................................................................... 169
4.3.13.1
TPS Format for ASCII messages .................................................................................. 169
4.3.13.1.1 NMEA-Specific Format Limitations........................................................................ 170
4.3.13.2
NMEA sentences........................................................................................................... 171
4.3.13.2.1 Introduction .............................................................................................................. 171
4.3.13.2.2 General Format of Approved NMEA Sentences ...................................................... 171
4.3.13.2.3 Formats of Supported NMEA sentences .................................................................. 172
4.3.13.2.3.1 TPS proprietary NMEA sentences .................................................................... 172
4.3.13.2.3.1.1 ATT – Attitude parameters......................................................................... 172
4.3.13.2.3.2 GGA – Global Positioning System Fix Data..................................................... 173
4.3.13.2.3.3 GLL – Geographic Position – Latitude/Longitude............................................ 174
4.3.13.2.3.4 GNS – GNSS Fix Data...................................................................................... 175
4.3.13.2.3.5 GRS – GNSS Range Residuals ......................................................................... 176
4.3.13.2.3.6 GSA – GNSS DOP and Active Satellites.......................................................... 177
4.3.13.2.3.7 GST – GNSS Pseudorange Error Statistics ....................................................... 178
4.3.13.2.3.8 GSV – GNSS Satellites in View ....................................................................... 178
4.3.13.2.3.9 RMC – Recommended Minimum Specific GNSS Data.................................... 179
4.3.13.2.3.10 HDT – Heading, True...................................................................................... 180
4.3.13.2.3.11 VTG – Course Over Ground and Ground Speed............................................. 180
4.3.13.2.3.12 ROT – Rate of turn.......................................................................................... 180
4.3.13.2.3.13 ZDA – Time & Date........................................................................................ 180
4.3.13.3
TPS Proprietary ASCII messages ................................................................................. 181
4.3.13.3.1 [DL] Data link status message.................................................................................. 181
4.3.13.3.2 [ER] Error {var}....................................................................................................... 182
4.3.13.3.3 [PM] Parameters {var}............................................................................................. 182
4.3.13.3.4 [GS] Get GPS SV Status .......................................................................................... 183
4.3.13.3.5 [RS] Reference station status ................................................................................... 185
4.3.13.3.6 [JE] Extended Jamming Suppressor information ..................................................... 185
4.3.13.3.7 [JI] Jamming Suppressor information ...................................................................... 187
4.3.13.3.8 [MS] RTCM status message..................................................................................... 187
4.3.13.3.9 [TX] Text message ................................................................................................... 188
4.3.13.3.10 [RM] Results of RAIM processing......................................................................... 188
4.3.13.3.11 [NP] Navigation position........................................................................................ 189
4.3.13.3.12 [MP] Position in given map projection or local coordinates .................................. 191
4.3.13.3.13 [NS] Get GLONASS SV Status ............................................................................. 192
4.3.13.3.14 [RE] Reply {var}.................................................................................................... 192
4.3.13.3.15 [TR] “Time residuals” ............................................................................................ 192
4.3.13.3.16 [TM] Clock offsets and their time derivatives........................................................ 193
4.3.13.3.17 [RP] Reference station parameters ......................................................................... 194
4.3.13.3.18 [RK] RTK parameters ............................................................................................ 195
4.3.13.3.19 [AP] Position covariance matrix ............................................................................ 196
4.3.13.3.20 [AB] Baseline length.............................................................................................. 196
4.3.14 RTCM messages ................................................................................................................... 197
4.3.14.1
Introduction to RTCM messages .................................................................................. 197
4.3.14.2
List of RTCM Messages Supported by TPS Receiver .................................................. 197
4.3.15 CMR messages...................................................................................................................... 199
4.3.15.1
Introduction to CMR messages ..................................................................................... 199
4.3.15.2
List of CMR Messages Supported by TPS Receivers ................................................... 199
vii
Message groups and sets............................................................................................................... 200
4.4
4.4.1
Message groups..................................................................................................................... 200
4.4.2
Message sets ......................................................................................................................... 201
5 Step-by-step instructions about using TPS receivers in differential modes .......................................... 204
5.1
Set up base station......................................................................................................................... 204
5.2
Set up rover station ....................................................................................................................... 204
5.3
Disable base mode for base station ............................................................................................... 205
5.4
Disable rover mode for rover station ............................................................................................ 205
6 Step-by-step instruction about using TPS receivers in Multiple reference stations mode .................... 206
6.1
Set up base station......................................................................................................................... 206
6.2
Set up rover receiver ..................................................................................................................... 207
7 Daisy Chain feature .............................................................................................................................. 209
8 Appendix A. Message Scheduling Flags ............................................................................................. 212
9 Appendix B. Format and Naming Conventions.................................................................................... 214
10
Appendix C. Computing 8-Bit Checksum for Receiver Commands & Messages............................ 215
11
Appendix D. TPS Data Transfer Protocol........................................................................................ 216
11.1 Protocol description ...................................................................................................................... 216
11.2 CRC16 calculation algorithm........................................................................................................ 217
12
Appendix E. Frame format for Free-Form Events............................................................................ 220
12.1 Preface .......................................................................................................................................... 220
12.2 General format of TPS Free-Form Events .................................................................................... 220
12.3 Currently supported TPS Free-Form Events................................................................................. 220
12.3.1 _ANT Event (“ANTENNA TYPE”)..................................................................................... 220
12.3.2 _ANH Event (“ANTENNA HEIGHT”) ............................................................................... 221
12.3.3 _DYM Event (“DYNAMICS”)............................................................................................. 221
12.3.4 _SIT Event (“SITE”)............................................................................................................ 221
12.3.5 _CAN Event (“CANCEL”)................................................................................................... 221
12.3.6 _SAV Event (“SAVE”)........................................................................................................ 222
12.3.7 Site Scope ............................................................................................................................. 222
12.3.8 _DSC Event (“DESCRIPTION”) ......................................................................................... 222
12.3.9 _FEA Event (“FEATURE”).................................................................................................. 223
12.4 Additional comments on _CAN and _SAV .................................................................................. 224
13
Appendix F. Amount of Data Transmitted by Reference Station in Differential modes .................. 225
13.1 Code Differential Mode ................................................................................................................ 225
13.2 Real Time Kinematic .................................................................................................................... 226
13.2.1 Protocol Using RTCM Message Types 18 and 19 (or 20 and 21). ....................................... 226
13.2.2 CMR and CMR Plus protocols ............................................................................................. 226
14
Appendix G. TPS Receiver Parameter Flowchart............................................................................. 228
15
Appendix H. Reference Ellipsoids and Local Datums...................................................................... 234
16
References......................................................................................................................................... 247
Glossary ........................................................................................................................................................ 248
Index ............................................................................................................................................................. 256
viii
1 Introduction
1.1
What is GRIL?
GRIL is an interfacing language enabling the user to effectively communicate with
GPS/GLONASS receivers by accessing all of their capabilities and functions.
GRIL represents a generic receiver language structure for the entire range of TPS
hardware. This language structure is receiver-independent and open to future
modification or expansion. GRIL is based on a unified approach allowing the user
to identify a TPS receiver with an appropriate set of “named objects”.
Communication with these objects is then achieved through predefined
commands and messages. There are no specific constraints on the number or
type of the receiver objects used.
1.2
How is GRIL used?
Any system communicating with the TPS receiver through one of its ports (serial,
parallel or modem) will use GRIL command/messages to accomplish the required
task. A pair of typical applications where GRIL plays a very important part are,
first, using hand-held controllers to communicate with the receivers during field
operation in survey and RTK projects or, second, when downloading data from the
receivers into desktop systems for further post processing. These examples are
just two from a long list of possibilities where GRIL is an absolute must. One
important feature of GRIL is that it can be effectively used for the automatic or
manual control of TPS receivers. For manual control, the user will enter necessary
GRIL commands into the receiver through a terminal, for example, typing in the
command line of PC-CDU.
1.3
Objects
In the context of the model that GRIL is based on, a TPS receiver is identified with
a set of “named objects”. “Object” is defined as a hardware or software entity of
the receiver's that can be addressed, set, or queried. Hardware entities are
commonly referred to as “devices”, whereas firmware objects are normally files
and parameters. Receiver ports and memory modules are all good examples of
devices. Note that a set of devices may have a unique name and may be treated
as an object. All devices, files and parameters are treated in a uniform way by
GRIL. Every object has an associated set of properties that can be accessed,
defined, and/or changed through GRIL.
1.4
Receiver Input Language
The receiver input language comprises case sensitive statements. Statements,
which are the minimal entities that the receiver can handle, are delimited with linefeed (LF) and/or carriage-return (CR) characters.
We will pay most attention to command/response statements in this reference
manual, so it is appropriate to describe the broad notion of the language here.
Each statement is represented by a list of elements enclosed inside curly braces
and delimited with commas (e.g. {element1,element2,element3}). In turn,
elements of a statement may themselves consist of some other elements (e.g.
{e1,{ee21,ee22}}). Strictly speaking, an element may be a name, a constant, a list
1
of elements, or may just be empty. For constants, they may be integers, floats,
string literals or symbolic constants. Note that the syntax of constants must be the
same as accepted in the C language. Should there occur an ambiguous name in a
statement (when it is unclear whether this name belongs to an object or a
symbolic constant), the receiver will associate this name with an object.
The simplest type of statement is a command statement. In a command
statement, its first element, called “command”, denotes an action made, whereas
all the following elements (if any) designate this command's arguments. Note that
curly braces surrounding the command statement can be omitted. Also note that
we often use the shortened term “command” for “command statement” to refer to
both the command element and the corresponding arguments.
The GRIL command set is simple and relatively small. Arguments are made up of
objects and their options (if any). An object may have one or more optional values
(“option list”) associated with it. In each statement, the command element and its
object(s) are separated by commas («,») whereas options are delimited from their
objects with colons («:»). The following are examples of valid statement formats:
1) Command,object,
2) Command,object: option,
3) Command,object1,object2,
4) Command,object1:option1,object2:option2.
To assign option values to a command argument, as shown above, we append
the option list to that argument. If the option list consists of only one element, curly
braces
surrounding
the
option
list
may
be
omitted
(e.g.
{elem1:{10},elem2:{20}} is equivalent to {elem1:10,elem2:20}). If the option list is
attached to a list of elements, options will be set for each element in the list, e.g.
{elem1,elem2}:10 is equivalent to {elem1:10,elem2:10}. If an option is attached to
a given element, then this option takes precedence over any option attached to a
surrounding list. When no options are specified, default values are assumed.
Possible options, their relative positions, meaning and default values are
described in 4.4. A prefix in the form of “%string%”, called a statement identifier,
can be added to any command, even if empty. The identifier, if present, is copied
unchanged by the receiver into the response message for the command. Any
statement with an identifier will always generate a response automatically. A
statement that contains only an identifier is also allowed; in such a case, the
receiver will generate a response message to the statement containing only the
identifier. The “string” part of the identifier may also be empty (i.e. “%%” is a valid
identifier).
It is possible to enable the checksum mechanism when communicating with the
receiver. In other words, any command may be issued with or without the
corresponding checksum. The checksum, which is actually a “check byte” in
hexadecimal format preceded by the auxiliary character @, is appended to the
end of the statement. When running a command with the checksum, the receiver
will compare the input checksum HH against that computed by the firmware.
Checksum is computed starting with the statement's first non-blank character until
the @ character is reached. Note that the @ character is also used to compute
the checksum. For more information on the checksum technique that TPS
receivers utilize, see 10.
2
1.5
Object Identifier
As mentioned in the introduction, a receiver is considered as a set of objects
(devices, files and parameters) in the context of the GRIL model. Each receiver
object is uniquely identified. Objects in the receiver are logically organized into
groups. A group itself is also an object. The object name is unique inside the
group to which the object belongs. Thus all objects in the receiver are organized
into a tree-like hierarchy starting at the single root group. This representation
resembles the organization of files into directories (folders) that most computer
users are familiar with. Object name should contain only alphanumeric characters
or an underscore and should not begin with a digit. With the object hierarchy, a
unique object identifier is built from the names of all groups to which the object
belongs. The identifier can be considered as the path from the root group to the
object, starting from the root group and using the forward slash (“/”) as the
delimiter.
Some examples of object identifiers are
i)
Receiver ID: /par/rcvid
ii)
Contents of the file NAME: /log/NAME
iii)
Serial Port A baud rate: /par/dev/ser/a/rate
Note that all the names for receiver parameters begin with /par. For our purpose
in this document, we should mention that in addition to /par for parameters, the
receiver root list includes /dev for devices, /log for log files and /msg for
various supported messages. In addition, the receiver root list includes /cur for
references to current objects (e.g. current communication port and current log
file).
Please refer to Appendix G for a complete GRIL 2.2 Receiver Parameter
Flowchart. This flowchart will allow the user to easily navigate through the whole
range of GRIL parameters. Just move the cursor onto the desired parameter’s
endnode (the cursor will look as
then) and click on it. After that, the user will
automatically go to the page on which this parameter is described in detail.
3
2 Receiver commands
In this section, the commands applicable to all of the TPS receivers currently
available on the market will be described. As mentioned earlier, GRIL's flexibility
allows for future expansion of the current command list or use of only part of the
existing command list.
2.1
set and print
We begin this section with general information about the “set” and “print”
commands.
The set command allows the user to change the value applied to the named
object. This command generates no response unless it starts with a %x…x%
prefix (here x…x designates an arbitrary piece of text or an empty string) or an
error will occur1.
Format:
set,object_name,value
Options:
none
If object_name does not begin with “/”, the affix /par/ will be automatically
inserted before object name prior to executing this command.
The print command allows the user to query the value assigned to the
corresponding named object. The first argument of the print command is the
object identifier. This command will always generate a response message. If the
object specified in the command statement does not exist, an error will be
reported.
Format:
print,object_name
Options:
either no option or the string “name”
If object name does not begin with “/”, then /par/ is automatically inserted
before the object name prior to executing this command.
Below in this section we will familiarize the reader with GRIL objects (also referred
to as GRIL parameters) which are specified with the set commands and/or are
queried with the print commands. Most of these objects are both readable and
writable; some of them, however, are either readable only or writable only. In fact
the read-only or write-only limitations are not necessarily inherent in some of the
commands. In the future, such limitations will be obsolete, where possible.
Note that GRIL allows you to specify “combined” objects in the print
command, i.e. you can specify an object name2 that corresponds to more than
one individual parameter. For example, after executing the command
print,/par/raw , you will get the following receiver response:
RE010{100,100,50,7.0,
RE019 {off,off,3,10,5.0,25.0},
RE00A {25.0,3},
1
) Note that using a %x…x% prefix will force the receiver to “respond” to any command, not only
to set commands.
2
) Such object names are sometimes referred to as “partial” names. We can draw a parallel with
DOS directories and files: the difference between “combined” and individual parameters in GRIL is
in a way similar to the difference between directories and files in DOS.
4
RE00A {0.5,on},
RE00A 0.8,on,2,
RE013 {{normal,normal}},
RE00B {5,60,30},
RE00D {{on,on,on},
RE009 0,gps}}
This print format is not very convenient for use since merely the values of the
parameters are specified, not their names (obviously it can result in confusion).
You can easily avoid any confusion if you use the print command with the
options on or off. For example, if you send the command print,raw:on, the
receiver response will look as follows:
RE030/par/raw={msint=100,curmsint=100,smi=50,sml=7.0,
RE049
clp={loops=off,static=off,pll/order=3,wait=10,indband=5.0,co
mband=25.0},
RE019 pll={band=25.0,order=3},
RE019 gdl={band=0.5,adapt=on},
RE028 cagdl/band=0.8,clp2/loop=on,dopp/smi=2,
RE028 corr={ca={code=normal,carrier=normal}},
RE022 iono={maxdel=5,smi=60,minsmi=30},
RE01F rtm={meas={ca=on,p1=on,p2=on},
RE014 ver=0,tscale=gps}}
2.2
get
Command format:
get,name[:{timeout,blksize,period,phase}][,offset]
The get command instructs the receiver to download an object3 into the host
computer using the TPS Data Transfer Protocol (see Appendix D. TPS Data
Transfer Protocol). This command allows the user to correctly transfer even very
large log-files since this protocol guarantees effective error detection4. Also, this
command allows a logfile to be downloaded only partially, i.e. by using exclusively
the epochs meeting the specified period and phase. Please note the essential
difference between the get and print commands: the former is based on an
error-detection data exchange protocol whereas the latter is not.
The first argument should be an object identifier (name). If the object with the
specified name does not exist or can't be transferred, an error message is
generated.
The get command has the options “timeout in seconds” and “size of data block”.
The timeout option specifies how long the receiver will wait for an
acknowledgment from the host computer before returning to cmd mode. For
information about cmd mode, see chapter 3.8 on page 30. Default timeout is 10
seconds. The blksize option specifies the size of a data block transferred from
3
) Currently, you can't use the get command to download objects other than log-files.
4
) If PC-CDU detects an error in the transferred data block, it requests the receiver to re-send this
problem block.
5
the receiver to the computer at one time. This value ranges between 1 and 2048
bytes. Default blksize is 512 bytes.
The period option specifies the output interval in seconds. It is a non-negative
float parameter. Varies within a range of 0..86400.
The phase option specifies the output phase in seconds. It is a non-negative float
parameter. Varies within a range of 0..86400.
By using the above two options, the user can make the receiver download only
some of a logfile’s data. The receiver will download the data only for the epochs
{tdown} that satisfy the following equation:
tdown {modulo period } = phase
The last argument, offset, specifies the offset (in bytes) from the beginning of
the file transferred. If this argument is set to N, the receiver will skip the first N
bytes when downloading the object. If offset is not explicitly specified, the
receiver will start downloading from the very first byte (i.e. N=0).
If name doesn’t begin with a “/”character, the prefix “/log/” is automatically put
before the name prior to executing the get command.
Examples.
• Receive the contents of the file "NAME" using TPS data transfer protocol
get,/log/NAME
get,NAME
Receive the contents of the file "NAME" starting from byte 387 (counting bytes
from zero)
get,/log/NAME,387
Receive the contents of the file "my_logfile" starting from byte 3000.
Set timeout to half a minute and blksize to 1024 bytes.
get,my_logfile:{30,1024},3000
2.3
list
The list command allows the user to view a combined object's structure (also
see 2.1). Also, you use list to query message groups and sets (see 4.4).
This command has only one argument, which is the name of the object you want
to view. You can specify no argument. In this case the receiver assumes the
object “/log”.
Note that you can use the list command with the objects “/par”, “/log”, “/dev”
and “/cur”.
Examples.
• Obtain a list of existing log-files
list,/log
list
• Obtain a list of the current objects
list,/cur
• Obtain a list of parameters corresponding to the partial name (node) /par/raw
list,/par/raw
This command returns the following output:
RE016%%{msint,curmsint,smi,
RE035%% clp={loops,static,pll/order,wait,indband,comband},
RE014%% pll={band,order},
6
RE014%%
RE021%%
RE01C%%
RE01C%%
RE018%%
RE010%%
2.4
gdl={band,adapt},
cagdl/band,clp2/loop,dopp/smi,
corr={ca={code,carrier}},
iono={maxdel,smi,minsmi},
rtm={meas={ca,p1,p2},
ver,tscale}}
create
The create command allows the user to create a new object. Currently you can
create only log files. To create a new log-file, you should specify its name. A file
name can comprise only alphanumeric characters and the characters “_”
(underscore) and “-“ (minus sign).
You can specify no argument with this command thus making the receiver
automatically select an appropriate file name. If the specified file name doesn't
begin with “/”, then the prefix “/log/” is automatically inserted before such a name
prior to executing the command.
In addition, with this command you can assign a log-file which the created file will
be associated with. In this case, the create command has the values a|b (for
the receivers that do not support the two simultaneous log-files feature only a is
available). The default value is a.
Also, you use create to add new messages to the default set of messages (see
4.4).
Examples.
• Creating a new log-file with the automatically generated name
create
• Creating a new log-file with the user-defined name “NAME”.
create,/log/NAME
create,NAME
(these two versions are equivalent)
• Create the file FILE1 and associate it with /cur/file/a (/cur/log); the
default value of the option has been used.
create,FILE1
• Create the file FILE2 and associate it with /cur/file/b.
create,FILE2:b
Notes:
1. You can't delete an existing file with a create command.
2. If create succeeds, the object “/cur/log” will point to the new
“current” file.
3. If the receiver is recording messages into a log-file when you run
create, this log-file will be closed and the receiver will output messages
to the newly created log-file.
4. At receiver startup time, the current log-file is undefined. Recall that to
make your receiver automatically open a new file you should set the
7
parameter /par/button/auto to “always”. Note that the default value
of /cur/log is an empty name.
5. Automatically generated file names will depend on the date/time of their
creation.
2.5
remove
The remove command allows you to delete an existing log-file. If the specified file
name does not begin with “/”, then “/log/” will be automatically inserted before this
name prior to executing the command.
Also, you use remove to omit messages from the default set of
messages.
Examples.
• Deleting (removing) the log-file with the name “NAME”
remove,/log/NAME
remove,NAME
(both versions are equivalent)
• Deleting all log-files
remove,/log/
2.6
em (enable message)
The em command enables the periodic output of the specified messages into the
named object [target], which can be either a communication port or the current
log-file. If no target is specified, the receiver assumes the current terminal. If some
of the message names do not begin with “/”, then “/msg/” is automatically inserted
before all of these message names prior to executing the command. For
information about the messages suppoted by TPS receivers, see section 4 on
page 127.
Format: em,target,messages:options
Options:
period - message output interval in seconds. Non-negative float parameter. If set
to zero, the corresponding messages will be output at the highest possible rate5. If
not specified explicitly, this parameter will be set according to the rules described
in 4.4.
phase - message “output phase” in seconds. Non-negative float parameter. If not
specified explicitly, this parameter will be set according to the rules described in
4.4.
count - specifies how many times the message will be output. Non-negative
integer parameter. Note that unlike period, phase and flags there exists the
default value (specifically, zero) of count for the command “em”.
If the value of count is zero, an unlimited number of messages will be output.
5
) This rate will depend on the value of the parameter /par/raw/curmsint
8
flags - this bit-field parameter specifies which of the message scheduling flags are
set up for the given message(s). If not specified explicitly, this parameter will be
set according to the rules described in 4.4. For more information about message
scheduling flags, see Appendix A. Message Scheduling Flags.
Note: How do the related parameters period and phase govern the process of
message outputting? The receiver will output the message only at the receiver
times {tout} satisfying the following two equations:
tout = N·step,
tout {modulo period } = phase,
where
step is the value of the parameter /par/raw/curmsint expressed in
seconds,
N =0, 1, 2, 3…,
Note that the receiver time is counted from the start of the day in the specified
reference scale. Consider a couple of examples illustrating this mechanism:
• Suppose period = 10 s, phase = 2.2 s whereas step = 0.2 s. The receiver will
output the message at the moments 2.2 s, 12.2 s, 22.2 s, etc.
• Suppose period = 10 s, phase = 2.2 s whereas step = 0.5 s. The receiver will
not output the message since the above pair of simultaneous equations is
never satisfied.
• Suppose phase > period. The receiver won't output the message at all6.
Also note that if 86400 mod period ≠ 0, the actual interval between the last
message sent before the day rollover and the first message after will be different
from period.
Examples.
• Enable the output of the default set of messages to the current log-file using
the default output parameters (note that this information is expected sufficient
for most post-processing tasks)
em,/cur/log,/msg/def
em,/cur/log,def
(these two versions are equivalent)
• Enable output of the default set of messages to the current log-file every 10
seconds (as for the other output parameters, their default values will be used).
em,/cur/log,def:10
• Enable output of the default set of messages to the current terminal
em,,/msg/def
em,,def
• Enable output of JPS messages [~~] and [RD] to the current terminal
em,,/msg/jps/RT,/msg/jps/RD
em,,jps/RT,jps/RD
(these two versions are equivalent)
) It is correct, with one reservation. For more details about the parameter phase, please see the
description of the bit-field F_CHANGE in 7.
6
9
•
Enable output of NMEA messages GGA and ZDA to the current terminal,
respectively
em,,/msg/nmea/GGA
em,,/msg/nmea/ZDA
• This command enables the output of messages [SI], [EL] and [AZ] to port
A.
Only the first fifty [SI] messages will be output to the port. Note that
the interval between any two subsequent [SI] messages will be equal to 10
seconds, if they coincide, and 1 second, otherwise.
In addition, the receiver will be outputting both [EL] and [AZ]
messages every other second.
em,/dev/ser/a,jps/{SI:{1,10,50,0x2},EL,AZ}:2
•
Enable output of RTCM message types 1 and 31 to port B (period = 3
seconds), and RTCM message types 18, 19, 3, 22 to port C (period = 1
second for types 18 and 19, and 10 seconds for types 3 and 22):
em,/dev/ser/b,/msg/rtcm{/1,/31}:3.0
em,/dev/ser/c,/msg/rtcm{/18:1.0,/19:1.0,/22,/3}:10.0
•
Enable output of CMR message types “0” and “1” to port B with the period 1
second:
em,/dev/ser/b,/msg/cmr{/0,/1}:1.0
2.7
out (output message)
The out command outputs specified message(s) into the named object. This
object can be either a communication port or the current log-file. If no name is
specified, the receiver will output the messages into the current terminal. If the
specified message name doesn't begin with “/”, then “/msg/” will be automatically
inserted before the name prior to executing the command.
The out command has the same format and options as the em command. Note
that GRIL allows either command to have its default count.7 However, the default
values of count are different for the two commands (unity for out and zero for
em).
2.8
dm (disable message)
With the dm command, you will disable the periodic output of the specified
messages into the object target. Target can be either a communication port or the
current log-file. If no target is specified, the current terminal is assumed. If some of
the specified message names do not begin with “/”, the suffix “/msg/” will be
automatically inserted before such names prior to executing the command. Note
that this command has no options. For information about the messages suppoted
by TPS receivers, see section 4 on page 127.
Format:
dm[,target[,msg1[,msg2[…]]]
Examples.
7
) Recall that GRIL does not allow the commands em and out to have their default period, phase
and flags.
10
• Disable all of the messages being output into the current log-file. In fact, this is
equivalent to closing the current log-file. Note that after you have issued this
command, there is no current log-file in the receiver.
dm,/cur/log
• Disable all of the messages being outputted into the current terminal
dm
• Disable output of JPS message [~~] into the current terminal
dm,,/msg/jps/RT
• Disable output of the JPS message [~~] into the current log-file
dm,/cur/log,/msg/jps/RT
• Disable output of the NMEA messages GGA and ZDA into the current terminal.
dm,,nmea/GGA,nmea/ZDA
2.9
event (Generating “Free-Form Events”)
Format:
event,STRING
where STRING denotes an arbitrary string comprising up to 63 characters. If this
string contains any of the characters reserved for the receiver input language, you
should enclose this string in double quotes. You use the event command to make
the receiver generate a free-form event. If it is allowed to output event messages,
which have the header [==], into an output stream, issuing a free-form event will
result in automatic sending the corresponding event message into this stream.
An event message's data fields (see 4.3.9) are interpreted as follows:
- the data field “time” indicates the time of issuing the event command;
- the data field “id” is set to zero (note that zero designates free-form events);
- the data field “data” will contain the user specified string (i.e., the argument of
the corresponding event command).
The free-form event mechanism is intended for the control programs to forward
arbitrary text information to post-processing applications without interpreting this
information in the receiver. The receiver firmware's core never generates freeform events on its own. Nor does it somehow interpret the information generated
and output with the event commands.
All of the strings starting with the underscore character (ASCII 0x5F) are reserved
for some TPS application software (Pinnacle™, etc.). Care should be taken that
such strings are not used with the event commands unless you can't accomplish
your task otherwise. For a detailed description of free-form events reserved for
TPS tasks, see 12.
Example.
• Generate a free-form event with the string "Info1"
event,"Info1"
• The following example belongs to a class of free-form events reserved for TPS
application software
event," _DYM=STATIC"
2.10 init
With this command you can initialize any object allowing initialization. Good
examples of objects allowing initialization are the file system device, where files
are stored, and the non-volatile memory, where the receiver keeps its settings and
11
other information. Note that this command can make the receiver reboot when
initializing some types of objects.
Format:
init,name
Options:
none.
• Clear NVRAM. All the data stored in the NVRAM (receiver parameters,
almanacs, ephemerides, etc.) will be lost.
init,/dev/nvm/a
• Set all the parameters to the default values:
init,/par/
• Initialize the file system. All files stored in the receiver will be lost.
init,/dev/blk/a
12
3 Receiver parameters
This section contains the complete list of parameters used to control the operation
and behavior of the receiver.
Also note that all of the parameters, described hereafter in this section, are
intended for use only with set and/or print commands. For user convenience,
we will mark all of the read-only and write-only parameters with the icons
(printonly) and
(set-only), respectively.
Please note that when describing the valid range for a particular parameter we
usually specify not only the lower and upper bounds but also the corresponding
default value, which is underscored.
3.1
General parameters
♦ Reset receiver
Parameter: /par/reset
Type: boolean
Values: yes | no (or their synonyms8)
With the set,/par/reset,yes command, the receiver will be reset.
More precisely, this command instructs the receiver to close the current log file (if
it exists) and then execute hardware reset. From a functional point of view,
hardware reset is equivalent to turning the power off and then back on.
After executing this command, the parameter's default value “no” is immediately
restored.
♦ Turn power off
Parameter: /par/power
Type: boolean
Values: on | off
With the set,/par/power,off command, the receiver is turned off.
However, if the receiver is off, it can not be turned on with the command
set,/par/power,on.
♦ Allows receiver to enter exception mode on errors
Parameter: /par/except
Type: boolean
Values: on | off
on - receiver will enter “exception mode” if an unrecoverable error is detected.
off - receiver will reset itself and continue running when an unrecoverable error is
detected. Here “reset” means a hardware reset similar to what the command
set,/par/reset,y results in.
♦ Put receiver into sleep mode
Parameter: /par/sleep
Type: boolean
Values: on | off
8
) “y” and “on” are synonymous with “yes”; “n” and “off” are synonymous with “no”.
13
With the set,/par/sleep,on command, the receiver is changed to sleep
mode.
If a character is received on one of the serial ports while the receiver is in sleep
mode, power will be immediately switched on.
Also, the wake-up time option is available for this parameter.
For example, the command
set,/par/sleep,on:2d23h3m55s
instructs the receiver to go into sleep mode and then wake up on next Monday
(2d) at 23h3m55s GPS time.
♦ Enable/disable the receiver’s low power consumption mode
Parameter:/par/lpm
Values: on | off
With this parameter the processor can be enabled/disabled to go into sleep mode
when it is idling. The receiver will consume less power while the processor is in
sleep mode.
♦ Version information
Parameter Name
/par/rcv/ver/main
/par/rcv/ver/boot
/par/rcv/ver/hw
/par/rcv/ver/board
/par/rcv/ver/modem
/par/rcv/sn
Parameter Type
string
integer
string
integer
string
string[0..31]
Description
Firmware version
boot-loader version
Hardware version
board version
internal modem board version
Receiver serial number. The
value of this parameter could
be set only by a special
proprietary command.
♦ Receiver electronic identifier
Parameter: /par/rcv/id
This parameter contains a piece of text uniquely identifying your receiver.
♦ Time since last re-boot
Parameter: /par/rcv/uptime
The command print,/par/rcv/uptime returns a string in the format
day-hours-minutes-seconds, e.g. 0d01h31m12s.
♦ Receiver model
Parameter: /par/rcv/model
The corresponding print command returns a string from the list: LEGACY,
ODYSSEY, REGENCY, EUROCARD, JGG20, HE_GD, HE_GG, ODYSSEY_E,
HIPER, E_GGD, HE_GGD.
♦ Size of RAM in kilobytes
Parameter: /par/rcv/mem
14
♦ File system information
/par/dev/blk/a/size
/par/dev/blk/a/free
/par/dev/blk/a/block_size
/par/dev/blk/a/max_files
/par/dev/blk/a/files
/par/dev/blk/a/bad_blocks
/par/dev/blk/a/verify
/par/dev/blk/a
/par/dev/blk/a/ver
/par/dev/blk/a/tfmt
Total available memory in bytes
Free memory in bytes
File system block size in bytes
Maximum number of files the file system supports.
The file system will refuse to create a new file if the
current number of files on the disk is equal to the
value of this parameter.
Number of files
Number of bad blocks
Verification of block recording.
Returns off, fast, or slow.
This is an aggregate composed of the above five
values
File system version formatted as hexadecimal
The time-tag of the last initialization (format) of the
file system. The time is measured in seconds since
00:00:00 Jan 1, 1986.
♦ Internal disk information
/dev/blk/a&blocks
Number of memory blocks available on the internal disk
/dev/blk/a&block_size
Block size in bytes
♦ Information about log files
/log/&[name,size,time]
/log/NAME&size
/log/NAME
List of log files specifying their names, sizes in bytes
and last-modified times. Last-modified time is given in
seconds since 00:00:00 January 1, 1988.
Size of the file NAME (in bytes)
Contents of the file NAME
♦ Query the file system initialization status
Parameter: /par/stat/fsinit
Type: list
The first integer contains the total number of blocks used for file storage. The
second integer contains the number of blocks that are already processed. These
two values allow monitoring of the file system initialization or remount progress.
When initialization/remount is not in progress, these two values are the same.
♦ Show deleted files
Parameter: /par/dev/blk/a/removed
Type: boolean
Values: on | off
off - receiver file system behaves as usual
on - receiver file system allows to view even deleted files. This parameter allows
the user to recover inadvertently deleted files.
Note: Since the parameter is not stored in the receiver’s NVRAM, it will always
15
be set to “off” after the receiver is powered on.
The receiver’s file system will be remounted every time the command set,
/par/dev/blk/a/removed,on is executed.
The alternative way to force the file system to remount is clearing the NVRAM, but
this may be unacceptable in many cases.
♦ Name of current log file
Parameter: /cur/log
Type: string
This parameter contains the name of the current log file, if such a file exists, or an
empty string, otherwise.
If there is no current log file, then setting this parameter to an existing file's name
will instruct the receiver to open this file for data appending thus making it the new
“current” file.
If the current log file exists, then changing this parameter will instruct the receiver
to close the existing “current” file and then open a new “current” file.
If the command refers to the file that does not exist the receiver will open such
current file.
♦ Information about current log file
Parameter: /cur/log&size
Type: integer
Size of current log file (in bytes). An error
message will be reported if there is no
current log file.
Parameter: /par/out/cur/log&count Number of different message types enabled
for output to the current log file. An error
Type: integer
message will be reported if there is no
current log file.
♦ Query the processor’s clock frequency
Parameter: /par/cpu/frq
Returns the processor’s clock frequency in MHz.
♦ Processor load
Parameter: /par/load
Type: list
The following is an example of print,load output (recall that you can omit the
prefix /par/ when typing in print and set commands):
RE015%%{{AISR,15, 85,214},
RE015%% {LOOT,23, 12, 22},
RE015%% {GDLT, 1, 12, 14},
RE015%% {MEAT,33, 40, 74},
RE015%% {PACK, 0, 0,199},
RE015%% {UPDR, 0, 0, 4},
RE015%% {APXR, 0, 0,999},
RE015%% {ORBF, 0,355,653},
RE015%% {PART, 0, 21, 21},
16
RE015%% {PIAT, 0, 0, 0},
RE015%% {ADCT, 0,239,999},
RE015%% {LOAD,75, 0, 0}}
All the lines in the response but the last one have the following meaning.
The 1st field denotes the process name (4 upper case letters).
The 2nd field designates the computed processor load (in %) associated with this
process.
The 3rd field denotes the computed minimal time (in milliseconds) per process
execution cycle.
The 4th field denotes the computed maximal time (in milliseconds) per process
execution cycle.
Note that to obtain correct processor load information, you must issue the
print,load command twice. After sending a first print,load command,
disregard the receiver's response and wait for a few seconds (5-10) before
sending another print,load command. The second response will provide you
with the “truth” data computed over the interval between the two command calls.
Care should be taken that the time between the two consecutive calls does not
exceed one hour (otherwise the wrong results could be displayed).
The number of lines in a print,load response may vary from time to time since
it depends on what particular processes are active during the analysis time. The
last line in the response list is of special interest to the user. It indicates the total
processor load (%) and the number of detected “real-time errors” (3rd field). The
total processor load is supposed to be less than 90, and the number of detected
errors must be zero.
♦ Query receiver board temperature
Parameter: /par/dev/thermo/out
Type: float
The TPS receiver incorporates a thermometer allowing you to measure the
board's temperature in degrees of Celsius.
♦ Query flash memory access time (in waitstates)
Parameter: /par/rcv/flash/waitstates
Type: integer
This read-only parameter indicates how “fast” your flash memory chip is. The
command print,/par/rcv/flash/waitstates returns integer values
between 0 and 9. The smaller the returned value, the faster the flash memory. For
most TPS receivers, this parameter is either 1 or 3.
♦ Retrieve time from the receiver’s battery-backed real time clock
Parameter: /par/dev/rtc/time
Object format: {sec, min, hour, day of the month, month, year}.
Example. RE012 {31,47,10,19,10,0}
3.2
Automatic File Rotation Mode (AFRM)
The TPS receiver is now capable of automatic rotating log-files. The term “file
rotation event” (or simply “file rotation”) means that the receiver closes the
previous “current” file and opens a new one according to the user-defined
17
schedule (“time grid”). Such a time grid is fully specified by the two parameters
called “file rotation period” and “file rotation phase.” File rotation is launched when
the receiver time modulo “period” is equal to “phase.” More precisely, a new logfile is opened immediately before the scheduled epoch so that all of the data
tagged with this epoch will be recorded into the new log-file.
In addition, AFRM uses a counter that is decremented on every file rotation event
until its value becomes zero. Once the counter is zero, file rotation automatically
stops. This feature allows you to create as many log-files as necessary and then
stop data logging. The counter is initialized simultaneously with AFRM, and its
initial value is set through the parameter /par/log/rot/sc/count (see below).
Note that a log-file is opened right after turning AFRM on. The opening of such a
“startup” file, however, is not considered a file rotation event and, therefore, the
AFRM counter will not be decremented.
When opening a new log-file, the receiver enables the default set of messages
outputted with the default output period. Both the default set of messages and the
default output period are programmable.
The TPS receiver is capable of removing the “oldest” log-files, if there is no free
memory left to continue data logging. This FIFO-type feature is off by default.
Even if you turn it on, your receiver will not delete the files with the earliest file
creation times unless AFRM is also on. The latter condition is essential since it
allows you to minimize the risk of inadvertent file deletion.
♦ Enable/disable AFRM
Parameter: /par/log/rot/mode
Type: boolean
Values: on | off
This parameter is used to turn AFRM on and off.
If this parameter is changed from “on” to “off”, it will disable AFRM and also close
the current log-file.
♦ File Rotation Period
♦ File Rotation Phase
Parameter:
Parameter:
/par/log/rot/sc/period
/par/log/rot/sc/phase
Type:
float
Type:
float
Values:
[60..86400] seconds
Values: [0..86400] seconds
Default:
3600
Default: 0
File rotation goes off at the moment when the receiver time modulo “period” is
equal to “phase”.
♦ File Rotation Counter
Parameter: /par/log/rot/sc/count
Type: integer
Values: [0…231-1]
This specifies the total number of log-files that will be created before file rotation is
turned off.
Zero means an unlimited number of files.
♦ File Rotation Running Counter
Parameter: /par/log/rot/count
18
Type: integer
Values: [0.. 231-1]
This parameter indicates how many files will be created before the file rotation
stops (zero means an unlimited number of files).
When starting AFRM, /par/log/rot/count is automatically set equal to
/par/log/rot/sc/count.
If you reset /par/log/rot/sc/count while AFRM is on, the receiver will
immediately update /par/log/rot/count to the same new count.
♦ Automatically remove the earliest log-file when there is no free disk memory
for data logging
Parameter: /par/log/rot/rmold
Type: boolean
Values: on | off
If this parameter is set to “on” while AFRM is on, the receiver (if there is no free
disk memory) will erase the file with the earliest file creation time/date.
♦ Force file rotation event
Parameter: /par/log/rot/force
Type:
boolean
Values: on | off
Setting this parameter to “on” while AFRM is on will force the receiver to
immediately close the current file and open a new one.
Setting this parameter to “off” while AFRM is on will have no effect.
If AFRM is “off”, setting this parameter to either “on” or “off” will also do nothing.
Whenever this parameter is queried, the response will be “off”.
3.3
Two simultaneous log-files parameters
♦ Enable/disable AFRM and MINTER to manage two log files concurrently
Parameter: /par/log/imp
Type: array [0..1] of boolean
Values: {y|n,y|n}
Default: {y,n}
Specifies if the corresponding current log file should be managed implicitly by
AFRM and MINTER. If the value is “y”, the corresponding log-file will be affected
by AFRM and MINTER. If the element is set to “n”, neither MINTER nor AFRM will
create or close the corresponding log-file. “0” corresponds to /cur/file/a, “1”
corresponds to /cur/file/b.
Example: set,/par/log/imp,{y,y}. This command enables the receiver to
create two log files simultaneously. Simply send this command to the receiver and
then press the FN button for at least one second but no more than five seconds to
start data recording in two log files at the same time.
♦ Enable/disable AFRM and MINTER to manage N-th log-file
Parameter: /par/log/imp/N
Type: boolean
19
Values: y|n
Default: y for N=0, n for N=1
If set to “y”, the N-th current log-file will be implicitly managed by the AFRM and
MINTER. Otherwise, the N-th current log-file will not be implicitly managed by
these modes. “0” corresponds to /cur/file/a, “1” corresponds to
/cur/file/b.
Some of the existing parameters that related to log-files (all containing cur/log
in their names as well as a few others) have their new equivalents and are kept as
aliases of the new parameters for a backward compatibility. This is valid for all the
receivers, even for those (Euro168 and Wheel boards) which support only a single
log-file. Here is a table containing both the old and the new parameters names:
Old parameter name
Corresponding new parameter name
/cur/log
/cur/file/a
/cur/log&size
/cur/file/a&size
/par/out/cur/log
/par/out/cur/file/a
/par/out/cur/log&count
/par/out/cur/file/a&count
/par/out/elm/cur/log
/par/out/elm/cur/file/a
/par/out/minsvs/cur/log
/par/out/minsvs/cur/file/a
/par/out/epochs/cur/log
/par/out/epochs/cur/file/a
/par/log/sc/period
/par/log/a/sc/period
/par/cmd/create/prefix
/par/cmd/create/pre/a
In addition, for the receivers that support two log-files, the corresponding
parameters for the second log-file are as follows:
/cur/file/b
/cur/file/b&size
/par/out/cur/file/b
/par/out/cur/file/b&count
/par/out/elm/cur/file/b
/par/out/minsvs/cur/file/b
/par/out/epochs/cur/file/b
/par/log/b/sc/period
/par/cmd/create/pre/b
3.4
Antenna related parameters
♦ Set /query antenna input mode
Parameter: /par/ant/inp
Type: enumerated
Values: int | ext | auto
Note that the parameter range and the default value are receiver-dependant.
20
Receiver model
any
any
OEM
OEM, LEGACY_H
HIPER, HIPER
GGD
OEM,
ODYSSEY_E
Board
JPS_3, Eurocard
JPS_4, JPS_4_2
JGG20
HE_GG, HE_GD
HE_GG, HE_GD,
HE_GGD
E_GGD, HE_GG,
HE_GD, HE_GGD
Default value
ext
ext
unavailable
unavailable
Values
int, ext
int, ext, auto
unavailable
unavailable
auto
int, ext, auto
unavailable
unavailable
Notes:
1. The Regency and Odyssey receivers incorporating JPS_4 and the Hiper
receiver are able to automatically detect an external antenna at receiver
start time only. Therefore, if you need receiver to switch from one antenna
to the other in “auto” mode, you will have to restart the receiver.
2. The Regency and Odyssey receivers incorporating JPS_4_2 (unlike those
using JPS_4) support the external antenna detection mechanism allowing
the receiver to switch between the internal and an external antennas at any
time (not necessarily at receiver start time).
♦ Querying antenna input
Parameter: /par/ant/curinp
Type: enumerated
Values: int | ext
Unlike the command print,ant/inp, which returns the value specified via the
corresponding set command, print,ant/curinp will detect which antenna is
actually being used.
♦ Status of external antenna connection
Parameter:/par/ant/dc
Type: enumerated
Values: off | normal | overload
off
Ext antenna will not draw any DC
normal
Ext antenna draws normal DC
overload
Ext antenna draws current higher than expected
3.5
Frequency source
♦ Input frequency source
Parameter: /par/frq/input
Type: enumerated
Values: int | ext
21
This parameter, which takes either “int” or “ext”, instructs the receiver to use the
internal or an external frequency source as the local oscillator.
♦ External frequency value
Parameter: /par/frq/ext
Type: integer
Values: 2,10…40 MHz
The receiver will not lock on satellites if this parameter is set to the wrong value.
♦ External frequency source status
Parameter: /par/frq/stat
Type: enumerated
Values: off | wait | locked
• “off” indicates that the receiver is using the internal crystal oscillator.
• “wait” indicates that the receiver is waiting for the external frequency lock. The
receiver will return this value if, after the user executing the command
set,/par/frq/input,ext, the external frequency oscillator is
disconnected, its amplitude is too low, or the actual external source frequency
is different from that specified through /par/frq/ext.
• “locked” indicates that the external frequency source is being used.
♦ Query external frequency signal amplitude
Parameter:/par/frq/amp
Type: enumerated
Values: off | low | ok
• “off” indicates that the internal oscillator is actually used.
• “low” indicates that the external frequency signal’s amplitude is lower than
required. (The command set,/par/frq/input,ext must be executed first)
• “ok” indicates that the external frequency signal's amplitude meets the required
specifications.
3.6
GSM modem parameters
? will designate any of the serial ports (a, b, c, d) hereinafter in this section.
♦ Receiver mode
Parameter: /par/modem/?/mode
Type: enumerated
Values: off | master | slave
This parameter specifies the mode that the receiver will use to communicate with
the externel modem connected to the corresponding serial port.
“off” – external modem mode is off.
”master” - receiver will try to dial in to the remote (“slave”) modem using the
number specified by the parameter /par/modem/?/dial to call.
”slave” - receiver will wait for incoming calls.
22
Note: In the current firmware implementation, the master mode will be available
for the rover receiver only. On the other hand, the slave mode will be available
only if the receiver has been configured as base.
♦ PIN code
Parameter: /par/modem/?/pin
Type: string[4]
Default: "0000"
This parameter specifies the PIN code for a GSM modem.
♦ Dial number
Parameter: /par/modem/?/dial
Type: string[0…32]
Default: ""
This parameter specifies the dial number used in the “master” mode.
♦ Modem management status
Parameter: /par/modem/?/state
Type: enumerated
Values: off | detect | detected | ready | dialling | connect | discon | err
This parameter shows the current “modem management status”.
“off” - modem management is turned off
“detect” - detecting the attached modem
“detected” - modem has been detected; changing to the next stage
“ready” – modem has been initialized and registered in the GSM network. If the
modem is running in the slave mode, it is ready to receive incoming
calls. If the modem is in the master mode, it is ready to dial in to the
slave modem
“dialling” – modem is dialing a number (in the master mode only)
“connect” - connection has been established
“discon” - disconnecting
”err” - fatal error. If such an error occurs, the user will need to set the parameter
/par/modem/?/mode to off, fix the problem and then enable back the required
mode. See the parameter /par/modem/?/err for what caused the error.
♦ Last occurred modem error
Parameter: /par/modem/?/err
Type: enumerated
Values: detect | init | pin | net | busy | no_carrier
This paramer describes the last of the errors detected/identified by the modem
management.
“detect” – cannot detect modem
“init” - initialization error
“pin” - wrong PIN code
“net” - network error
“busy” - dial number is busy. This is usually a temporary error. A retry at
some time later may be successful.
“no_carrier” - no carrier. This temporary error most commonly occurs when
23
the other modem is not initialized or some GSM network
failure has happened. The modem will continue redialing
until the call is connected.
Note that the modem management is supposed to be capable of automatic fixing
a detected error (on condition that the parameter /par/modem/?/state has a
value other than err or off). No user intervention is needed unless the parameter
/par/modem/?/state is set to err, which means that the modem management
has not been able to fix the problem on its own.
♦ Query the name of the port connected to the modem
Parameter: /par/modem/?/port
Type: string
This parameter is used to get the name of the serial port that the modem is
connected to.
Example. /dev/ser/a
Please see the instruction below for how to run a TPS receiver with an external
GSM modem.
3.6.1 Step-by-step instruction on using TPS receivers with GSM modems
Connect the GSM modem to serial port C (for definiteness).
Take the following steps to get the modem ready for work (it is recommended to
make the settings required for steps 1-3 in the office, before going to the field)
1. Ensure that the receiver is NOT in “master” or “slave” mode (execute the
command set,/par/modem/c/mode,off if necessary). Also, execute
the command print,/par/modem/c/state to check if modem
management is disabled (the receiver will reply with “off” if it is disabled).
Note that it can take the receiver several seconds to respond (assuming
the modem is turned on).
2. Configure the receiver as a base or rover. Configure the serial port that the
modem is connected to, so that it could be used to transmit/receive
differential corrections. An arbitrary port bit rate can be set at this point
since the modem management will automatically select the correct bit rate
later when polling the modem. See 4.4 for how to configure a TPS receiver
as a base or rover.
3. Execute the following commands:
Enter the PIN code for the GSM modem used, e.g.
set,/par/modem/c/pin,2365
Enter the dial number, e.g.
set,/par/modem/c/dial,89028354554
The dial number may or may not be entered when running the
modem in the “slave” mode (in other words, setting the dial number
can be omitted unless the modem is used in the “master” mode).
Set the correct mode for the receiver, specifically:
24
send
set,/par/modem/c/mode,master
if the receiver is configured as a rover, and
set,/par/modem/c/mode,slave
if it isconfigured as a base.
4. Now, the receiver is completely ready for field operation. Just switch the
receiver on when in field. The receiver will automatically start working with
the attached modem.
5. The MINTER can be used to check the modem status. Press <FN> button
twice to switch MINTER to the modem status blink mode. If the receiver
has not established a connection with the modem, <STAT> will blink red. If
the modem is transmitting data, <STAT> will blink yellow. If the modem is
receiving data, <STAT> will blink green.
If <STAT> blinks red for 1-2 minutes, turn the receiver off and then back on
(to enable the modem status blink mode, press the button <FN> twice). If
<STAT> keeps blinking red, use an appropriate terminal to check the
modem status. Execute either of the following commands:
print,/par/modem/c:on or print,/par/modem/c. The first
command will give a receiver response that shows both the names and
values of the corresponding parameters. The second command will give
only the values of the parameters.
Example 1.
print,/par/modem/c:on
RE048/par/modem/c={mode=master,port=/dev/ser/c,pin="
2365",
dial="89028354554", RE019 state=detect,err=detect}
Example 2.
print,/par/modem/c
RE036{master,/dev/ser/c,"2365","89028354554",detect,
detect}
In both the examples, the receiver responses indicate the modem status
“detect” (i.e. the receiver is trying to detect/identify a modem). The last
occurred modem error parameter is set to “detect” (cannot detect modem)
because, in these examples, the receiver to which the commands are sent
is simply not connected with any external GSM modem. The receiver,
however, will keep trying to detect a modem and will succeed in doing this
as soon as a GSM modem is connected to port C.
For more details on external modem parameters, refer to 3.6.
25
3.7
Power management parameters
♦ Query voltage of external power source
Parameter: /par/pwr/ext
Type: float; volts
♦ Query voltage across the board's internal 3 volt power stabilizer
/par/pwr/d3v
/par/pwr/a3v
Use this parameter to query the voltage across the digital
part of the board (in volts)
Use this parameter to query the voltage across the
analog part of the board (in volts)
♦ Query voltage across the board's internal 5 volt power stabilizer
/par/pwr/d5v
/par/pwr/a5v
Warning:
Use this parameter to query the voltage across the digital
part of the board (in volts)
Use this parameter to query the voltage across the
analog part of the board (in volts)
The following power/battery management parameters are applicable
to the Odyssey receiver only.
♦ Turn power on and off on ports A and B
Parameter: /par/pwr/out/ab
Type: boolean
Value: on | off
With this parameter the user can reduce the power consumption when the
removable UHF radio is attached to the receiver but not activated. Recall that
removable UHF radio is powered via the corresponding pins on port A or B
(depending on which tray is used).
When using a removable UHF radio with your Odyssey, ensure that the parameter
/par/pwr/out/ab is set to “on”.
♦ Turn power on and off on port C
Parameter: /par/pwr/out/c
Type: boolean
Value: on | off
With this parameter you can reduce the power consumption when an external
radio is attached to your Odyssey but is not activated. Recall that an external
radio, which is normally connected to port C of the Odyssey receiver, is powered
via the corresponding pin on this port.
Note: You can govern the above two parameters only if your Odyssey has a
modified interconnection board. For older models of the Odyssey receiver, neither
of the parameters can be used (an error message will be reported indicating that
your receiver does not have the power consumption saving feature). Note that in
older Odysseys power is always supplied on the power pins of ports A, B and C
26
(recall that the first two are only available through the receiver’s right- and lefthand trays respectively).
♦ Query battery voltage
Parameter: /par/pwr/bat/a - for battery “a”
Parameter: /par/pwr/bat/b - for battery “b”
Type: float; volts
Use the commands print,pwr/bat/a and print,pwr/bat/b to query the
voltage of batteries “a” and “b”, respectively.
♦ Query battery charger's output voltage
Parameter: /par/pwr/charger
Type: float; volts
The command print,pwr/charger returns the charger's output voltage while
charging your battery. It is an auxiliary (yet quite useful in some cases) parameter.
♦ Query voltage that receiver board draws
Parameter: /par/pwr/board
Type: float; volts
With the command print,/par/pwr/board, you can find out the “true” voltage
your receiver board draws. Note that this voltage is measured directly on the
board (excluding the voltage drop across the “power switching circuitry”).
♦ Set/query power source mode
Parameter:
/par/pwr/mode
Values: mix | ext | a | b | auto
Parameter:
/par/pwr/curmode
Values: mix | ext | a | b
If set to “mix”, the receiver will automatically identify and start using the power
source with the highest voltage. It is not recommended to run the receiver in this
mode for a long time unless it is powered by a high capacity external source (Note
that in “mix” mode power consumption is about 10% higher than in other modes).
If set to “ext”, “a” or “b”, the receiver will be powered by the external power source,
battery “a” or battery “b”, respectively.
If set to “auto”, the receiver will automatically select the most appropriate power
source according to the following algorithm:
If an external power source is detected, the receiver will use this. Otherwise, the
receiver will be powered by one of its batteries. If both batteries are mounted, the
receiver will start with battery “a”.
Note that print,/par/pwr/mode command returns the value that has been set
with the last set,/par/pwr/mode command.
With print,/par/pwr/curmode command, you can query the receiver's
current power mode. Note that /par/pwr/curmode is a read-only parameter.
27
♦ Set/query battery charge current (“charge speed”)
Parameter:
/par/pwr/charge/speed
Values: normal | fast
Parameter:
/par/pwr/charge/curspeed
Values: normal | fast
This parameter is used to toggle the battery charge current between 1A or 2A.
The normal mode (charge current = 1 ampere) is preferable. We recommend that
you use normal mode when charging batteries overnight.
The print,/par/pwr/charge/speed command returns the value set with the
last set,/par/pwr/charge/speed command, not necessarily the actual
charging mode effective at the time this command is issued.
In fact print,/par/pwr/charge/curspeed indicates which of the two
charging modes (“fast” or “normal” ) is currently effective. “Curspeed” stands for
“current speed”. Note that /par/pwr/charge/curspeed is a read-only
parameter. Also note that when “auto” is used to charge the battery, the actual
battery charge speed may differ from the value set with the
set,/par/pwr/charge/speed command.
♦ Set/query battery charge mode
Parameter:
/par/pwr/charge/bat
Values: off | a | b | auto
Parameter:
/par/pwr/charge/curbat
Values: off | a | b
This parameter instructs the receiver to start charging the corresponding battery
(or batteries).
If set to “auto”, the receiver will automatically control the course of battery
charging. The receiver automatically detects all of the batteries attached to the
receiver (“a”, “b”, or both) and, if both are mounted, charges them one after the
other (beginning with battery “a”). Once the battery is fully charged, the receiver
stops charging.
Warning 1. You can start battery charging only after the power source mode
has been set to “ext” or “auto” (i.e., with either
set,/par/pwr/mode,ext or set,/par/pwr/mode,auto).
Warning 2. If set to either “a” or “b” (i.e., while in manual mode), the receiver
will keep charging the battery until a
set,/par/pwr/charge/bat,off is sent. Care should be
taken not to overcharge the battery.
Warning 3. The receiver must be turned on for the battery to receive a
charge.
Note that the print,/par/pwr/charge/bat command returns the value set
with the set,/par/charge/bat command. On the other hand, with the
print,/par/pwr/charge/curbat command, you can find out which of the
28
battery modes ( “a”, “b” or “off” ) is effective at the time you issue this command.
“curbat” stands for “current battery”. Note that /par/pwr/charge/curbat is a
read-only parameter.
Warning: The following three parameters are applicable to the HIPER receiver
only.
♦ Query external antenna voltage
Parameter: /par/pwr/extant
Type: float; volts
This is not used if the internal antenna is utilized (i.e. /par/ant/inp is set to
“int”).
♦ Query external antenna current
Parameter: /par/pwr/extantdc
Type: float
Measured in mA.
♦ Query voltage on converter
Parameter: /par/pwr/conv
Type: float; volts
Warning: The following six parameters are applicable to the HIPER and
Odyssey-E receivers only.
♦ Parameter governing power output on serial ports
Parameter: /par/pwr/ports
Type: enumerated
Value: on | off | always
If the parameter is set to “on”, power will be turned on as long as the receiver is
being turned on. If this parameter is set to “off”, power will be turned off. If set to
“always”, power is turned on even when the receiver is turned off.
♦ Parameter governing power output on internal slots
Parameter: /par/pwr/slots
Type: enumerated
Values: on | off | always
If the parameter is set to “on”, power is turned on as long as the receiver is being
turned on. If set to “off”, power is turned off. If set to “always”, power is turned on
even when the receiver is turned off.
♦ Turn on and off internal slots
Parameter: /par/pwr/switch
Type: array [2..4] of boolean
Value: {y|n,y|n,y|n}
If the element value is set to “y”, the corresponding internal slot is turned on. If the
user sets this parameter to “n”, the corresponding internal slot will be turned off.
29
♦ Turn on and off N-th internal slot
Parameter: /par/pwr/switch/N
Type: boolean
Value: y | n
N=2|3|4
If set to “y”, the N-th internal slot is turned on. If set to “n” the N-th internal slot is
turned off.
♦ Query the current of batteries charger
Parameter: /par/pwr/chdc
Type: float; milliamperes
♦ Query the ports’ output voltage
Parameter: /par/pwr/extports
Type: float; volts
♦ Backup battery voltage
Parameter: /par/pwr/backup
Type: float; volts
Warning: This parameter is applicable to the HE_GG/HE_GD revisions greater
than 3 and HE_GDA HIPER receiver only.
3.8
Communication parameters
For the following six parameters, [port] designates:
- a serial port (dev/ser/a, dev/ser/b, dev/ser/c, dev/ser/d ), or
- the parallel port (dev/prl/a), or
- the modem port (dev/modem/a), or
- the current terminal (cur/term), or
- a TCP port (dev/tcp/a, dev/tcp/b, dev/tcp/c, dev/tcp/d,
dev/tcp/e), or
- the USB port (dev/usb/a).
♦ Set/Query Input Mode
Parameter: /par/[port]/imode
Values: cmd | echo | rtcm | cmr | omni | none
“cmd” stands for “command mode”. Being in this mode, the receiver’s port
recognizes the commands sent by the user.
“echo” stands for “echo mode”. For more information about echo mode see Daisy
Chain.
“rtcm” stands for “RTCM input mode”. For more information about this mode, see
4.3.14.
“cmr” stands for “compact measurement record”. For more information on this
format, please refer to ftp://ftp.trimble.com/pub/survey/cmr.
“jps” stands for “JPS messages input mode”.
30
“omni” stands for “OmniStar VBS mode”. In this mode all data incoming to the
port will be used by the OmniStar VBS.
“none” means that the port will ignore any incoming data.
♦ Set/Query Output Mode
Parameter: /par/[port]/omode
Values: std | dtp
std - output mode is standard.
dtp - JPS Data Transfer Protocol is active on the port.
♦ Port echo parameter
Parameter: /par/[port]/echo
Values: /dev/ser/a | /dev/ser/b | /dev/ser/c | /dev/ser/d
/dev/modem/a | /cur/term | /dev/prl/a | /cur/log | dev/null.
|
♦ Echo-off sequence parameter
Parameter: /par/[port]/eoff
Values: arbitrary string comprising up to 32 characters
Default: #OFF#
♦ Wrapped echo parameter
Parameter: /par/[port]/ewrap
Values: off | on
If this parameter is set to “off”, data echoing is carried out as specified by
/par/[port]/echo. We call this mode “normal data echoing” or “raw data
echoing”.
If /par/[port]/ewrap is set to “on” and /par/[port]/echo is other than
/dev/null, data echoing is carried out in the “wrapped” mode, i.e. all of the
characters received from [port] are combined into a corresponding [>>]
message (see 4.3.11) before being directed to the output stream.
♦ Output stream duplication parameter
Parameter: /par/[port]/dup
Values: /dev/ser/a | /dev/ser/b | /dev/ser/c | /dev/ser/d |
/dev/modem/a | /cur/term | /dev/prl/a | /cur/log | dev/null.
For example, the command set,/par/dev/ser/c/dup,/cur/term will
instruct the receiver to “duplicate” the data stream by outputting it not only to port
C but also to the current terminal.
In the parameters below, [port] denotes a port identifier from the following list:
dev/ser/a,
dev/ser/b,
dev/ser/c,
dev/ser/d,
cur/term,
where the first four names are associated with the receiver's serial ports A, B, C
and D, respectively, and the last name relates to the “current terminal”. Current
31
terminal is the port used for issuing the current command. For example, if the port
A is being used, you can run either
print,/par/dev/ser/a/rate
or
print,/par/cur/term/rate
to query the current terminal's baud rate.
♦ Serial port baud rate
Parameter: /par/[port]/rate
Type: integer
Values: 460800 | 230400 | 153600 | 115200 | 57600 | 38400 | 19200 | 9600 | 4800
| 2400 | 1200 | 600 | 300
This parameter is used to set/query the baud rate for the specified serial port.
For the default value, see the following parameter.
♦ Default baud rates for serial ports
Parameter: /par/[port]/rate&def
Type: enumerated
Values: 460800 | 230400 | 153600 | 115200 | 57600 | 38400 | 19200 | 9600 | 4800
| 2400 | 1200 | 600 | 300
These parameters specify which default baud rates will be enabled for the
corresponding serial ports after clearing NVRAM or executing an init,/par/
command.
You cannot update the default baud rates without using these parameters.
Uploading new firmware will not change these default values. Note, however, that
if you upload a firmware version earlier than 2.0pl2, the default value of 115200
bps will be enabled for all of the receiver's serial ports.
♦ Infrared mode
Parameter: /par/[port]/ir
Type: boolean
Values: off | on
Note that the TPS receiver may have either one infrared port, which is always port
D, or no infrared port.
♦ Hardware handshaking
Parameter: /par/[port]/rtscts
Type: boolean
Values: off | on
♦ Number of stop bits
Parameter: /par/[port]/stops
Type: integer
Values: 1 | 2
32
♦ Parity
Parameter: /par/[port]/parity
Type: enumerated
Values: N | odd | even | fodd | feven
N - no parity
odd - odd parity
even - even parity
fodd - forced odd parity (logical 1)
feven - forced even parity (logical 0)
♦ Number of data bits
Parameter: /par/[port]/bits
Values: 5 | 6 | 7 | 8
IP address for the receiver
Parameter: /par/net/ip/addr
Type: string
Values: any valid IP address
Default: 192.168.2.2
With this parameter the user identifies the receiver on a TCP/IP network.
♦ Network mask
Parameter: /par/net/ip/mask
Type: string
Values: any valid IP address
Default: 255.255.255.192
This parameter specifies the network mask of the network the receiver is
connected to.
♦ Default gateway
Parameter: /par/net/ip/gw
Type: string
Values: any valid IP address
Default: 192.168.2.1
MAC address
Parameter: /par/net/mac/addr
Type: string
Values: any valid MAC address
Default: autromatically generated unique value
This parameter specifies your receiver’s unique hardware number on a network.
High part of the MAC address is fixed and is equal to 00:04:07. Low part is
generated automatically from the receiver ID. The user usually does not need to
change MAC address.
33
♦ TCP port
Parameter: /par/net/tcp/port
Type: integer
Values: [1..65535]
Default: 8002
TCP port receiver is listening on for telnet-like connections. Up to 5 simultaneous
connections are supported. After a client connected to the TCP port, receiver
outputs login prompt. Explicit 'a', 'b',..., 'e' reply followed by new line to the login
prompt will make connection to corresponding TCP stream (/dev/tcp/a, ...,
/dev/tcp/e). Entering just new line will make receiver to automatically select the
first available TCP stream and make connection to it. After login prompt, the
receiver will issue the password prompt. The string specified in
/par/net/passwd followed by new line should be entered by the client in reply
to the password prompt. If the string entered does not match, connection will be
denied.
♦ TCP connection timeout
Parameter: /par/net/tcp/timeout
Type: integer
Values: [1..0x7FFFFFFF]
Default: 600
With this parameter the user specifies a period of time in seconds that must
elapse before an inactive connection will be terminated.
♦ FTP connection
Parameter: /par/net/ftp/port
Type: integer
Values: [1..65535]
Default: 21
TCP port the receiver is listening on for FTP connection. Only 1 simultaneous
connection is supported.
34
FTP connection timeout
Parameter: /par/net/ftp/timeout
Type: integer
Values: [1.. 0x7FFFFFFF]
Default: 600
With this parameter the user specifies a period of time in seconds that must
elapse before an inactive connection will be terminated.
♦ Telnet password
Parameter: /par/net/passwd
Type: string[15]
Values: any string
Default: automatically generated value unique for each receiver
By using this parameter the user sets a password for telnet-like TCP connections.
This protection will prevent unauthorized Telnet access to the receiver.
3.8.1 TPS Eurocard J502 connector I/O pin support
♦ Configure pins for input/output
Parameter: /par/dev/gpio/out
Type: list of booleans
Values: {[y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n]}
“y” indicates that the corresponding pin is configured for output.
“n” indicates that the corresponding pin is configured for input.
The first element in the list corresponds to pin# 0, the last element corresponds to
pin# 7.
After you send your print command, the receiver will return a list of booleans,
e.g., {y,y,n,n,y,n,y,y}.
You can configure all eight pins at one time by setting this parameter to an
appropriate integer value. Your receiver will interpret such an integer as a binary
code whose least significant bits (LSB) are mapped onto pins## 0 thru 7 (the least
significant bit corresponds to pin#0). Bits other than the eight LSB are ignored. For
example, setting this parameter to 0x3D (hexadecimal) is fully equivalent to
setting it to the list {y,y,n,n,y,n,y,y}.
Note that you can also configure separate pins independently from each other. To
configure a separate pin, use the corresponding one-bit parameter:
/par/dev/gpio/out/m, where m stands for the pin number (0 thru 7). For
example, the command set,/par/dev/gpio/out/3,n will configure pin# 3 for
input.
35
♦ Configure pin logical levels
Parameter: /par/dev/gpio/value
Type: list of booleans
Values: {[y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n]}
“y” indicates that the corresponding pin is set to logical level 1.
“n” indicates that the corresponding pin is set to logical level 0.
You can handle this parameter in the same way you do /par/dev/gpio/out,
i.e., you can use either a list of booleans or an integer to specify it. In the latter
case, only the eight LSB of the binary code are taken into consideration. Also, you
can set the required logical signal level for any individual pin.
When setting this parameter to a specific value (a list of booleans or an integer),
you specify individual logical levels only for the pins configured for output. For the
pins configured for input, their logical levels remain unchanged.
The logical levels of “input pins” will depend on the actual voltage applied to them.
When you query the pin logical values with the corresponding print command,
the receiver will report the “true” logical levels for both input and output pins.
Examples.
♦ set,/par/dev/gpio/out/0,y - configure pin#0 for output.
♦ set,/par/dev/gpio/out/7,n - configure pin#7 for input
♦ set,/par/dev/gpio/out,0xff - configure all pins for output.
♦ set,/par/dev/gpio/out,0 - configure all pins for input.
♦ set,/par/dev/gpio/out,0xf - configure pins ## 0 thru 3 for output and
pins ## 4 thru 7 for input.
♦ set,/par/dev/gpio/value/0,y – set pin#0 to logical level “1”
♦ set,/par/dev/gpio/value,0xff – set all of the output pins to logical
signal “1”
More examples:
print,/par/dev/gpio/out -> RE012{y,y,y,y,n,n,n,n}
The first four pins have been configured for output and the other pins for input.
print,/par/dev/gpio/value -> RE012{y,y,y,y,n,n,n,n}
The first four pins have logical level “1” (y) whereas the other four pins have
logical level “0” (n).
Warning: This command is effective for TPS Eurocard only.
3.9
Parameters to support logging history
Logging history provides ability to record statistics of logging of observables. Once
history logger is attached to an output stream (refer to the
/par/out/logh/stream parameter below) and data logging is enabled to the
stream, the logger starts to gather information. For every satellite every 'N'
seconds (refer to the /par/out/logh/period parameter below) a single bit is
put into the history. The bit value put is equal to 1 if and only if at least some
observables for this satellite has been logged during last 'N' seconds AND the
36
time from last loss-of-lock for this satellite is greater than or equal to 'N'. In all
other cases the value put into the history is 0.
The history has a limited capacity (128 bits for each satellite) and limited space for
satellites (32 satellites maximum). Satellites for which all the bits are zeros are not
put into the history.
The information gathered could be obtained by means of the [LH] receiver
message. For information about [LH] message, see 4.3.12.
♦ Time interval
Parameter: /par/out/logh/period
Type: integer
Values: [0..86400]
Default: 30
Time interval in seconds of a single history bit.
♦ Time interval
Parameter: /par/out/logh/stream
Type: string
Values: any valid output stream name
Default: /dev/null
The name of the output stream history logger should gather information for. If the
parameter is set to /dev/null, history logging will be disabled.
3.10 Output time-frame parameters
Time-frame is a periodic time interval of a specified length. Time-frames are
entirely specified by three parameters: period, length, and delay. By defenition, a
time-frame begins the delay seconds after the receiver time modulo period
becomes zero and lasts for the length seconds.
While a time-frame for the given output port is active, the receiver allows the data
to be output through this port. While the time-frame is not active, the data to be
output to the port is buffered inside the receiver. At the end of every time-frame
the receiver clears its internal buffers not to allow the data that reminded buffered
to be output at the subsequent time frame.
♦ Enable/disable output of time-frames
Parameter: /par/[port]/oframe/mode
Type: boolean
Values: off | on
If the parameter is set to “on”, the corresponding port will output data only at the
time-frames defined by the parameters /par/[port]/oframe/period,
/par/[port]/oframe/length, and /par/[port]/oframe/delay.
If the parameter is set to “off”, the data output will be enabled all the time.
♦ Time-frame output period
Parameter: /par/[port]/oframe/period
Type: float; seconds
Values: [0..1..86400]
The parameter specifies the frequency at which the receiver will output timeframes. Time-frames will be scheduled to be started at the moments when the
37
receiver time modulo period is equal to zero. Note however that a time-frame is
actually started the delay seconds later.
♦ Length of output time-frames
Parameter: /par/[port]/oframe/length
Type: float; seconds
Values: [0..1..86400]
This parameter specifies how long output will be enabled once an output of timeframes has been started.
♦ Delay in time-frames output
Parameter: /par/[port]/oframe/delay
Type: float; seconds
Values: [0...86400]
This parameter specifies how much time passes between the moment the output
time-frame is scheduled to be output and when the time-frame actually begins.
3.11 Session programming
3.11.1 Introduction
Session programming means specifying one or more “jobs” for session scheduler.
Basically, a job is a set of receiver commands executed at the specified time(s).
The session scheduler can handle a fixed number of jobs. Each job has a unique
integer identifier, counting from zero. Each job specification comprises:
time specification,
index of the command set executed,
counter, and
I/O port.
These job specification fields will hereafter be refered to as “spec”, “cmds”,
“count”, and “port”, respectively.
Beside the above mentioned four fields, every job has an activity flag. Jobs whose
activity flags are not set will be ignored by the session scheduler. A job with the
activity flag set to unity is called active. An active job will be executed by the
session scheduler as soon as the current time matches the value of the “spec”
field. If two or more jobs are programmed executed at the same time, the jobs will
be executed in the order specified in the scheduler, e.g., if the jobs with identifiers
“0” and “1” are to be started at the same time, job “0” will be executed before job
“1”.
When it's time to execute a job, the scheduler takes index from the “cmds” field of
the job specification and executes command(s) found at this index in the array of
command strings. Using index to identify command string allows multiple jobs to
share the same command string. The string found is executed the same way if it
were received through input port specified in the “port” field of the job. As a
consequence of this rule, should command generate some output, the output is
sent to the port “port”. Current input mode of the “port” doesn't matter though, -the command is executed as if the port is in the command mode.
38
Every active job also serves as a wake-up point for the receiver. Therefore if
session scheduler is active and receiver is in sleep mode, the next job to be
executed will first wake-up receiver and only then corresponding commands will
be executed. This feature also makes it useful to have empty command string to
be assigned to a job specification. Such specification will just wake-up receiver
without execution of any commands.
When session scheduler is being turned on or is being restarted, the scheduler
makes a copy of activity flag and “count” field of every job. Let's call these copies
“stat/active” and “stat/count”, respectively. Every time the job is executed and
“stat/count” is non-zero, the “stat/count” is decremented. Should “stat/count”
become zero as a result of decrement, the “stat/active” flag is turned off. The job
is thus deactivated and stays inactive until scheduler mode is changed or
scheduler is restarted. This allows you to limit number of executions of a job by
setting its “count” field to a non-zero value. The “stat/mode” and “stat/count” fields
of every job could be read from the receiver for reference but couldn't be directly
changed by user.
Time specification “spec” is a template containing four fields, namely day of week
“day”, hour of day “hour”, minute of hour “minute”, and second of minute “second”.
Each field can either be set to an integer value in corresponding range, or to a
special value that serves as a wild-card that matches any value. In order for a job
to be executed at given time T, job's “spec” should match given time T. Scheduler
compares current time against “spec” by first decomposing time into the set of
corresponding fields, then comparing every field of decomposed time against
corresponding field of “spec”. Time matches “spec” if and only if every field of time
matches corresponding field of “spec”. Fields of “spec” having special value match
any value of corresponding field of time. For example, specification “2d17h_m30s”
(“_” is special value) matches “2:17:00:30”, “2:17:01:30”,..., “2:17:59:30”. It means
that job having such “spec” will be executed at the middle of every minute during
one hour starting on Monday, 17:00:00. I.e., as week number couldn't be
specified, it will be executed every Monday at 17:00:30, 17:01:30,..., and 17:59:30
(60 times). To limit execution of such job to single (next) Monday, job counter
should be set to 60 before activation of the session.
In fact session scheduler doesn't check “spec” of every active job against current
time every second. Instead it determines job that should be executed next (along
with its next execution time) whenever scheduler mode is changed, scheduler is
restarted, or job is executed. The identifier of the next job to be run and
corresponding execution time along with current time broken into four fields could
be read from the receiver for reference.
3.11.2 Parameters
In this section “timespec” type is used to define time specifications. The canonical
form of timespec is as follows:
DdHHhMMmSSs
39
where D, HH, MM, and SS fields are either integer numbers in corresponding
range or special value “__” serving as wild-card.
D - number of day inside a week [1..7]. 1-Sunday ... 7-Saturday.
HH - number of hour inside a day [0..23].
MM - number of minute inside an hour [0..59].
SS - number of second inside a minute [0..59].
Examples of valid timespecs are
4d17h40m18s,
__d__h00m__s.
Receivers print command always outputs timespec in its canonical form.
Receivers set command, however, accepts timespec not only in canonical form,
but also in simplified forms. The rules for set command are as follows:
a) If some field is omitted, it's assumed to be “__”.
b) Any number of integer digits is accepted.
Thus, for example, "" (empty string) timespec is equal to “__d__h__m__s”, and
“8h2s” is equal to “__d08h__m02s”.
The following parameters are defined for session programming (all of them have
name beginning with “/par/sess”).
Note: In the following parameters, N is an integer between 0 and 15.
♦ Set /query session scheduler mode
Parameter: /par/sess/mode
Type: enumerated
Values: off | susp | on
This parameter specifies the current session scheduler mode.
off – session scheduler is disabled
on - session scheduler is active
susp - session scheduler behaves similar to “on” but does not execute commands.
♦ Restart session scheduler
Parameter: /par/sess/restart
Type: boolean
Values: off | on
Setting this parameter to “on” restarts session scheduler. This is similar to setting
/par/sess/mode to “off” then to “on”.
♦ Set/query job activity flags
Parameter: /par/sess/active
Type: list of boolean
Values: {[y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n],
[y|n], [y|n], [y|n]}
40
Default: n
“y” indicates that the corresponding job is enabled.
“n” indicates that the corresponding job is disabled.
The first element in the list corresponds to job 0, the last element corresponds to
job 15.
“i”-th field of the array designates activity flag of job “i”. The value of this
parameter is copied to the /par/sess/stat/active variable whenever
session scheduler mode is changed or scheduler is restarted.
♦ Set/query job specifications
Parameter: /par/sess/job
Type: array [0..15] of job specification
“i”-th field of the array designates job specification of job “i”.
♦ Set/query job specifications
Parameter: /par/sess/job/N
Type: structure
Object format: {spec,cmds,count,port}
Default: {__d__h__m__s,0,0,””}
With the set command you will define “spec”, “cmds”, “count”, and “port” fields for
the corresponding job.
♦ Set/query job’s time specification
Parameter: /par/sess/job/N/spec
Type: timespec
Default: __d__h__m__s
Job is executed whenever current time matches its time specification. “__” in time
specification matches any value.
♦ Set/query index of command string
Parameter: /par/sess/job/N/cmds
Type: integer
Values: [0..7]
Designates index to the array “/par/sess/cmds”.
♦ Set/query number of times the job should be executed
Parameter: /par/sess/job/N/count
Type: integer
Values: [0..MAX_INT]
Default: 0
If non-zero, designates number of times the job should be executed by the
scheduler before deactivation. Zero means unlimited. The value is copied to the
corresponding /par/sess/stat/count/N variable every time session
scheduler mode is changed or scheduler is restarted.
♦ Set/query port to be used as current terminal while job execution
Parameter: /par/sess/job/N/port
Type: string
Values: any allowed name of input port
41
Default: “”
The commands assigned to the job are executed as if they were received from the
port /par/sess/job/N/port. /cur/term parameter is set to this port while
commands are being executed. Should the commands generate receiver replies,
they will be sent to corresponding output port.
♦ Set/query array of command strings
Parameter: /par/sess/cmds
Type: array of up to eight strings, each string of up to 64 characters
Default: {,,,,,,,}
♦ Set/query command string
Parameter: /par/sess/cmds/N
Type: string of up to 64 characters
Default: ""
Note: For this group of related parameters, the suffix …/N… can take integer
values between 0 and 7.
♦ Query session scheduler status
Parameter: /par/sess/stat
Type: structure
Fields: active, count, job, time
♦ Query current job activity flags
Parameter: /par/sess/stat/active
Type: list of boolean
Values: {[y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n], [y|n],
[y|n], [y|n], [y|n]}
“i”-th field of the array designates current activity flag of job “i”. This parameter is
set to the value of /par/sess/active whenever session scheduler mode is
changed or session scheduler is restarted.
♦ Query array of down-counters of job executions
Parameter: /par/sess/stat/count
Type: array [0..15] of integer
Values: [0..MAX_INT]
♦ Query down-counters of job executions
Parameter: /par/sess/stat/count/N
Type: integer
Values: [0..MAX_INT]
Whenever session scheduler mode is changed or scheduler is restarted, the value
of corresponding /par/sess/job/N/count parameter is copied to this variable.
If the variable is greater than zero, it is decremented every time corresponding job
is executed. Should the variable became zero as a result of decrement,
corresponding current activity flag /par/sess/stat/active/N is set to “n” thus
the job is deactivated.
42
♦ Query the next job to be executed
Parameter: /par/sess/stat/job
Type: integer
Values: [-1..15]
If -1, there are no jobs to be executed, otherwise holds the number designating
job to be executed next.
♦ Query execution time information
Parameter: /par/sess/stat/time
Type: structure
Fields: next, curr, delta
♦ Query time the next job will be executed at
Parameter: /par/sess/stat/time/next
Type: timespec
If there is no next job, the value is “__d__h__m__s”.
♦ Query current time
Parameter: /par/sess/stat/time/curr
Type: timespec
Current time in timespec format that is running no matter what scheduler mode is.
♦ Query time left to the next job execution
Parameter: /par/sess/stat/time/delta
Type: timespec
If there is no next job, the value is “__d__h__m__s”.
The following examples will illustarate advantages of session programming.
Example 1:
Suppose we need to program receiver for a single session that will begin next
Wednesday, 12:30:00 and end on Thursday, 10:00:00. During this time receiver
should write file “ses.log” containing default set of messages into its internal
memory at 1 Hz and simultaneously output NMEA GGA message to its serial port
B at 10 Hz. Except this time period, receiver should be turned off. In fact there are
multiple ways to achieve this, here is one of them.
Let's define two jobs for the session:
job 0:
spec=4d12h30m00s
cmd="create,ses.log;em,/cur/log,def:1;em,/dev/ser/b,nmea/GGA:0.1"
count=1
job 1:
spec=5d10h00m00s
cmd="dm,/dev/ser/b;dm,/cur/log;set,power,off"
count=1
43
After programming these two jobs and turning session scheduler on, we can put
receiver into sleep mode (using MINTER or set,sleep,on command).
Receiver will wake-up at the time specified by the job “0” and execute
corresponding commands. When the time of the job “1” will come, receiver will
execute corresponding commands turning receiver off as a result. Note that we
turn power off in the job “1” as opposed to putting receiver into sleep mode. This
way we don't need to set counters for jobs because once receiver is turned off, it
can't wake-up anymore. This however has a side effect that both jobs will remain
active and thus may trigger corresponding actions next time we turn receiver
power on. If we don't want that, we need to set “count” field for both jobs to 1 while
programming.
Also note that if we activate such session after Wednesday,12:30:00 but before
Thursday,10:00:00, the receiver will not do what we meant. The first job that will
be run in this case is job “1”, not job “0”, so job “0” will not be executed at all.
Here are actual commands to program the above jobs (lines that begin with “#”
are comments):
# Turn off scheduler and deactivate all jobs
set,/par/sess/mode,off
set,/par/sess/active,n
# Define “spec”, “cmds”, “count”, and “port” fields for jobs 0 and 1
set,/par/sess/job/0,{4d12h30m0s,0,1,/dev/null}
set,/par/sess/job/1,{5d10h0m0s,1,1,/dev/null}
# Define commands 0 and 1
set,/par/sess/cmds/0,
"create,ses.log;em,/cur/log,def:1;em,/dev/ser/b,nmea/GGA:0.1"
set,/par/sess/cmds/1,
"dm,/dev/ser/b;dm,/cur/log;set,power,off"
# Activate jobs 0 and 1
set,/par/sess/active,{y,y}
# Turn scheduler on
set,/par/sess/mode,on
Example 2:
Suppose we need to setup a permanent station that will work from 8:00:00 to
20:00:00 every day from Monday to Friday and will be turned off during weekend
(Saturday and Sunday). During work-time the station should transmit differential
correction through one of its serial ports and write measurement files to its internal
memory. The files should be automatically rotated every hour and oldest file
should be deleted when there is not enough memory to write latest data.
44
To achieve this we first program receiver to be base station to send corrections
and configure AFRM mode to handle logging stuff. Then program the following 4
jobs:
job 0: spec=_d08h00m00s cmd=""
job 1: spec=_d20h00m00s cmd="set,sleep,on"
job 2: spec=7d08h00m00s cmd="set,sleep,on"
job 3: spec=0d08h00m00s cmd="set,sleep,on"
Jobs “0” and “1” will turn receiver on and off at specified times every day. But that
is not exactly what we want as receiver then will work on Saturday and Sunday as
well. To prevent this, we configure jobs “2” and “3” that put receiver into sleep
mode immediately after wake-up on Saturday and Sunday, respectively. There will
be short periods of time when receiver is turned on Saturday and Sunday, but who
cares? Note that we don't need jobs similar to “2” and “3” to be run at 20:00:00 on
Saturday and Sunday as job “1” will put receiver into sleep mode anyway.
Commands (base station configuration and AFRM programming not shown):
# Turn off scheduler and deactivate all jobs
set,/par/sess/mode,off
set,/par/sess/active,n
# Define “spec”, “cmds”, “count”, and “port” fields for jobs 0, 1, 2, and 3
set,/par/sess/job/0,{ 8h0m0s,0,0,/dev/null}
set,/par/sess/job/1,{ 20h0m0s,1,0,/dev/null}
set,/par/sess/job/2,{7d8h0m0s,1,0,/dev/null}
set,/par/sess/job/3,{0d8h0m0s,1,0,/dev/null}
# Define commands 0 and 1
set,/par/sess/cmds/0,""
set,/par/sess/cmds/1,"set,sleep,on"
# Activate jobs 0, 1, 2, and 3
set,/par/sess/active,{y,y,y,y}
# Turn scheduler on
set,/par/sess/mode,on
Example 3:
Suppose we need to output the size of current log-file to receivers port A every
second. There is no predefined message that contains this information, but there
is corresponding parameter that we can print, so we program single job to achieve
the required result:
job a:
spec=_d_h_m_s
45
cmd="%job_a : size=%print,/cur/log&size"
port=/dev/ser/a
When this job is active, receiver will output RE message to the port A every
second in the form:
REXXX%job_a : size=% SIZE
where SIZE is current file size. We've put `%job_a : size=%' into the command to
be able to identify reply got from the job.
This example demonstrates one use of “port” field of job specification. Another
one would be monitoring of execution of session commands. By setting “port” to
one of receiver ports it is possible, e.g., to see if any errors occur as a result of job
execution.
Commands:
# Turn off scheduler and deactivate all jobs
set,/par/sess/mode,off
set,/par/sess/active,n
# Define “spec”, “cmds”, “count”, and “port” fields for job 0
set,/par/sess/job/0,{"",0,0,/dev/ser/a}
# Define commands 0
set,/par/sess/cmds/0,"%job_a : size=%print,/cur/log&size"
# Activate job 0
set,/par/sess/active/0,y
# Turn scheduler on
set,/par/sess/mode,on
3.12 Notebook parameters
Notebook allows the user to store arbitrary information into the receiver and
retrieve it later if necessary.
♦ Query user notes
Parameter: /par/note
Type: structure{str,nv}
♦ Query user settable strings
Parameter: /par/note/str
Type: array[0..7] of strings
♦ Set/query user settable string
Parameter: /par/note/str/N
46
Type: string [64]
N=[0..7]
When setting a string for index N, the corresponding flag /par/note/nv/N is
cleared (set to “n”) to indicate that this string is set by the user, not read from the
NVRAM.
♦ Query NVRAM storage indicators
Parameter: /par/note/nv
Type: array [0..7] of boolean
When receiver starts up, it reads all the notes from its NVRAM and sets all the
values in this array to “y”. When user sets some of strings, corresponding NVRAM
flag is cleared (set to “n”).
3.13 Raw data
parameters
management
and
signal
processing
♦ Set/query raw measurement elevation masks
Parameter: /par/out/elm/[port]
Type: integer; degrees
Values: [-90…5…90]
[port] here denotes a receiver port or a log-file to which JPS messages can be
output. Data won't be output to [port] for the satellites whose elevations are
less than the specified mask. As always you can use “cur/term” instead of the
current port's name.
Examples:
set,/par/out/elm/cur/log,15
set,/par/out/elm/dev/ser/a,10
print,/par/out/elm/cur/term
♦ Query the number of epochs output to port [port]
Parameter: /par/out/epochs/[port]
Type: integer
This counter is incremented every time a new [~~] message is output to port
[port].
♦ Satellites used for signal acquisition
In the table below, “N” denotes an integer number from 1 to 32 for GPS and from
1 to 24 for GLONASS.
Each of the following parameters can be set to either “on” or “off”.
47
/par/lock/gps/sat
Examples:
- set, /par/lock/gps/sat, on
- set, /par/lock/gps/sat, off
- print,/par/lock/gps/sat
/par/lock/gps/sat/N
Example:
- set,/par/lock/gps/sat/17,off
/par/lock/glo/fcn
Examples:
- set, /par/lock/glo/fcn,off
- print, /par/lock/glo/fcn
/par/lock/glo/fcn/N
With the set command, you will enable/disable the
receiver to track GPS satellites depending on the
object value specified (“on”/”off”).
After you issue the corresponding print command,
the receiver will output a comma-delimited sequence
of y's and/or n's whose positions in the sequence will
indicate the PRN numbers of the GPS satellites
allowed/not allowed for signal acquisition,
respectively.
With the set command, you will enable (disable) the
tracking of SV GPS PRN N by setting the object to
“on” (“off”).
With the set command, you will enable (disable) the
tracking of all GLONASS satellites, with whatever
frequency channel numbers, by setting the object to
“on” (“off”).
After issuing the print command, the receiver will
output a comma-delimited sequence of y's and/or n's
whose positions in the sequence will indicate the
frequency channel numbers of the GLONASS
satellites allowed/not allowed for signal acquisition,
respectively.
With the set command, you will enable/disable the
use of the GLONASS satellite with frequency channel
number “N”.
♦ Assign free “GPS satellite number” to pseudolite with specific PRN
Parameter: /par/gps/prn/N
Type: integer
Object format: GPS satellite number, GPS PRN number
Values: [1..37]
To make the receiver capable of acquiring a pseudolite’s signals, the pseudolite
must be associated with a free GPS satellite number. GPS satellite numbers lie
between 1 and 32.
Moreover, the receiver must “know” the actual PRN of the pseudolite with the
assigned GPS satellite number.
For example, the command set,/par/gps/prn/32,35 instructs the receiver
that the “GPS satellite” with number 32 will from now on have PRN code 35, not
32.
Recall that GPS pseudolites may have PRN’s between 33 and 37.
♦ Set/query the minimum number of satellites used for data output
Parameter: /par/out/minsvs/[stream]
Type: integer
Values: [0..255]
The receiver will not output data into the given stream as long as the number of
satellites whose elevations exceed the specified cutoff angle mask is fewer than
48
this parameter. Here [stream] designates either a port (e.g. /dev/ser/a) or
the current log-file (/cur/log).
♦ Query PRN codes assigned to GPS satellites (PRN codes vs. GPS sat
numbers mapping)
Parameter: /par/gps/prn
Type: array of integers
Values: [1..37]
Default: {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
,28,29,30,31,32}
♦ Enable/disable receiver to acquire satellites with elevation angles smaller than
the specified mask
Parameter: /par/lock/notvis
Type: boolean
Values: on | off
Setting this parameter to “off” will instruct the receiver, first, not to acquire
satellites whose elevations, as calculated by using the current receiver position
and the almanac data, are smaller than the specified mask and, second, not to
acquire satellites whose health status flags, as follows from the almanac data,
indicate that the satellites are unhealthy. The purpose of the parameter is to
reduce the receiver’s processor load (to some extent).
If the number of visible satellites is less than the number of channels available in
the TPS receiver9, the free channels will remain in “idle” mode. If the parameter is
set to “on”, the free channels will too be forced to keep searching for satellites
even if these satellites are known to be below the horizon.
♦ Elevation mask for /par/lock/notvis
Parameter: /par/lock/elm
Type: integer; degrees
Values: [-90…5…90]
Receiver will not track SVs below this elevation mask if /par/lock/notvis is
set to “off”.
♦ Raw measurement update rate
Parameter: /par/raw/msint
This parameter determines the rate of receiver generating pseudoranges, carrier
phases and some other GPS&GLONASS observables.
This parameter, measured in milliseconds, can take any multiple of 50 lying
between 50 and 5000 inclusive. The default value is 100 ms.
Note that the increment (i.e. 50 ms) will not depend on the specific value of the
_RAW receiver option.
9
) most TPS receiver models have 20 channels
49
♦ Position update rate
Parameter: /par/pos/msint
This parameter, measured in milliseconds, indicates the period of receiver
updating the position.
You can set this parameter to any multiple of 50 lying between 50 and 5000
inclusive. The default value is 100 ms. Note that the increment (i.e. 50 ms) will not
depend on the specific value of the _POS receiver option.
Warning 1. The above two parameters should NOT be changed unless it is the
only way to accomplish the given task. When setting non-default
values, care should be taken that they will not result in receiver
malfunction. If either or both of these parameters have been
changed to accomplish a specific task, restore the default settings
(100 ms for either) when this task is finished.
Warning 2. Special care should be taken when using the 50 ms recording
interval. Unwary users often get bad jps files when logging receiver
data at 20 Hz. In such files, a considerable percent of “epochs” may
be either lost altogether or contain corrupt data.
The main factors that can result in jps files having lost epochs and corrupt
messages at 20 Hz are as follows:
All or some of the options “Anti-jamming suppressor”, “Code multipath
reduction”, “Carrier multipath reduction”, “Co-op tracking” are on. At 20 Hz,
using these options will lead to peak processor loading. If this occurs, the
time allocated to the receiver to record the current “data block” into the
flash memory may be insufficient. Thus lost epochs and corrupt messages
in the jps file.
Recording data into the receiver’s internal memory (flash card), which is a
relatively slow memory type. It is recommended to use the receiver having
flash memory with waitstate = 1. If it still does not help, you may need to
download the raw data directly onto the PC hard disk, bypassing the
receiver’s internal memory. Note that PC-CDU users must use the “RealTime Data Logging” option in this case.
Large number of satellites acquired. Amount of data recorded into the
memory will be on the average proportional to the number of satellites
tracked.
Large number of message types enabled for the logfile. There are about 40
message types used in the default set of messages currently. Note that, in
many cases, the user may significantly decimate this message set without
any harm to the task accomplished (and add some new messages to the
reduced set if required). Remember, however, that some of the message
types10 are critical for Pinnacle™ and other TPS post-processing software
to be able to import and process jps files correctly. Great care should be
exercised with respect to the “time messages” such as [RD] and [~~]. For
your reference, below is the list of JPS messages that Pinnacle™ will
identify when parsing an imported jps file:
10
) and their place among other messages
50
JP, MF, PM, ==, RD, ~~, TO, UO, PO, VE, PV, DP, SI, NN, EL, RC, R1, R2, rc, r1,
r2, 1R, 2R, 1r, 2r, СС, C1, С2, cc, c1, c2, PC, P1, P2, pc, p1, p2, CP, 1P, 2P, cp, 1p,
2p, DC, D2, TC, FC, F1, F2, EC, E1, E2, NE, GE, WE, GA, NA, IO, XA, XB, SS, SE,
rM, rE,rV
♦ Current raw measurement update rate ♦ Current position update rate
/par/raw/curmsint
/par/pos/curmsint
Although the user can formally set /par/raw/msint and /par/pos/msint to
arbitrary multiples of 50 (within an interval of 50…5000), the receiver may need to
adjust these original settings in order to make them consistent, first, with the
internal processing cyclogram (“time grid”) and, second, with the receiver options.
The adjusted settings are stored to the read-only parameters
/par/raw/curmsint and /par/pos/curmsint.
Example1. Suppose /par/raw/msint=200 ms, /par/pos/msint=450 ms.
Then /par/raw/curmsint = 200 ms, /par/pos/curmsint = 400 ms.
Example2. Suppose /par/raw/msint=100 ms, /par/pos/msint=100 ms,
max{ _POS, _RAW, CDIF,PDIF } = 2.
Then /par/raw/curmsint = 500 ms, /par/pos/curmsint = 500 ms.
♦ Pseudorange smoothing interval
Parameter: /par/raw/smi
Integer parameter varying within the range of 0.. 50.. 900 seconds.
If this parameter is set to zero, the receiver will not use carrier phases to
smooth pseudoranges. Therefore, in this case the pseudorange noise error will
depend only on the corresponding DLL bandwidth (see the parameter
/par/raw/gdl/band).
If this parameter is set to m>0, the receiver will smooth pseudoranges based
on a Kalman filter whose time constant is set to m seconds.
♦ Doppler smoothing interval
Parameter: /par/raw/dopp/smi
Type: integer
Values: 0 | 1 | 2
This parameter governs the doppler computation algorithm.
0 - Receiver outputs raw (unsmoothed) Doppler. Instantaneous yet rather noisy
Doppler measurements.
1 - Doppler is computed using two consecutive carrier phase measurements,
CarPhase[i] and CarPhase[i-1], where i stands for the current epoch. Such
Doppler measurements are less noisy than in the first case.
2 - Doppler is computed using only three consecutive carrier phase
measurements, CarPhase[i], CarPhase[i-1] and CarPhase[i-2], where i stands
for the current epoch. Doppler measurements obtained in this mode are least
noisy.
51
♦ Nominal ionosphere correction smoothing interval
Parameter:/par/raw/iono/smi
Nominal ionospheric correction smoothing interval is an integer parameter varying
within the range of 0..60..900 seconds.
This parameter specifies the nominal interval (Tnom) over which raw ionospheric
corrections are smoothed (assuming the receiver has been working for some time
and has already obtained enough raw ionospheric corrections to perform such
smoothing). Note that the current ionosphere smoothing interval will vary in time.
After you switch your receiver on, the current smoothing interval will be growing
from zero to the nominal value as new raw ionospheric corrections are computed.
Once the nominal value is reached, this smoothing interval will be fixed.
Note that the smoothing filter is a simple n-point running average.
♦ Minimum ionosphere correction smoothing interval
Parameter: /par/raw/iono/minsmi
Minimum ionosphere correction smoothing interval is an integer parameter varying
within the range of 0..30..900 seconds.
The parameter /par/raw/iono/minsmi specifies the minimum smoothing
interval (Tmin) for the receiver to filter raw ionospheric corrections before they can
be used in position computation. In practice, Tmin is always smaller than Tnom.
♦ C/A code multipath reduction
Parameter: /par/raw/corr/ca/code
Type: enumerated
Values: normal | mpnew
Notes:
1. This command allows the reduction of C/A code phase multipath only.
2. The feature (i.e., C/A code phase multipath reduction) is available only if
the receiver option “_MPR” is enabled.
♦ C/A carrier phase multipath reduction
Parameter: /par/raw/corr/ca/carrier
Type: enumerated
Values: normal | mpnew
Notes:
1. This command allows the reduction of C/A carrier phase multipath only.
2. The feature (i.e., C/A carrier phase multipath reduction) is available only if
the receiver option “_MPR” is enabled.
52
♦ Anti-jamming parameters
Parameter: /par/ajm/mode
Values:
gps
Anti-jamming is effective only for GPS L1 and L2
glo
Anti-jamming is effective only for GLONASS L1 and L2
l1
Anti-jamming is effective only for GLONASS L1 and GPS L1
l2
Anti-jamming is effective only for GLONASS L2 and GPS L2
auto
Receiver automatically detects which bands are affected by interference and
launches the jamming suppressor there
off
AJM is OFF (default value)
♦ Oscillator frequency offset reduction mode
Parameter: /par/osc/mode
Values: off | locked | tied
If this parameter is set to “locked”, the receiver will adjust the internal
oscillator's frequency until the measured frequency offset is reduced to zero. By
using the incoming satellite signals, the receiver will force the internal oscillator to
generate a very stable 20 MHz frequency signal. This frequency output is
available via the corresponding receiver output pin.
If this parameter is set to “tied”, the receiver will adjust both the internal
oscillator's frequency until the measured frequency offset is reduced to zero and
the internal clock until it gets fully synchronized with the specified reference time
scale (for example, GPS time).
Notes:
1. After you have issued the command set,osc/mode,locked, it may take
the receiver up to a minute to adjust the internal oscillator frequency to the
true (nominal) value. The transient period is even longer when running the
command set,osc/mode,tied.
2. If you change this parameter from “locked” or “tied” to “off”, the internal
oscillator frequency will rebound to its quiescent value abruptly, which may
result in temporary loss of lock to satellites.
3. Setting this parameter to “locked” only guarantees that the receiver's 20
MHz output will have high long-term stability, not necessarily high shortterm stability (the latter depends on the internal oscillator type). However,
there is a way to guarantee that both of these characteristics are good even
when using the internal crystal oscillator. It can be done by switching the
receiver to common loop mode.
3.13.1 Loop parameters
The user should distinguish between “guiding” and “guided” loops. In TPS
receivers, C/A PLLs are referred to as “guiding loops” whereas the other lock
53
loops (specifically, C/A DLLs, P/L1 PLLs, P/L1 DLLs, P/L2 PLLs, P/L2 DLLs) are
called “guided loops”.
♦ C/A PLL bandwidth:
Parameter: /par/raw/pll/band
Float parameter varying within the range of 2..25..50 Hz.
This parameter governs C/A PLLs only.
Notes:
1. Care should be exercised when changing this parameter. An improperly set
PLL bandwidth may result in receiver malfunction. In most scenarios,
however, the receiver will perform correctly provided that its guiding loop
bandwidth lies between 10 Hz and 50 Hz.
2. This parameter serves both GPS and GLONASS satellites.
3. What kind of factors may prevent from further narrowing PLL bandwidths?
To begin with, the internal oscillator's noise often does not allow the use of
bandwidths less than 5 Hz. Another critical factor is ionosphere fluctuations
and/or quick multipath. This may adversely affect the receiver performance
even if you use a high quality external frequency standard. Lastly, be aware
that in many kinematic applications you may have to use wider PLL
bandwidths to account for the receiver dynamic.
♦ C/A delay loop bandwidth:
Parameter: /par/raw/cagdl/band
This float parameter specifies the bandwidth of the receiver’s C/A delay lock loop.
It varies within the range of 0.1..0.8..50 Hz.
Care should be taken that the setting used doesn't result in receiver malfunction.
You don't usually experience any problems with this parameter as long as its
value lies between 0.2 Hz and 5 Hz.
What can prevent you from using more narrow bandwidths in guided loops?
The main limitation here is ionosphere fluctuations and quick multipath.
Alternatively, what may prevent you from using a bandwidth larger than 5 Hz? The
answer is GPS anti-spoofing, which results in much lower signal-to-noise ratios as
compared to C/A measurements. Although GLONASS has no mechanism similar
to GPS anti-spoofing, GLONASS channels are, however, also formally subject to
these limitations since there are no separate settings for GPS and GLONASS
loops in the receiver.
♦ P/L1 and P/L2 guided loop bandwidth:
Parameter: /par/raw/gdl/band
This float parameter takes values varying within the range of 0.1..0.5..10 Hz.
This parameter governs all of the “guided” loops but the C/A DLLs, specifically,
P/L1 PLLs, P/L1 DLLs, P/L2 PLLs and P/L2 DLLs.
Care should be taken when using values other than the default (see notes to the
previous parameter).
54
♦ Guiding and common lock loop order:
Parameter: /par/raw/pll/order
This integer parameter can be set to either “2” or “3”.
Notes:
1. Care should be exercised when changing this parameter from the default
value to “2”. We don't recommend you to use a 2nd order PLL unless you
are certain that the receiver's trajectory is far from being a uniformly
accelerated motion, and therefore using a lower-order PLL might make a
difference. Imagine you are a field operator carrying a GPS/GLONASS
receiver in your backpack and you need to collect raw data for your RTK
project. In this and in similar cases, using a 2nd order PLL may pay off.
2. This parameter, as its name implies, describes both guiding and common
loops.
♦ Enable/disable the “common loop” mode
Parameter: /par/raw/clp/loops
Values: off | on
For more information about the “common loop” mode, see
http://www.topcongps.com/images/coop_tracking.pdf.
When in “common loops” mode, you may want to change either or both of the
“common loop” bandwidth and “individual” loop bandwidth.
♦ Individual loop bandwidth
Parameter: /par/raw/clp/indband
Float parameter varying within the range of 2..5..20 Hz.
♦ Common loop bandwidth
Parameter: /par/raw/clp/comband
Float parameter varying within the range of 2..25..50 Hz.
♦ Set/query receiver dynamics for co-op tracking
Parameter: /par/raw/clp/static
Values: on | off
This parameter is effective only for co-op tracking (note that you switch on the
common loops with the command set,raw/clp/loops,on ).
After you set raw/clp/static to “on”, thus instructing the receiver to start static
co-op tracking, you will be able to acquire satellites with lower signal to noise
ratios. This is achieved by reducing the number of unknowns estimated
(specifically, from 4 down to 1), which is possible only for a static receiver.
Note that static co-op tracking may be used for RTK reference stations.
♦ Enable/disable P/L1, P/L2 channel tracking
Parameter: /par/lock/pcode
Values: on | off
55
With this command, you can make your dual-frequency receiver work as a singlefrequency one. If this parameter is set to “off”, the receiver will acquire C/A /L1
data only.
Example.
Suppose you have to use an L1 only antenna to collect data for a project. In this
case, it is recommended to disable your receiver to acquire and process P/L1 and
P/L2 signals.
♦ Enable/disable adaptive guided loops
Parameter: /par/raw/gdl/adapt
Values: on | off
This parameter instructs the receiver to enable/disable adaptive guided loops.
If raw/gdl/adapt is set to “on”, the receiver will adjust the guided loops
bandwidths depending on the actual strengths of the signals tracked. The weaker
the signals, the narrower the bandwidths.
♦ Enable/disable use of additional (L2-specific) common loop
Parameter: /par/raw/clp2/loop
Values: on | off
Note that in dynamic applications the measured carrier phase will also depend on
antenna rotation around its axis. Abrupt antenna rotation can bring about
significant additional carrier phase dynamics, which may result in poor L2 phase
tracking.
By setting this parameter to “on”, you ensure that your receiver effectively tracks
L2 carrier phases in all channels.
3.14 Positioning & Timing parameters
Let us begin with the notations used in this section.
datum is a string of up to 5 upper case characters. This designates the geodesic
datum in which the receiver's reference position is specified.
x,y,z designates the receiver's Cartesian coordinates in the specified datum.
lat,lon,alt designates the receiver's latitude, longitude and ellipsoidal height in the
specified datum, respectively.
To enter Cartesian coordinates, you can use any of the float point formats the C
programming language allows for the types float and double.
How does the receiver handle geodetic coordinates?
The print command currently supports the following format:
• for latitude - [N|S]DDdMMmSS.SSSSSSs,
• for longitude - [E|W]DDDdMMmSS.SSSSSSs
where
the direction signs N, S, E, and W designate Northern, Southern, Eastern,
and Western hemisphere, respectively,
DD and DDD stand for integer degrees,
MM stands for integer minutes,
SS.SSSSSS designates float seconds,
and d, m and s serve as delimiters.
56
Examples.
1) N83d42m47.556000s means 83 degrees 42 minutes and 47.556 seconds
Northern latitude.
2) E083d42m47.556000s means 83 degrees 42 minutes and 47.556 seconds
Eastern longitude.
Note: Whether an updated print command with programmable format ever
appears or not, GRIL will support the current “fixed format” version in either case
(to provide backward compatibility with the earlier firmware versions).
What formats does the corresponding set command support?
Latitudes and longitudes you enter can range within [-90, 90] and [-180, 180]
degrees, respectively. Negative longitude corresponds to the Western
hemisphere; negative latitude corresponds to the Southern hemisphere.
The set command supports two different formats for latitude and longitude.
These are the “general format” and the “almost fixed format”.
General Format
As the name of this format implies, this is a very flexible format enabling you to
specify latitude and longitude in a number of different ways. You can use various
angular units (specifically, degrees, minutes, seconds, and radians) and their
combinations.
Angle representation may comprise one or more floating point numbers. Every
float number in the angle representation except the right-most one must have a
delimiter after it. Allowed delimiters are “d”, “m”, “s”, or “r”, which denote degrees,
minutes, seconds, and radians, respectively. Using a delimiter after the right-most
float number in the angle representation is optional. If you omit the delimiter after
the right-most float number, the receiver will first identify the preceding delimiter
and then retrieve the omitted one by using the following decision rule:
Preceding delimiter
Omitted delimiter is
assumed equal to
d
m
m
s
s
s
r
r
none
d
An angle representation may or may not have a direction sign. Direction signs are
“E” and “W” to denote Eastern and Western longitude, “N” and “S” to denote
Northern and Southern latitude, respectively. A direction sign may be placed
either at the very beginning or at the very end of the angle representation (see the
examples below).
Each of the separate floats describing “degrees”, “minutes”, “seconds” and
“radians” is multiplied by an appropriate factor and the resulting products are
57
summed. Also, if there is either “W” or “S” in the angle representation, the
resulting sum's sign is inverted.
If there is no direction sign in the angle representation, such notation is still valid.
Lastly, you can enclose your angle representation in double quotes (this is
optional).
Examples.
1. 37.87 and 37.87d.
These angle representations are equivalent. Either means 37.87 degrees Eastern
longitude or 37.87 degrees Northern latitude.
2. 37.87W, W37.87, 37.87dW, and W37.87d.
These four representations are all equivalent meaning 37.87 degrees Western
longitude.
3. 27d37m20.45sE and 27d37m20.45E.
Equivalent representations meaning 27 degrees 37 minutes and 20.45 seconds
Eastern longitude.
4. -0.85r.
This means either 0.85 radians Western longitude or 0.85 radians Southern
latitude.
5. 27.13d-12.6s34dW.
This means 27.13 degrees minus 12.6 seconds plus 34 degrees Western
longitude. It is equivalent to 61.13 degrees minus 12.6 seconds Western longitude
or simply 61.1265 degrees Western longitude.
Almost Fixed Format
Note that this format is close to how latitude and longitude are presented in NMEA
sentences.
This format comprises the following data fields (from left to right):
• letter “x” (in lower case),
• one or more decimal digits before the decimal point,
• decimal point “.” (optional),
• one or more decimal digits (if any) after the decimal point (optional),
• direction sign (“E” or “W” for longitude, “N” or “S” for latitude).
This format uses integer degrees and float minutes. Which digits correspond to
(integer) degrees, and which describe integer and fractional minutes?
• Integer minutes are described either by the two decimal digits immediately
before the decimal point or, if there is no decimal point in the angle notation, by
the two decimal digits immediately before the direction sign.
• Fractional minutes (if any) are described by the decimal digits after the decimal
point.
• The remaining decimal digits (the left-most ones) describe degrees (note that
this format uses only integer degrees)
Again, you can optionally enclose your angle representation in double quotes.
Examples.
1. x12023.234E means 120 degrees and 23.234 minutes Eastern longitude.
2. x1202E means 12 degrees and 2 minutes Eastern longitude.
58
♦ Satellite elevation mask for position computation
Parameter: /par/pos/elm
Type: integer; degrees
Values: [0…5…90]
Satellites with elevations lower than this mask will be excluded from position
computation.
♦ Minimum allowed signal-to-noise ratio for satellites used in position
computation
Parameter: /par/pos/minsnr
Type: integer; dB*Hz
Values: [0…30…50]
Only those satellites will be used in position computation whose signal-to-noise
ratios (in dB*Hz) exceed the specified threshold value.
♦ Set/query position computation mode
Parameter: /par/pos/mode/cur
Type: enumerated
Values: sp | cd | pf | pd
You can run the receiver in one of the following positioning modes:
“sp” - single point positioning mode11
“cd” - code differential mode
“pf” - RTK with float ambiguities
“pd” - RTK with fixed ambiguities
♦ Enable/disable output of single point position
Parameter: /par/pos/mode/sp
Type: boolean
Values: on | off
If the receiver is running in a differential mode and is unable to obtain a differential
solution position at the current epoch, it will output the current single-point position
for the unavailable differential unless this parameter has been switched off.
♦ Set/query measurement types used for position computation
Parameter: /par/pos/sp/meas
Type: enumerated
Values: ca | p1 | p2 | ionofree
This parameter specifies that the receiver will use either an ionosphere-free
combination or original pseudoranges from the corresponding slot in position
computation.
Recall that “ca”, “p1”, “p2”, and “ionofree” stand for L1 Coarse Acquisition code,
L1 Precise code, L2 Precise code and Ionosphere-Free combination, respectively.
Note: This parameter is effective only for the single point positioning mode (“sp”).
11
) also known as “absolute positioning”, “stand-alone positioning” or simply “point positioning”
59
♦ Satellites used for position computation
In the table below, “N” denotes an integer number between 1 and 32 for GPS and
between 1 and 24 for GLONASS.
Each of the following objects can be set to either “on” or “off”.
/par/pos/gps/sat
With the set command you will enable or disable the use
Examples:
of GPS satellites depending on the object value specified
- set,/par/pos/gps/sat,on
(“on” or “off”).
After you have issued the print
- set,/par/pos/gps/sat,off
command, the receiver will output a comma-delimited
- print,/par/pos/gps/sat
sequence of y's and/or n’s whose positions in the
sequence will indicate the PRN numbers of the enabled
and disabled satellites, respectively.
/par/pos/gps/sat/N
With the set command you will enable or disable the use
Example:
of SV GPS PRN N in position computation depending on
- set,/par/pos/gps/sat/13,off
whether the object is set to “on” or “off”.
(SV GPS PRN 13 will be
excluded from position
computation)
/par/pos/glo/sat
With the set command, you will enable or disable the
Examples:
use of GLONASS satellites depending on the object
- set,/par/pos/glo/sat,on
value specified (“on” or “off”). After you have issued the
- set,/par/pos/glo/sat,off
print command, the receiver will output a comma- print,/par/pos/glo/sat
delimited sequence of y's and/or n's whose positions in
the sequence will indicate the orbit slot numbers of the
GLONASS satellites used for position computation.
/par/pos/glo/sat/N
With the set command, you will enable/disable the use
Example:
of GLONASS SV#N depending on the object value
- set, /par/pos/glo/sat/13,off
specified (“on” or “off”). Note that “N” designates the
(This will exclude GLONASS
GLONASS satellite's orbit slot number here.
#13 from position computation)
/par/pos/glo/fcn
With the set command, you will enable or disable the
use of GLONASS satellites depending on the object
value specified (“on” or “off”). After you have issued the
corresponding print command, the receiver will output
a comma-delimited sequence of y's and/or n's whose
positions in the sequence will indicate the frequency
channel numbers of the GLONASS satellites used in
position computation.
Note: From a functional point of view, the command
set,/par/pos/glo/fcn,on is equivalent to
set,/par/pos/glo/sat,on and the command
set,/par/pos/glo/fcn,off is equivalent to
set,/par/pos/glo/sat,off.
/par/pos/glo/fcn/N
With the set command, you will enable/disable the use
Example:
of the GLONASS satellite with frequency channel number
- set, /par/pos/glo/fcn/13, on
“N”.
(The GLONASS satellite with
frequency number 13 will be
used in position computation)
60
♦ Select satellite navigation constellation for position computation
Parameter: /par/pos/sys
Type: list
Values: {on|off, on |off}.
This parameter allows you to select a satellite constellation used for position
computation. The first and the second values correspond to GPS and GLONASS,
respectively. By default, all available GPS and GLONASS satellites will be used in
point positioning.
♦ Correct pseudoranges for ionospheric errors when computing point position
Parameter: /par/pos/sp/iono
Type: boolean
Values: on | off
If this parameter is set to “on”, the receiver will correct the measured
pseudoranges for ionospheric delay errors before computing the point position.
For the ionospheric model used, please refer to [1]. Ionospheric corrections are
computed using data from the [IO] message (see 4.3.6.22).
Note that the ionospheric model from [1] is used in the receiver exclusively for
computing single point position. Receiver log-files will contain raw pseudoranges.
♦ Correct pseudoranges for tropospheric errors when computing point position
Parameter: /par/pos/sp/tropo
Type: boolean
Values: on | off
If this parameter is set to “on”, the receiver will correct the measured
pseudoranges for tropospheric delay errors when computing the point position.
For the tropospheric model applied, please refer to [2]. Note that this tropo
correction model is used by the receiver exclusively for single point positioning.
Receiver log-files will contain raw pseudoranges.
♦ PDOP mask for position computation
Parameter: /par/pos/pdop
Type: float
Values: [0...30…500]
If the current PDOP value exceeds the specified mask, the receiver will not
compute the position.
♦ Altitude used in position computation
Parameter: /par/pos/alt
Type: float; meters
Values: [–1000…0…+10000]
It describes the ellipsoidal height in the currently used datum (see below). Care
should be taken that this parameter is specified before you issue the
set,/par/pos/fix/alt,on command.
61
Note: This command serves two purposes.
First, using an a priori ellipsoidal height will allow the receiver to get
a position fix in critical situations when there are few satellites in
sight and when it is impossible to derive the point solution using the
current measurements only.
Second, using a precise a priori ellipsoidal height estimate will allow
you to have more precise position fixes.
♦ Enable/disable receiver to use fixed altitude
Parameter: /par/pos/fix/alt
Type: boolean
Values: on | off
If this parameter is set to “on”, this will enable the receiver to use in position
computation the “fixed” ellipsoidal height entered with a set,pos/alt,…
command.
Note that this setting is effective only when the receiver runs in either “sp” or “cd”
mode.
♦ Enable/disable receiver to utilize user-defined geoidal separation
Parameter: /par/pos/fix/geoidh
Type: boolean
Values: on | off
TPS receivers incorporate the global geoid model from [2]12, which is available if
the receiver option “_GEO” is on.
If the receiver option “_GEO” is enabled, setting the parameter
/par/pos/fix/geoidh to “on” will instruct the receiver to use an alternative
geoidal separation from the parameter /par/pos/geoidh (see below) for the
geoidal separation value computed through the built-in model13.
♦ Set/query user-defined geoidal separation
Parameter: /par/pos/geoidh
Type: float; meters
Values: [–1000…0…+1000]
This parameter contains the user-defined geoidal separation. If the parameter
/par/pos/fix/geoidh is set to “on”, the user-defined geoidal separation value
is used for orthometric height computation (overriding its counterpart from the inbuilt geoidal model if this model is enabled in the receiver; see the above
parameter).
12
) more specifically, [2], Appendix 6, "Standard Mean Sea Level Algorithm".
13
) as a rule, this is only applicable to static receivers
62
♦ Specify fixed time offset between GLONASS and GPS time scales
Parameter: /par/pos/gpsglo
Type: float; meters
Values: [–300000…0…+300000]
This float parameter determines the a priori known (constant) time offset between
the GLONASS and GPS time scales. Note that this offset is entered in meters, not
in time units (just divide this value by the speed of light to get the offset in
seconds).
Notes:
1. This parameter serves two purposes.
First, using an a priori time offset will allow the receiver to get a
position fix in critical situations when there are few satellites in sight
and when it is impossible to derive the point solution using the
current measurements only. For example, if there are only three
GPS satellites and one GLONASS satellite in view, the receiver
won't be able to get a position fix unless the user enters a
GLONASS vs. GPS time offset or some other a priori data, thus
reducing the number of unknowns in the corresponding set of
equations.
Second, using a precise a priori time offset will allow you to have
more precise position fixes.
2. Care should be taken that this parameter is correctly specified before you
issue a set,/par/pos/fix/gpsglo,on command.
♦ Enable/disable use of a priori (fixed) offset between GPS and GLONASS time
scales
Parameter: /par/pos/fix/gpsglo
Type: boolean
Values: on | off
If you set this parameter to “on” after having sent a set,pos/gpsglo,…, the
receiver will use this constant time offset in position computation. Note that this
parameter is effective only when the receiver runs in either “sp” or “cd” mode.
♦ Local time zone (offset)
Parameter: /par/pos/ltz
Type: list {integer,integer}
Values: {[–13…0…+13],[0…+59]}
The first parameter in the list describes the local zone hour offset from the UTC
time.
The second parameter in the list describes the local zone minute offset from the
UTC time.
These local zone hour and minute offsets will be used in NMEA ZDA message.
63
♦ Set/query Improved Timing mode for static receiver
Parameter: /par/pos/clk/fixpos
Type: boolean
Values: on | off
If this parameter is set to “on”, the receiver will use the a priori known coordinates
from the “/par/ref/pos” object to solve for the unknown time offsets “GPS
system time vs. receiver time” and “GLONASS system time vs. receiver time”.
Running the receiver in the Improved Timing mode serves two main purposes.
First, it enables you to synchronize your receiver with the GPS and/or GLONASS
time scales even when you have only one GPS satellite and/or one GLONASS
satellite in sight!
Second, and most important, this mode provides better synchronization precisions
as compared with the general case when the receiver has to solve for both
coordinates and time offsets.
When is the Improved Timing mode worth running?
There are static applications where the receiver is used as an external highprecision timer. In such applications it is of great importance to synchronize the
PPS and EVENT signals to the global time scales with the highest possible
accuracy and precision.
Warning 1. Make sure that the a priori coordinates you have specified through
/par/ref/pos are accurate enough.
Warning 2. This mode is intended for static applications only.
3.14.1 Datum parameters
♦ Set/query receiver reference position in Cartesian coordinate system
/par/ref/pos/gps/xyz
GPS
/par/ref/pos/glo/xyz
GLONASS
Object format: {datum,x,y,z}
The first argument, “datum”, indicates the datum in which the base station's
reference coordinates are specified. For the list of valid datum identifiers, please
see comments to /par/pos/datum/cur.
x,y,z are Cartesian coordinates in meters (float numbers).
Default: {W84,6378137,0,0} for either object.
These two closely related objects play a very important part in RTK and code
differential since they determine the base station's precise coordinates.
There are two ways to set up these objects in the receiver.
If, for some reason, you want to have independent reference position estimates
for GPS and GLONASS, then you will have to set the objects
/par/ref/pos/gps/xyz and /par/ref/pos/glo/xyz separately, one after
the other. For example, you may want to explicitly specify the reference position in
WGS-84 for GPS measurements and the reference position in PE-90 for
GLONASS. In most cases, however, it is recommended to use one reference
position estimate for both GPS and GLONASS. With the command
set,/par/ref/pos//xyz,…., you can specify both of the objects
/par/ref/pos/gps/xyz and /par/ref/pos/glo/xyz at one time.
64
Warning: Your receiver does not recognize the command
print,/par/ref/pos//xyz.
♦ Set /query receiver reference position in geodetic coordinate system
/par/ref/pos/gps/geo
GPS
/par/ref/pos/glo/geo
GLONASS
Object format: {datum,lat,lon,alt}
The first argument, “datum”, indicates the datum in which the base station's
reference coordinates are specified. For the list of valid datum identifiers, please
see comments to /par/pos/datum/cur.
lat,lon,alt are geodesic coordinates (latitude, longitude and ellipsoidal height,
respectively).
Default: {W84,0,0,0} for either object.
You can specify these objects in the following two ways.
If, for some reason, you want to have independent reference position estimates
for GPS and GLONASS, you will have to set the objects
/par/ref/pos/gps/geo and /par/ref/pos/glo/geo separately, one after
the other. For example, you may want to explicitly specify the receiver's reference
position in WGS84 for GPS measurements and its reference position in PE-90 for
GLONASS.
As a rule, it is sufficient to use one and the same reference position estimate to
specify both /par/ref/pos/gps/geo and /par/ref/pos/glo/geo. In
addition, with the command set,/par/ref/pos//geo,…., you can specify both
of the objects at one time.
Warning: The receiver will not recognize the command
print,/par/ref/pos//geo.
Note: The objects /par/ref/pos/gps/geo and /par/ref/pos/gps/xyz
are “mutually dependant” since they both represent a physical point's position in
one and the same datum. In fact, these two “logical” objects are just two different
representations of the same “physical” object in the receiver's memory.
The objects /par/ref/pos/glo/geo and /par/ref/pos/glo/xyz are
logically dependent on each other too. They are but two different representations
of the same “physical” object in the receiver memory.
♦ Query the receiver’s reference position in WGS-84 (for GPS) or PE-90 (for
GLONASS)
Parameter: /par/ref/syspos/gps/xyz
Parameter: /par/ref/syspos/glo/xyz
Object format: {datum,x,y,z}
Parameter: /par/ref/syspos/gps/geo
Parameter: /par/ref/syspos/glo/geo
Object format: {datum,lat,lon,alt}
65
♦ Select current datum for position computation
Parameter: /par/pos/datum/cur
Type: enumerated
Values: any of the datum names supported by TPS receivers.
Default: W84
This parameter specifies the identifier of the datum used for position computation.
The parameter takes string values from a “list of allowed datums”. Each string in
the list may comprise up to 5 upper case characters. Default is W84 (WGS-84).
This parameter is effective whatever position computation mode is selected. Your
receiver will support, first, all of the datums whose identifiers are listed in [3] and,
second, the following four datums14:
W84 (this stands for the WGS-84 datum),
P90, (this stands for the PE-90 datum; recall that it is PE-90 that
GLONASS is based on),
W72 (stands for the WGS-72 datum),
USER, which designates the user-defined datum (see the command
set,pos/datum/USER below). You can have only one user-defined
datum in current use.
♦ User defined datum
Parameter: /par/pos/datum/USER
Object format:
{{U-,Axis,InvFlat},{USER,R,dX,dY,dZ,Rx,Ry,Rz,S}}
where
U- — This is a flag designating the user-defined ellipsoid. You can either
enter this flag exactly as shown above (the letter “U” in the upper case and
the “minus” sign followed by comma) or, alternatively, enter nothing in this
field (note that the delimiting comma will still exist).
Axis — Float parameter designating the reference ellipsoid's major semiaxis. This is measured in meters. Ranges from 6300000 to 6500000.
InvFlat — Float parameter designating the reference ellipsoid's inverse
flattening. This dimensionless parameter ranges within 280 … 300.
USER — This is a flag designating the user-defined datum. You can either
enter this flag as shown above (string “USER” in upper case) or simply
omit these four characters (the following delimiting comma must be
retained)
R — This integer parameter specifies which of the two “principal” datums
your user-defined datum is related to. Specify “0” for WGS-84 and “1” for
PE-90.
dX,dY,dZ — Components of the translation vector with respect to the
reference datum as specified by the “R” flag (see above). Each component
can range within -10000..+10000 meters.
Rx,Ry,Rz — Components of the rotation vector (in seconds of arc). Each
component can range within -60..+60.
S — scale in ppm (actual scale= S×10-6). It ranges within -100..+100.
By default, the user-defined datum will coincide with WGS84.
14
) [3] does not give aliases for the datums WGS-84, PE-90, WGS-72. Note that datum identifiers
W84, P90 and W72 are used in NMEA sentences and other related sources.
66
The above parameters specify a coordinate transformation from the user-defined
datum to WGS-84 (or PE-90) according to the following equations:
 1
Rz − R y   X 
∆X 
X 




Y 
−6
1
R x  ⋅  Y 
=  ∆Y  + (1 + S ⋅ 10 ) ⋅ − R z
 
 R y − Rx
 Z  WGS −84  ∆Z 
1   Z  local

♦ PE-90 datum parameters
Parameter: /par/pos/datum/P90/par
Object format: {P90,0,dX,dY,dZ,Rx,Ry,Rz,S}
where
P90 — This flag designates “your” PE-90 datum. You can either enter this
flag as shown above (string “P90” in the upper case) or just omit these
three characters (the following delimiting comma will still exist).
0 — This flag shows which datum your P90 transformation parameters are
related to. You can either enter zero as shown above or, alternatively, just
omit this zero character (the corresponding delimiting comma will still exist).
This zero flag indicates that your version of the PE-90 datum is related to
the WGS-84 datum (which is usually the case in theory and practice).
dX,dY,dZ — Components of the translation vector. Components can take
float values in the range of -10000..+10000 meters.
Rx,Ry,Rz — Components of the rotation vector. Components take float
values in the range of -60..+60 arc seconds.
S — Scale factor in ppm (actual scale= S×10-6). This factor can take float
values between -100..+100.
There are no “universal” Helmert transformation parameters for the PE-90
datum so far. This explains why the user is allowed to define his/her own
version of the transformation parameter set.
By default, the receiver will employ the parameter set
{P90,0,+0.0000,+0.0000,+1.0000,+0.00000,+0.00000,0.20626,+0.00000}
when using combined GPS/GLONASS measurements in position
computation.
This set was taken from [4]. Note that these parameters specify a
transformation from PE-90 (in full, Parameters of Earth, 1990) to WGS-84.
♦ Query Predefined Datum's Parameters
Parameter: /par/pos/datum/[D]
In this notation, [D] denotes either one of the valid datum identifiers (see the note
to the parameter /par/pos/datum/cur above) or INUSE.
The latter
designates the current datum you have specified with a set,pos/datum/cur,…
command.
Send the print,/par/pos/datum/[D] command to query the parameters of
the desired datum. The receiver will output a string in the following format:
{{EL,Axis,InvFlat},{DATUM,R,dX,dY,dZ,Rx,Ry,Rz,S}}
where
EL - This is the reference ellipsoid's ID code. Recall that for the userdefined ellipsoid EL=”U-“.
Axis - This is the reference ellipsoid's major semi-axis in meters (ranges
between 6300000..6500000)
67
InvFlat - This is the reference ellipsoid's inverse flattening (dimensionless
value ranging between 280..300)
DATUM — This is the datum's ID code. Recall that for the user-defined
datum this field will contain “USER”.
R — This flag indicates whether the datum's transformation parameters are
specified with respect to WGS-84 (R=0) or PE-90 (R=1)
dX,dY,dZ — translations in X-, Y- and Z-direction, respectively. Each
component ranges between -10000..+10000 meters.
Rx,Ry,Rz — rotations around X-, Y- and Z-axis, respectively. Each
component ranges between -60..+60 seconds of arc.
S — scale in ppm (true scale= S×10-6) ranging within -100..+100.
The following print-only commands allow the user to view the parameters of
a specific datum
Reference ellipsoid parameters
/par/pos/datum/NAME/ell
7-param transformation coefficients
/par/pos/datum/NAME/par
Both reference ellipsoid and 7-param transformation data
/par/pos/datum/NAME
where NAME designate the name of a datum.
For example, to view the parameters of the user-defined datum, execute
/par/pos/datum/INUSE.
Similarly, the command /par/pos/datum/ZAN/par
will instruct the receiver to output the parameters of the “ZAN” datum.
♦ Set/query current grid system
Parameter:/par/pos/grid/cur
Type: enumerated
Values: NONE | UTM | USER | LOC
where
NONE – receiver will not compute grid coordinates (this mode allows some
reduction of the processor’s computation load).
UTM – Universal Transverse Mercator (automatic selection of the right
zone). 6-degree zones with the scale = 0.9996.
USER – user-defined grid system.
LOC – local coordinates (as a result of the localization procedure).
Note that computation of grid and local coordinates depends on the parameter
/par/pos/datum/cur. Ensure that this parameter is specified properly.
♦ Set/query parameters of user-defined grid system
Parameter:/par/pos/grid/USER
Object format:
{MapPrj,Lat0,Lon0,Scale,FalseN,FalseE}
68
where
MapPrj — Map projection identifier:
TM – Transverse Mercator projection.
STER - Stereographic projection.
Lat0 – Latitude of the origin of the grid projection.
Lon0 – Longitude of the central meridian of the projection.
Scale – Scale (ranges within 0.1 – 10.0).
FalseN – False Northing (ranges between –10000000… +10000000 meters).
FalseE – False Easting (ranges between –10000000… +10000000 meters).
♦ Set/query parameters for transformation to local coordinates
Parameter:/par/pos/local/par
Object format:
{Lat0,Lon0,ScalePrj,FalseN,FalseE,delN,delE,Scale,Rotation,Hx,Hy,Ho}
where
Stereographic projection parameters:
Lat0 – latitude of the origin of the projection.
Lon0 – longitude of the origin of the projection.
ScalePrj - Scale factor of the projection ranges within 0.1 – 10.0.
FalseN – False Northing (ranges between –10000000… +10000000
meters).
FalseE – False Easting (ranges between –10000000… +10000000
meters).
Parameters obtained from the localization procedure:
delN – offset in North direction (ranges between –10000000… +10000000
meters).
delE – offset in East direction (ranges between –10000000… +10000000
meters).
Scale – Scale factor ranges within 0.1 – 10.0.
Rotation – Rotation angle in degrees (0-360).
Hx, Hy, Ho - parameters that relate to the height transformation;
Hx and Hy are dimensionless (both range between ±1). Ho ranges between
±10000 meters.
n = scale ⋅ ( xstereo ⋅ cos α − y stereo ⋅ sin α ) + ∆N
e = scale ⋅ ( xstereo ⋅ sin α + y stereo ⋅ cos α ) + ∆E
h = H o + H x ⋅ xstereo + H y ⋅ y stereo
Example:
set,/par/pos/local/par,{N70d41m56.6108s,E23d37m3.9022s,1,113
2.592,4163.613,2642.1273,300.6369,0.9997139637,34d31m51.6240
s,0.00001119,0.00002827,69.4020}
69
3.14.2 Filtering position estimates
♦ Position filter mode
Parameter: /par/pos/filt/mode
Type: boolean
Values: on | off
The command turns on/off the position filter.
♦ Position filter type
Parameter: /par/pos/filt/type
Type: string
Values: stat
Currently, this parameter can only be set to “stat”. In the future, more filter types
(presumably “dyn1”, “dyn2”, etc.) may be added.
If this parameter is set to “stat”, a simple N-point weighted moving average is used
to smooth the current position. Note that this type of position filter normally applies
only to static (or “nearly static”) receivers in “sp” or “cd” mode. It is especially
useful when the number of tracked satellites changes abruptly; in this case the
position accuracy may drop15 dramatically unless the position filter is on.
For moving receivers, using this type of position filter may adversely affect the
receiver trajectory's accuracy.
♦ Position filter “length”
Parameter: /par/pos/filt/num
Type: integer
Values:[1…30…10000]
This parameter designates the number (“N”) of the preceding pre-filtered position
measurements used by the least-squares estimator to obtain the current smooth
position. If /par/pos/filt/type = “stat”, this estimator is just an N-point
weighted running average.
♦ Maximum allowed time gap between adjacent position estimates
Parameter: /par/pos/filt/maxdel
Type: integer; seconds
Values:[1…10…3600]
This parameter specifies the maximum allowed time gap mask for two successive
position estimates. If the current position estimate is obtained in more than
maximum allowed time gap seconds after the previous one, the position filter is
reset
(functionally,
this
is
similar
to
executing
a
set,/par/pos/filt/reset,on command).
15
) temporarily
70
♦ Reset the position filter
Parameter: /par/pos/filt/reset
Type: boolean
Values: on | off
If the parameter is set to “on”, the position filter will be reset.
Immediately after the reset, the parameter will automatically be set to “off”.
♦ Set/query weighting mode for the position filter
Parameter: /par/pos/filt/weight
Type: boolean
Values: on | off
If this parameter is set to “off”, the position filter treats all of the position estimates
as uniformly weighted measurements.
If this parameter is set to “on”, each position estimate will have its own weight
depending on the corresponding rms error.
3.15 PPS signal parameters
TPS receivers can generate precise PPS (pulse per second) signals with
programmable reference time system, period and offset. PPS signals are
available via the corresponding output connector pins (for this information, please
see the TPS receiver pinout description at the TPS website). These trigger signals
may be synchronized to the reference time grid in two ways. You can either
synchronize the falling edge of the PPS signal with the specified reference time or
synchronize the rising edge of this signal with the reference time. In addition, you
can use the “offset” parameter to have your PPS grid shifted with respect to the
reference time grid.
The equation describing your PPS grid is as follows:
reference_time%period==offset,
(i.e., “receiver reference time modulo period is equal to offset”).
There are two PPS outputs in TPS receivers, “a” (PPSA) and “b” (PPSB). It
is possible to use both PPS outputs concurrently.
Due to a hardware limitation, PPS signals are discrete with a resolution of
25 ns. TPS receivers, however, allow compensation for this “discreteness error”.
You can force the receiver to generate for each PPS pulse a message containing
the offset between the scheduled PPS time and the actual pulse edge's arrival
time.
♦ Enable or disable PPS signal generation
Parameter: /par/dev/pps/[a|b]/out
Type: boolean
Values: on | off
71
♦ PPS signal period
Parameter: /par/dev/pps/[a|b]/per/ms
Type: integer; milliseconds
Values: [10...1000...1000000000]
♦ PPS signal offset in milliseconds
Parameter: /par/dev/pps/[a|b]/offs/ms
Type: integer; milliseconds
Values: [-500000000…0…500000000]
♦ PPS signal offset in nanoseconds
Parameter: /par/dev/pps/[a|b]/offs/ns
Type: integer; nanoseconds
Values: [-500000…0…500000]
♦ Falling or rising edge of PPS signal
Parameter: /par/dev/pps/[a|b]/edge
Type: enumerated
Values: rise | fall
♦ PPS signal reference time
Parameter: /par/dev/pps/[a|b]/time
Type: enumerated
Values: gps | glo | utcusno | utcsu
This parameter can take values from the following table:
gps
GPS system time
glo
GLONASS system time
utcusno UTC(USNO)
utcsu
UTC(SU)
72
Note1. If you are going to set this parameter to “glo” or “utcsu”, make sure that
one or more GLONASS satellites are being locked. Similarly, if you are going to
set this parameter to “gps” or “utcusno”, ensure that one or more NAVSTAR
satellites are being locked.
Note2. In static applications where the receiver's precise position is known, we
recommend that you switch your receiver to the Improved Timing mode. To do
this, you should first specify the receiver's precise position with a
set,/par/ref/pos/…
command
and
then
send
the
command
set,/par/pos/clk/fixpos,on.
If you are going to synchronize your event signal with “glo” or “utcsu”, you must
specify the parameter /par/ref/pos/gln first. Similarly, if you want to
synchronize your event signal with “gps” or “utcusno”, make sure that the
parameter /par/ref/pos/gps is correctly specified.
If you are going to concurrently measure event signal A in “gps” time and event
signal B in “gln” time, ensure that both /par/ref/pos/gps and
/par/ref/pos/gln are determined correctly. Note that you can specify the
receiver's position in WGS-84 and PE-90 at one time (with a
set,/par/ref/pos//… command).
♦ Period of “marked” PPS pulses
Parameter: /par/dev/pps/[a|b]/mper
Type: integer; milliseconds
Values:[20…1000000000]
Default: 0
Period of “marked” pulses is measured in milliseconds.
Note: The TPS receiver can generate either or both normal and “marked” PPS
pulses. This parameter specifies the period of the marked PPS signal. Note that
the width of the marked pulse is 0.8192*6 ms whereas the normal pulse's width is
0.8192*4 ms.
If this parameter is set to zero, which is the default value, the receiver will
generate no marked pulses at all.
If this parameter is set to a non-zero value (N2≠0) and the parameter governing
the period of normal pulses is set to N1, then the receiver will generate both
normal and marked pulses, but marked pulses will be output only every (N1, N2)
milliseconds, where (N1, N2) designates the least common multiple of these two
integers.
Example 1.
Assume you have sent the commands
set,dev/pps/a/per/ms,100
set,dev/pps/a/mper,1000
The receiver will output onto the PPSA pin ten pulses per second. Every tenth
pulse will be a marked one (marked pulses will correspond to integer seconds in
the reference time system). All the other pulses will be normal.
Example 2.
Assume you have sent the commands
73
set,dev/pps/b/per/ms,500
set,dev/pps/b/mper,35
The receiver will generate two pulses per second (PPSB pin will be used here).
Every seventh pulse will be a marked one.
♦ Enable/disable PPS signal synchronization to the selected reference time
Parameter:/par/dev/pps/[a|b]/tied
Type: boolean
Values: on | off
There are applications where the user needs to synchronize PPS signals with
either the receiver’s internal clock or an external frequency, not with the selected
reference time. If this parameter is set to “on”, PPS signals are synchronized with
the selected reference time, which is the common practice (thus “PPS signals are
tied to the selected reference time”).
If this parameter is set to “off”, PPS signals are synchronized either with the
receiver’s internal clock or, if the parameter /par/frq/input has been set to
“ext”, with the corresponding external frequency.
3.16 Event signal parameters
TPS receivers have the “event marking” function allowing the user to
measure/record event times in the specified reference time system with high
accuracy. You may have your TPS receiver measure the time of either the rising
edge or falling edge of the input event signal. Most of the TPS receivers may
accommodate up to two external event pins, “a” (Event A) and “b” (Event B).
For more information about External Event Messages [XA], [XB], please see
4.3.8.1.
In the commands below, the notation [a|b] indicates the position where the user
should specify either “a” or “b”.
♦ Enable/disable Event signal
Parameter: /par/dev/event/[a|b]/in
Type: boolean
Values: on | off
♦ Falling or rising edge of Event signal
Parameter: /par/dev/event/[a|b]/edge
Type: enumerated
Values: rise | fall
♦ Event signal's reference time
Parameter: /par/dev/event/[a|b]/time
Type: enumerated
Values: gps | glo | utcusno | utcsu
74
Note1. If you are going to set this parameter to “glo” or “utcsu”, make sure that
one or more GLONASS satellites are being locked. Similarly, if you are going to
set this parameter to “gps” or “utcusno”, ensure that one or more NAVSTAR
satellites are being locked.
Note2. In static applications where the receiver's precise position is known, we
recommend that you switch your receiver to the Improved Timing mode. To do
this, you should first specify the receiver's precise position with a
set,/par/ref/pos/…
command
and
then
send
the
command
set,/par/pos/clk/fixpos,on.
If you are going to synchronize your event signal with “glo” or “utcsu”, you must
specify the parameter /par/ref/pos/gln. Similarly, if you want to synchronize
your event signal with “gps” or “utcusno”, make sure that the parameter
/par/ref/pos/gps is correctly specified.
If you are going to concurrently measure event signal A in “gps” scale and event
signal B in “gln” scale, ensure that both /par/ref/pos/gps and
/par/ref/pos/gln are determined correctly. Recall that you can specify the
receiver's position in WGS84 and PE-90 at one time (with a
set,/par/ref/pos//… command).
♦ Enable/disable use of the computed receiver clock offset when measuring
[XA], [XB] events in the selected reference time
Parameter: /par/dev/event/[a|b]/tied
Values: off | on
With this parameter, the receiver is instructed to measure the event reception time
in the selected reference time with or without consideration for the computed
receiver clock offset.
If the parameter is set to “off”, the event time is measured in the receiver time
scale that will differ from the selected reference time by the computed clock offset.
If the parameter is set to “on”, the event time is measured in the selected
reference time properly. Thus the name of the parameter, tied (figuratively
speaking, we “tie up” event signals rigidly with the selected reference time).
♦ Enable/disable the receiver clock to get synchronized with an event signal
Parameter:/par/dev/event/[a|b]/lock
Values: on | off
The command set,/par/dev/event/[a|b]/lock,on will instruct the
receiver to synchronize its one-millisecond cycle grid with the corresponding edge
of the event signal arrived immediately after the command execution.
You may need to run this set command repeatedly to ensure that the receiver
maintains synchronization with the time scale governing the external event
signals.
♦ Query the status of the receiver clock synchronization
Parameter: /par/dev/event/[a|b]/locked
This command returns a boolean value indicating whether the receiver clock is
actually being synchronized with the event signals or not.
75
3.16.1 How to synchronize the receiver clock with an external event
generator
Connect the external event signal generator to one of the receiver's event inputs
(“a” or “b”). For definiteness assume that Event Input “a” will be used.
Enable the selected event input.
set,/par/dev/event/a/in,on
Select the effective edge for the event signal. In this example, select the rising
edge.
set,/par/dev/event/a/edge,rise
Select a reference time system for the receiver (see 4.3.3). Bear in mind that the
external event generator that we are eventually going to synchronize the receiver
clock with is supposed to be associated with this very time scale.
Let us choose GPS time for definiteness.
set,/par/dev/event/a/time,gps
Ensure that external events are NOT “tied up” with the selected reference time.
set,/par/dev/event/a/tied,off
Enable the synchronization mechanism:
set,/par/dev/event/a/lock,on
The receiver's one-millisecond cycle grid will become synchronized with the
effective edge of the external event signal arrived immediately after issuing this
command.
Notes:
1. It is allowed to run this command repeatedly. Every time this command is
sent, the receiver clock will be re-synchronized with the event signal
generator.
2. The potential accuracy of synchronizing a TPS receiver’s clock with an
external event generator is 25 ns. This is due to a hardware limitation
(recall that the receiver uses a 40 MHz sampling frequency).
3.16.2 How to “coherently synchronize” the receiver’s frequency/clock with
an external generator’s frequency/clock
Assume that it is required to synchronize your receiver with an external highquality generator (“clock”) that has two outputs:
• 10 MHz frequency, and
• one pulse per second signal, which is coherent with the 10 MHz frequency.
Our objectives are as follows.
76
First, we want to make the receiver oscillator’s signal coherent with the external
10 MHz frequency.
Second, we want the receiver time grid to be precisely synchronized with the
external one-pulse-per-second event signals.
Get the receiver ready for using an external frequency.
set,/par/frq/input,ext
Specify the nominal value of the external frequency used (recall that in our
example it is 10 MHz)
set,/par/frq/ext,10
Connect the 10MHz frequency source to the receiver's frequency input.
Finally, follow the steps described above in 3.16.1.
Note: Although, strictly speaking, we cannot measure external events with an
accuracy higher than 25 ns in a TPS receiver, however, the receiver and an
external event generator can be synchronized with a sub-nanosecond accuracy.
The following explains why it is feasible:
It is possible to input a 1 pulse per second (PPS) into one of the event marker
connectors, and have the receiver's oscillator synchronize to the next input
frequency cycle at its zero-crossing (or a fixed offset from that).
This means that it is possible to feed the TPS receiver reference 1 pps and 10
MHz, and have the receiver restart with a known offset from our reference
clock after every power cycle. This is much usable for time users.
A 10 MHz reference frequency has a cycle length of 100 ns, so 25 ns
resolution detection of the 1 pps input will be enough to pinpoint a single cycle
of the reference frequency, and thus give a unique relationship between the
reference 1pps and frequency.
A TPS receiver disciplines its internal oscillator to the external frequency
reference according to detection of zero-crossings. So, the detection of the 1
pps input pinpoints a unique zero-crossing, and the internal oscillator/clock is
synchronized with that unique zero-crossing. The synchronization then is
immune to noise on the input 1 pps at the level of 1 ns, whilst following the
input frequency precisely at the sub-ns level, giving a start-up synchronization
repeatable to the sub-ns level.
3.17 Differential mode parameters
Any TPS receiver can be configured as “DGPS base”, “RTK base”, or “DGPS
rover”. On the other hand, only a full-functionality RTK TPS receiver can be
configured as “RTK rover”. Please see 4.4 for how to handle your TPS receiver in
differential modes.
77
3.17.1 Base Station parameters
♦ Base station output modes
Parameter: /par/base/mode
Type: list {rtcm:boolean,cmr:boolean,jps:boolean}
Values: {[on|off],[on|off],[on|off}.
This parameter contains a list of boolean parameters describing the status of all of
the differential correction formats the receiver currently supports. At present, TPS
receivers provide only RTCM, CMR, and JPS formats. In the future, additional
boolean parameters may appear in the list as new differential formats are brought
into use.
This list indicates which of the supported differential correction formats are
enabled to output messages to the receiver's ports. You can turn off all of these
formats by using the command set,/par/base/mode/,off. This will set all of
the booleans in the list to “off” (also see the parameters /par/base/mode/rtcm,
/par/base/mode/cmr and /par/base/mode/jps).
♦ Set/query the Marker to ARP (Antenna Reference Point) offsets
Parameter:/par/ref/ant/offs
Object format:
{EastOffset,NorthOffset,Height}
where
EastOffset — East component
NorthOffset — North component
Height – Up component
Each component may vary between -100 and +100 meter.
Note: This parameter is used at both the base and the rover sides.
♦ Set/query the L1 antenna phase center to L2 antenna phase center vector
offset
Parameter:/par/ref/ant/l2_l1
Object format:
{EastOffset,NorthOffset,Height}
where
EastOffset — East component
NorthOffset — North component
Height – Up component
Each component may vary between -0.1 and +0.1 meter.
Note: This parameter is used at both the base and the rover sides.
♦ Set/query receiver reference position in Cartesian coordinate system
/par/ref/pos/gps/xyz
GPS
/par/ref/pos/glo/xyz
GLONASS
78
Object format: {datum,x,y,z}
For user convenience, we have decided to mention this parameter in this section
too. For detailed information on this parameter, please see 3.14.
♦ Set/query receiver reference position in geodetic coordinate system
/par/ref/pos/gps/geo
GPS
/par/ref/pos/glo/geo
GLONASS
Object format: {datum,lat,lon,alt}
For user convenience, we have decided to mention this parameter in this section
too. For detailed information on this parameter, please see 3.14.
♦ Set/query maximum tolerance level for the discrepancy between computed
and user-defined position of Reference Station
Parameter: /par/ref/limit
Type: float; meters
Values: [1…10000]
Default: 1000.0
With this parameter, the user can check the entered reference coordinates for
errors. Should the “difference”16 between the currently estimated position and the
user-specified position exceed the maximum discrepancy level, the reference
station will stop transmitting any RTK or DGPS messages (specifically, the
receiver will stop transmitting RTCM messages types 1, 3, 9, 18, 19, 20, 21, 22,
31, 32, 34 and CMR messages types 0, 1 and 10 (for more details on CMR
message type 10 see 4.3.15.2).
♦ Reference position averaging mode
Parameter: /par/ref/avg/mode
Type: boolean
Values: on | off
Notes:
1. If /par/ref/avg/mode is set to “on”, the receiver will compute its
smoothed coordinates by averaging stand-alone position estimates over
the specified interval after receiver reset or restart. You can set this interval
with a set,ref/avg/span,N command (see below).
The absolute coordinates thus estimated will then be used as the receiver's
reference position. So, if you run this receiver as “RTK base”, these
coordinates will be transmitted to the rover receivers through the
corresponding RTCM messages.
2. In some cases, you can't mount your base receiver on the desired
reference point simply because this point does not allow direct visibility
between radio modem antennas. You can get around this problem by
installing the base receiver at a point next to the reference one where you
16
) more precisely, the length of the vector connecting the current receiver position with that
specified by the user
79
do not expect any problems with transmitting data from the base to the
rover(s).
Assuming you have installed your base receiver at a point whose precise
coordinates are not known. With the set,/par/ref/avg/mode,on command,
you can make your base receiver automatically set some “provisional” base
reference coordinates, which are obtained by averaging stand-alone position
estimates over the specified interval.
After the rover's (RTK) trajectory is computed with respect to the provisional base
reference position, you should take the following steps:
- Refine the base reference coordinates. To do this, you may want to use
appropriate measurements from a third receiver with precisely known
coordinates. Use post-processing software to compute the baseline “third
receiver” – “base receiver”. You normally get quite accurate base coordinates
this way.
- Compute the offset between the provisional base coordinates and the refined
base coordinates. Use this offset vector to adjust the original RTK trajectory.
♦ Stand-alone position averaging interval
Parameter: /par/ref/avg/span
Type: integer
Values: [0…180…32000]
Measured in seconds.
3.17.1.1 RTCM related Base Station parameters
♦ RTCM output mode
Parameter: /par/base/mode/rtcm
Type: boolean
Values: on | off
By setting this parameter to “off” you will disable all of the RTCM messages for all
of the ports.
You can't set this parameter to “on”. Your receiver will automatically set this
parameter to “on” as soon as you enable RTCM messages.
♦ Enable/disable use of local datum for referencing differential corrections from
RTCM messages types 1,9,20,21,31 and 34.
Parameter: /par/rtcm/base/locdtm
Type: boolean
Values: on | off
The RTCM standard recommends using WGS-84 and PE-90 for referencing GPS
and GLONASS differential corrections, respectively [6]. In some cases, however,
it can be desirable to transmit corrections referenced to a local datum (recall that
the local datum is specified with the parameter /par/pos/datum/cur). For
example, in code differential, coordinates of the base station can be given in a
local datum. In this case, corrections referenced to this local datum may be
transmitted to the rover. At the rover side, provided that the same local datum is
chosen, a user can obtain the position expressed in the same local datum. Thus, it
is possible to obtain the coordinates, expressed in a local datum, without any
transformations from local datum to, say, WGS-84 datum prior to transmitting the
80
corrections. Thus, this procedure provides a comfortable method for obtaining
coordinates, expressed in a local datum. However, some limitations of this
procedure should be mentioned:
1) the rover should “know” that differential corrections are referenced to a local
datum. If a base station serves as a reference for many rovers, each of those
rovers should use the local datum, specified at the base station, otherwise the
rover coordinates can be distorted;
2) on long baselines, referencing the differential corrections to a local datum may
introduce an additional error in the coordinates (for more details see [6]).
Note: Be sure that both the base station and the rover use the same setting of
this parameter (see the parameters /par/rtcm/base/locdtm and
/par/rtcm/rover/locdtm respectively). If use of local datum is enabled, the
same local datum should be specified at both the base station and the rover (see
the parameter /par/pos/datum/cur). Also, under use of the combined
GPS/GLONASS receiver with local datum being turned off, be sure that the same
transformation matrix from PE-90 to WGS-84 datum (see the parameter
/par/pos/datum/P90/par) is used at both the base station and the rover.
♦ Set/query satellite constellation used in RTCM messages types 18,19,20,21
Parameter: /par/rtcm/base/sys
Type: list
Values: {on|off,on|off}
This parameter instructs the base receiver to include in RTCM messages types
18,19,20 and 21 only data associated with the specified satellite constellation. The
first and the second values correspond to GPS and GLONASS, respectively. By
default, all of available GPS and GLONASS satellites will be taken into account
when generating these four message types.
♦ Maximum number of satellites included in RTCM messages types 18,19,20,21
Parameter: /par/rtcm/base/svm
Type: integer
Values: [0…)
If this mask is set to zero, which is the default value, all of the available satellites
will be included in RTCM messages.
If this mask is set to m>0 and the actual number of satellites in sight exceeds this
value, only m satellites with higher elevations will be included in RTCM messages.
♦ Base station health
Parameter: /par/rtcm/base/health
Type: enumerated
Values: good | bad | unknown
Please note that in terms of the RTCM standard,
1) “good” is equivalent to “normal performance”,
2) “bad” is equivalent to the health status “reference station not working”.
3) “unknown” is equivalent to the health status “reference station transmission
not monitored”.
81
♦ Base station identifier
Parameter: /par/rtcm/base/stid
Type: integer
Values: [0…1023]
♦ User-defined text for RTCM messages types 16 and 36
Parameter: /par/rtcm/base/text/gps
Parameter: /par/rtcm/base/text/glo
Type: string[90]
You can specify an arbitrary string comprising up to 90 characters (e.g. “any text”).
The print command will return the same string except for the enclosing double
quotes, which are omitted.
♦ Include C/A measurements in RTCM messages types 18 thru 21
Parameter: /par/rtcm/base/meas/ca
Type: boolean
Values: on | off
♦ Include P/L1 measurements in RTCM messages types 18 thru 21
Parameter: /par/rtcm/base/meas/p1
Type: boolean
Values: on | off
Note: This parameter is unavailable for JGG20 and HE_GG systems.
♦ Include P/L2 measurements in RTCM messages types 18 thru 21
Parameter: /par/rtcm/base/meas/p2
Type: boolean
Values: on | off
Note: This parameter is unavailable for JGG20 and HE_GG systems.
♦ Use smoothed pseudoranges in RTCM message types 19 thru 21
Parameter: /par/rtcm/base/smooth
Type: boolean
Values: on | off
♦ Enable delimiting characters at the end of every RTCM message
Parameter: /par/rtcm/base/end
Type: boolean
Values: on | off
If this parameter is set to “on”, the receiver will automatically insert up to two
delimiting characters at the end of every RTCM message (these characters are
specified by the value of /par/rtcm/base/es parameter, see below).
♦ Set/query delimiting character(s) at the end of RTCM messages
Parameter: /par/rtcm/base/es
82
Type: list {integer,integer}
Values: {[-1…13…127],[-1…10…127]}
This parameter determines up to two delimiting characters that will be added to
the end of every RTCM message. The corresponding set command is as follows:
set,/par/rtcm/base/es,{s1,s2}
“-1” means that no delimiting character is associated with the corresponding
argument. For example, {65,-1} will instruct the receiver to insert only one ASCII
character (specifically, the letter “A”) after every RTCM message. Similarly, if both
s1 and s2 are equal to “-1”, no delimiting characters will be used. The default:
{0xD,0xA}.
♦ RTCM version used at the reference station
Parameter: /par/rtcm/base/ver
Type: enumerated
Values: v2.1 | v2.2 | v2.3
The most recent released version of the RTCM standard (version 2.2) is dated
January 15, 1998. As of now17, there is also a working draft of version 2.3 (RTCM
PAPER 38-2001/SC104-252, March 22, 2001), which is expected to be released
soon. All TPS receivers support the last released RTCM version (ver.2.2) as well
as draft version 2.3. Note, however, that some of the third-party receiver models
that appeared on the market before the new RTCM standard was introduced may
not fully meet the RTCM version 2.2 specifications (recall that versions 2.2 and
2.1 use different formats for messages ## 18, 19,20,21).
The object /par/rtcm/base/ver is intended to maintain back-compatibility. It
allows you to use TPS receivers together with such “obsolete” third-party
receivers in your RTK projects.
Assume you are going to use your receiver as “RTK base”. If you set the
parameter /par/rtcm/base/ver to “v2.1”, the receiver will be transmitting
messages according to the RTCM version 2.1 standard.
3.17.1.2 CMR related Base Station parameters
♦ CMR output mode
Parameter: /par/base/mode/cmr
Type: boolean
Values: on | off
By setting this parameter to “off” you will disable all of the CMR messages for all
of the ports.
Note, however, that you needn't use the set,/par/base/mode/cmr,on. As
soon as you enable CMR messages, your receiver will automatically set this
parameter to “on”.
♦ Set/query the reference receiver’s motion state (this flag is used in CMR
message type 1 and) 18
17
) January, 2003
18
) Currently there are three messages intended for Real-Time Kinematic:
83
Parameter: /par/cmr/base/motion
Type: enumerated
Values: unknown | static | kinematic
This parameter specifies whether the reference receiver is moving (“kinematic”),
or fixed (“static”), or its motion state is undefined (“unknown”). If the parameter is
set to “kinematic”, CMR message type 1 (this is entitled “Reference Station
Coordinates”, see Table 2 from Section 4.3.15.2) will use the current position
estimate computed by the receiver (it can be an RTK, DGPS or single-point
position estimate depending on which positioning mode is on).
♦ Set/query parameters “short station ID”, “COGO code”, “long station ID”
(used in CMR message type 2).
Parameter: /par/cmr/base/desc
Type: list
Values: {string1,string2,string3}
Default: {“”,””,”UNKNOWN”}
string1 – up to 8 characters long,
string2 – up to 16 characters long,
string3 – up to 50 characters long.
♦ Reference station identifier
Parameter: /par/cmr/base/stid
Type: integer
Values: [0…31]
This parameter allows you to distinguish between different reference stations
transmitting in the area.
♦ Include P/L2 measurements in CMR observation messages
Parameter: /par/cmr/base/meas/p2
Type: boolean
Values: on | off
♦ Include P/L1 for C/A/L1 in CMR observation messages
Parameter: /par/cmr/base/pcode
Type: boolean
Values: on | off
1. Measurements (Message Type 0)
2. Reference Station Location (Message Type 1)
3. Reference Station Description (Message Type 2)
For a detailed description of the CMR format see ftp://ftp.trimble.com/pub/survey/cmr
84
♦ Set/query the type of message used to transmit GLONASS measurements
from the reference station
Parameter: /par/cmr/base/glo/type
Type: integer
Values: [3…5…7]
Since the CMR format does not allow for any predefined message type for
GLONASS measurements, you must specify a message type for GLONASS raw
data on your own. This is the purpose that the parameter serves.
Note: Since some new CMR message types may appear in the future, be sure
that the message type assigned to GLONASS measurements is different from all
the other CMR message types. Should a conflict due to ambiguous message
types occur, you may need to re-define the message type associated with
GLONASS measurements (just choose any unused number within a range of
3…7). In addition, ensure that both the reference station and the rover receiver
use the same message type for GLONASS data.
The parameter that follows is used to preserve compatibility with the version 2.2
when working with CMR Plus message.
♦ CMR version used at the reference station
Parameter: /par/cmr/base/idxset
Type: boolean
Values: n | y
By setting this parameter to 'y', the user instructs the reference receiver to code
CMR Plus message in accordance with the firmware version 2.2, thus, rover
receivers which are uploaded with the version 2.2 can work properly.
3.17.1.3 JPS related Base Station parameters
Currently, there is only one parameter in this topic.
♦ JPS output mode
Parameter: /par/base/mode/jps
Type: boolean
Values: on | off
By setting this parameter to “off”, you will forbid the receiver to output any JPS
messages to the ports that have been enabled for output of jps/BI.
You can't set this parameter to “on”. The receiver will automatically set this
parameter to “on” as soon as you enable JPS messages.
85
3.17.2 Rover Station parameters
♦ Rover station input modes
Parameter: /par/rover/mode
Type: list {rtcm:boolean,cmr:boolean,jps:boolean}
Values: {[on|off],[on|off],[on|off]}
This parameter contains a list of boolean parameters describing all of the
differential correction formats the receiver currently supports. At present, TPS
receivers provide only RTCM, CMR, and JPS formats. In the future, additional
boolean parameters may appear in the list as new differential formats are brought
into use.
This list indicates which of the supported differential correction formats are
enabled to input messages via the rover receiver's ports. You can switch all of the
ports running in rtcm, cmr and jps modes back to cmd mode by using the
command set,/par/rover /mode/,off. This will set all of the booleans in
the list to “off” (also see the parameters /par/rover/mode/rtcm,
/par/rover/mode/cmr and /par/rover/mode/jps).
3.17.2.1 RTCM related Rover Station parameters
♦ RTCM input mode
Parameter: /par/rover/mode/rtcm
Type: boolean
Values: on | off
By setting this parameter to “off” you will switch all of the ports running in rtcm
mode back to cmd mode.
Note, however, that you needn't run the set,/par/rover/mode/rtcm,on
command to set this parameter to “on”. As soon as you set some of the ports to
rtcm mode (using set,/par/dev/ser/a/imode,rtcm and the like
commands), your receiver will automatically set this parameter to “on”.
♦ Enable/disable the rover to use the local datum for referencing differential
corrections transmitted in RTCM messages types 1,9,20,21,31,34.
Parameter: /par/rtcm/rover/locdtm
Type: boolean
Values: on | off
♦ Use data received from not monitored reference station
Parameter: /par/rtcm/rover/usenm
Type: boolean
Values: on | off
This parameter enables/disables use of data received from a reference station
whose health status code is set to 110. According to the RTCM standard, this
code indicates that data transmitted by this station is “not monitored.”
♦ Verify the field sequence number from the RTCM message header (used when
calculating data link quality
Parameter: /par/rtcm/rover/seqnum
86
Type: boolean
Values: on | off
An RTCM message has a data field called sequence number. Sequence numbers
allow the receiver to check whether any messages have been lost when receiving
RTCM data.
Such checking is enabled by default. If the receiver detects that a message is lost
(i.e. the difference between the current and the previous sequence numbers is not
equal to unity), the “bad message counter” will be incremented.
♦ Enable the Multiple Message Indicator mode for RTCM messages
Parameter: /par/rtcm/rover/mmi
Type: enumerated
Values: def | on | off
RTCM message types 18/19 and 20/21 have a flag called “Multiple Message
Indicator”. This flag serves to identify the last message in a group of such
messages referenced to the same time.
Unfortunately, different manufacturers have interpreted this flag differently, which
resulted in incompatibility between the formats used by different developers.
The prospective version of the RTCM standard19 (2.3), unlike the currently used
version (2.2), will define this flag explicitly and unambiguously.
This flag will allow a TPS receiver configured as a rover to be capable of using
RTCM messages transmitted by other manufacturers’ base receivers.
If the parameter is set to “on”, the receiver will always verify the flag. This is
expected to reduce the latency time since in this case the rover receiver needn’t
wait for arriving RTCM messages referenced to the next epoch.
Note, however, that this will be possible only on condition that the Multiple
Message Indicator behaves exactly as it is specified in version 2.3. Otherwise the
data received may be interpreted incorrectly.
If the parameter is set to “off”, the rover receiver will have to wait for RTCM data
corresponing to the next epoch to arrive.
The value of “def” defines the way the flag will be interpreted (“on/off”) for the
given RTCM version20, i.e. “off” for versions 2.1 and 2.2, “on” for version 2.3.
Warning: It is recommended to set the mode to “on” if TPS receivers are used on
both ends or if it is known in advance that the base receiver supports
RTCM version 2.3. Otherwise selecting this mode can cause
malfunction of the rover receiver in RTK.
♦ Enable/disable the Complete epoch received logic for RTCM messages
Parameter: /par/rtcm/rover/full
Type: enumerated
19
) RTCM PAPER 38-2001/SC104-252
20
) see the parameter /par/rtcm/rover/mmi
87
Values: def | on | off
This parameter specifies if the Complete epoch received logic is applied while the
receiver decoding RTCM data for RTK. If set to “def”, the logic is either turned on
or off depending on the parameter /par/rtcm/rover/ver, i.e. it is turned off for
the RTCM versions earlier than 2.3, and turned on for version 2.3 and the later
ones. If set to “on”, the logic is turned on. If set to “off”, the logic is turned off.
In RTCM versions earlier than 2.3, due to different interpretation of the RTCM
standard by different manufacturers, it is not always possible to identify the "end
of epoch" based on the RTCM format itself. In this case the receiver can either
wait when an RTCM message with a different time arrives (so that to extract the
current epoch from this message), or apply the Complete epoch received logic.
The latter can decrease the RTK corrections' latency by eliminating the delay
required for receiving the first message referenced to the next epoch (typically 1
second).
The term Complete epoch received means the receiver obtaining all the
data necessary for the given epoch. For example, for a GPS/GLONASS dual
frequency receiver the term means the receiver having acquired the code and
phase measurements on both frequencies for at least one satellite for either
constellation.
♦ RTCM version used at the rover
Parameter: /par/rtcm/rover/ver
Type: enumerated
Values: v2.1 | v2.2 | v2.3
The most recent released version of the RTCM standard (version 2.2) is dated
January 15, 1998. As of now21, there is also a working draft of version 2.3 (RTCM
PAPER 38-2001/SC104-252, March 22, 2001), which is expected to be released
soon. All TPS receivers support the last released RTCM version (ver.2.2) as well
as draft version 2.3. Note, however, that some of the third-party receiver models
that appeared on the market before the new RTCM standard was introduced may
not fully meet the RTCM version 2.2 specifications (recall that versions 2.2 and
2.1 use different formats for messages ## 18, 19,20,21).
The object /par/rtcm/rover/ver is intended to maintain back-compatibility. It
allows you to use TPS receivers together with such “obsolete” third-party
receivers in your RTK projects.
Assume you are going to use your receiver as “RTK rover”. If you set the
parameter /par/rtcm/rover/ver to “v2.1”, this will enable the rover to receive
and use RTCM version 2.1 messages.
21
) January, 2003
88
3.17.2.2 CMR related Rover Station parameters
♦ CMR input mode
Parameter: /par/rover/mode/cmr
Type: boolean
Values: on | off
By setting this parameter to “off” you will switch all of the ports running in cmr
mode back to cmd mode.
Don't use the set,/par/rover/mode/cmr,on command. As soon as you set
some of the ports to cmr mode (e.g., set,/par/dev/ser/a/imode,cmr), your
receiver will automatically set this parameter to “on”.
♦ Set/query the message type for GLONASS measurements on the rover side
Parameter: /par/cmr/rover/glo/type
Type: integer
Values: [3…5…7]
This parameter is similar to that described above for the base.
The following parameter is used to preserve compatibility with the version 2.2
when working with CMR Plus message.
♦ CMR version used at the rover
Parameter: /par/cmr/rover/idxset
Type: boolean
Values: n | y
By setting this parameter to 'y', the user instructs the rover receiver to decode
CMR Plus message in accordance with the firmware version 2.2, thus, rover
receivers can work with the reference receiver, which is uploaded with the
firmware version 2.2.
3.17.2.3 JPS related Rover Station parameters
Currently, there is only one parameter in this topic.
♦ JPS input mode
Parameter: /par/rover/mode/jps
Type: boolean
Values: on | off
By setting this parameter to “off” you will switch all of the ports running in jps
mode back to cmd mode.
Note, however, that you needn't run set,/par/rover/mode/jps,on to set this
parameter to “on”. As soon as you set some of the ports to jps mode (using
set,/par/dev/ser/a/imode,jps and the like commands), your receiver will
automatically set this parameter to “on”.
89
3.17.2.4 Carrier phase differential parameters
♦ Position output mode
Parameter: /par/pos/pd/mode
Type: enumerated
Values: extrap | delay
There are two position computation modes in RTK.
When computing the current position in extrapolation mode (“extrap”), the
RTK engine will extrapolate the base station’s carrier phase measurements to the
current epoch (note that the “truth” carrier phases measured at the base cannot
be transmitted and received at the rover instantly).
In delay mode, the RTK engine does not extrapolate the base station’s carrier
phases in position computation. Instead, the engine will either compute a delayed
position or simply output the current stand-alone position (while waiting for new
RTCM/CMR messages from the base station). Note that the delayed position is
computed for the time (epoch) to which the last received base station’s carrier
phase measurements correspond.
Accuracies achievable in delay mode are normally on a level with those of
post-processing kinematic.
For extrapolation mode, the final positioning accuracy may be somewhat
lower due to additional extrapolation errors, which may be up to a few millimeters
vertical and horizontal for a one-second extrapolation time.
♦ Set/query the source of differential correction data
Parameter: /par/pos/pd/port
Values: any | dev/ser/a | dev/ser/b | dev/ser/c | dev/ser/d,
dev/modem/a.
If this parameter is set to a specific port name (not “any”), the RTK engine will
only use differential data received on the corresponding port.
If this parameter is set to “any”, the RTK engine will use differential data from
whichever port.
♦ Ambiguity fixing level
Parameter: /par/pos/pd/aflevel
Type: enumerated
Values: low | medium | high
This three-state parameter is a simplified version of a float ambiguity fix indicator
the RTK engine uses when fixing integer ambiguities.
“low”, “medium” and “high” correspond to the indicator's 95%, 99.5% and 99.9%
thresholds, respectively.
The higher the confidence level specified, the longer the integer ambiguity search
time. This is the price we have to pay for the higher reliability of the ambiguity
fixed solution.
Example. Assume you have set this parameter to “high”. The receiver's RTK
engine will constantly update the confidence level indicator as new measurements
arrive. Once this parameter exceeds the 99.9% threshold, the engine will fix up all
or some of the integer ambiguities. The corresponding position estimate will be
marked as “fixed RTK solution” although some of the ambiguities (usually a small
part of them) may remain float.
90
♦ Enable/disable RTK initialization
Parameter: /par/pos/pd/fixpos
Type: boolean
Values: on | off
With this parameter, the user instructs the RTK engine to use the rover’s precise
position for ambiguity resolution. This allows the engine to fix ambiguities much
faster.
The rover’s precise coordinates must be specified as described in 3.14.1. Care
should be taken that this parameter is set back to “off” once the RTK initialization
is over and the antenna starts moving. Otherwise the rover’s position will be
computed incorrectly.
♦ Measurements used by the rover in position computation
Parameter: /par/pos/pd/meas/ca
Type: boolean
Values: on | off
Parameter: /par/pos/pd/meas/p1
Type: boolean
Values: on | off
*
Parameter: /par/pos/pd/meas/p2
Type: boolean
Values: on | off
*
Note: For JGG20 and HE_GG receivers, which are single-frequency systems,
the parameters marked with
* are unavailable.
♦ Single differenced carrier phase weighting scheme
Parameter: /par/pos/pd/scale
Type: integer
Values: 0 | 1 | 2
This parameter specifies the weights that the engine will apply to singledifferenced carrier phase observables.
0 – The simplest weighting scheme will be used. Specifically, all SD carrier
phases will be used with the a priori weight
1/(sigma*sigma),
where sigma = 0.05 cycle.
This scheme, which is recommended when running RTK in favorable
environment conditions, allows a shorter ambiguity fixing time than the other two
(see below).
1 – The first adaptive weighting scheme will be used. Specifically, SD carrier
phases for the given satellite will be used with the a priori weight
max(0.2, sin(elev))/(sigma_est*sigma_est)),
where
91
elev designates the satellite’s elevation angle,
sigma_est designates the RMS single-differenced carrier phase error.
2 - The second adaptive weighting scheme will be used. The only difference
between schemes 1 and 2 is that they use different estimators to get sigma_est.
Scheme 2 is strongly recommended in scenarios where strong multipath is
expected.
♦ Set/query differential correction update interval (“period”) for base station
Parameter: /par/pos/pd/period
Type: float; seconds
Values: [0.05…1…100]
This parameter is effective only in the RTK Delay mode.
The user should know the exact rate at which the base station transmits its
differential correction data. This parameter will instruct the rover receiver to output
the RTK position (not the single point position!) at the same rate at which
differential corrections are updated.
♦ Turn on/off the single-differenced ionosphere model
Parameter: /par/pos/pd/ion
Type: boolean
Values: on | off
♦ Set/query the threshold value for the RTK ionosphere modeling
Parameter: /par/pos/pd/ionr
Type: float
Values: [0.0..4000.0..999999.9]
The ionospheric delay is modeled by RTK only if the baseline length is greater or
equal to the specified value.
♦ Set the memory factor “f” for the float ambiguity filter
Parameter: /par/pos/pd/mem
Type: float
Values: [0.5..0.9995..1.0]
The smaller the filter memory factor, the “less important” are the older ambiguity
estimates for the RTK engine estimating the current ambiguities. On shorter
vectors (up to 8 km), it is recommended to set the memory factor to 0.998 when
running the receiver under tree canopy.
♦ Enable/disable half-integer ambiguity fixing on L1 and/or L2
Parameter: /par/pos/pd/si
Type: list {L1:boolean, L2:boolean}
Values: {on|off,on|off}
This is a technology (specialist) parameter. It is mostly used for internal TPS
purposes when testing/debugging new firmware versions.
♦ Enable/disable the RTK engine to extrapolate missing carrier phase
measurements in “delay” mode
Parameter: /par/pos/pd/se
92
Type: boolean
Values: on | off
If the parameter is set to “on”, the RTK engine will extrapolate the missing carrier
phase measurements for the currently processed epoch (provided that the code
phase measurements have been successfully received for this epoch).
♦ Force the RTK engine to verify fixed ambiguities in regular intervals
Parameter: /par/pos/pd/check
Type:
integer
Values: [-1..17..32767]
This parameter specifies the periodicity N of the engine checking fixed ambiguities
for errors. The engine will be forced to recompute/check the ambiguity vector
every N epochs. Thus estimated “forced ambiguities” will be compared against the
current ones. If the forced ambiguity vector differs from the current ambiguity
vector, the float solution mode will be enabled at once.
N= -1 means that ambiguity verification is off.
N = 0 and N = 1 both mean that the engine will be forced to verify ambiguities
every epoch.
N = n means that the engine will be forced to verify ambiguities in every n epochs.
♦ User-defined rover dynamics
Parameter: /par/pos/pd/dyn
Type: float
Values: 0 | 1
If this parameter is set to 1, the rover's RTK engine will run in “kinematic”.
Otherwise, it will run in “static”.
When “static” is on, the engine uses a running average over a few consecutive
raw estimates to decrease the resulting position's noise error.
Note that the RTK engine also provides a “static watchdog mechanism”. When in
static, the receiver will automatically monitor estimated coordinates X, Y, Z.
Should the position change over 4 centimeters in one of the coordinates, the
receiver will immediately switch to “kinematic” running in this mode for the next 30
seconds.
♦ RTK computational scheme version
Parameter: /par/pos/pd/ver
Type: integer
Values:2
♦ Reset RTK engine
Parameter: /par/pos/pd/reset
Type: boolean
Values: off | on
Immediately after the set,/par/pos/pd/reset,on command is issued and
the engine is reset, the receiver will automatically set this parameter back to “off”.
93
♦ Obtain the base station's reference position on the rover side
GPS
/par/rover/base/pos/got/gps/valid
Type: boolean
Values: off | on
/par/rover/base/pos/got/gps/xyz
Object format: {datum,x,y,z}
/par/rover/base/pos/got/gps/geo
Object format: {datum,lat,lon,alt}
GLONASS
The base station's GPS reference coordinates are retrieved
from RTCM message type 3 or CMR message type 1.
Once these data are received from the base via the radio link,
the parameter /par/rover/base/pos/got/gps/valid is
set to “on”.
The other two parameters indicate the base station's GPS
reference position in Cartesian and geodetic formats,
respectively. For more details on the object format, see the
parameters
/par/ref/pos/gps/xyz, /par/ref/pos/gps/geo.
/par/rover/base/pos/got/glo/valid
Type: boolean
Values: off | on
/par/rover/base/pos/got/glo/xyz
Object format: {datum,x,y,z}
/par/rover/base/pos/got/glo/geo
Object format: {datum,lat,lon,alt}
The base station's GLONASS reference coordinates are
retrieved from RTCM message type 32.
Once these data are received from the base via the radio link,
the parameter /par/rover/base/pos/got/glo/valid is
set to “on”.
The other two parameters indicate the base station's
GLONASS reference position in Cartesian and geodetic
formats, respectively. For more details on the object format,
see the parameters
/par/ref/pos/glo/xyz and /par/ref/pos/glo/geo.
♦ Query the Marker to ARP offsets obtained via radio data link
Parameter:/par/rover/base/ant/got/offs
Object format:
{EastOffset,NorthOffset,Height}
94
Query the L1 antenna phase center to L2 antenna phase center vector offset
obtained via radio data link
Parameter:/par/rover/base/ant/got/l2_l1
Object format:
{EastOffset,NorthOffset,Height}
♦
♦ Set/query “alternative” reference position for the base station
Cartesian:
Geodesic:
/par/rover/base/pos/fix/xyz
/par/rover/base/pos/fix/geo
Object format: {datum,x,y,z}
Object format: {datum,lat,lon,alt}
Note: Currently only two datums, WGS-84 and PE-90, can be specified by
means of this parameter.
You can, if necessary, discard the base station's coordinates received via the
radio data link and accessible through the parameters
/par/rover/base/pos/got/gps/xyz, or
/par/rover/base/pos/got/gps/geo, or
/par/rover/base/pos/got/glo/xyz, or
/par/rover/base/pos/got/glo/geo,
and start using an alternative coordinate set instead. To specify “alternative”
geodesic or Cartesian coordinates for the base station, use the commands
set,/par/rover/base/pos/fix/geo,…
and set,/par/rover/base/pos/fix/xyz,…, respectively.
♦ Set/query alternative Marker to ARP offsets for the reference station’s antenna
Parameter: /par/rover/base/ant/fix/offs
Object format:
{EastOffset,NorthOffset,Height}
where
EastOffset — East component
NorthOffset — North component
Height – Up component
Each component may vary between -100 and +100 meter.
If the user for some reason does not want to use the Marker to ARP offsets
obtained via the radio data link, (s)he can use this parameter to specify alternative
values.
♦ Set/query alternative L1 antenna phase center to L2 antenna phase center
vector offset on the rover side
Parameter: /par/rover/base/ant/fix/l2_l1
Object format:
{EastOffset,NorthOffset,Height}
where
EastOffset — East component
NorthOffset — North component
Height – Up component
Each component may vary between -0.1 and +0.1 meter.
95
If the user for some reason does not want to use the L1 antenna phase center to
L2 antenna phase center vector offset obtained via the radio data link, (s)he can
specify
alternative
values
with
the
command
set,/par/rover/base/ant/fix/l2_l1….
♦ Set/query base station's reference position source
Parameter: /par/rover/base/pos/cur
Type: enumerated
Values: got | fix
If the user sets this parameter to “got”, the RTK engine will use one of the base
station's reference position sets received via a radio data link (recall that generally
speaking the base may be transmitting GPS only reference position, GLONASS
only reference position, or both GPS and GLONASS reference position data).
How does the user distinguish between GPS and GLONASS reference
coordinates if both are transmitted? There are special parameters (see below)
intended to help the user resolve this ambiguity.
If this parameter is set to “fix”, the RTK engine will use the base station's
alternative reference coordinates (those explicitly entered on the rover side) and
accessible
through
either
/par/rover/base/pos/fix/xyz
or
/par/rover/base/pos/fix/geo.
♦ Set/query the source from which the Marker to ARP offsets are obtained
Parameter: /par/rover/base/ant/cur
Type: enumerated
Values: got | fix
If the parameter is set to “got”, the Marker to ARP offsets received from the
reference station via the radio data link will be used.
If the parameter is set to “fix”, the user will utilize for the base antenna the
alternative
offsets
that
(s)he
can
specify
with
the
command
set,/par/rover/base/ant/fix/offs,….
♦ Query the base receiver's reference position used in RTK
Parameter: /par/pos/pd/ref/pos/xyz
Object format:{datum,x,y,z}
Parameter: /par/pos/pd/ref/pos/geo
Object format: {datum,lat,lon,alt}
These parameters explicitly show the coordinates (in Cartesian and geodetic
format) used in RTK as the base station's reference position.
Note: If the reference coordinates are undefined (which is the case if you have
just cleaned the receiver NVRAM or turned power off and on after having set the
parameter /par/pos/pd/ref/keep to “off”), the corresponding two commands
will return the following values:
RE027%%{UNDEF,+6378137.0000,+0.0000,+0.0000}
RE036%%{UNDEF,N00d00m00.000000s,E000d00m00.000000s,+0.0000}
The datum name “UNDEF” indicates that the truth reference coordinates are
undefined or unavailable.
96
♦ Set/query the base's reference position source
Parameter: /par/ref/src
Values: gps | glo | any
This parameter instructs the rover which of the reference position sets received
from the base will be used in RTK.
If you set this parameter to “gps”, you force the receiver not to start RTK until a
GPS reference position is received from the base.
If you set this parameter to “glo”, you force the receiver not to start RTK until a
GLONASS reference position is received from the base.
If you set this parameter to “any”, you instruct the rover receiver to use the very
first of the reference position sets received from the base, which currently can be
either a GPS or GLONASS reference position set.
♦ Set/query the heading mode
Parameter: /par/pos/pd/hd/mode
Type: boolean
Values: on | off
If set to “on”, this parameter indicates that the mutual distance between the base
and the rover antennas remain fixed during the RTK session. This restriction
allows the RTK engine to fix ambiguities faster and more accurately.
♦ Enable/disable use of a priori (fixed) length for the baseline measured
Parameter: /par/pos/pd/hd/uselen
Type: boolean
Values: on | off
If set to “on”, the RTK engine will use in the heading mode the a priori baseline
length from /par/pos/pd/hd/len/0 (unless this value is equal to zero).
If set to “off”, the RTK engine will compute its own baseline length estimate, which
is obtained by averaging instantaneous baseline estimates over a 30-second
interval after the first ambiguity fix. Thus, a derived empirical estimate is then used
by the RTK engine to improve ambiguity fixing. Also note that this empirical
estimate is constantly refined by the receiver as new measurements arrive.
♦ Set/query a priori (fixed) length of baseline
Parameter: /par/pos/pd/hd/len/0
Type: float; meters
Values: [0…10000]
You use this parameter in the heading mode.
Note: If /par/pos/pd/hd/len/0 = 0 and /par/pos/pd/hd/uselen = “on”,
the RTK engine will discard these settings and will start computing a baseline
length estimate on its own (as if /par/pos/pd/hd/uselen has been set to
“off”).
97
♦ Set the weight (“penalty factor”) for the baseline length term of the penalty
function22
Parameter: /par/pos/pd/hd/pen
Type: float
Values: [0.0..0.25..10.0]
The larger this weight, the more “critical” for correct ambiguity resolution is the a
priori baseline length specified by the parameter set,/par/pos/pd/hd/len,…
(on condition that the parameters /par/pos/pd/hd/uselen and
/par/pos/pd/hd/mode have been set to on).
Notes:
1. If the baseline length is a priori known with an accuracy of 1 mm or better,
the user is recommended to set the parameter to the maximum value (i.e.
10.0).
2. Note that the chosen penalty factor must be consistent with the actual
accuracy of the specified a priori baseline length. It it is not the case, the
RTK engine may not be able to fix ambiguities correctly. In most scenarios,
it will be sufficient to use the default value of the penalty factor.
3. The heuristic formula for the penalty factor is the following:
pf ~ 6/(sigma*sigma),
where sigma (measured in millimeters) stands for the expected standard
deviation of the specified baseline length.
♦ Enable/disable use of “old” reference coordinates
Parameter: /par/pos/pd/ref/keep
Type: boolean
Values: on | off
If you set this parameter to “on” and then launch RTK, your receiver will
immediately start using the existing reference coordinates (if available) instead of
waiting for the reference station to transmit some updated reference position. Note
that “old” reference coordinates, if they exist, are retrieved from NVRAM at
receiver startup/reset time.
Note that reference coordinates are normally transmitted much rarer than
measurements. It means that the receiver, if this parameter is “off”, will not begin
RTK processing prior to receiving some “new” reference coordinates even if the
rover has already received all the other necessary data/measurements from the
base. Such delays may well be unacceptable for many applications.
On the other hand, care should be taken when setting this parameter to “on”.
Imagine for a moment that the rover has moved to a different location and started
a new RTK session with a different reference station. Should this parameter be
set to “on”, the rover receiver will be misusing the “old” reference coordinates for
22
) This parameter is used in the “heading” mode only
98
some time, which will most likely result in position blunders until the rover receives
a first message with the correct reference coordinates.
For more information on this parameter, refer to the description of the commands
/par/pos/pd/ref/pos/xyz and /par/pos/pd/ref/pos/geo above in this
section.
♦ Factor (v) specifying the standard deviation of the modeled residual
ionosphere
Parameter: /par/pos/pd/ionf
Type: float
Values: [0.0..5.0.. 999999.8]
RTK uses the following equation for the residual ionosphere standard deviation
(measured in meters):
stdev_iono_delay = v * 1.e-6 * base_line_length
♦ “Environmental condition” factor
Parameter: /par/pos/pd/env
Type: enumerated
Values: open | forest
If the parameter is set to open, RTK will use “normal” thresholds when searching
for measurement outliers. This setting is used if the environment conditions are
considered favorable for RTK (many satellites in sight, few obstructions and small
multipath).
If the parameter is set to forest, RTK will use less rigid thresholds when filtering
out measurement outliers. This mode is recommended when working under tree
canopy or in case of large multipath.
Note: These thresholds are “firmware embedded” and cannot be changed via
any GRIL commands.
♦ Invalidate the coordinates of the reference station
Parameter: /par/pos/pd/ref/clean
Values: on | off
This parameter is used to “clear up” the currently effective coordinates of the base
station.
By executing the command set,/par/pos/pd/ref/clean,on you instruct the
RTK engine to disable differential positioning and wait for updated reference
coordinates to appear23. The updated reference coordinates will be received via
the radio link (as new RTCM or CMR messages arrive from the base) or,
alternatively, can be entered manually at the rover.
♦ Enable/disable pseudorange smoothing in RTK
Parameter: /par/pos/pd/smr
Type: boolean
Values: on | off
23
) During this “wait time”, the rover receiver will be outputting single-point positions
99
If the parameter is set to “on”, the RTK engine will use the smoothed pseudorange
measurements.
♦ Maximal extrapolation time
Parameter: /par/pos/pd/textr
Type: float
Values: [0..30..60]
When RTK works in the extrapolation mode and the time gap between the last
received correction and the current rover's time exceeds this value, RTK stops to
produce a position.
♦ Number of iterations RTK makes when estimating float ambiguity
Parameter: /par/pos/pd/maxit
Type: integer
Values: [0, 1..10]
♦ Number of iterations RTK makes when estimating residuals of fixed ambiguity
Parameter: /par/pos/pd/maxitf
Type: integer
Values: [0, 1..10]
♦ Enable/disable only C/A L1 tracking
Parameter: /par/pos/pd/1only
Type: boolean
Values: y | n
By setting this parameter to 'y', the user forces the RTK engine to calculate the
final position using only C/A measurements even if the ambiguities have been
resolved using P L2 also. This parameter allows the receiver to stabilize the fixed
position in case of poor L2 phase tracking.
♦ Penalty parameter
Parameter: /par/pos/pd/pen
Type: float
Values: [0..20..1000]
The penalty parameter is used for the known point initialization function.
3.17.2.4.1
Multiple reference stations
Starting with firmware version 2.2p2, TPS receivers support Multi-base mode in
which the rover receiver is able to obtain RTK data from more than one reference
station24. Running in this mode, the reference stations broadcast their RTK data
using TDMA (Time Division Multiple Access) method. This method allows the
reference stations to use a single frequency for transmitting their data. It is
achieved by setting a transmission delay for each station.
Note: In order to work in this mode, the receiver must use only CMR Plus
messages.
24
) Currently, this mode allows the rover to use up to four reference stations.
100
♦ Set/query reference station ID
Parameter:/par/pos/pd/inuse
Type: integer
Values: [ -1…31]
This parameter allows the user to identify the reference station (by specifying its
ID) he/she wants to use in order to compute the RTK position.
If this parameter is set to “-1”, the rover receiver will use RTK corrections from
whichever station.
If the parameter is set to a specific value (not “-1”), the receiver will use RTK
corrections only from the reference station having the same ID. Data from all the
other reference stations will be ignored. Thereby it guarantees that the rover will
work properly if there are two or more reference stations transmitting RTK data on
the same frequency.
Notes:
1. Setting the parameter to “-1” whereas two or more sources of RTK data are
available simultaneously may result in inability to get the RTK solution
since RTK data received from several reference stations will be mixed with
each other.
2. At present, this parameter is intended for the CMR Plus messages only.
The argument of this parameter refers to the reference station ID which is
included into every CMR message. To specify the base station ID, use the
parameter /par/cmr/base/stid.
♦ Enable/disable automatic selecting of the nearest reference station
Parameter:/par/pos/pd/nrs/mode
Type: boolean
Values: y | n
Setting this parameter to “y” will instruct the rover receiver to use RTK data
broadcasted by the nearest reference station. The receiver will use this parameter
only if /par/pos/pd/inuse is set to “-1”.
♦ Set/query the minimum difference in distances among the rover and reference
stations for the switching from the previous nearest reference station to the
current one
Parameter:/par/pos/pd/nrs/lim
Type: float; meters
Values: [1.0..25.0..10000.0]
This parameter can be useful if the receiver is located on the border of two or
more reference stations. Assuming that one of these reference stations has been
selected as the nearest one. If the receiver is either stationary or moving along the
border, the selection of the nearest station may be confused. To avoid conflicts
with the selection of the nearest station, you should use this parameter. The
switching to the new reference station will occur only if the difference between the
101
distance to the new reference station and the distance to the current reference
station exceeds the specified limit.
♦ Set/query the maximum counter of attempts to stay the nearest reference
station
Parameter:/par/pos/pd/nrs/cnt
Type: integer
Values: [1..10..30000]
The parameter defines the counter that serves for setting up a total number of
attempts during which the new nearest reference station will remain the nearest
one among the other reference stations available. If during those attempts, at
least one of the other reference stations is detected as the nearest one, the
counter will be reset and started again.
This parameter guarantees that a new nearest reference station will not be
selected by mistake.
Similarly to the /par/pos/pd/nrs/lim parameter, this parameter can be used
to avoid some kind of confusion when the receiver selects the nearest reference
station.
The switching to a new reference station will take place if during the number of
attempts specified with /par/pos/pd/nrs/cnt the new reference station is
nearer than the current reference station and, in addition, the difference between
the distance to the new reference station and the distance to the current reference
station exceeds the limit specified with the parameter /par/pos/pd/nrs/lim.
In this version, the rover will estimate the distances to the reference stations each
time when it receives CMR message Type 0.
3.17.2.4.2
Ambiguity fixing statistics25
This group of parameters provides the user with statistical (probabilistic)
information on ambiguity fixing time. There are two different modes to obtain such
information, specifically:
1. enable full firmware reset once the ambiguities are fixed during the test
cycle.
2. enable RTK only reset once the ambiguities are fixed during the test cycle.
This statistical information is presented as a histogram the ith point of which
specifies the probability of ambiguity fixing time being less than “i” seconds.
♦ Enable/disable calculation of ambiguity fixing statistics using full firmware
resets
Parameter:/par/pos/pd/hist/mode
Values: on | off
The command set,/par/pos/pd/hist/mode,… switches on and off the
ambiguity fixing time estimator. Note that in this mode the receiver firmware is fully
reset every time the integer ambiguities are re-fixed after the previous iteration.
25
) These parameters are considered as “technology parameters” and are subject to change
without notice. Note that they are primarily intended for test purposes.
102
Although the actual time to ambiguity fix in the current iteration may well be less
than one minute (and this time is correctly logged in the receiver memory), yet the
new firmware reset is executed no sooner than in a minute after the previous one
occurs. It is done in order for the receiver to be able to timely update ephemerides
used. Should the current ambiguity fixing time exceed one minute, the firmware
will fully reset immediately after the ambiguities are fixed.
Warninig: This mode is available only for par/raw/msint = par/pos/msint
=1000
♦ Set/query a priori (precise) coordinates of the test baseline
Parameters:
/par/pos/pd/hist/pr/x,
/par/pos/pd/hist/pr/y,
/par/pos/pd/hist/pr/z
Type: float; meters
Values:[-1000000..0..1000000]
These three related parameters specify some a priori (precise) coordinates of the
test baseline in WGS-84 (X-, Y- and Z- coordinates, respectively).
The baseline vector’s components estimated in the current iteration are compared
against the a priori precise coordinates. Ambiguities are considered fixed correctly
if the difference between the a priori and a posteriori coordinates does not exceed
ρ cm in each axis (note that ρ may be different in different firmware versions; it
normally lies between 4 cm and 6 cm).
The user should bear in mind that the above three parameters (i.e., a priori
baseline coordinates) are the same in either ambiguity fixing time mode.
♦ Probability of fixing ambiguities
Parameter: /par/pos/pd/hist/out
Output data look as follows:
1<float>
probability of fixing ambiguities in ≤ 1 s
2<float>
probability of fixing ambiguities in ≤ 2 s
.
.
120<float>
probability of fixing ambiguities in ≤ 120 s
♦ Total number of fixed solutions
Parameter: /par/pos/pd/hist/num
Object format: khist=<integer>
♦ Percentage of wrong “fixed solutions”
Parameter: /par/pos/pd/hist/bad
Object format: bad=<float>
Note that if you have no a priori baseline coordinates or if you are only interested
in the integral distribution histogram, then the commands set,hist/prx,… set,
hist/pry,… and set,hist/prz,… are not used and the estimate “bad =<float>”
is of no avail.
♦ Erase the current statistics
Parameter:/par/hist/reset
103
Values: on | off
Before you start collecting new statistics, you need to delete the previous ones.
♦ Collect ambiguity fixing time statistics using RTK engine resets only
Parameter: /par/rtk/dbi/rest
Type: integer
Values: 0 | 1 | 2
This parameter is intended to enable the second ambiguity fixing time mode.
If you have an priori (precise to a few centimeters) estimate of the baseline
vector, you should enter it with the commands set,hist/prx,…,
set,hist/pry,… and set,hist/prz,…. In this case, you will be able to
evaluate the number of the wrong fixes for the given statistical ensemble (see the
parameter “kbad” in the example below).
If you have no a priori baseline coordinates or if you are only interested in
the integral distribution histogram, then the commands set,hist/prx,… set,
hist/pry,… and set,hist/prz,… are not used and the estimate “kbad” is of
no avail.
With set,rtk/dbi/rest,1, you set a certain internal variable to unity
thus instructing the RTK engine to reset on fixing the current set of ambiguities.
With set,rtk/dbi/rest,2, you set this variable to 2 thus instructing the
firmware to immediately output obtained statistics (histogram) to the current
terminal and then start collecting data for the next histogram.
With set,rtk/dbi/rest,2, you set the variable to zero, which instructs
the firmware to stop collecting new statistics.
The following is an example histogram:
khist = 122 kbad = 0
hist 1 0.000000
hist 2 0.991803
hist 3 0.991803
hist 4 1.000000
hist 5 1.000000
....
where “khist” is the number of trials, “kbad” is the number of the wrong fixes. Next
are coming 120 strings in the format “hist n p”, where p is the estimated probability
of fixing ambiguity in no more than n seconds.
To turn off either ambiguity fixing time mode, use the command
set,rtk/dbi/rest,0 or just switch power off.
3.17.2.5 Code differential parameters
♦ Maximum age of code differential corrections used for position computation
Parameter: /par/pos/cd/maxage
Type: integer; seconds
Values: [1…30…1200]
104
♦ Maximum age of ionosphere corrections used for position computation
Parameter: /par/pos/cd/iono/maxage
Type: integer; seconds
Values: [1…300…1800]
♦ Set/query the source of differential corrections
Parameter: /par/pos/cd/port
Values: any | dev/ser/a | dev/ser/b | dev/ser/c | dev/ser/d |
dev/modem/a.
This parameter is used by your TPS receiver only if multi-base DGPS is off
(i.e./par/pos/cd/mult/mode=”off”, see 3.17.2.5.1).
If this parameter is set to a specific port name (not “any”), the receiver will only
use differential corrections from the corresponding port.
If this parameter is set to “any”, the receiver will use differential corrections from
whichever port.
♦ Set/query ionosphere-free differential correction mode
Parameter: /par/pos/cd/ionofree
Values: on | off
This parameter, if set to “on”, instructs the rover receiver to use both ionosphere
corrections from RTCM message type 15 and “regular” differential corrections
from RTCM messages types 1 and 31 or 9 and 34 when computing position.
♦ Set/query the range residual limit effective for code differential
Parameter: /par/pos/cd/rlim
Type: float; meters
Values: [1.0..5.0..100.0]
Satellites whose range residuals are greater than this limit, will be discarded from
code differential positioning. Note this parameter is used only if the parameter
/par/pos/raim/mode has been set to “on”.
3.17.2.5.1
Multi-base DGPS parameters
♦ Enable/disable multi-base mode
Parameter: /par/pos/cd/mult/mode
Value: on | off
If this parameter is set to “on”, the multi-base mode will be activated. The receiver
will then be using differential corrections from all available sources (whatever the
value of /par/pos/cd/port).
If this parameter is set to “off”, your receiver will use differential corrections from
the specific source(s) defined by the parameter /par/pos/cd/mult/port.
♦ Use differential corrections from the nearest reference station
Parameter: /par/pos/cd/mult/nearest
Value: on | off
If your receiver can compute the distances to all of the relevant reference stations
(it is possible only if the reference stations transmit their coordinates), setting this
parameter to “on” will instruct the receiver to use differential corrections
transmitted by the nearest reference stations.
105
Note that your receiver will use differential data exclusively from the nearest
reference station only after the following three parameters are set as shown
below:
/par/pos/cd/mult/nearest = “on”
/par/pos/cd/mult/mix = “off”
/par/pos/cd/mult/best =”off”
♦ Enable/disable the rover to run in “mix” mode
Parameter: /par/pos/cd/mult/mix
Value: on | off
If this parameter is set to “on” and the parameter /par/pos/cd/mult/mixmode
is set to “cor”, the rover will be “mixing”, using appropriate weights, differential
corrections from different reference stations in order to obtain more precise and
reliable position estimates.
If this parameter is set to “on” and the parameter /par/pos/cd/mult/mixmode
is set to “pos”, the rover will be “mixing”, using appropriate weights, individual
position estimates from different reference stations in order to obtain more precise
and reliable position estimates.
Note: If both of the following conditions are met
/par/pos/cd/mult/mix =”on”
/par/pos/cd/mult/best =”off”,
your receiver will always “mix” differential corrections from different reference
stations when computing position.
♦ Enable/disable averaging26 of individual position estimates or differential
corrections from the different reference stations
Parameter: /par/pos/cd/mult/mixmode
Type: enumerated
Values: cor | pos
When this parameter is set to “pos”, the rover will be averaging the individual
position estimates, not the corresponding differential corrections used to compute
the position estimates. On the contrary, to make the rover average up differential
corrections, you use the command set,/par/pos/cd/mult/mixmode,cor.
Note: The receiver will take this parameter into account only if the abovedescribed parameter is set to “on”.
Warning: Since the processor time is proportional to the number of the
differential correction sets received by the rover, this mode may prove
quite time consuming. Therefore, this mode is subject to all of the
limitations existing for the mode “best” (see below).
26
) Averaging is synonymous with mixing in the context of this chapter.
106
♦ Use the “best” differential corrections
Parameter: /par/pos/cd/mult/best
Value: on | off
If this parameter is set to “on”, your receiver will automatically identify which of the
differential correction data sets yields the most precise position estimate. If
/par/pos/cd/mult/mix is set to “on”, mixed differential corrections, too, are
taken into account when selecting the best solution. “Best solution” means the
solution having the least RMS error.
When using this parameter, make sure that the receiver position is updated once
a second (you may need to run the command set,/par/raw/msint,1000).
♦ Set/query corrections (“offsets”) to the transmitted coordinates of the reference
stations used in multi-base mode
Parameters27:
/par/rover/base/pos/par/a
/par/rover/base/pos/par/b
/par/rover/base/pos/par/c
/par/rover/base/pos/par/d
/par/rover/base/pos/par/e
Object format:
{valid,port,basedID,delNorth,delEast,delUp}
where
valid – Boolean (on/off). If valid=off, the parameter is associated with no
reference station.
port – This field takes same values as, for example, the parameter
/par/pos/cd/port. It specifies the port to which the offsets are
referenced.
baseID – Integer identification of the reference station for which the offsets
are specified. It varies between –1 and 1023. If baseID = -1, the
offsets are applicable to all reference stations used in multi-base
mode except the stations for which offsets are already specified
with the preceding parameters (see the examples below).
delNorth, delEast, delUp – Float numbers specifying the north-, east- and
up- components of the vector correction to the reference station
position [meters].
You can use these parameters to compensate for known “coordinate offsets” of up
to five reference stations used in multi-base code differential28. This correction
mechanism is especially important when differential corrections from different
reference stations are used together to compute the rover position in the mixed
solution mode (for details, see the parameter /par/pos/cd/mult/mixpos).
Should the transmitted reference coordinates of the base stations be
conspicuously different from their “truth” coordinates in this mode, the estimated
rover position may prove corrupt unless the user enters appropriate “coordinate
offsets” for these stations on the rover side.
27
) Currently GRIL provides only five parameters for coordinate offsets since only up to five
reference stations can be used in multi-base mode.
28
) These parameters are not applicable to RTK
107
Example 1.
set,rover/base/pos/par/a,{on,any,100,-0.02,0.033,-0.05}
set,rover/base/pos/par/b,{on,any,101,0.01,-0.034,-0.22}
set,rover/base/pos/par/c,{on,any,102,0.002,0.023,-0.011}
With these commands you instruct the receiver to use coordinate corrections
(“offsets”) for the reference stations with IDs 100, 101 and 102. Differential
corrections may be received on any port.
Example 2.
set,rover/base/pos/par/a,{on,dev/ser/a,-1,-0.02,-0.03,-0.05}
set,rover/base/pos/par/b,{on,dev/ser/b,-1,0.01,-0.04,0.0}
set,rover/base/pos/par/c,{on,dev/ser/c,-1,0.02,0.12,-0.003}
In this case the specified “offsets” will be applied to the reference stations whose
differential corrections are received on ports A, B and С (irrespective of the
stations’ IDs).
Example 3.
set,rover/base/pos/par/a,{on,dev/ser/a,-1,-0.02,0.03,-0.05}
set,rover/base/pos/par/b,{on,dev/ser/b,101,0.01,0.04,0.0}
set,rover/base/pos/par/c,{on,dev/ser/b,-1,-0.01,-0.04,0.1}
set,rover/base/pos/par/d,{off,dev/ser/b,101,0.1,-0.04,0.01}
set,rover/base/pos/par/e,{on,dev/ser/c,-1,0.02,0.02,-0.03}
First, the receiver will apply the offsets (-0.02,0.03,-0.05) to the transmitted
coordinates of the reference station whose differential corrections are received on
port A (whatever the station ID).
Second, the receiver will apply the offsets (0.01,0.04,0.0) to the reference
station “101” if its differential corrections are received on port B (but not on port A).
If port B is used to receive differential corrections from a station other than “101”,
the offsets (-0.01,-0.04,0.1 ) will be applied to this station.
Third, the offsets (0.02,0.02,-0.03) will be applied to any reference station
whose differential corrections are received on port C (but not on port A or port B).
The general rule to resolve possible conflicts is as follows:
If multiple offsets are specified for the reference station, the receiver will be using
those given in the quintet first (counting from ”a” to “e”).
3.18 MINTER parameters
The following parameters allow the user to set/query the receiver configuration
data responsible for the MINTER FN button's functionality.
♦ “Implicit” message output period for MINTER and AFRM
Parameter: /par/log/sc/period
Type: float; seconds
108
Values: [0..86400]
Default: 1
This parameter specifies the interval of outputting messages into the log-file when
data logging is activated with the MINTER FN button or through the automatic file
rotation algorithm. In these cases, it is impossible to explicitly define the message
output interval, thus the parameter name “implicit period”.
♦ Set/query file name prefix
Parameter: /par/cmd/create/prefix
Type: string[20]
Default: log
This parameter determines the file name prefix used as part of the name of the
new file the receiver will open when you push the MINTER FN button to start data
recording.
You can set this parameter to a string comprising up to 20 valid characters (for
valid characters, please see the introduction). The default value is “log”.
♦ Appending data to a specific file
Parameter: /par/button/file
Type: string[20]
Values: “”
This parameter instructs the receiver to append new data to a specific existing file
(unless the receiver finds no file with this name) when starting data recording via
the FN button.
This parameter can be set to a string comprising up to 20 valid characters. This
string designates the name of the file you have selected for data appending.
Note that you can optionally enclose your string value in double quotes ("") here.
The default value is an empty name. To set an empty file name, run the command
set,/par/button/file,""
If you have specified an empty name, the receiver will assign the current log-file
an “automatically created name” every time you use MINTER to start data
recording. (Note that this automatically created file name will depend on both the
file creation time (month&day) and some additional “letter suffices”. The latter are
used to avoid confusion between files created on the same day).
Alternatively, suppose you have specified a non-empty file name, say NAME. If
there is no log-file with this name in the receiver memory, pushing the FN key will
instruct the receiver to create a new file named “/log/NAME”. Otherwise, the
receiver will be using the existing file “/log/NAME” for appending new data.
♦ LED blink mode vs. Receiver dynamic mode switch
Parameter: /par/button/action
Type: enumerated
Values: led | dyn
This allows the user to toggle the FN button functionality between LED blink
mode and receiver dynamic model.
Commands associated with this object serve two different purposes.
The command set,/par/button/action,led will enable you to change the
receiver's LED blink mode via FN button (if you press and hold down this button
for
less
than
a
second).
Alternatively,
the
command
109
set,/par/button/action,dyn will allow you to use the FN button to toggle
between the static and dynamic receiver modes. Every time you change the
receiver dynamic model through MINTER, the receiver will output an appropriate
free form event to the current log-file.
How can you tell which dynamic mode is currently on? You can easily distinguish
between static and dynamic visually. If the REC LED blinks green, the current
mode is dynamic, if it blinks yellow, you have static on.
♦ Set/query initial dynamic mode
Parameter: /par/button/dyn
Type: enumerated
Values: static | dynamic
When running MINTER in “dyn” mode, we use this parameter to specify the initial
dynamic mode for all of the new files opened through MINTER.
♦ Enable/disable automatic file rotation mode (AFRM) via MINTER
Parameter: /par/button/rot
Type: boolean
Values: on | off
If this parameter is set to “off”, MINTER FN button enables you to turn data
logging on and off.
If this parameter is set to “on”, MINTER FN button is used to turn AFRM on and
off.
3.18.1 Resume data recording after power failure
♦ Resuming data recording after power failure
Parameter: /par/button/auto
Type: enumerated
Values: on | off | always
Case#1. Suppose you have issued a command setting this parameter to “on”.
Should a power failure occur in the course of data recording, the receiver will then
automatically open a new file and resume data recording when power is on again.
From a functional point of view, this is equivalent to pushing the FN button once
the receiver is powered on again.
Case#2. Supposing you have set this parameter to “always”.
This case is similar to the previous one except that the autostart mechanism will
be launched at receiver start time irrespective of whether the power failure
occurred while data recording or not.
Case#3. If this parameter is set to the default value (“off”), the receiver will not
resume data logging after power failure.
Note: Setting this parameter to either “on” or “always” will not make the receiver
automatically start when power is restored after a power failure.
110
3.19 Parameters governing Optimized Real Time Application
messages
These parameters allow you to tailor the [rM] message to your particular needs.
Thanks to the parameters this message is especially flexible in use.
♦ Include/exclude C/A measurements from [rM] message.
Parameter: /par/raw/rtm/meas/ca
Type: boolean
Values: on | off
♦ Include/exclude P1 measurements from [rM] message.
Parameter: /par/raw/rtm/meas/p1
Type: boolean
Values: on | off
♦ Include/exclude P2 measurements from [rM] message.
Parameter: /par/raw/rtm/meas/p2
Type: boolean
Values: on | off
♦ Enable/disable Doppler in [rM] message (selecting between versions 0 and 1).
Parameter: /par/raw/rtm/ver
Type: integer
Values: 0 | 1
In applications such as RTK, Doppler frequency is normally considered
“redundant” data. To reduce the message size by excluding Doppler, set the
parameter to unity.
♦ Select time scale for [rE], [rM] and [rV] messages
Parameter: /par/raw/rtm/tscale
Type: enumerated
Values: gps | glo | utc
For more information about the optimised real time application messages [rE], [rM]
and [rV], please see 4.3.4.
3.20 RAIM parameters
♦ Turn RAIM on/off
Parameter: /par/pos/raim/mode
Type: boolean
Values: on | off
You use this parameter to switch RAIM on and off.
♦ Set/query alarm limit mode
Parameter: /par/pos/raim/al/mode
Type: enumerated
Values: manual | npa | ter | enr
111
The parameter governs the alarm limit mode as shown in the following table:
Phase of flight
Non-precision
approach
Terminal
En route
Phase of flight ID
Npa
Alarm limit
0.3 nmi
Ter
Enr
1.0 nmi
2.0 nmi
nmi - stands for International Nautical Mile (=1852 m).
If “manual” alarm limit mode has been selected by the user, RAIM will use the
contents of the parameter /par/pos/raim/al/manual as the alarm limit.
♦ Set/query the value of the alarm limit that has been specified manually
Parameter: /par/pos/raim/al/manual
Type: float; meters
Values: [10…10000]
Default: 555.6 (it corresponds to “npa” mode);
This parameter is used to specify limit values other than the pre-defined ones (see
the table above).
3.21 Parameters related to NMEA messages
♦ Set/query NMEA standard version
Parameter: /par/nmea/ver
Type: enumerated
Value: v2.3 | v2.2
This parameter instructs the receiver to generate NMEA messages according to
the specified NMEA standard version.
“v2.3” designates version 2.30 (March 1, 1998).
”v2.2” designates version 2.20 (January 1, 1997).
♦ Set/query offset for True Heading from HDT message (in degrees)
Parameter: /par/nmea/head/offset
Type: float
Value: (-360, 360)
Default: 0
This allows the user to get True Heading with respect to the specified direction
(which is offset degrees clockwise from True North).
♦ Enable/disable use of “GP” as Talker ID in NMEA messages
Parameter: /par/nmea/gp
Type: boolean
Value: on | off
This parameter instructs the receiver to use “GP” as Talker ID in NMEA
messages. This mode is implemented for compatibility with older equipment that
may not be capable of recognizing “GN” or “GL” as Talker IDs.
112
♦ Limit the total number of satellites in GGA message to 12
Parameter: /par/nmea/ggalim
Type: boolean
Value: on | off
In accordance with the NMEA-0183 standard [5], the total number of satellites in a
GGA sentence is limited to 12. In practice, however, there may be more than 12
GPS satellites in sight.
This parameter serves for compatibility with any software that strictly follows the
NMEA-0183 standard.
3.21.1 Resolution parameters for fractional data fields in NMEA messages
♦ Set/query mantissa length for fractional seconds of UTC time
Parameter: /par/nmea/frac/sec
Type: integer
Values: 0 | 1 | 2
This parameter specifies the number of digits in the fractional part of the seconds
of UTC time.
♦ Set/query mantissa length for fractional minutes of latitude/longitude
Parameter: /par/nmea/frac/min
Type: integer
Values: 1 to 7
This parameter specifies the number of digits in the fractional part of the minutes
of latitude/longitude. Note that this parameter relates to all of the NMEA messages
having data fields in fractional minutes format.
Also, there are three additional parameters allowing the user to set the format of
fractional minutes for some individual NMEA messages.
These are as follows:
♦ Set/query mantissa length of fractional minutes for GGA message
Parameter: /par/nmea/frac/min/GGA
Type: integer
Values: 1 to 7
♦ Set/query mantissa length of fractional minutes for GLL message
Parameter: /par/nmea/frac/min/GLL
Type: integer
Values: 1 to 7
♦ Set/query mantissa length of fractional minutes for GNS message
Parameter: /par/nmea/frac/min/GNS
Type: integer
Values: 1 to 7
Note: Currently, you can query your receiver for the above three parameters with
a single command. If you send the command print,/par/nmea/frac/min,
the receiver will return the triplet: {n1,n2,n3}, where
113
/par/nmea/frac/min/GGA = n1
/par/nmea/frac/min/GLL = n2
/par/nmea/frac/min/GNS = n3
♦ Set/query mantissa length for fractional meters of geoidal separation and
orthometric height
Parameter: /par/nmea/frac/alt
Type: integer
Value: 1 to 4
This parameter specifies the number of digits in the fractional meters for both
geoidal separation and orthometric height29.
♦ Set/query mantissa length for fractional degrees in VTG message
Parameter: /par/nmea/frac/deg/VTG
Type: integer
Value: 1 to 3
♦ Set/query the length of the fractional part of speed30 in VTG message
Parameter: /par/nmea/frac/speed/VTG
Type: integer
Value: 1 to 4
♦ Set/query mantissa length of fractional residuals for GRS message
Parameter: /par/nmea/frac/res/GRS
Type: integer
Values: [0,…3,4]
3.22 WAAS/EGNOS parameters
The TPS receiver has two independent “channels” that can be allocated to WAAS
(Wide Area Augmentation System) and EGNOS (European Geostationary
Navigation Overlay Service) satellites. Either channel can track any one of the
WAAS/EGNOS satellites. To minimize changes to the existing receiver interface
the following approach was adopted: a WAAS/EGNOS satellite tracked is
assigned a PRN number corresponding to one of the “not available” GPS
satellites (currently31, ##12, 16, 19 and 32).
♦ Set/query the number of WAAS/EGNOS satellite
Parameter: /par/waas/[1|2]/sat
Object format: WAAS PRN number, GPS PRN number
Default: 0
29
) note that the term "altitude above the geoid", which is used in the description of NMEA
messages, is synonymous with "orthometric height".
30
) measured in knots and km/h
31
) at the time this manual has been put on the website
114
Examples.
set,/par/waas/1/sat,12232 - first “channel”: associate WAAS
satellite PRN code #122 (currently26, Inmarsat AOR-W satellite) with GPS
PRN#32
set,/par/waas/2/sat,13412 - second “channel”: associate WAAS
satellite PRN code #134 (currently26, Inmarsat POR satellite) with GPS
PRN#12
set,/par/waas/2/sat,12012 - second “channel”: associate EGNOS
satellite PRN code #120 (currently26 Inmarsat AOR-E satellite) with GPS
PRN#12
set,/par/waas/2/sat,0 - free the second “channel” (stop tracking the
WAAS/EGNOS satellite in this channel) (default)
set,/par/waas/1/sat,0 - free the first “channel” (stop tracking the
WAAS/EGNOS satellite in this channel) (default)
Once the parameter is properly set, the channel firmware will try to lock on the
specified WAAS/EGNOS satellite, not the “fake” GPS satellite. All the parameters
described throughout this manual will be applicable to this WAAS/EGNOS satellite
as if it were a GPS SV.
♦ Enable/disable use of message #0 from WAAS/EGNOS satellites.
Parameter: /par/waas/[1|2]/instead0
Type: integer
Values:0…99
WAAS/EGNOS specifications do not allow use of any data from these satellites if
message type #0 is being broadcast. Currently neither WAAS nor EGNOS is
operational (both the systems are broadcasting message #0). To override the
limitation, you should use the above parameter.
Examples.
set,/par/waas/1/instead0,2 - interpret message #0 as message #2
Since message #0 contains same data as message #2 this command will
allow you to use WAAS satellites.
set,/par/waas/2/instead0,99 -interpret message #0 as message
#99 (which does not exist)
Currently you execute this command when you need to run an EGNOS
satellite so that to make the receiver interpret message #0 as one of nonexisting messages (e.g., message #99)
set,/par/waas/1/instead0,0 - do not substitute message #0
(default)
♦ Enable/disable ionospheric corrections from WAAS/EGNOS satellites
Parameter: /par/waas/[1|2]/ion
Type: integer
Values: 0 | 1 | 2
115
WAAS/EGNOS satellites provide also ionospheric delays for corresponding areas
(WAAS for the USA and EGNOS for Europe). Note that this data may not be
available for some low-elevation GPS satellites in some “boundary” regions.
This parameter allows you to enable/disable use of ionospheric corrections.
Examples.
set,/par/waas/1/ion,0 –ionospheric corrections are not used at all
set,/par/waas/2/ion,1 – if there is an ionospheric correction for the
given satellite, the receiver will use it. Otherwise no ionospheric data is
used for the satellite when computing the position.
set,/par/waas/2/ion,2 – when computing the position, use only the
satellites for which ionospheric corrections are available (default)
♦ Enable/disable additional information from WAAS/EGNOS satellites
Parameter: /par/waas/raw
Type: boolean
Values: on | off
With this parameter you instruct the receiver to output raw “one-second” and
some other (decoded) WAAS/EGNOS data into port A.
♦ Enable/disable the “truth” WAAS PRN numbers in [SI] message
Parameter:/par/waas/numb
Values: off | on
If you execute a set,/par/waas/numb,on command, there will be the “truth”
WAAS PRN numbers in [SI] message, not their associated GPS PRN numbers.
This parameter is needed for TPS post-processing software (such as JPS2RIN™
and Pinnacle™) to handle WAAS data correctly.
Limitations on usage of WAAS in version 2.2
Fast acquisition/reacquisition for WAAS/EGNOS satellites is not “very fast”
actually. Some parameters (such as ionospheric delays) are not stored in
NV RAM so that TTFF (time to first fix) may be greater than that for GPS SVs.
Currently the WAAS is operated by the RAYTHEON company.
For AOR-W and POR satellites, the WAAS signal and GPS corrections are as a
rule available 24 hours a day, seven days a week. For the current status of the
WAAS, please refer to http://wwws.raytheontands.com/waas/
EGNOS is at the first stage of its development (at the writing of this version of the
GRIL manual). The EGNOS signal and ephemerides are normally available 24
hours a day whereas GPS corrections are usually transmitted only during the
daylight hours (in UTC). For information on the status of EGNOS, please visit the
ESA page (http://www.esa.int/export/esaSA/navigation.html).
116
You can easily find out the current status/availability of WAAS/EGNOS by
analyzing the corresponding raw data messages (recall that you can enable these
messages with a set,/par/waas/raw,on command). A WAAS/EGNOS
satellite must broadcast all its messages at a specified rate (see the WAAS ICD
for details). If this condition is not satisfied in practice, the DGPS service may not
be available.
Neither WAAS nor EGNOS is fully operational at present time -- it is the user's
responsibility to exercise common prudence and navigational judgment while
using the signal.
3.22.1 Step-by-step instructions about using TPS receivers in WAAS/EGNOS
DGPS mode
1. Associate WAAS satellite PRN code #122 (currently26, Inmarsat AOR-W
satellite) with GPS PRN #32
set,waas/1/sat,12232 - first “channel”
2. Associate WAAS satellite PRN code #134 (currently26, Inmarsat POR
satellite) with GPS PRN #12
set,waas/2/sat,13412 - second “channel”
3. Interpret message #0 as message #2 (currently this command must be
issued for WAAS satellites because message #0 contains data for
message#2)
set,waas/1/instead0,2
4. Interpret message #0 as message #2 (currently this command must be
issued for WAAS satellites because message #0 contains data for
message#2)
set,waas/2/instead0,2
5. Turn on code differential mode
set,pos/mode/cur,cd
6. This command may be issued when there are many satellites in view.
Excluding low-elevation satellites with large ionospheric delays may help
increase the accuracy of position computation
set,pos/elm,10
A minimum set of commands to switch the receiver to the WAAS-corrected code
differential is as follows:
set,waas/1/sat,12212
set,waas/2/sat,13418
set,waas/1/instead0,2
set,waas/2/instead0,2
set,pos/mode/cur,cd
117
A minimum set of commands to switch the receiver to EGNOS-corrected code
differential is as follows:
set,waas/1/sat,12012
set,waas/1/instead0,99
set,pos/mode/cur,cd
Since WAAS/EGNOS satellites normally send some types of data (i.e. ionospheric
delay corrections) no more than once every three minutes, time to first fix may
be up to several minutes (in most cases, however, TTFF is around three minutes).
After all the required information is received, the receiver will switch to code
differential.
3.23 OmniSTAR parameters
OmniSTAR is a wide-area differential GPS service, using satellite broadcast
techniques. Data from many widely-spaced Reference Stations are used in a
proprietary multi-site solution to achieve sub-meter positioning over most land
areas worldwide. This is done by mathematically weighting each reference station
as a function of its relative position. The result is one set of RTCM - SC -104,
Version 2 corrections, optimized for the user location. This makes OmniStar VBS
highly suitable for mobile applications or "dynamic positioning".
OmniSTAR is a member of the Fugro group of companies with offices throughout
the world. Topcon has implemented the OmniStar Virtual Base Station (VBS) into
the own firmware.
For more information about OmniStar, visit http://www.omnistar.com/.
Note: The parameters described in this section are applicable only to the
OmniSTAR-enabled TPS receivers. Currently the model of TPS receiver
that supports OmniSTAR DGPS service is HE_GD.
118
OmniSTAR service information
/par/omni/ver
/par/omni/stat
/par/omni/sub/num
/par/omni/sub/start
/par/omni/sub/exp
/par/omni/sub/ext
/par/omni/sub/hour
OmniSTAR’s Virtual Base Station (VBS) version
VBS status flags in hexadecimal format
VBS_WARN_NEED_UPDATE = 0x8000
Some data for the VBS need to
be updated (the VBS update is
performed automatically). Note
however that during the
updating procedure differential
corrections are not available.
VBS_ERROR_NO_TIME = 0x0080
No time is available from GPS
engine.
VBS_ERROR_NO_POSITION = 0x0040
No position is available from
GPS engine.
VBS_ERROR_NO_ALMANAC = 0x0020 VBS almanac data are
unavailable. The VBS is still
waiting for the data.
VBS_ERROR_NO_REMOTE_SITES =
Information about remote sites
0x0010
is not available. The VBS is still
waiting for the data.
VBS_ERROR_LINK = 0x0008
No subcription to the link with
the current satellite.
VBS_ERROR_WET = 0x0004
No subcription to work on the
sea.
VBS_ERROR_REGION=0x0002
No subscription to the current
region.
VBS_ERROR_EXPIRATION=0x0001
No subscription.
Fugro ID number. For TPS receivers this parameter ranges from
200000 to 299999. This ID is required by OmniSTAR for subscribing to
their service.
OmniSTAR subscription start time in GPS seconds
OmniSTAR subscription expiration time in GPS seconds
OmniSTAR subscription extension time in seconds
This parameter shows how much time (in hours) is left for an
OmniSTAR subscription that was purchased hourly.32
♦ Output stream duplication parameter
Parameter: /par/omni/dup
Type: string
Values: any valid output stream name
Default: /dev/null
Name of the output stream where the data decoded by OmniSTAR module (in
RTCM format) are to be duplicated. By default, no duplication is performed (i.e.
the data is being sent to the position computation engine only).
32
) Note that the count of the remaining time starts as soon as VBS is turned on and stops when
VBS is turned off.
119
♦ Clear OmniSTAR NVRAM
/par/omni/clear
Format: [alm,nvr,sit,sub]
Type: boolean
Value: n|y
/par/omni/clear/alm
Type: Boolean
Value: n|y
/par/omni/clear/nvr
Type: Boolean
Value: n|y
/par/omni/clear/sit
Type: Boolean
Value: n|y
/par/omni/clear/sub
Type: Boolean
Value: n|y
This parameter clears the NVRAM of the OmniSTAR
module. All the data stored in the NVRAM (almanac,
subscription, etc.) will be lost.
Setting this parameter to “y” clears OmniSTAR almanac
in NVRAM. After executing this parameter with the set
command, the parameter's default value “n” is
immediately restored.
Setting this parameter to “y” clears “OmniSTAR NVRAM”
in NVRAM. After executing this parameter with the set
command, the parameter's default value “n” is
immediately restored.
Setting this parameter to “y” clears OmniSTAR sites in
NVRAM. After executing this parameter with the set
command, the parameter's default value “n” is
immediately restored.
Setting this parameter to “y” clears OmniSTAR
subscription in NVRAM. After executing this parameter
with the set command, the parameter's default value “n”
is immediately restored.
3.24 Receiver options
♦ Enable/Disable the Cinderella mode
Parameter: /par/opts/cind
Type: boolean
Value: on | off
Cinderella is the registered name for a TPS receiver's full functionality mode.
As a preliminary condition for activating this mode, you should issue the
command set,opts/cind,on to the receiver. Note that you can send this
command any time before the nearest “Cinderella Tuesday” starts (recall that
Cinderella is potentially available every other Tuesday; for more information
about this option, please see our website).
Example.
Suppose you are going to run a receiver in the Cinderella mode on
Tuesday, January 21, 2003. A typical sequence of steps to activate
Cinderella is as follows:
1) Send the command set,opts/cind,on shortly before midnight
January 21, 2003 (GPS time). Turn off the receiver.
2) Turn the receiver on as soon as the Tuesday starts (GPS time). Your
receiver will be operating as a dual frequency GPS&GLONASS until it
automatically switches back to its “authorized” functionality at midnight
on Wednesday January 22, 2003.
Warning: Please note that “Cinderella” gets activated only at start-up time.
This means that you will have to restart your receiver to activate the
120
Cinderella mode.
Note: The following dates are scheduled for the Cinderella option:
Day
Month
Year
…
…
…
7
January
2003
21
January
2003
4
February
2003
18
February
2003
4
March
2003
18
March
2003
…
…
…
The “Options” commands
Among the many capabilities of your TPS receiver there is a special class of
capabilities which are referred to as “receiver options”. By default, receiver
options are disabled so you have to take special measures to activate them. It
can be done by downloading the corresponding Option Authorization File
(OAF).
The TPS receiver currently provides some 40 options. Receiver options
are considered “obsolete”. These are included in the below list
marked with
for back-compatibility purposes only. The following list contains the names of
the existing options:
Name
“_GPS”
“_GLO”
“_L1_”
“_L2_”
“CIND”
“_POS”
“_RAW”
“CDDB”
“CDDR”
“RTKB”
“RTKR”
“_MEM”
Description
Allows use of GPS satellites
Allows use of GLONASS satellites
Allows C/A measurements
Allows P1 and P2 measurements
Enables the Cinderella mode
Specifies the maximum position update rate for single point
and code differential positioning.
Range: 20, 10, 5, 2, 1 or 0 Hz. Zero means that the option is
disabled.
Specifies the maximum measurement update rate.
Range: 20, 10, 5, 2, 1 or 0 Hz.
Zero means that the option is disabled.
Configure receiver as “code differential BASE”.
Configure receiver as “code differential ROVER”.
Configure receiver as “RTK BASE”.
Configure receiver as “RTK ROVER”. The user can select
the desired RTK position update rate.
Range: 20, 10, 5, 2, 1 or 0 Hz.
Zero means that the option is disabled.
Specify maximum memory space for raw data files. The
meaning of the _MEM option is as follows (where N is an
allowable memory space for file storage in megabytes):
0 <= _MEM <= 128, N = _MEM
121
(1)
128 < _MEM <= 511, N = 128 + (_MEM - 128) * 16
(2)
Example. Let us replace “_MEM” by “511” in the (2) equation
above (i.e., N = 128 + (511 – 128) * 16). We get 6256 MB.
Zero means that the option is disabled.
Do not confuse this option and a data storage device
(SanDisk CF card) that can be mounted on the receiver
board. Although they are closely related, their meanings are
different. The former refers to the amount of storage space
enabled by OAF. The latter refers to the capacity of the
SanDisk CF card installed in the receiver. For example, if the
_MEM option equals 32 MB in your receiver and the CF card
embedded into the receiver holds 16 MB of capacity, you will
be able to record only 16 MB of data. But if the CF card has
the capacity greater than the value specified in _MEM, you
will be able to record the amount of data that is equal to or
smaller than the value in the _MEM option.
See the table that follows to figure out how much space for
storing data can be used by your receiver.
If the receiver board
vesion is…
JPS_3
JPS_4_x
HE_GD_x / HE_GG_x
E_GGD_x / HE_GGD_x
“COOP”
“_PPS”
“EVNT”
“_AJM”
“_MPR”
“_FRI”
“_FRO”
“RS_A”
“RS_B”
the maximum capacity of the SanDisk CF
card in the receiver can be up to…
16 MB
112 MB
512 MB
1024 MB
Enable use of common loops.
Enable use of PPS signals.
Range: 0, 1, 2.
If set to zero, neither PPS signal is available.
Select 1 to activate one of the available PPS signals;
Select 2 to activate both of the PPS signals.
Enable use of EVENT signals.
Range: 0, 1, 2
If set to zero, neither EVENT signal is available.
Select 1 to activate one of the available EVENT signals;
Select 2 to activate both of the EVENT signals.
Allow use of Jamming Suppressor.
Range: 0, 1, 2.
Zero means that the option is disabled.
Select 1 to activate export (non-US) version.
Select 2 to activate US version.
Allow use of C/A Code and Carrier Phase Multipath
Suppressor.
Allow use of an external frequency.
Enable the “refined” 20 MHz output frequency.
Maximum available baud rate for port A (in kBd)
Range: 0, 9, 19, 38, 56, 115, 230, 460.
Zero means that port A is not available.
Maximum available baud rate for port B (in KBd)
Range: 0, 9, 19, 38, 56, 115, 230, 460
122
“RS_C”
“RS_D”
“INFR”
“_PAR”
“_FRH”
“_DSS”
“RAIM”
“_DTM”
“MAGN”
“_GEO”
“_WPT”
“WAAS”
“OMNI”
“RTMO”
“RTMI”
“CMRO”
“CMRI”
“CDIF”
“PDIF”
“_CPH”
Zero means that port B is not available.
Maximum available baud rate for port C (in KBd)
Range: 0, 9, 19, 38, 56, 115, 230, 460
Zero means that port C is not available.
Maximum available baud rate for port D (in KBd)
Range: 0, 9, 19, 38, 56, 115, 230, 460
Zero means that port D is not available.
Enable the infrared port.
Enable the parallel port.
Allow use of the internal modem in the frequency hopping
mode.
Allow use of the internal modem in the spread spectrum
mode.
Enable RAIM
Allow use of datums other than WGS84 and PE90.
Allow use of magnetic declination.
Enable the geoid model.
not available
Enable WAAS service
not available
Configure receiver for outputting RTCM messages. This is a
bit-field option.
If bit#0 is set, all of the RTCM messages relating to code
differential are enabled.
If bit#1 is set, all of the RTCM messages relating to carrier
phase differential are enabled.
Configure receiver for inputting RTCM messages via n ports,
where n lies between zero and the total number of ports in
the receiver, inclusive. If n=0, this option is disabled.
Configure receiver for outputting CMR messages. This is a
bit-field option.
If bit#0 is set, the whole range of CMR messages are
enabled for output.
Configure receiver for inputting CMR messages via n ports,
where n lies between zero and the total number of ports in
the receiver, inclusive. If n=0, this option is disabled.
Note: Currently, n can be set to either zero or unity.
Enable code differential processor (“DGPS engine”)
This option toggles between 1 and 0.
Zero means that the option is disabled.
Enable carrier phase differential processor (“RTK engine”).
This option takes one of the following values (in Hz):
20, 10, 5, 2, 1 or 0.
Zero means that the option is disabled.
Enable “true carrier phase” output.
If the option is set to unity, true carrier phase is
output.
If the option is set to zero, integral Doppler is output
for true carrier phase. In this case the option “PDIF”
123
“ETHR”
“_TCP”
“_FTP”
“_USB”
“OCTO”
“_CDU”
“_LIM”
“AUTH”
“JPSO”
“JPSI”
•
•
•
will not be fully available because only float solutions
can be obtained when RTK using integral Doppler for
true carrier phase.
Note: In TPS receivers other than JGG20 and HEGG, this
option is always set to unity.
Allows the TPS receiver to operate via Ethernet.
Range: 0, 1
Zero means that the option is disabled.
Unity indicates that the receiver supports connections over
Ethernet.
Value means the maximal allowed number of simultaneously
opened Telnet-like connections. Currently the receiver can
establish up to five Telnet-like connections.
Range: 0 thru 5
Zero indicates that the option is disabled.
Value means the maximal allowed number of simultaneously
opened FTP connections. Currently the receiver supports only
one FTP connection at a time.
Range: 0, 1
Zero indicates that the option is disabled.
Enable use of USB interface. This option toggles between 1 and
0.
Allows the TPS receiver to be used as an attitude determination
unit.
Range: 0, 1, 2
Zero means that the option is disabled.
Select 1 to activate “heading” mode.
Select 2 to activate both “heading” and “octopus” modes.
Allows the use of CDU. Range: 0,1
It is always set to zero (intended for internal purposes only).
Authorization for external programs. This is a bit-field option
with the bits having the following definition:
bit #0 – if this bit is set, the receiver is authorized for
Pinnacle™.
bit #1 – if this bit is set, the receiver is authorized for PCCDU MS.
bits #2 thru #7 – reserved.
Range: [0...255]
Configure receiver for outputting JPS messages. This is a bitfield option. If bit#0 is set, the entire range of JPS messages are
enabled for output.
Configure receiver for inputting JPS messages via a n ports,
where n lies between zero and the total number of ports in the
receiver, inclusive. If n=0, this option is disabled.
Each option is characterized by the following descriptors:
Option name
Purchased value
Leased value
124
• Expiration date of leased value
• Current value
A receiver option can be “purchased”, “leased”, or “purchased” and “leased” at
the same time.
A leased option is characterized by the leased value and the expiration date. A
purchased option is characterized only by the purchased value because such
an option has no expiration date.
Since any option can be “purchased” and “leased” at the same time, we should
take into account all of the “purchased” and “leased” descriptors as a whole. It
is the numerical descriptor “current” that serves this purpose. This descriptor
indicates the value currently effective for the given option. Note that “current”
will either coincide with the larger of the purchased and leased values or be set
to -1.
- If “current” equals -1, this means that the corresponding receiver option is
not supported by the firmware version you use.
- If “current” equals zero, the corresponding receiver option is disabled.
- If “current” equals a positive integer, the option is enabled.
With the following read-only parameters, you can retrieve information about
the receiver options.
♦
/par/opts/NAME/purchased
With the command print,opts/NAME/purchased you query the
purchased value for the option NAME
♦
/par/opts/NAME/leased
With the print,opts/NAME/leased command you query the leased
value for the option NAME
♦
/par/opts/NAME/cur
With the print,opts/NAME/cur command you query the current value
for NAME
♦
/par/opts/NAME/date
With the print,opts/NAME/date command you query the expiration
date for the option NAME
♦
/par/opts
The command print,opts returns complete information about the
receiver options in the format:
[current value], [purchased value], [leased value], [expiration date]
♦
/par/opts/NAME
The command print,opts/NAME returns complete information about
the option NAME in the format:
[current value], [purchased value], [leased value], [expiration date]
125
3.25 Obsolete parameters
Parameters preceding the arrow are considered as obsolete. Parameters
following the arrow (if present) are recommended for use.
/par/version/main
/par/rcv/ver/main
/par/raw/elm
/par/out/elm/cur/log
/par/button/period
/par/log/sc/period
/par/opts/NAME
/par/opts/all/NAME
/par/rcvid
/par/rcv/id
/par/ajm/mode,susp
/par/ajm/mode,off
From version 2.1 on, TPS receivers do not support the susp mode. Therefore, the user
should not set the parameter /par/ajm/mode to “susp”. For earlier firmware versions, the
command set,ajm/mode,susp was used to put the receiver's anti-jamming module in
standby mode. In version 2.1, however, set,ajm/mode,susp is interpreted just an alias for
set,ajm/mode,off.
/par/rtcm/rover/maxage
/par/pos/cd/maxage
/par/rtcm/mode
In earlier versions of GRIL (up to version 2.1 inclusive) this parameter allowed the user to
query the current RTCM mode ( off, base, rover). Now that TPS receiver can run as
base and rover simultaneously, this parameter becomes ambiguous. We recommend using
the commands
print,/par/base/mode/rtcm
and
print,/par/rover/mode/rtcm
instead.
/par/pos/meas
/par/pos/iono
/par/pos/tropo
/par/hd/mode
/par/hd/uselen
/par/hd/len/0
/par/opts/all/NAME
/par/opts/cur/NAME
/par/hist/out
/par/pos/sp/meas
/par/pos/sp/iono
/par/pos/sp/tropo
/par/pos/pd/hd/mode
/par/pos/pd/hd/uselen
/par/pos/pd/hd/len/0
/par/opts/NAME
/par/opts/NAME/cur
/par/pos/pd/hist/out
/par/pos/pd/hist/num
/par/pos/pd/hist/bad
126
4 Receiver Messages
4.1
General Format of TPS Messages33
Each standard message begins with its identifier. A message identifier is followed
by the “length of message body” descriptor, which in turn is followed by the
message body itself.
4.1.1 Message Identifier
Each standard message begins with the unique message identifier comprising two
ASCII characters.
Any characters from the subset 0 thru ~ (i.e., decimal ASCII codes in the range of
[48..126]) can be used in standard message identifiers.
Format:
a1 id[2];
4.1.2 The Length of Message Body Descriptor
Message identifier is followed by the “length of message body” descriptor. This
descriptor, which comprises three upper-case hexadecimal digits, specifies the
length of the message in bytes. Thus the maximum message length is 4095
(0xFFF) bytes.
Format:
a1 length[3];
4.1.3 Message Body
Message body follows immediately after the length of message descriptor. Recall
that a message's body can have a maximum of 4095 characters. There are no
restrictions on the contents of the message body.
4.1.4 Non-standard Messages
TPS receivers support both standard and non-standard (aka “non-conforming”)
messages.
The format of standard messages has been described above.
Non-standard messages do not meet the standard message format's
requirements. The main purpose that non-standard messages serve is that you
can insert them between standard messages thus generating a combined stream
of standard and non-standard messages.
33
) TPS message is synonymous with JPS message in the context of this document.
127
Recall that not all of the ASCII characters are allowed in standard message
identifiers. Moreover, those lying in the range “!”… “/” (decimal ASCII codes in the
range [33-47]), are reserved for non-standard messages. You can safely put an
arbitrary array of characters between any two standard messages provided the
following requirements are met:
1. the first character of this array lies between “!” and “/” in ASCII code pages
(inclusive)
2. this array terminates in an arbitrary combination of CR (decimal code 13) and
LF(decimal code 10) characters.
3. none of the starting (“!” thru “/”) or terminating (CR, LF) characters are used
inside the array.
Note that no limitation on the array length is imposed here. Also note that you can
run non-standard messages comprising only CR and LF characters. This feature
allows you to make your standard TPS message streams look more “humanreadable” when outputting data to a general-purpose terminal.
Bear in mind that the character “$” is already reserved for standard NMEA
messages. We strongly recommend that you do not use “$” in messages other
than NMEA ones.
4.1.5 Parsing Message Stream
In this section, you will find some hints and tips on how to write code intended to
parse a TPS receiver's message streams. Although we are not going to discuss
this subject in detail in this reference manual, we'd like to emphasize here that the
standard message format will allow you to effectively process/parse nearly any
TPS message stream you may encounter in practice. Below we assume that TPS
data streams parsed will comprise standard TPS messages and non-conforming
messages.
4.1.5.1
Synchronization
When parsing a message stream, you need to find out the messages boundaries.
This is what we call “message stream synchronization task”. Message
synchronization is carried out when parsing is started or when synchronization is
lost.
First, your code should search for the nearest two adjacent characters which may
be taken for a message identifier and which are followed by another three uppercase characters representing a non-negative hexadecimal number (say “L”).
Once you have detected such a quintet of characters, you treat the following “L”
characters as the message body.
You will make your synchronization technique more robust if you make the
decision after examining more than one successive message. Alternatively, you
may prefer to search the stream for a message whose structure is a priori known
(including the message body).
128
4.1.5.2
Changing to the Next Message
To go from the current message to the next one, take the following steps:
1. Assume the current message starts at position “N”. Determine the current
message length (decode characters ## N+2, N+3, N+4). Assume the
message length is equal to L. Skip the first L+5 characters starting from
position “N”.
2. Skip all of CR and LF characters (if any).
3. If the next character coincides with one of the symbols that non-standard
messages start with,
skip all the following characters until CR and/or LF characters are
encountered; jump to step 2;
else
a new message is found.
Strictly speaking, we do not recommend that you use in your parsing code any a
priori information about the sizes and the contents of the message bodies. If you
respect this recommendation, you will not have trouble with the parsing program
should some of the messages be changed.
4.2
Attention users of Pinnacle™ and other TPS postprocessing software
Remember that some of the message types34 are critical for Pinnacle™ and other
TPS post-processing software to be able to import and process jps files correctly.
For your reference, below is the list of the JPS messages that Pinnacle™ will
identify when parsing an imported jps file:
JP, MF, PM, ==, RD, ~~, TO, UO, PO, VE, PV, DP, SI, NN, EL, RC, R1, R2, rc, r1, r2, 1R,
2R, 1r, 2r, СС, C1, С2, cc, c1, c2, PC, P1, P2, pc, p1, p2, CP, 1P, 2P, cp, 1p, 2p, DC, D2, TC,
FC, F1, F2, EC, E1, E2, NE, GE, WE, GA, NA, IO, XA, XB, SS, SE, rM, rE,rV.
In practice however most Pinnacle™ users process raw data collected with TPS
receivers that are configured to record only the default set of JPS messages,
specifically:
JP, MF, PM, EV, XA, XB, RT, RD, SI, NN, EL, FC, RC, DC, EC, TC, CP, 1R, 1P, 2R, 2P,
E1, D2, E2, SS, SE, PV, ST, DP, TO, DO, UO, IO, GE, NE, GA, NA, WE, WA, WO
Great care should be exercised with respect to the “time messages” such as [RD]
and [~~]. If a set of messages to be used is other than the default one or if the
adopted order of messages in the default set of messages is changed in some
way, make sure that the updated set of messages maintains the “epoch
synchronization”, i.e., the messages [~~] and [RD] precede the messages
34
) and their place among other messages
129
containing code, carrier phase and other types of measurements collected at the
current epoch. Should the user violate this condition, he or she may not be able to
correctly process corresponding raw data files with Pinnacle™.
From December 30, 2001 on, [PM] and [SE] messages will play a very important
part in post-processsing raw data with Pinnacle™. New versions of Pinnacle™,
which are unauthorized-access-protected, will not process raw data sets unless
some of the files from these data sets are Pinnacle-enabled. This means that it is
absolutely MANDATORY for Pinnacle™ users to maintain both [PM] and [SE]
message types when specifying the required JPS message set.
Also note that Pinnacle™ will not import a JPS file without [MF] message. For
more information about [MF] message, please refer to 4.3.2.2.
4.3
Predefined Messages
In this chapter we will familiarize the reader with the predefined set of standard
TPS messages. When referring to the message with the identifier XX, we use the
notation [XX].
4.3.1 General Notes
Most of the predefined messages don't contain reference time information inside.
In our view, it would be excessive to use one and the same time tag with all of the
many messages the receiver generates at the current epoch. When outputting
receiver information available for the current epoch, you usually get various
messages. Instead of supplying each of them with an “individual” time tag data
field, we use a special message that carries receiver time information common for
these messages. This message is called “Receiver Time” and has the identifier
[~~]. In fact, “Receiver Time” is supposed to precede all of the other messages
generated at the current epoch thus delimiting messages corresponding to
different epochs. From a formal point of view, it is up to the user to define the
order of messages in the output stream. However, care should be taken to
ensure that the order in which messages are written into the output stream
does not break the “epoch synchronization”, which is very essential for
post-processing the logged data with Pinnacle™ and other TPS software
packages.
For more details on the default set of messages see 4.4.2
There are some other messages having a time tag data field. One of them is
called “Event” (identifier [==]). Since an event may occur any time and the event
time is absolutely independent of the epoch grid, this message type does require
its own time tag.
All of the predefined messages conform to the standard message format
(“General Format”) described in 3.14. You will notice that most of the messages
have identifiers comprising only digits and/or English letters. In fact, “Receiver
Time” ([~~]) is the only message whose identifier uses the character “~”. It makes
sense as the [~~] message plays a very important part serving as an epoch
delimiter. Thus there are special precautions in order to minimize the probability of
130
losing this key message. Similarly, the identifier of the “Event” ([==]) message,
too, must be as distinctive as possible since the application software uses freeform events just as delimiters.
The idea of using “highly distinctive” identifiers for the messages that serve as
delimiters is very clear. Should a message's checksum be wrong, just check its
identifier. If neither of the identifier's characters coincides with “~”, then it is very
unlikely that this is a corrupted [~~] message. Therefore, you needn't skip to the
following [~~] message in this case.
On the other hand, if a message has the correct checksum yet one of the identifier
characters is “~”, then it would be safer to treat this message as a corrupted [~~]
message. In this case - skip to the next [~~] message.
For predefined messages using the checksum, the checksum is always put at the
very end of the message body. If a message's structure is modified, new data
fields are added before the checksum field. This explains why it is recommended
to address the checksum field relative to the end of the message body.
Checksum is computed using both the message header (i.e., “message identifier”
plus “the length of message body descriptor”) and body. For detailed information
about the checksum procedure your receiver utilizes, see the section “Checksum
Computation Algorithm”.
4.3.2 General Purpose Messages
For conventions used in this section, see Appendix B. Format and Naming
Conventions. Most of the messages described below contain binary data. In
practice, such messages are normally logged into a file which is then interpreted
using appropriate software.
4.3.2.1 [JP] Javad Positioning Systems File Identifier
The [JP] message is intended as a file identifier for a whole variety of files created
by using different TPS software. This message, which is always put at the
beginning of the JPS file, serves two purposes.
First, it enables the processing program to easily identify the file type.
Second, this message usually contains some additional information about the
origin of the corresponding file (e.g., what particular hardware was used to collect
data this file contains).
The [JP] message has the identifier “JP”. The message length is “055” bytes
(hex). Thus the message header “JP055”.
The message body is defined as follows:
struct JPFileId {
a1 id[5];
// File type identifier
a1 description[80]; // Human-readable file description
};
The field “id” indicates the file type. The field “description” is padded to the
required size with blanks if necessary.
For TPS receivers, the [JP] message always contains the following information:
“id” = "RLOGF",
131
“description” = "JPS NAME Receiver Log File" (blanks are omitted here). Note
that the sub-string “NAME” stands for the specific receiver name in this notation,
e.g. "JPS Regency Receiver Log File".
4.3.2.2 [MF] Message Format and Identifier {9}
The size of this message is not subject to change. Therefore, the first 7 bytes of
this message are always "MF009JP".
struct {
a1 id[2]='JP';
a1 majorVer[2];
a1 minorVer[2];
a1 order;
a1 crc[2];
};
//
//
//
//
//
//
//
//
//
JP identifier
Format major version as decimal
(e.g. '01')
Format minor version as decimal
(e.g. '00')
Bytes order
'0' — LSB first;
'1' — MSB first
Checksum as hexadecimal
The message format's major version is updated if and only if some backward
incompatible changes to the existing message format are made. Any other
changes to the existing messages result in updating only the minor version.
The data field “order” describes how multi-byte binary types are stored inside the
message bodies.
Note: For message format version 1.0, “order” is always set to “0” (i.e., you can't
force the receiver to write binary data in the most significant bytes first order).
4.3.2.3 [SE] Security {6}
This message is intended for TPS internal use.
struct Security {
+ u1 data[5];
+ u1 cs;
// Checksum
};
4.3.2.4 [||] Epoch End {1}
This message itself carries no information. It is intended just as an “End Of Epoch”
marker used for real-time applications.
struct EpochEnd {
+ u1 cs;
// Checksum
};
Note: To enable/disable this message, use the message name /msg/jps/EE
(not /msg/jps/||).
132
4.3.2.5
[::] Epoch Time {5}
This message serves as an end of epoch indicator and, in this respect, is similar
to [||] message. In addition, the Epoch Time message contains the time of the day
stamp and therefore may be considered by the user more convenient in some
scenarios.
struct EpochTime {
+ u4 tod;
// Tr modulo 1 day (86400000 ms) [ms]
+ u1 cs;
// Checksum
};
Note: To enable/disable this message, use the message name /msg/jps/ET
(not /msg/jps/::).
4.3.3 Time Messages
There are five time scales your receiver may handle:
• Receiver time (Tr)
• GPS system time (Tg)
• UTC (USNO) (Tu) (Universal Coordinated Time supported by the U.S.
Naval Observatory).
• GLONASS system time (Tn)
• UTC(SU) (Ts) (Universal Coordinated Time supported by the State Time
and Frequency Service, Russia).
“Receiver time” is the only time grid that is always available in your receiver (i.e.,
the other time grids from the above list may or may not be currently available). In
fact, TPS receiver always synchronizes its local time (aka “receiver time”) with one
of the four “global” time scales: GPS time, UTC(USNO), GLONASS time, or
UTC(SU). The time grid thus selected is referred to as “receiver reference time”
(Trr) hereafter in this section.
Warning: Currently TPS receivers can be synchronized to GPS time only.
Different time systems may have different time notations (formats) associated with
them (e.g., for GPS time, we use such terms as “week number”, “time of week”,
etc.). Note, however, that the “receiver time” representation will not depend on the
selected receiver reference time.
133
4.3.3.1 [RD] Receiver Date {6}
This message contains the “date” part of the full receiver time representation (Tr).
struct RcvDate {
+ u2 year; // Current year [1..65534][]
+ u1 month; // Current month [1..12] []
+ u1 day;
// Current day [1..31] []
+ u1 base;
// Receiver reference time
//
0 — GPS
//
1 — UTC_USNO
//
2 — GLONASS
//
3 — UTC_SU
// 4..254 — Reserved
+ u1 cs;
// Checksum
};
[enum]
4.3.3.2 [~~] Receiver Time {5}
This message contains the “time of day” part of the full receiver time
representation (Tr).
struct RcvTime {
+ u4 tod;
// Tr modulo 1 day (86400000 ms) [ms]
+ u1 cs;
// Checksum
};
Note: To enable/disable this message, use the message name /msg/jps/RT
(not /msg/jps/~~).
4.3.3.3
[UO] Universal Coordinated Time (UTC) parameters {24}
This message describes the relationship between UTC(USNO) and GPS time as
specified by GPS subframe 4, page 18.
struct UTCtoGPSTimeOffset {
f8 a0;
// Constant term of polynomial [s]
f4 a1;
// First order term of polynomial [s/s]
u4 tot;
// Reference time of week [s]
u2 wnt;
// Reference week number []
i1 dtls; // Delta time due to leap seconds [s]
u1 dn;
// 'Future' reference day number [1..7] []
u2 wnlsf; // 'Future' reference week number []
i1 dtlsf; // 'Future' delta time due to leap seconds [s]
+ u1 cs;
// Checksum
};
For how to convert GPS time into UTC(USNO), see GPS ICD-200 [1].
4.3.3.4
[GT] GPS Time {7}
struct GPSTime
u4 tow;
//
u2 wn;
//
+ u1 cs;
//
};
{
time of week [ms]
GPS week number (modulo 1024) []
Checksum
134
4.3.3.5
[TO] Receiver Reference Time to Receiver Time Offset {9}
struct RcvTimeOffset {
f8 val;
// Trr – Tr [s]
+ u1 cs;
// Checksum
};
4.3.3.6
[DO] Derivative of Receiver Time Offset {5}
struct RcvTimeOffsetDot {
f4 val;
// Time Derivative of (Trr - Tr) [s/s]
+ u1 cs;
// Checksum
};
4.3.3.7
[OO] Oscillator Offset {5}
struct RcvOscOffs {
f4 val;
// Difference between quiescent and
// nominal frequencies (normalized to
// nominal frequency) [s/s]
+ u1 cs;
// Checksum
};
4.3.3.8
[BP] Rough Indicator of Receiver Synchronization to Reference
Time {5}
struct RcvTimeAccuracy {
+ f4 acc;
// If this value >> 1 ms, it means
// that position is not computed yet
// and therefore receiver clock may not be
// properly synchronized to Trr either[s]
+ u1 cs;
// Checksum
};
4.3.3.9
[NT] GLONASS Time {7}
struct GLOTime
u4 tod;
//
u2 dn;
//
//
+ u1 cs;
//
};
{
time of day [ms]
GLONASS day number (modulo 4 years
starting from 1996) []
Checksum
4.3.3.10 [NO] GLONASS to Receiver Time Offset {6}
struct RcvGLOTimeOffset {
i1 sec; // (Tn - Tr) [s]
i4 ns;
// (Tn - Tr) modulo 1 second [ns]
+ u1 cs;
// Checksum
};
135
4.3.3.11 [GO] GPS to Receiver Time Offset {6}
struct RcvGPSTimeOffset {
i1 sec;
// (Tg - Tr) [s]
i4 ns;
// (Tg - Tr) modulo 1 second [ns]
+ u1 cs;
// Checksum
};
4.3.4 Optimized Real-Time Application Messages
There are real-time applications where it is of prime importance for the user to
provide high data integrity together with minimizing the amount of data transmitted
(it is the case when the data link is bad or some other unfavorable operation
conditions exist). In such applications, the user may want to use messages
containing compressed data (we call these optimized real-time application
messages).
Optimized real-time application messages allow the user to handle different yet
logically related measurement types (observables) as one data set.
As can be seen from below, the message [rM] is comprised of all of the code and
carrier phase measurements available in the receiver for the given epoch.
The following tables, which are given for user reference, will explain the
relationships between the optimized real-time application messages [rE], [rM], [rV]
and the “basic” JPS messages.
[rM] can be used in place of the following “basic” messages:
Pseudorange measurements
[RC], [rc], [R1], [r1], [1R], [1r], [R2], [r2],
[2R], [2r]
Carrier Phase measurements
[PC], [pc], [CP], [cp], [P1], [p1], [1P], [1p],
[P2], [p2], [2P], [2p]
Doppler
[DC], [D1], [D2]
Signal Lock Loop Flags
[FC], [F1], [F2]
Carrier to Noise ratio
[EC], [E1], [E2]
Satellite navigation status
[SS]
Satellite Indices
[SI]
GLONASS Satellite System
[NN]
Numbers
Receiver Date and Receiver Time
Time since Last Loss-of-Lock35
35
[RD], [~~]
[TC]
) Note that there is a limitation on the maximum tracking time reported in [rM] (102.3 seconds).
136
Receiver Reference Time to
Receiver Time Offset36
[TO]
[rV] will replace the following “basic” messages:
Position/Velocity messages
[PO], [VE], [PV]
Solution time tag
[ST]
[rE] will replace the following “basic” messages:
Receiver Date and Receiver Time
[RD], [~~]
You can govern the structure of your [rM] message by means of parameters from
section 3.19. Also note that the format of [rM] allows addition of new fields to the
structure if necessary.
In the event of new fields showing up in the message, its version number is
incremented of course. Note that lengths of the structures “Header” and “SlotRec”
are specified in the message explicitly, which makes it possible to maintain
backward compatibility with any older software using the message.
The message [rE], which was conceived as a time tag for any other message
type, is reserved for future use. The field “sample”, which will exist in any
optimized real-time application message, is intended to maintain data integrity, i.e.
all messages associated with a given epoch must have identical “sample”
numbers.
4.3.4.1
[rE] Reference Epoch {10}
struct RefEpoch {
u2 sample;
//
u2 scale;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
36
Sample number [dimensionless]
Time scale ID, leap second status and
Week/day part of epoch representation [bitfield]
15-13: time scale ID:
0 – GPS, 1 – GLONASS, 2 – UTC;
12-11: “leap second status”:
0 – no leap second epoch;
1 – positive leap second;
2 – negative leap second;
3 – leap second status is unknown;
(this flag shows whether a leap second occurred
at the current epoch)
10-0: week/day representation:
(a) if time scale ID is GPS:
week number [0-1023],
“1024” indicates unknown week number;
(b) if time scale ID is GLONASS:
day number within 4-year period [1-1461],
) Recall that there is a limitation on the clock offset resolution (125 ns).
137
u4 reftime;
u2 crc16;
};
//
//
//
//
//
//
//
//
//
//
//
//
“0” indicates unknown day number
(c) if time scale ID is UTC:
day number within the year [1-366],
“0” indicates unknown day number;
Seconds part of epoch representation [ms]:
(a) if time scale ID is GPS,
“reftime” contains seconds of GPS week;
(b) if time scale ID is GLONASS,
“reftime” contains seconds of GLONASS day;
(c) if time scale ID is UTC,
“reftime” contains seconds of UTC day;
16-bit CRC (for details, see 11.2)
138
4.3.4.2
[rM] Raw Measurements {var}
struct SlotRec {
// Note: The zeroth element of the array Slot[i],i=0,…M-1,
// unlike the other elements, does not contain corrections
// to the reference pseudo-range from the Header structure.
// To provide the user with additional information, the flag
// “svst” is used for “delrange” in the zeroth slot.
union {
i2 svst;
// SV status [bitfield]:
// 15-11: GLONASS slot number (GLONASS SVs only.
//
For GPS SV the bitfields are undefined)
//
[1-24] (“0” if unknown)
// 10-6: Channel number [0-31]
//
“31” indicates that channel number is
//
not available
// 5-0:
SV navigation status (see [SS] message)
i2 delrange; // Delta pseudo-range [0.02 meters]:
// [full pseudo-range for given slot]–[refrange]
};
u4 word1; // Packed data 1:
// 31-12: [carrier phase] – [refrange]
//
-219/+(219 –1)[0.0005 meters]
// 11-9: slot ID:
//
0 – C/A L1, 1 – P1, 2 – P2, 3 – C/A L2,
//
4 – L5, 5,6,7 - reserved
// 8: reserved
// 7: signal lock loop flags are available
// 6: lock time is available
// 5-0: Signal-to-noise ratio [dB*Hz]
u2 flags; // Signal lock loop flags (see [FC] message)
u2 lock; // Packed data 2:
// 15-10: reserved
// 9-0: lock time [0.1 second]
//
Tracking time since last loss of lock.
//
Varies between 0 and 102.3 seconds. “Gets
//
stuck” at 102.3s after the actual tracking
//
time exceeds this value (until another loss
//
of lock occurs)
u4 word2; // Packed data 3:
// 31-7: Doppler
//
-224 /+(224 –1) [0.001 Hz]
// 6-0: reserved
};
struct Header {
u4 refrange; // Reference pseudo-range [0.02 meters]
u1 svid;
// SV ID (see [SI] message)
u1 num;
// Number of slot records (M):
// 7-3: reserved
// 2-0: number of slot records minus one (M)
};
struct SvData {
struct Header Head;
// Header
struct SlotRec Slot[M]; // Slot record
};
struct RawMeas
u2 sample;
u2 scale;
u4 reftime;
{
// Sample number [dimensionless]
// See [rE] for description
// See [rE] for description
139
i2 clock;
u2 flags;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
Clock offset:
15-2: Clock offset
-213 /+(213–1) [125 nanoseconds]:
1-0: Clock offset ID:
0 – clock offset is unavailable
1 – [GPS – Receiver time]
2 – [GLONASS – Receiver time]
3 - reserved
Flags [bitfield]:
15-13: message version [0-7]
12-8: total number of “Svd” records (N)
7-5:
this value plus 6 makes the length
of the structure “Header” in bytes
4-0:
this value plus 10(▲) or 6(▲▲) makes the
length of the structure “SlotRec” in
bytes
struct SvData Svd[N]; // SV data
u2 crc16;
// 16-bit CRC (for details, see 11.2)
};
(▲)It holds only for versions 0 and 1.
(▲▲)It holds for versions 2-7.
In the above two messages, the field “sample” serves two main purposes.
First, it allows the user to preserve data integrity since messages
referenced to a specific epoch will all have the same sample number.
Second, this field allows the user to keep track of the number of lost
messages issued through a given port since the sample number is
incremented when the next epoch starts.
Optimized real time application messages can be received by the user in
an arbitrary order of precedence. Before decoding a message its checksum
must be checked. Recall that the checksum is computed for all the bytes
starting from the header of the message up to the checksum positions
exclusive (for more information about CRC-16, please refer to 11.2).
When handling [rM] message, the following rules must be observed:
1) The user should retrieve from the message its version number and the
lengths of the structures “Header” and “SlotRec”. These parameters
are necessary to maintain compatibility with “older” software in case the
message structure is modified in the future. At present, there are two
versions, 0 and 1. Version “1” is mainly intended for RTK applications.
In this version, the parameter “word2” (i.e. Doppler) is removed from the
structure “SlotRec” altogether, which results in a more compact data
set as compared against version “0”.
2) Next, the user should retrieve the “Total number of “Svd” records”
parameter. Although it is possible to decode the message by using the
message length from the message’s header, taking into account the
“Total number of “Svd” records” parameter simplifies the decoding.
3) Parameter “refrange” from the structure “SvData” serves as a
reference for all the other code and carrier phase measurements
available for the given satellite. In other words, all the measurements
other than the reference pseudo-range, are represented as “deltas”
referenced to a common reference value. Such an approach allows the
reduction of message length. The first parameter in the structure
140
“SlotRec” should be handled depending on whether the structure’s
“slot number” is zero or not.
4) Parameter “num” from the structure “Header” shows the total number of
slot records (see the structure “SlotRec”). For example, if only C/A
measurements are enabled in the message, the parameter “num” will
be zero.
4.3.4.3
[rV] Receiver’s Position and Velocity {42}
struct PosVector {
u2 sample;// Sample number [dimensionless]
u2 delta; // 15-5: Difference between the raw measurement time
//
tag (available from either [rM] or [rE]
//
message)and the position time tag +1023/-1024
//
[5 milliseconds]
// 4-0: reserved
u4 word1; // 31-0: 32 MSB of Position X-component;
u4 word2; // 31-24: 8 LSB of Position X-component
// [0.0001 meters];
// 23: “1” indicates that Position is valid
// 22-21: 0 - Position is given in ECEF system
//
1…3 - reserved
// 20-16: Number of GPS Sats used in computation;
// 15: “1” indicates that Velocity is valid
// 14-13: reserved
// 12-8: Number of GLONASS Sats used in computation;
// 7-4: Position computation mode (see 4.3.5);
// 3-0: Velocity computation mode (see 4.3.5);
u4 word3; // 31-0: 32 MSB of Position Y-component;
u4 word4; // 31-24: 8 LSB of Position Y-component
// [0.0001 meters];
// 23-15: PDOP * 10 [dimensionless]
// 14-0: RMS velocity error [0.001 meters];
u4 word5; // 31-0: 32 MSB of Position Z-component;
u4 word6; // 31-24: 8 LSB of Position Z-component
// [0.0001 meters];
// 23-20: reserved;
// 19-0: RMS Position error [0.001 meters];
u4 word7; // 31-4: velocity X-component [0.0001 m/s];
// 3-2: reserved;
// 1-0: MSB of TPS datum number (see the note below);
u4 word8; // 31-4: velocity Y-component [0.0001 m/s];
// 3-0: bits 7-4 of datum ID;
u4 word9; // 31-4: velocity Z-component [0.0001 m/s];
// 3-0: LSB of TPS datum number;
u2 crc16; // 16-bit CRC;
};
Note: For TPS datum numbers, please refer to Appendix H. Reference Ellipsoids
and Local Datums. Currently TPS datum numbers range between zero and 221.
141
4.3.5 Position/Velocity Messages
The field “type” used the position/velocity messages may have the following
values:
enum SolutionType {
NO_SOLUTION
STAND_ALONE
CODE_DIFF
PHASE_DIFF_FLOAT
PHASE_DIFF_FIXED
FIXED_POS
};
=
=
=
=
=
=
0,
1,
2,
3,
4,
5
Warning: If you receive a Position/Velocity message where the field “type” is
set to “0”, this means that this message contains invalid data
(except the “type” flag itself).
4.3.5.1
[PO] Cartesian Position {30}
struct Pos {
f8 x, y, z;
f4 sigma;
u1 type;
+ u1 cs;
};
4.3.5.2
//
//
//
//
Cartesian velocity vector [m/s]
velocity SEP [m/s]
enum SolutionType
Checksum
[PV] Cartesian Position and Velocity {46}
struct PosVel {
f8 x, y, z;
f4 pSigma;
f4 vx, vy, vz;
f4 vSigma;
u1 type;
+ u1 cs;
};
37
Cartesian coordinates [m]
position SEP37 [m]
enum SolutionType
Checksum
[VE] Cartesian Velocity {18}
struct Vel {
f4 x, y, z;
f4 sigma;
u1 type;
+ u1 cs;
};
4.3.5.3
//
//
//
//
//
//
//
//
//
//
Cartesian coordinates [m]
position SEP [m]
Cartesian velocities [m/s]
velocity SEP [m/s]
enum SolutionType
Checksum
) SEP = Spherical Error Probable
142
4.3.5.4
[PG] Geodetic Position {30}
struct GeoPos {
f8 lat;
f8 lon;
f8 alt;
f4 pSigma;
u1 type;
+ u1 cs;
};
4.3.5.5
latitude [rad]
longitude [rad]
ellipsoidal height [m]
position SEP [m]
enum SolutionType
Checksum
[DP] Dilution of Precision (DOP) Parameters {14}
struct Dops {
f4 hdop;
f4 vdop;
f4 tdop;
u1 type;
+ u1 cs;
};
-
//
//
//
//
//
//
//
//
//
//
//
Horizontal dilution of precision (HDOP) []
Vertical dilution of precision (VDOP) []
Time dilution of precision (TDOP) []
enum SolutionType
Checksum
Recall that
Geometric dilution of precision GDOP = sqrt (hdop2 + vdop2 + tdop2)
Position dilution of precision PDOP = sqrt( hdop2 + vdop2)
4.3.5.6
[SG] Position & Velocity RMS Errors (Horizontal and Vertical){18}
struct Rms {
f4 hpos;
f4 vpos;
f4 hvel;
f4 vvel;
u1 type;
+ u1 cs;
};
4.3.5.7
//
//
//
//
//
//
Horizontal position RMS error[m]
Vertical position RMS error [m]
Horizontal velocity RMS error [m]
Vertical velocity RMS error [m]
enum SolutionType
Checksum
[SP] Position Covariance Matrix {42}
struct PosCov {
f4 xx;
f4 yy;
f4 zz;
f4 tt;
f4 xy;
f4 xz;
f4 xt;
f4 yz;
f4 yt;
f4 zt;
u1 type;
+ u1 cs;
};
//
//
//
//
//
//
//
//
//
//
//
//
[m^2]
[m^2]
[m^2]
[m^2]
[m^2]
[m^2]
[m^2]
[m^2]
[m^2]
[m^2]
enum SolutionType
Checksum
143
4.3.5.8
[SV] Velocity Covariance Matrix {42}
struct VelCov {
f4 xx;
f4 yy;
f4 zz;
f4 tt;
f4 xy;
f4 xz;
f4 xt;
f4 yz;
f4 yt;
f4 zt;
u1 type;
+ u1 cs;
};
4.3.5.9
//
//
//
//
//
//
//
//
//
//
//
//
[(m/s)^2]
[(m/s)^2]
[(m/s)^2]
[(m/s)^2]
[(m/s)^2]
[(m/s)^2]
[(m/s)^2]
[(m/s)^2]
[(m/s)^2]
[(m/s)^2]
enum SolutionType
Checksum
[VG] NEU Velocity {18}
struct GeoVel {
f4 lat;
f4 lon;
f4 alt;
f4 pSigma;
u1 type;
+ u1 cs;
};
//
//
//
//
//
//
northing velocity [m/s]
easting velocity [m/s]
height velocity [m/s]
velocity SEP [m/s]
enum SolutionType
Checksum
4.3.5.10 [BL] Base Line {34}
This message contains information on the baseline vector estimated by the RTK
engine. This message is not output if RTK mode is off.
struct BaseLine {
f8 x, y, z;
//
f4 sigma;
//
u1 type;
//
i4 time;
//
+ u1 cs;
//
};
Calculated baseline vector coordinates [m]
Baseline Spherical Error Probable (SEP) [m]
enum SolutionType
receiver time of the baseline estimate [s]
Checksum
4.3.5.11 [BI] Base station information {28}
Contains reference station information for RTK.
struct BaseInfo
+ f8 x, y, z;
+ u2 id;
+ u1 type;
+ u1 cs;
};
{
//
//
//
//
ECEF coordinates [m]
Reference station ID
enum SolutionType
Checksum
144
4.3.5.12 [PS] Position Statistics {9}
struct PosStat {
+ u1 type;
+ u1 gpsLocked;
+ u1 gloLocked;
+ u1 gpsAvail;
+ u1 gloAvail;
+ u1 gpsUsed;
+ u1 gloUsed;
+ u1 fixProg;
+ u1 cs;
};
//
//
//
//
//
//
//
//
//
//
//
enum SolutionType
Number of GPS SVs locked
Number of GLONASS SVs locked
Number of GPS SVs available for positioning
Number of GLONASS SVs available for
positioning
Number of GPS SVs used in positioning
Number of GLONASS SVs used in positioning
Ambiguity fixing progress indicator
controllable by RTK engine [%]
Checksum
Note: “fixProg” is expressed as a percentage.
If this parameter keeps varying between 0% and 100% exclusive, this
means that not all of the ambiguities have been fixed. This is the case in
the following situations:
- You have just launched the RTK engine and it is trying to get a first
fixed solution.
- There is one or more problem satellites whose measurements prevent
the engine from fixing all available ambiguities “in batch”.
- The receiver has just started tracking one or more “new” satellites. It will
take the RTK engine some time to fix these new ambiguities.
Just occasionally you can see “fixProg”=100%. This means that the engine
has just finished fixing all available ambiguities. (Note that “fixProg” will be
dropped to zero immediately after it has reached 100%).
In practice, if raw measurements are good enough, the flag “fixProg” rarely
takes values other than zero. Also note that if the solution type is “RTK fixed”,
the number of SVs with float ambiguities is
gpsAvail + gloAvail - (gpsUsed + gloUsed)
4.3.5.13 [ST] Solution Time-Tag {6}
Specifies the receiver time of the current position solution. Note that this time-tag
may differ from the current receiver time if the receiver runs in RTK delay mode.
struct SolutionTime {
+ u4 time;
// Solution time. Tr modulo 1 day (86400000 ms)
// [ms]
+ u1 type;
// enum SolutionType
+ u1 cs;
// Checksum
};
145
4.3.5.14 [PT] Time of Continuous Position Computation {5}
Specifies the time interval (in seconds) over which continuous position
computation has been possible.
If the receiver is unable to compute any position38 at the current epoch, the
Time of Continuous Position Computation counter will be zeroed.
struct PositionTime {
+ u4 pt;
// position time [s]
+ u1 cs;
// Checksum
};
4.3.6 Satellite Data Messages
In this section we will focus on messages containing “satellite specific
information”. These kinds of messages include satellite measurements (code and
carrier phase observables, elevations, azimuths, etc.).
Different applications may utilize different sets of measurements. In practice, it is
almost impossible to select a combination of satellite measurements that would be
“universal” yet compact enough. This explains our choice: we use a dedicated
message for each particular measurement type. Every individual measurement
message provides some specific (“homogeneous”) data for the satellites tracked.
This approach allows the minimization of the data transfer overheads (note that
the gain increases as the number of satellites grows).
To ease handling data corresponding to different satellites, we assign each
satellite its universal identifier (USI). The message “Satellite Indices” ([SI])
establishes the one-to-one correspondence between the satellite's universal
identifier and its index. If you know the satellite's index, you can easily retrieve this
satellite specific data from the corresponding slot of the required measurement
message.
4.3.6.1 [SI] Satellite Indices {nSats+1}
The following table points out the relationship between the satellites' universal
identifier (USI) and their “true” system numbers (PRN numbers or frequency
channel numbers).
USI values:
0
Not used
1 - 37
USI = GPS SV PRN number. These slots are allocated to GPS satellites.
38 - 70
USI - 45 (signed) = GLONASS SV Frequency Channel Number.
71 - 254
Reserved
255
Not used
Note: The following convention may be used when converting third-party
GPS&GLONASS measurement files into JPS file format:
USI=70 (FCN=25) designates a GLONASS satellite whose FCN is unknown.
The [SI] message contains an array of USIs indicating the currently tracked
satellites. The message body's length is equal to the number of tracked satellites.
38
) that is none of RTK fixed/float, DGPS and autonomous is available
146
The [SI] message serves as a “reference map” for other measurement message
types since it establishes the one-to-one correspondence between the satellite
identifier and the array index allocated to this satellite. Bear in mind that this
correspondence holds true until the next [SI] message is issued (note that the new
[SI] message may or may not differ from the previous one).
struct SatIndex {
+ u1 usi[nSats]; // []
+ u1 cs;
// Checksum
};
4.3.6.2 [NN] GLONASS Satellite System Numbers {nSats+1}
Here nSats designates the number of GLONASS satellites as specified in the
corresponding [SI] message (recall that GLONASS satellites have universal
identifiers lying within the range [38…70]).
The [NN] message shows the orbit slot numbers of the GLONASS satellites
specified in the latest [SI] message.
struct SatNumbers {
u1 number[nSats]; // Glonass SV orbit slot number []
+ u1 cs;
// Checksum
};
4.3.6.3 [EL] Satellite Elevations {nSats+1}
This message contains elevations [degrees,i1] for all the satellites specified in the
latest [SI] message.
struct SatElevation {
i1 elev[nSats]; // Elevation angle -90..90 [degrees]
+ u1 cs;
// Checksum
};
4.3.6.4 [AZ] Satellite Azimuths {nSats+1}
This message contains azimuths [degrees*2,u1] for all the satellites specified in
the latest [SI] message.
struct SatAzimuth {
u1 azim[nSats]; // Azimuth angle 0..180 [degrees*2]
+ u1 cs;
// Checksum
};
The notation [degrees*2] means that the corresponding values must be
multiplied by 2 to restore actual azimuths in degrees.
4.3.6.5
4.3.6.5.1
C/A Pseudorange Measurements
[RC] Full C/A Pseudoranges {8*nSats+1}
Contains full C/A pseudoranges [sec,f8] for all the satellites specified in the latest
[SI] message.
147
};
struct PR_CA {
f8 prange[nSats]; // Pseudorange [s]
+ u1 cs;
// Checksum
4.3.6.5.2
[rc] Delta C/A Pseudoranges {4*nSats+1}
Contains delta C/A pseudoranges [sec*10-11,i4] for all the satellites specified in the
latest [SI] message. Delta C/A pseudorange is defined as full C/A pseudorange
less 75 milliseconds. Use the following formula to restore true (i.e. “full”) C/A
pseudoranges in seconds:
True C/A pseudorange = Delta pseudorange from [rc] * 10-11 + 0.075
struct PRI_CA {
i4 prangeInt[nSats]; // ( PR CA/L1 [s] - 0.075 ) * 1.e11
+ u1 cs;
// Checksum
};
4.3.6.6
4.3.6.6.1
P/L1 Pseudorange Measurements
[R1] Full P/ L1 Pseudoranges {8*nSats+1}
Contains full P/L1 pseudoranges [sec,f8] for all the satellites specified in the latest
[SI] message.
struct PR_P1 {
f8 prange[nSats]; // Pseudorange [s]
+ u1 cs;
// Checksum
};
4.3.6.6.2
[r1] Delta P/L1 Pseudoranges {4*nSats+1}
Contains delta P/L1 pseudoranges [sec*10-11,i4] for all the satellites specified in
the latest [SI] message. Delta P/L1 pseudorange is defined as full P/L1
pseudorange less 75 milliseconds.
Use the following formula to restore true (i.e. full) P/L1 pseudoranges in seconds:
True P/L1 pseudorange = Delta pseudorange from [r1] * 10-11 + 0.075
struct PRI_P1 {
i4 prangeInt[nSats]; // ( PR P/L1 [s] - 0.075 ) * 1.e11
+ u1 cs;
// Checksum
};
4.3.6.6.3
[1R] Relative P/L1 Pseudoranges {4*nSats+1}
Contains relative P/L1 pseudoranges [s,f4] for all the satellites specified in the
latest [SI] message. Relative P/L1 pseudorange is defined as difference between
full P/L1 pseudorange and full C/A pseudorange.
struct DPR_P1 {
f4 deltaPseudoRange [nSats]; // P/L1 PR - C/A PR [s]
+ u1 cs;
// Checksum
};
148
4.3.6.6.4
[1r] Relative Delta P/L1 Pseudoranges {2*nSats+1}
This message is based on the most compact P/L1 pseudorange format.
It contains relative delta P/L1 pseudoranges [sec*10-11,i2] for all the satellites
specified in the latest [SI] message. Relative delta P/L1 pseudorange is defined as
relative P/L1 pseudorange less 0.2 microseconds. The formula to restore full P/L1
pseudoranges [in seconds] from relative delta P/L1 pseudoranges is as follows:
Full P/L1 pseudorange [s] =
relative delta pseudorange from [1r] message * 10-11 + 2.0*10-7 + C/A pseudorange [s]
struct RDPR_P1 {
i2 relativeDeltaPseudoRange [nSats]; // (P/L1 PR [s]-PR C/A [s] // 2e-7) * 1.e11
+ u1 cs;
// Checksum
};
4.3.6.7
4.3.6.7.1
P/L2 Pseudorange Measurements
[R2] Full P/L2 Pseudoranges {8*nSats +1}
Contains full P/L2 pseudoranges [sec,f8] for all the satellites specified in the latest
[SI] message.
struct PR_P2 {
f8 prange[nSats]; // pseudorange [s]
+ u1 cs;
// Checksum
};
4.3.6.7.2
[r2] Delta P/L2 Pseudoranges {4*nSats+1}
Contains delta P/L2 pseudoranges for all the satellites specified in the latest [SI]
message. Delta P/L2 pseudorange is defined as full P/L2 pseudorange less 75
milliseconds. Use the following formula to restore full P/L2 pseudoranges in
seconds:
PR P/L2 [s] = value from [r2] message * 1.e-11 + 0.075
struct PRI_P2 {
i4 prangeInt[nSats]; // ( PR P/L2 [s] - 0.075 ) * 1.e11
+ u1 cs;
// Checksum
};
4.3.6.7.3
[2R] Relative P/L2 Pseudoranges {4*nSats+1}
Contains relative P/L2 pseudoranges [s,f4] for all the satellites specified in the
latest [SI] message. Relative P/L2 pseudorange is defined as difference between
full P/L2 pseudorange and full C/A pseudorange.
struct PRD_P2 {
f4 prangeDelta[nSats]; // PR P/L2 - PR CA/L1 [s]
+ u1 cs;
// Checksum
};
149
4.3.6.7.4
[2r] Relative Delta P/L2 Pseudoranges {2*nSats+1}.
This message is based on the most compact P/L2 pseudorange format.
It contains relative delta P/L2 pseudoranges [sec*10-11,i2] for all the satellites
specified in the latest [SI] message. Relative delta P/L2 pseudorange is defined as
relative P/L2 pseudorange less 0.2 microseconds. The formula to restore full P/L2
pseudoranges [in seconds] from relative delta P/L2 pseudoranges is as follows:
Full P/L2 pseudorange =
Relative delta pseudorange from [2r]*10-11 +2*10-7 + C/A pseudorange
struct PRDI_P2 {
i2 prangeDelta[nSats]; // (PR P/L2[s] - PR CA/L1[s] - 2e-7) *
// 1.e11
+ u1 cs;
// Checksum
};
4.3.6.8
4.3.6.8.1
Pseudorange Smoothing Corrections&Intervals
[CC] Long C/A Pseudorange Smoothing Corrections {6*nSats+1}
Contains “long” C/A pseudorange smoothing corrections and corresponding
smoothing intervals for all the satellites specified in the latest [SI] message
struct CASmooth {
Smooth smooth[nSats]; // CA PR smoothing data for specific SV
+ u1 cs;
// Checksum
};
where the structure “Smooth” is defined as follows:
struct Smooth {
f4 value;
// Smoothing correction [s]
u2 interval; // Smoothing interval [s]
};
To obtain smoothed C/A pseudoranges, just add the smoothing corrections to the
corresponding raw pseudoranges.
4.3.6.8.2
[cc] Short C/A Pseudorange Smoothing Corrections {2*nSats+1}
Contains “short” C/A pseudorange smoothing corrections [s*10-11,i2] for all the
satellites specified in the latest [SI] message.
Use the following formula to compute smoothed C/A pseudoranges (in seconds):
Smoothed C/A PR [s] = Raw C/A PR [s] + Smooth Corr. from [cc]*10-11
struct CompactCASmooth {
i2 compactSmoothCorr[nSats]; // Smoothing correction [s*1.e-11]
+ u1 cs;
// Checksum
};
150
Note: Unlike the long C/A pseudorange smoothing correction format, the short
format does not include smoothing interval.
4.3.6.8.3
[C1] Long P/L1 Pseudorange Smoothing Corrections {6*nSats+1}
Contains “long” P/L1 pseudorange smoothing corrections and corresponding
smoothing intervals for all the satellites specified in the latest [SI] message
struct P1Smooth {
Smooth smooth[nSats]; // P/L1 pseudorange smoothing correction
// and interval for specific SV
+ u1 cs;
// Checksum
};
For definition of “Smooth”, see 4.3.6.8.1
4.3.6.8.4
[c1] Short P/L1 Pseudorange Smoothing Corrections {2*nSats+1}
Contains short P/L1 smoothing corrections [s*10-11,i2] for all the satellites
specified in the latest [SI] message.
Use the following formula to compute smoothed P/L1pseudoranges (in seconds):
Smoothed P/L1 PR [s] = Raw P/L1 PR [s] + value from [c1] * 10-11
struct CompactP1Smooth {
i2 CompactSmoothCorr[nSats]; // Smoothing correction [s*1.e-11]
+ u1 cs;
// Checksum
};
Note: Unlike the long P/L1 pseudorange smoothing correction format, the
corresponding short format does not include smoothing interval.
4.3.6.8.5
[C2] Long P/L2 Pseudorange Smoothing Corrections {6*nSats+1}
Contains “long” P/L2 pseudorange smoothing corrections and corresponding
smoothing intervals for all the satellites specified in the latest [SI] message.
struct P2Smooth {
Smooth smooth[nSats]; // Smoothing correction & interval
// for specific satellite
+ u1 cs;
// Checksum
};
For definition of “Smooth”, see 4.3.6.8.1
4.3.6.8.6
[c2] Short P/L2 Pseudorange Smoothing Corrections {2*nSats+1}
Contains “short” P/L2 smoothing corrections [s*10-11, i2] for all the satellites
specified in the latest [SI] message.
Use the following formula to compute smoothed P/L2 pseudoranges (in seconds):
Smoothed P/L2 PR [s] = Raw P/L2 PR [s] + value from [c2] * 10-11
151
struct CompactP2Smooth {
i2 CompactSmoothCorr[nSats]; // Smooth correction [s*1.e-11]
+ u1 cs;
// Checksum
};
Note: Unlike the long P/L2 pseudorange smoothing correction format, the
corresponding short format does not include smoothing interval.
4.3.6.9
4.3.6.9.1
C/A Carrier Phase Measurements
[PC] Full C/A Carrier Phases {8*nSats+1}
Contains the full C/A carrier phases [cycles, f8] for all the satellites specified in the
latest [SI] message.
struct PhaseCA {
f8 phase[nSats]; // C/A carrier phase [cycles]
+ u1 cs;
// Checksum
};
4.3.6.9.2
[pc] 32-bit C/A Carrier Phases {4*nSats+1}
Contains the integer (32-bit) C/A carrier phases [cycles/1024,u4] for all the
satellites specified in the latest [SI] message. The formula to convert “integer” C/A
carrier phases into full C/A carrier phases [in cycles] is as follows:
True C/A carrier phase[cycles] = value from [pc] / 1024.
struct ICACarrierPhase {
u4 phase[nSats]; // 'Integer' C/A carrier phase [cycles/1024]
+ u1 cs;
// Checksum
};
Note: Integer (32-bit) carrier phases from [pc] messages will have discontinuities
due to periodic rollovers of the 32-bit word used to represent this kind of carrier
phases. This is due to the less memory-consuming carrier phase representation.
Such rollovers don't occur very frequently (approximately once every 15 minutes
or more). If you want to remove this kind of discontinuity from your “integer” carrier
phases, use the following simple correction technique39:
static unsigned long prev = value_from_pc;
static long rollOvers=0;
unsigned long curr = value_from_pc;
if ( curr < (1<<30) && prev > (1<<30)*3 ) rollOvers++;
if ( curr > (1<<30)*3 && prev < (1<<30) ) rollOvers--;
prev=curr;
double phase=((1<<16)*double(rollOvers)*(1<<16) + curr) / 1024.; //
cycles
39
) this code is in the C programming language
152
4.3.6.9.3
[CP] C/A Carrier Phases Computed Relative to [RC] Pseudoranges
{4*nSats+1}
Contains the differences [s,f4] between the full C/A carrier phases and the
matching [RC] pseudoranges for all the satellites specified in the latest [SI]
message.
True C/A carrier phase [cycles]=((carrier phase from [CP]) +
(code phase from [RC])[s]) * L1_freq [Hz],
where L1_freq = nominal L1 carrier frequency (1.57542 GHz)
struct CACarrierPhaseDelta
f4 phaseDelta[nSats]; //
//
+ u1 cs;
//
};
4.3.6.9.4
{
full C/A carrier phase/L1 freq [Hz]
- [RC] code phase [s]
Checksum
[cp] C/A Carrier Phases Computed Relative to [rc] Pseudoranges
{4*nSats+1}
Contains the differences [s*2-40, i4] between the full C/A carrier phases and the
matching [rc] pseudoranges for all the satellites specified in the latest [SI]
message. You use the following formula to retrieve true C/A carrier phases in
cycles:
True C/A carrier phase [cycles]=((reduced carrier phase from [cp])*2-40 +
(code phase from [rc])[s]) * L1_freq [Hz],
where L1_freq = nominal L1 carrier frequency (1.57542 GHz)
struct PhaseID_CA {
i4 phaseIDelta[nSats]; // (full carrier phase [c]/ L1_freq [Hz]
// - [rc] pseudorange [s]) * 2-40
+ u1 cs;
// Checksum
};
4.3.6.10 P/L1 Carrier Phase Measurements
4.3.6.10.1
[P1] Full P/L1 Carrier Phases {8*nSats+1}
Contains the full P/L1 carrier phases [cycles, f8] for all the satellites specified in
the latest [SI] message.
struct PhaseP1 {
f8 phase[nSats]; // P/L1 carrier phase [cycles]
+ u1 cs;
// Checksum
};
4.3.6.10.2
[p1] 32-bit P/L1 Carrier Phases {4*nSats+1}
Contains the integer (320bit) P/L1 carrier phases [cycles/1024,u4] for all the
satellites specified in the latest [SI] message. The formula to convert 32-bit P/L1
carrier phases into true P/L1 carrier phases [in cycles] is as follows:
153
True P/L1 carrier phase [cycles] = value from [p1] / 1024.
struct PhaseP1I {
u4 phase[nSats]; // Carrier phase [cycles/1024]
+ u1 cs;
// Checksum
};
Note: Carrier phases from [p1] messages will have discontinuities due to the
periodic rollovers of the 32-bit word. This is due to the less memory-consuming
carrier phase representation. Such rollovers don't occur very frequently
(approximately once every 15 minutes or more). If you want to remove this kind of
discontinuities from your 32-bit carrier phases, use the following simple correction
technique:
static unsigned long prev = value_from_p1;
static long rollOvers=0;
unsigned long curr = value_from_p1;
if ( curr < (1<<30) && prev > (1<<30)*3 ) rollOvers++;
if ( curr > (1<<30)*3 && prev < (1<<30) ) rollOvers--;
prev=curr;
double phase=((1<<16)*double(rollOvers)*(1<<16) + curr) / 1024.; //
cycles
4.3.6.10.3
[1P] P/L1 Carrier Phases Computed Relative to [RC] Pseudoranges
{4*nSats+1}
Contains the differences [s,f4] between the full P/L1 carrier phases and the
corresponding [RC] pseudoranges for all the satellites specified in the latest [SI]
message.
True P/L1 carrier phase [cycles] =
((carrier phase from [1P]) + pseudorange from [RC])[s])* L1_freq [Hz],
where L1_freq = nominal L1 carrier frequency (i.e., 1.57542 GHz)
struct PhaseD_P1 {
f4 phaseDelta[nSats]; // P/L1 carrier phase - [RC]code phase [s]
+ u1 cs;
// Checksum
};
154
4.3.6.11 [1p] P/L1 Carrier Phases Computed Relative to [rc] Pseudoranges
{4*nSats+1}
Contains the differences [s*2-40, i4] between the full P/L1 carrier phases and the
corresponding [rc] code phases for all the satellites specified in the latest [SI]
message. You use the following formula to retrieve true P/L1 carrier phases in
cycles:
True P/L1 carrier phase [cycles] =((carrier phase from [1p])* 2-40 +
(pseudorange from [rc])[s])* L1_freq [Hz],
where L1_freq = nominal L1 carrier frequency (i.e., 1.57542 GHz)
struct PhaseID_PL1 {
i4 phaseIDelta[nSats]; //(Full P/L1 carrier phase[c]/L1_freq [Hz]
40
// - [rc] pseudorange [s])* 2
+ u1 cs;
// Checksum
};
4.3.6.12 P/L2 Carrier Phase Measurements
4.3.6.12.1
[P2] Full P/L2 Carrier Phases {8*nSats+1}
Contains the full P/L2 carrier phases [cycles, f8] for all the satellites specified in
the latest [SI] message.
struct PhaseP2 {
f8 phase[nSats]; // P/L2 carrier phase [cycles]
+ u1 cs;
// Checksum
};
4.3.6.12.2
[p2] 32-bit P/L2 Carrier Phases {4*nSats+1}
Contains the integer (32-bit) P/L2 carrier phases [cycles/1024,u4] for all the
satellites specified in the latest [SI] message. The formula to convert 32-bit P/L2
carrier phases into true P/L2 carrier phases [in cycles] is as follows:
True P/L2 carrier phase [cycles] = value from [p2] / 1024.
struct PhaseP2I {
u4 phase[nSats]; // 'integer' carrier phase [cycles/1024]
+ u1 cs;
// Checksum
};
Note: Carrier phases from [p2] messages will have discontinuities due to periodic
rollovers of the 32-bit word. This is due to the less memory-consuming carrier
phase representation. Such rollovers don't occur very frequently (once every 15
minutes or more). If you want to remove this kind of discontinuities from your 32bit carrier phases, use the following simple correction technique:
155
static unsigned long prev = value_from_p2;
static long rollOvers=0;
unsigned long curr = value_from_p2;
if ( curr < (1<<30) && prev > (1<<30)*3 ) rollOvers++;
if ( curr > (1<<30)*3 && prev < (1<<30) ) rollOvers--;
prev=curr;
double phase = ((1<<16)*double(rollOvers)*(1<<16)+curr)/1024.;
cycles
4.3.6.12.3
//
[2P] P/L2 Carrier Phases Computed Relative to [RC] Pseudoranges
{4*nSats+1}
Contains the differences [s,f4] between the full P/L2 carrier phases and the
corresponding [RC] pseudoranges for all the satellites specified in the latest [SI]
message.
True P/L2 carrier phase [cycles] =
((carrier phase from [2P]) +(pseudorange from [RC])[s])* L2_freq [Hz],
where L2_freq = nominal L2 carrier frequency (i.e., 1.22760 GHz)
struct PhaseD_P2 {
f4 phaseDelta[nSats]; // P/L2 carrier phase - [RC]pseudorange[s]
+ u1 cs;
// Checksum
};
4.3.6.12.4
[2p] P/L2 Carrier Phases Computed Relative to [rc] Pseudoranges
{4*nSats+1}
Contains the differences [s*2-40, i4] between the full P/L2 carrier phases and the
corresponding [rc] code phases for all the satellites specified in the latest [SI]
message.
You use the following formula to retrieve true P/L2 carrier phases (in cycles) from
[2p] carrier phases:
True P/L2 carrier phase [cycles] =
((carrier phase from [2p])* 2-40 +
(pseudorange from [rc])[s])* L2_freq [Hz],
where L2_freq = nominal L2 carrier frequency (i.e., 1.22760 GHz)
struct PhaseID_PL2 {
i4 phaseIDelta[nSats]; // P/L2 carrier phase[c] / L2_freq [Hz]
40
// - [rc] pseudorange [s]) * 2
+ u1 cs;
// Checksum
};
156
4.3.6.13 Doppler
4.3.6.13.1
[DC] C/A Doppler {4*nSats+1}
Contains C/A doppler estimates [Hz*10-4, i4] for all the satellites specified in the
latest [SI] message.
struct DopplerCA {
-4
i4 doppler[nSats]; // Doppler [Hz*10 ]
+ u1 cs;
// Checksum
};
4.3.6.13.2
[D1] P/L1 Doppler {4*nSats+1}
Contains P/L1 doppler estimates [Hz*10-4, i4] for all the satellites specified in the
latest [SI] message.
struct DopplerP1 {
-4
i4 doppler[nSats]; // Doppler [Hz*10 ]
+ u1 cs;
// Checksum
};
4.3.6.13.3
[D2] P/L2 Doppler {4*nSats+1}
Contains P/L2 doppler estimates [Hz*10-4, i4] for all the satellites specified in the
latest [SI] message.
struct DopplerP2 {
i4 doppler[nSats]; // Doppler [Hz*10-4]
+ u1 cs;
// Checksum
};
4.3.6.14 Carrier to Noise Ratio
4.3.6.14.1
[EC] C/A Carrier to Noise Ratio {nSats+1}
Contains C/A channel carrier to noise ratios for all the satellites specified in the
latest [SI] message.
struct CarrierToNoiseRatioCA {
u1 sn[nSats]; // C/N0 [dB*Hz]
+ u1 cs;
// Checksum
};
4.3.6.14.2
[E1] P/L1 Carrier to Noise Ratio {nSats+1}
Contains P/L1 channel carrier to noise ratios for all the satellites specified in the
latest [SI] message.
struct CarrierToNoiseRatioP1 {
u1 sn[nSats]; // C/N0 [dB*Hz]
+ u1 cs;
// Checksum
};
157
4.3.6.14.3
[E2] P/L2 Carrier to Noise Ratio {nSats+1}
Contains P/L2 channel carrier to noise ratios for all the satellites specified in the
latest [SI] message.
struct CarrierToNoiseRatioP2 {
u1 sn[nSats]; // C/N0 [dB*Hz]
+ u1 cs;
// Checksum
};
4.3.6.15 [SS] Satellite navigation status {nSats+2}
Reports navigation status for all the satellites specified in the latest [SI] message.
In addition, this message indicates which receiver positioning mode is on. For
detailed information on the navigation status structure, see 4.3.13.3.4.
struct NavStatus {
+ u1 ns[nSats]; // enum NavStatus
+ u1 posType;
// enum SolutionType
+ u1 cs;
// Checksum
};
4.3.6.16 [TC] Time Since Last Loss-of-Lock on particular C/A signal
{nSats*2+1}
Reports time elapsed since the last loss-of-lock on the C/A signal for all the
satellites specified in the latest [SI] message.
[TC] time is measured in seconds. Each satellite is allocated its own TC-time
counter. Count-up begins with zero and stops when the counter reaches the
maximum value the “u2” data type allows. Please note that the TC-time counters
are not subject to rollovers.
Given a satellite, TC-time count starts as soon as the C/A signal is locked on.
Should a loss of lock occur when tracking the C/A signal, the TC-time counter is
reset to zero.
struct TrackingTimeCA {
+ u2 tt[nSats]; // tracking time [s]
+ u1 cs;
// Checksum
};
4.3.6.17 [TT] Time Since Last Loss-of-Lock on all C/A signals {5}
Unlike the previous message, [TT] message contains a scalar, not an array.
This scalar indicates the time (in seconds) elapsed since the last complete lossof-lock while tracking C/A signals. “Complete loss-of-lock” means loss of lock on
all C/A signals being tracked.
struct TrackingTime {
+ u4 tt;
// tracking time [s]
+ u1 cs;
// Checksum
};
158
4.3.6.18 [GA] GPS Almanac {47}
struct GPSAlm {
+ u1 sv;
// SV PRN number within the range [1-37]
+ i2 wna;
// Almanac reference week []
+ i4 toa;
// Almanac reference time of week [s]
+ u1 healthA;
// Health summary (from almanac). [bitfield]
//
0..4 - code for health of SV signal
components
//
5..7 - navigation data health indicators
+ u1 healthS;
// Satellite health (page 25 of subframe 5) []
u1 config;
// Satellite configuration (page 25 of subframe 4)
//
[bitfield]
//
0..2 - satellite configuration
//
3 - anti-spoofing flag
//
4..7 - reserved
//===== Clock data =====
+ f4 af1;
// Polynomial coefficient [s/s]
+ f4 af0;
// Polynomial coefficient [s]
//===== Ephemeris data =====
//--- Keplerian orbital parameters --+ f4 rootA;
// Square root of the semi-major axis [m^0.5]
+ f4 ecc;
// Eccentricity []
+ f4 m0;
// Mean Anomaly at reference time [semi-circles]
+ f4 omega0;
// Longitude of ascending node of orbit plane
// at the start of week 'wna' [semi-circles]
+ f4 argPer;
// Argument of perigee [semi-circles]
//--- Corrections to orbital parameters --+ f4 deli;
// Correction to inclination angle
// [semi-circles]
+ f4 omegaDot; // Rate of right ascension [semi-circle/s]
+ u1 cs;
// Checksum
};
159
4.3.6.19 [GE] GPS Ephemeris {123}
struct GPSEphemeris {
+ u1 sv;
// SV PRN number within the range [1-37]
+ u4 tow;
// Time of week [s]
+ u1 flags;
// Flags (see GPS ICD for details) [bitfield]:
//
0 - curve fit interval
//
1 - data flag for L2 P-code
//
2..3 - code on L2 channel
//
4 - anti-spoof (A-S) flag (from HOW)
//
5 - 'Alert' flag (from HOW)
//
6 - '1' means that this ephemeris was
//
retrieved from the non-volatile
//
memory when the receiver was reset
//
or turned on last
//
7 - reserved
//===== Clock data (Subframe 1) =====
+ i2 iodc;
// Issue of data, clock []
+ i4 toc;
// Clock data reference time [s]
+ i1 ura;
// User range accuracy []
+ u1 healthS; // Satellite health []
+ i2 wn;
// Week number []
+ f4 tgd;
// Estimated group delay differential [s]
+ f4 af2;
// Polynomial coefficient [s/(s^2)]
+ f4 af1;
// Polynomial coefficient [s/s]
+ f4 af0;
// Polynomial coefficient [s]
//===== Ephemeris data (Subframes 2 and 3) =====
+ i4 toe;
// Ephemeris reference time [s]
+ i2 iode;
// Issue of data, ephemeris []
//--- Keplerian orbital parameters --+ f8 rootA;
// Square root of the semi-major axis [m^0.5]
+ f8 ecc;
// Eccentricity []
+ f8 m0;
// Mean Anomaly at reference time (wn,toe)
//
[semi-circles]
+ f8 omega0;
// Longitude of ascending node of orbit plane
//
at the start of week 'wn' [semi-circles];
+ f8 inc0;
// Inclination angle at ref. time
//
[semi-circles]
+ f8 argPer;
// Argument of perigee [semi-circles];
//--- Corrections to orbital parameters --+ f4 deln;
// Mean motion difference from computed value
//
[semi-circle/s]
+ f4 omegaDot; // Rate of right ascension [semi-circle/s]
+ f4 incDot;
// Rate of inclination angle [semi-circle/s]
+ f4 crc;
// Amplitude of the cosine harmonic correction
//
term to the orbit radius [m]
+ f4 crs;
// Amplitude of the sine harmonic correction
//
term to the orbit radius [m]
+ f4 cuc;
// Amplitude of the cosine harmonic correction
//
term to the argument of latitude [rad]
+ f4 cus;
// Amplitude of the sine harmonic correction
//
term to the argument of latitude [rad]
+ f4 cic;
// Amplitude of the cosine harmonic correction
//
term to the angle of inclination [rad]
+ f4 cis;
// Amplitude of the sine harmonic correction
//
term to the angle of inclination [rad]
+ u1 cs;
// Checksum
};
160
4.3.6.20 [NA] GLONASS Almanac {46}
struct GLOAlmanac {
+ u1 sv;
// Satellite orbit slot number within [1..24] []
+ i1 frqNum;
// Satellite frequency channel number [-7..24] []
+ i2 dna;
// Day number within 4-year period starting
// with the leap year []
+ f4 tlam;
// Time of the first ascending node passage
// on day 'dna' [s]
+ u1 health;
// Satellite health as specified by 'Cn' [bitfield]
//
0- '1' indicates healthy SV, '0' - unhealthy
// 1..7- reserved
//===== Clock data =====
+ f4 tauN;
// Coarse time correction to SV clock
// with respect to GLONASS system time [s]
+ f8 tauSys;
// Correction to GLONASS system time with respect
to
// UTC(SU) [s]
//===== Ephemeris data =====
+ f4 ecc;
// Eccentricity at reference time 'tlam' []
+ f4 lambda;
// Longitude of ascending node
// at reference time 'tlam' [semi-circles].
+ f4 argPer;
// Argument of perigee
// at reference time 'tlam' [semi-circles].
+ f4 delT;
// Correction to mean Draconic period
// at reference time 'tlam' [s/period].
+ f4 delTdt;
// Rate of change of Draconic period
//
[s/period^2]
+ f4 deli;
// Correction to inclination
// at reference time 'tlam'[semi-circles].
+ u1 cs;
// Checksum
};
161
4.3.6.21 [NE] GLONASS Ephemeris {80}
struct GLOEphemeris {
u1 sv;
// Satellite orbit slot number [1..24] []
+ i1 frqNum;
// Satellite frequency channel number [-7..24] []
i2 dne;
// Day number within 4-year period []
// (Ephemeris reference time 'tb' is specified
// for day 'dne')
+ i4 tk;
// Frame start time within current day [s]
+ i4 tb;
// Ephemeris reference time [s]
+ u1 health;
// Satellite health. [bitfield]
//
0 - MSB taken from Bn word which indicates
//
satellite health:
//
1 - indicates 'satellite is unhealthy'
//
0 - indicates 'satellite is healthy'
//
1 - If set, this flag indicates that the
//
time-frequency params 'tau' and 'gamma'
//
may be wrong. (Note that TPS receiver
//
performs several 'internal' data
//
consistency checks allowing detection
//
of problem broadcast parameters).
//
2 - If set, this flag indicates that initial
//
conditions 'r[3]' and 'v[3]' may be wrong.
//
3 - SV health (Cn word) status from almanac:
//
0 - indicates 'satellite is unhealthy'
//
1 - indicates 'satellite is healthy'
//
4 - If set, this flag indicates that SV health
//
status from almanac is available
//
5..7 - reserved
//===== Ephemeris data ======
+ u1 age;
// Age of operational information (En) [days]
+ u1 flags;
// Flags (for details on the flags, see GLONASS ICD)
//
[bitfield]
//
0..1 - p1 word
//
2 - p2 word
//
3 - p3 word
//
4..5 - 2 LSB taken from Bn word
//
6 -'1' means this ephemeris was retrieved
//
from non-volatile memory when you reset
//
or turned on your receiver last
//
7 - reserved
+ f8 r[3];
// Satellite PE-90 coordinates [km]
+ f4 v[3];
// Satellite PE-90 velocities [km/s]
+ f4 w[3];
// Satellite PE-90 accelerations due to Luni-Solar
// gravitational perturbations [km/s^2]
//===== Clock data ======
+ f8 tauSys;
// Time correction to GLONASS time scale (vs. UTC(SU))
//
tauSys = TUTC(SU) - TGLN [s]
+ f4 tau;
// Correction to satellite clock (vs. GLONASS time)
//
tau = TGLN - TSV [s]
+ f4 gamma;
// Rate of satellite clock offset [s/s]
+ u1 cs;
// Checksum
};
162
4.3.6.22 [IO] Ionospheric Parameters {39}
[IO] message contains ionospheric correction parameters from GPS subframe 4,
page 18. These parameters relate to an ionospheric model mainly used by single
frequency GPS receivers.
For more information about this ionosphere model, please see GPS ICD-200 [1].
struct IonoParams {
+ u4 tot;
// Time of week [s]
+ u2 wn;
// Week number (taken from the first subframe)
// The coefficients of a cubic equation representing the
// amplitude of the vertical delay
+ f4 alpha0;
// [s]
+ f4 alpha1;
// [s/semicircles]
+ f4 alpha2;
// [s/(semicircles**2)]
+ f4 alpha3;
// [s/(semicircles**3)]
// The coefficients of a cubic equation representing
// the period of the model
+ f4 beta0;
// [s]
+ f4 beta1;
// [s/semicircles]
+ f4 beta2;
// [s/(semicircles**2)]
+ f4 beta3;
// [s/(semicircles**3)]
+ u1 cs;
// Checksum
};
4.3.6.23 [ID] Ionospheric delays {8*nSats+1}
Contains estimated ionospheric delays as computed by using the L1 minus L2
frequency combination.
struct IonoDelay {
f4 delay[nSats]; // Ionospheric delay [m]
+ u1 cs;
// Checksum
};
4.3.6.24 [FC] C/A Signal Lock Loop Flags {nSat*2 + 1}
Contains an array of the C/A signal lock loop flags [,u2] for all the satellites
specified in the latest [SI] message.
struct FlagsCA {
+ u2 flags[nSats]; // [bit-field]
+ u1 cs;
// Checksum
};
The following flags are defined:
bit
0
1
2
3
4
5
| mask | description
| 0x0001 | PLL is in phase lock
| 0x0002 | Satellite signal strength is sufficient
| 0x0004 | Satellite uses 'guiding data' from
| the common loop
| 0x0008 | Satellite data are used in the common loop,
| which in turn controls this satellite's loops
| 0x0010 | DLL is in 'steady state' phase lock
| 0x0020 | Loss-of-lock occurred in PLL between the
previous and the current epochs
163
6 |
7 |
8 |
bits
0x0040 |
0x0080 |
0x0100 |
9-15 are
Integral indicator: all C/A data are good
Not used
Preamble detected
reserved
The simplest approach to C/A data validation is keeping track of only bit #6.
As long as this bit remains set for a particular satellite, all of this satellite's C/A
measurements are considered good.
Note that the receiver normally utilizes very narrow DLL bandwidths, thus,
quite a long settling-down time (tens of seconds). In fact, it is not worth waiting
until the pseudorange noise error reaches its steady-state level. Note that bit#6 is
set as soon as the measured pseudoranges become “accurate enough”40 (i.e.,
irrespective of whether the formal settling-down period is over or not). On the
other hand, for code differential applications, pseudorange accuracy is of critical
importance. If bit#4 is set, this indicates that the corresponding pseudoranges are
generated after the loop having reached the “steady state” and therefore are
considered the least noisy.
For applications based on various “carrier phase differencing techniques”,
bit#5 is of special interest. If set, this means that a loss of lock occurred in the PLL
between the previous and the current epochs, which is very likely to have resulted
in a carrier phase cycle slip. Bit#5 is updated at the same rate at which raw
measurements are generated in the receiver (see the parameter
/par/raw/msint described in 3.13). If [FC] message is output rarer than this,
then [TC] message is used as a PLL loss-of-lock indicator (see 4.3.6.16)
In fact, it is not infrequent that raw data are used even if bit #6 is not set. In
such cases, however, all responsibility for providing valid results rests with the
user.
Bits ##0-3 are used for some internal purposes.
4.3.6.25 [F1] P/L1 Signal Lock Loop Flags {nSat*2 + 1}41
Contains an array of the P/L1 signal lock loop flags [,u2] for all the satellites
specified in the latest [SI] message. Functionally, these flags are identical to [FC]
flags described in 4.3.6.24.
struct FlagsP1 {
+ u2 flags[nSats]; // [bit-field]
+ u1 cs;
// Checksum
};
4.3.6.26 [F2] P/L2 Signal Lock Loop Flags {nSat*2 + 1}42
Contains an array of the P/L2 signal lock loop flags [,u2] for all the satellites
specified in the latest [SI] message. Functionally, these flags are identical to [FC]
flags described in 4.3.6.24.
struct FlagsP2 {
+ u2 flags[nSats]; // [bit-field]
40
) say, at a level of unmodeled pseudorange errors
41
) to be implemented
42
) to be implemented
164
+ u1 cs;
};
// Checksum
4.3.7 WAAS messages
For more information on the following structures, please refer to Wide Area
Augmentation System Specification.
4.3.7.1
[WE] WAAS Ephemeris Message {39}
struct WAASEhemeris {
+ u1 WAAS_PRN;
+ u1 GPS_PRN;
+ u1 iod;
+ u1 acc;
+ u4 tod;
+ f8 xg, yg, zg;
+ f4 vxg, vyg, vzg;
+ f4 vvxg, vvyg, vvzg;
+ f4 agf0;
+ f4 agf1;
+ u4 tow;
+ u2 wn;
+ u1 cs;
};
//
//
//
//
//
//
//
//
//
//
//
//
//
WAAS SV PRN number within [120-138]
GPS SV PRN associated with WAAS SV
Issue of data
WAAS SV accuracy (▲)
Reference time (seconds of the day)[s]
ECEF coordinates [m]
ECEF velocity [m/s]
ECEF acceleration [m/s^2]
WAAS SV clock offset factor “ao” [s]
WAAS SV clock offset factor “a1” [s/s]
time of GPS week, this ephemeris was received at
GPS week, this ephemeris was received at
Checksum
(▲)for details, see Section 20.3.3.3.1.3 of the GPS ICD
4.3.7.2
[WA] WAAS Almanac Message {23}
struct
+ u1
+ u1
+ u1
+ u1
+ u4
+ i4
+ f4
+ u4
+ u2
+ u1
};
WAASAlm {
WAAS_PRN;
GPS_PRN;
id;
healthS;
tod;
xg, yg, zg;
vxg, vyg, vzg;
tow;
cs;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
WAAS SV PRN number within [120-138]
GPS SV PRN associated with this WAAS SV
Data ID
Satellite health [bitfield]
bit 0:
0 – Ranging ON
1 – Ranging is OFF
bit 1:
0 – Corrections ON
1 – Corrections OFF
bit 2:
0 – Broadcast Integrity ON
1 - Broadcast Integrity OFF
bit 3: reserved
bits 4 to 7 are all set to zero
Time of the day [s]
ECEF coordinates [m]
ECEF velocity [m/s]
time of GPS week, this almanac was received at
GPS week, this almanac was received at
Checksum
165
4.3.7.3
[WO] WAAS Time Message {31}
The reader will notice that this message has much in common with [UO].
struct
+ f8
+ f4
+ u4
+ u2
+ i1
+ u1
+ u2
+ i1
+ i1
WAASTime
a0wnt;
a1wnt;
tot;
wnt;
dtls;
dn;
wnlsf;
dtlsf;
utcsi;
+ u4 tow;
+ u2 wn;
+ u1 cs;
};
{
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
Constant term of polynomial [s]
First-order term of polynomial [s/s]
Reference time of week [s]
Reference week number []
Delta time due to leap seconds [s]
'Future' reference day number [1..7] []
'Future' reference week number []
'Future' delta time due to leap seconds [s]
UTC Standart Identifier:
0 - UTC as operated by the Communications
Research Laboratory (CRL), Tokyo, Japan
1 - UTC as operated by the National
Institute of Standards and Technology
(NIST)
2 - UTC as operated by the U. S. Naval
Observatory (USNO)
3 - UTC as operated by the International
Bureau of Weights and Measures (BIPM)
4..7 – Reserved
Time of week [s]
Week number []
Checksum
4.3.8 Timing signal and Event marker Messages
4.3.8.1
[XA], [XB] External Event Messages {10}
struct ExtEvent {
i4
ms;
// ms part of event time tag
i4
ns;
// ns part of event time tag
u1
scale; // time scale [enum]
//
0 - GPS
//
1 - UTC_USNO
//
2 - GLONASS
//
3 - UTC_SU
// 4..254 - Reserved
u1
cs;
// checksum
};
To make your receiver generate these messages, you need, first, to set the
parameter /par/dev/event/a/in (or /par/dev/event/b/in) to “on” and,
second, to issue an appropriate em or out command.
4.3.8.2
[ZA], [ZB] PPS offset {5}
struct PPSOffset {
+ f4 offs; // PPS offset in nanoseconds
+ u1 cs;
// checksum
};
166
Due to a hardware limitation, PPS signals are discrete with a resolution of 25 ns.
TPS receiver, however, allows you to compensate for this “discreteness error”.
You can force the receiver to generate for each PPS pulse a message containing
the offset between the scheduled PPS time and the actual pulse edge's arrival
time.
When the pulse edge is advanced relative to the scheduled time, the offset is
positive. When the pulse edge is delayed relative to the scheduled time, the offset
is negative.
4.3.8.3
[YA], [YB] The “receiver time vs. reference time” offset at PPS
generation time {10}
struct RcvTimeOffsAtPPS {
f8 offs;
// [Trr – Tr][s]
u1 refTime; // enum refTime
+ u1 cs;
// Checksum
};
4.3.9 [==] Event {var}
struct Event {
+ u4 time;
//
//
+ u1 id;
//
u1 data[]; //
+ u1 cs;
//
};
Receiver time of event issue
modulo day [ms]
Event identifier[]
Event contents
Checksum
Refer to 12 for more information about valid free-form event identifiers and related
data.
Notes:
1. To enable/disable this message, use the message name /msg/jps/EV
(not /msg/jps/==).
2. For free-form events, the field “id” is always set to zero.
3. The current firmware provides a buffer large enough to store up to sixteen
64 byte free-form events.
Example. Suppose you need to be capable of processing up to 20-30 freeform events per second. In this case you must have _RAW = 5 Hz (or
higher), which will be sufficient for the receiver to handle up to 80 free-form
events per second.
4.3.10 [LT] Message Output Latency {2}
Specifies the difference between the “truth” output time of the first of the
messages sent to the chosen port at the given epoch, and this epoch's time-tag.
Note that latency can differ for different ports. For example, the more messages
are output to port A, the bigger the latency of port B; this is because the receiver
167
begins outputting messages to port B only after it has finished outputting
messages to port A.
struct Latency {
+ u1 lt; // output latency [ms]
+ u1 cs; // Checksum
};
4.3.11 [>>] Wrapped Echo {var}
This message is generated every time data echoing is initiated43 on a port that
has been set to the “wrapped” echo mode. The size of the “echoed data” (in
bytes) is equal to the message length from the header less 3 (size=L-3). Note that
the user cannot disable the receiver to output the wrapped echo message to an
output stream with dm command.
struct WrappedEcho {
+ a1 port;
// Source port identifier
+ u1 data[size]; // Data received from the source port
+ a1 cs[2];
// Checksum formatted as hexadecimal
};
The following source port identifiers are supported:
a...d - stand for /dev/ser/a, ... ,/dev/ser/d, respectively.
m
- stands for /dev/modem/a
i
- stands for /dev/prl/a
4.3.12 [LH] Logging History {var}
struct LoggingHistory {
+ u1 svsCount;
+ u1 targetStream;
+ u2 issue;
+ u2 bitsCount;
+ u4 lastBitTime;
+ u1 uids[svsCount];
+ u1 zeroFill[fillCount];
+ u4 hist[elemsCount][svsCount];
43
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
Number of SVs in this history
The stream the history is gathered
for (see description of the [>>]
message for details)
The issue of the history. It is
incremented every time the history
is changed
Number of bits in this history.
This history contains “bitsCount”
bits for every SV specified in the
“uids” field
Time in milliseconds since the last
history shift
Array of SVs UIDs (UIDs are the
same as in [SI])
Padding to align the next field on
4 bytes boundary. FillCount = (4(svsCount % 4)) % 4
History bits. For every SV the bits
are packed into array of “u4”
values. Most significant bit of the
) It occurs when new data arrive at the port
168
+ u1 cs;
};
//
//
//
//
//
//
//
//
//
//
//
history. Least significant bit of
the last element of the array
represents the oldest bit of the
history. The number of “u4”
elements in the array is just
enough to hold “bitsCount” bits.
“svsCount” bit arrays are put into
the message in the order specified
by the “uids”field. elemsCount =
bitsCount + 31)/32
Checksum
For a description of parameters governing logging history, see 3.9
4.3.13 ASCII Messages
4.3.13.1 TPS Format for ASCII messages
Here we familiarize the reader with the format notation used to describe the
specific ASCII message formats presented below. A TPS ASCII message's format
specifies its structure, parameter types and the number of significant digits for
each parameter representation.
The following data type characters (aka “data type specificators”) are used to
distinguish between different data:
D – designates decimal integer parameter type;
X – designates hexadecimal integer parameter type;
F – designates float or double parameter type;
C – designates character parameter type;
S – designates string type (note that strings may have arbitrary lengths);
E – designates exponential format.
Given a numeric parameter, digits preceding the data type specificator designate
the number of digits in this parameter format44. There may be two, one or no digits
specified before the data type specificator. For float and double parameters, the
first digit defines the length of the integer part of the parameter representation
(“integer part descriptor”) whereas the second digit defines the length of the
fractional part (“fractional part descriptor”). If there are two digits used in the
parameter format notation, these are separated by a dot "." (hex 2E).
A parameter's fractional part descriptor can be variable, i.e. its length is
programmable with an appropriate receiver command. In this case the fractional
part descriptor shows the parameter range, which is put inside square brackets
(e.g., %0.[1-4]F).
Integer part descriptor may be omitted, which means that the integer part of the
output value may be as long as necessary. Note that the delimiting dot before the
corresponding fractional part descriptor will still exist.
If an integer parameter has no integer part descriptor before its data type
specificator (either “X” or “D”), the receiver will output all the significant digits.
Leading zeroes will be added if the actual length of the integer part is shorter than
specified by the descriptor.
44
) this applies to integer, float and double parameters only
169
If a format notation includes the plus symbol “+”, your receiver will output signed
values (as usual, characters “+” (hex 2B) and “-“ (hex 2D) are used to denote
positive and negative values, respectively).
If a parameter format is bracketed by round braces, it means that this format
applies to a batch of “homogeneous” parameters (note that the number of
messages in such a batch may vary).
When a TPS ASCII message is output, its individual parameters are delimited
from each other with comma (hex 2C). Parameter format notation always starts
with symbol “%” (hex 25).
A back slash followed by two hexadecimal digits designates that the
corresponding ASCII character will be put into the message in this specific place.
In addition, the reader will notice that various non-reserved symbols (lower and
upper case English letters, arithmetic operation signs, curly braces, etc.) are used
together with the above described parameter formats.
Here are some examples illustrating the format notation as defined above:
Format Specified
Output data representation
%5.2F
00027.89
%5.2F * %+4.2F
67283.67 * +5678.22
Value: %+5.2F
Value: +00000.35
%+2.0F
+07
%0.4F
0.1234
%+7.5F
-0000039.67432
5-2=%D
5-2=3
%D
2467
%+3D
-052
%+3D
+964
%2X
0A
{%2D,%+.4F}
{04,-45.8027}
%C%C%C
XYZ
%S
This is a string
\4A
J
\50
P
(%2.1F)
45.8,98.0,04.7,88.3
%.3E
1.234E-04
%.3E
-5.789E+02
4.3.13.1.1
NMEA-Specific Format Limitations
The NMEA standard forbids the use of character “+” inside approved NMEA
sentences. Note that this limitation “overrides” the general format conventions
described in 4.3.13.1. In other words, in approved NMEA sentences, “+” is omitted
before non-negative numbers even if the corresponding parameter formats
contain the plus sign (e.g., %+7.5F).
170
4.3.13.2 NMEA sentences
4.3.13.2.1
Introduction
The NMEA-0183 (National Marine Electronic Association) standard v.2.30 [5] is a
specification intended to facilitate interconnection and interchangeability of
equipment produced by different manufacturers. The standard defines data
transmission specifications, message types and a data exchange protocol
between Talker and Listener. It is widely used not only in marine applications but
in many other applications too.
The NMEA-0183 standard provides, together with other information, the
description of the “approved” sentences. “Approved sentences” are those having
predefined formats. Every approved sentence has “talker identifier” and “sentence
identifier” and is uniquely characterized by the corresponding (predefined) set of
parameters. There is a whole variety of devices that may serve as “talkers” in
NMEA applications (e.g., marine sounders and weather instruments). A specific
“talker”, however, may handle only a particular set of approved messages. For
example, a combined GPS/GLONASS receiver utilizes only a limited number of
the existing approved sentences (specifically, sentences containing GNSS-related
navigational/positioning information).
4.3.13.2.2
General Format of Approved NMEA Sentences
Each approved NMEA sentence has the following format:
$AACCC,c--c*hh<CR><LF>
where
“$” (HEX 24) – Start of sentence.
AACCC – Address field.
The first two characters identify “Talker”.
The last three characters identify the sentence type.
“,” (HEX 2C) – Field delimiter.
c—c – Data sentence block.
“*” (HEX 2A) – Checksum delimiter.
hh – Checksum field. This value is computed by exclusive-OR’ing the eight
data bits of each character in the sentence, between, but excluding, “$” and
“*”. The hexadecimal value of the most significant and least significant four
bits of the result are converted into two ASCII characters (0-9,A-F) for
transmission. The most significant character is transmitted first.
<CR><LF> (HEX 0D,0A) – sentence terminators.
Approved NMEA sentences are allowed to contain the so-called “null fields”. Null
fields are used when one or more parameters in the message are unreliable or
unavailable. A null field may be delimited by two commas (“,,”) or by a comma and
a multiplication sign “*” (“,*”) depending on its position in the sentence.
TPS receivers support the following “talker identifiers”:
“GP” — Global Positioning Systems (GPS)
“GL” — GLONASS
“GN” — Global Navigation Satellite System (GNSS)
Generally speaking, “talker identifier” is supposed to inform Listener whether the
positioning information contained in the message is “GPS only”, “GLONASS only”
171
or “combined GPS plus GLONASS”. In reality, this is not always true: there are
sentences whose “talker identifiers” will not indicate the true constellation used in
position computation (please see notes to specific sentences listed in the section
below).
4.3.13.2.3
Formats of Supported NMEA sentences
This section describes in detail all of the NMEA sentences the TPS receiver
supports. It should be noted that the NMEA standard, as a rule, does not specify
exact mantissa lengths for the sentence parameters. The user is free to allocate to
every parameter as many digits as necessary to ensure required accuracy. For
example, since TPS receivers provide millimeter-level positioning accuracy in
differential modes, receiver geodesic coordinates (latitude - longitude - ellipsoidal
height) should have mantissas long enough to enable coordinate presentation
with sub-millimeter accuracy.
For the format conventions for the following sentences, please see section
4.3.13.1.
4.3.13.2.3.1
TPS proprietary NMEA sentences
All TPS proprietary NMEA sentences have the following format:
$PTPSR,MsgID,c--c*hh<CR><LF> (see 4.3.13.1 for details).
4.3.13.2.3.1.1
#
1
%C
Format
2
%6.2F
3
4
5
%.3F
%.3F
%C
6
*%2X\0D\0A
ATT – Attitude parameters
Description
UTC time indicator:
“V” means that UTC time is valid
“N” means that UTC time is not valid
UTC time of position (the first two digits designate hours, the
next two digits designate minutes and the rest of the digits
designate seconds)
True Heading in degrees
Pitch in degrees
Base position type (‘N’ – not available, ‘A’ – autonomous, ‘D’ –
code differential, ‘F’ – “float”, ‘R’ – fixed). This field can be
useful provided JPS messages are used for broadcasting RTK
data
Checksum (see 4.3.13.2.2)
Note: To enable [ATT] message, use the command syntax as shown in the
following example: em,,nmea/P_ATT
172
4.3.13.2.3.2
GGA – Global Positioning System Fix Data
This message comprises time, position and other fix related data for TPS receiver.
#
1
Format
%6.[0-2]F
2
%4.[1-7]F
3
4
%C
%5.[1-7]F
5
6
7
8
9
10
11
%C
%1D
%2D
%.2F
%+5.[1-4]F
%C
%+.[1-4]F
12
13
14
%C
%.1F
%4D
15
*%2X\0D\0A
Description
UTC time of position fix (first two digits designate hours, the
next two designate minutes and the rest digits designate
seconds)
Latitude in selected datum (first two digits designate degrees
and the rest designates minutes of arc)
Latitude hemisphere: N – northern, S – southern
Longitude in selected datum (first three digits designate
degrees and the rest digits designate minutes of arc)
Longitude hemisphere: E – eastern, W – western
GPS quality indicator (see below for details)
Number of satellites used for position computation
Horizontal dilution of precision (HDOP) [-]
Altitude above geoid in selected datum [meters]
Symbol “M” (denote that altitude is in meters)
Geoidal separation: the difference between the earth ellipsoid
and geoid defined by the reference datum [meters]
Symbol “M” (denotes that geoidal separation is in meters)
Age of differential GPS data [seconds]
Differential reference station ID (an integer between 0000 and
1023)
Checksum (see 4.3.13.2.2)
Notes:
1. The [GGA] message talker identifier uses the following TPS convention:
whatever constellation is used for position computation (GPS only,
GLONASS only, or GPS plus GLONASS), the talker identifier is always set
to “GP”.
2. If your receiver uses combined GPS+GLONASS data for position
computation in RTK or DGPS, “age of differential GPS data” and
“differential reference station ID” from [GGA] message will relate to GPS
data.
On the other hand, if the receiver uses pure GLONASS data when
computing the position in RTK or DGPS, the parameters “age of differential
GPS data” and “differential reference station ID” will relate to GLONASS
data.
3. Generally speaking, it is not recommended to use [GGA] message when
operating a full-functionality GPS/GLONASS receiver. Note that [GGA] is
mainly intended for pure GPS receivers. For combined receivers, we
recommend using [GNS] for [GGA].
173
GPS quality indicator:
0
1
2
3
4
5
6
7
8
Fix not available or invalid
GPS SPS Mode (single point mode), fix valid
Differential GPS SPS Mode, fix valid
GPS PPS Mode (single point mode), fix valid
RTK fixed
RTK float
Estimated (dead reckoning) mode
Manual input mode
Simulator mode
4.3.13.2.3.3
GLL – Geographic Position – Latitude/Longitude
Current latitude/longitude, time and status of position fix.
#
Format
Description
1 %4.[1-7]F
Latitude in selected datum (first two digits designate degrees
and the rest designates minutes of arc)
2 %C
Latitude hemisphere: N – northern, S – southern
3 %5.[1-7]F
Longitude in selected datum (first three digits designate
degrees and the rest designates minutes of arc)
4 %C
Longitude hemisphere: E – eastern, W – western
5 %6.[0-2]F
UTC time of position (first two digits designate hours, the next
two digits designate minutes and the rest designates seconds)
6 %C
Status field (shall be set “V” = Invalid for all values of
positioning system mode indicator (see next field) except for
“A”= Autonomous, “D”= Differential, “P” = Precise, “R” = RTK
with fixed integers and “F” = RTK with floating integers
7 %C
Positioning system mode indicator (see below).
8 *%2X\0D\0A
Checksum (see 4.3.13.2.2)
Mode indicator:
A Autonomous. Satellite system used in non-differential mode in position fix
D Differential. Satellite system used in differential mode in position fix
E Estimated (dead reckoning) mode
M Manual input mode
S Simulator mode
N Data not valid
174
4.3.13.2.3.4
GNS – GNSS Fix Data
This message intended for combined navigation systems (GNSS).
It comprises time/position/status fix data.
#
Format
Description
1 %6.[0-2]F
UTC time of position fix (first two digits designate hours, the next
two digits designate minutes and the rest designate seconds)
2 %4.[1-7]F
Latitude in selected datum (first two digits designate degrees and
the rest designates minutes of arc)
3 %C
Latitude hemisphere: N – northern, S – southern
4 %5.[1-7]F
Longitude in selected datum (first three digits designate degrees
and the rest designates minutes of arc)
5 %C
Longitude hemisphere: E – eastern, W – western
6 %C%C
Mode indicator (see below): variable length valid character field
type with the first two characters currently defined. The first
character indicates the use of GPS satellites, the second character
indicates the use of GLONASS satellites.
7 %2D
Total number of satellites used for position computation
8 %.2F
Horizontal dilution of precision (HDOP) [-]
9 %+5.[1-4]F
Altitude above geoid in selected datum [meters]
10 %+.[1-4]F
Geoidal separation: the difference between the earth ellipsoid and
geoid defined by the reference datum [meters]
11 %.1F
Age of differential data [seconds] (see the note below)
12 %4D
Differential reference station ID (this is an integer between 0000
and 1023) (see the note below)
13 *%2X\0D\0A Checksum (see 4.3.13.2.2)
Note: If your TPS receiver runs in “pure GPS” or “pure GLONASS” RTK or
DGPS, it outputs one GNS message per position fix. If running in “dual system”
RTK or DGPS (i.e., both GPS and GLONASS differential correction data are used
simultaneously), the receiver outputs, in accordance with the NMEA standard, a
“GNS triplet” for every position fix.
The first message in a GNS triplet plays the most important part carrying
the lion's share of information. The other two messages provide some GPSspecific and GLONASS-specific information, specifically: “total number of
satellites”, “age of differential data” and “differential reference station ID”45.
The following is the example of a typical GNS triplet:
$GNGNS,122310.20,3722.425671,N,12258.856215,W,DD,14,0.9
,1005.543,6.5,,*74<CR><LF>
$GPGNS,122310.20,,,,,,7,,,,5.2,23*4D<CR><LF>
$GLGNS,122310.20,,,,,,7,,,,3.0,23*55<CR><LF>
45
) not to mention “UTC time of position fix”, which is the same for all three messages in the triple.
175
Positioning system mode indicator for [GNS] message
N No fix. Satellite system not used in position fix, or fix not valid
A Autonomous. Satellite system used in non-differential mode in position fix
D Differential. Satellite system used in differential mode in position fix
P Precise. Satellite system used in precision mode. Precision mode is defined as: no
deliberate degradation (such as Selective Availability) and higher resolution code
(P-code) is used to compute position fix
R Real time kinematic. Satellite system used in RTK mode with fixed integers
F Float RTK. Satellite system used in real time kinematic mode with floating integers
E Estimated (dead reckoning) mode
M Manual input mode
S Simulator mode
4.3.13.2.3.5
GRS – GNSS Range Residuals
This message contains “range residuals”. These kinds of data are used to support
Receiver Autonomous Integrity Monitoring (RAIM).
#
Format
Description
1 %6.[0-2]F
UTC time (the first two digits designate hours, the next two digits
designate minutes and the rest designates seconds)
2 %1D
Mode: 0 = residuals were used to calculate the position given in
the matching GGA or GNS sentence; 1 = residuals were
recomputed after the GGA or GNS position was computed.
Currently, the receiver uses only the first mode (Mode = 0).
3 (%+.3F)
or A sequence of range residuals (in meters). Sequence length
(%+.0F)
depends on the number of satellites used in the position
solution. Order must match order of satellite ID numbers in GSA.
When GRS is used GSA and GSV are generally required. If the
range residual exceeds ±99.9 meters, then the decimal part is
discarded, resulting in an integer (-103.7 becomes -103). The
maximum value for this field is ±999.
4 *%2X\0D\0A
Checksum (see 4.3.13.2.2)
Note: The NMEA standard states the following:
•
If either GPS or GLONASS is used for position computation, the talker ID is set
to “GP” or “GL”, respectively.
•
If GPS and GLONASS are used together, the receiver will generate two GRS
messages at one time. The first of these messages will describe the GPS
range residuals whereas the other will describe the GLONASS range
residuals. Either message will have the same talker ID, “GN”, which indicates
that the range residuals actually relate to GNSS.
176
4.3.13.2.3.6
GSA – GNSS DOP and Active Satellites
This message describes GNSS receiver operating mode, satellites used in the
position solution reported by the GGA or GNS sentence, and DOP values.
#
Format
Description
1 %C
Mode: M = Manual, forced to operate in 2D or 3D mode,
A = Automatic, allowed to automatically switch 2D/3D
2 %D
Mode: 1 = Fix not available, 2 = 2D, 3 = 3D
3 (%2D)
A sequence of satellite ID numbers. Sequence length is variable
(depends on the amount of satellites used in solution). For more
details on satellite ID numbers, see below.
4 %.2F
Position dilution of precision (PDOP)
5 %.2F
Horizontal dilution of precision (HDOP)
6 %.2F
Vertical dilution of precision (VDOP)
7 *%2X\0D\0A Checksum (see 4.3.13.2.2)
Note: The NMEA standard states the following:
•
If either GPS or GLONASS is used for position computation, the talker ID is set
to “GP” or “GL”, respectively.
•
If GPS and GLONASS are used together, two GSA messages are generated
at one time. The first and second messages relate to the GPS and GLONASS
satellites, respectively. Both the messages, however, will have the same talker
ID, “GN”, and the same DOP values (the latter are actually computed for the
combined constellation). The talker ID “GN” indicates that this pair of
messages relate to the one and the same GNSS solution.
Satellite ID Numbers
GPS PRN numbers
1-32
GLONASS slot numbers
1-24
NMEA satellite ID numbers
1-32
NMEA satellite ID numbers
65-88
177
4.3.13.2.3.7
GST – GNSS Pseudorange Error Statistics
This message is used to support Receiver Autonomous Integrity Monitoring
(RAIM).
#
Format
Meaning
1 %6.[0-2]F
UTC time of position (the first two digits designate hours, the next
two digits designate minutes and the rest designate seconds)
2 %.3F
Estimated standard deviation of the range input's error. “SV Range
input”, which is used in the navigation process, includes this
satellite’s pseudo-range and the corresponding DGNSS correction
[meters]
3 %.3F
Semi-major axis of error ellipse [meters]
4 %.3F
Semi-minor axis of error ellipse [meters]
5 %.3F
Orientation of semi-major axis of error ellipse [degrees from true
north]
6 %.3F
RMS latitude error [meters]
7 %.3F
RMS longitude error [meters]
8 %.3F
RMS altitude error [meters]
9 *%2X\0D\0A Checksum (see 4.3.13.2.2)
Note: In case the solution computed by the receiver is not RTK fixed or RTK
float, fields 3, 4 and 5 are null fields.
4.3.13.2.3.8
GSV – GNSS Satellites in View
Number of satellites in view, satellite ID numbers, elevation, azimuth and SNR
value.
#
Format
Meaning
1 %1D
Total number of messages, 1 to 3
2 %1D
Message number, 1 to 3
3 %2D
Total number of satellites in view
4 (%2D,%2D,% Satellite ID number (see GSA for ID numbers), elevation in
3D,%2D)
degrees, azimuth in degrees and C/A signal-to-noise ratio (SNR) in
dB*Hz
5 *%2X\0D\0A Checksum (see 4.3.13.2.2)
Notes:
1. A variable number of “Satellite ID-Elevation-Azimuth-SNR” sets are allowed
(up to a maximum of four sets per message).
2. In case the number of visible SVs exceeds 4, multiple messages are
transmitted. The first field specifies the total number of messages
(minimum value 1) whereas the second field identifies the order of this
message (i.e., message number), minimum value 1.
178
3. Messages for GPS and GLONASS are generated separately: GPS
messages will have Talker ID “GP” and GLONASS messages - Talker ID
“GL”.
4. Note that the number of SVs in view can sometimes exceed 12. Since the
NMEA standard allows only three messages to be generated per epoch, a
maximum of 12 SVs can be output at a given epoch. Therefore, if the total
number of satellites in sight exceeds 12, there may be visible satellites not
included in any of the GSV messages related to the given epoch.
The following is an example “GSV” message (all of the lines correspond to the
same epoch):
$GPGSV,3,1,10…<CR><LF>
$GPGSV,3,2,10…<CR><LF>
$GPGSV,3,3,10…<CR><LF>
$GLGSV,2,1,7…<CR><LF>
$GLGSV,2,2,7…<CR><LF>
4.3.13.2.3.9
RMC – Recommended Minimum Specific GNSS Data
Time, date, position, course and speed data provided by a GNSS navigation
receiver.
#
Format
Description
1
%6.[0-2]F
UTC time of position fix (first two digits designate hours, the
next two designate minutes and the rest digits designate
seconds)
2
%С
Status: A – Data valid, V – Navigation receiver warning
3
%4.[1-7]F
Latitude in selected datum (first two digits designate degrees
and the rest designates minutes of arc)
4
%C
Latitude hemisphere: N – northern, S – southern
5
%5.[1-7]F
Longitude in selected datum (first three digits designate
degrees and the rest digits designate minutes of arc)
6
%C
Longitude hemisphere: E – eastern, W – western
7
%.[1-4]F
Speed over ground (horizontal speed) [knots]
8
%3.[1-3]F
Course over ground (true course) [degrees]
9
%S
Date: DDMMYY
10 %3.[1-3]F
Magnetic variation [degrees]
11 %C
Magnetic variation direction: E – eastern, W – western
12 %C
Mode indicator (see Positioning system mode indicator in GLL
message above)
13 *%2X\0D\0A
Checksum (see 4.3.13.2.2)
179
4.3.13.2.3.10
#
1
2
3
HDT – Heading, True
Format
%.3F
%C
*%2X\0D\0A
4.3.13.2.3.11
Description
True Heading in degrees
Symbol “T” indicates true heading
Checksum (see 4.3.13.2.2)
VTG – Course Over Ground and Ground Speed
The actual course and speed relative to the ground.
#
Format
Description
1 %3.[1-3]F
True course [degrees]
2 %C
Symbol “T” indicates True course
3 %3.[1-3]F
Magnetic course [degrees]
4 %C
Symbol “M” indicates Magnetic course
5 %.[1-4]F
Horizontal speed [knots]
6 %C
Symbol “N” indicates that horizontal speed is given in knots
7 %.[1-4]F
Horizontal speed [km/h]
8 %C
Symbol “K” indicates that horizontal speed is given in km/h
9 %C
Mode indicator (see 4.3.13.2.3.2)
10 *%2X\0D\0A
Checksum (see 4.3.13.2.2)
4.3.13.2.3.12
ROT – Rate of turn
#
1
Format
%.3F
2
3
%C
*%2X\0D\0A
Description
Rate of turn, degrees/minute, “-“ = bow turns to port else bow
turns to starboard
A = data valid, V = data invalid
Checksum (see 4.3.13.2.2)
Note: This message is available if heading mode is turned on
(i.e./par/pos/pd/hd/mode is set to ‘on’).
4.3.13.2.3.13
ZDA – Time & Date
UTC, day, month, year and local time zone.
#
Format
Description
1 %6.[0-2]F
UTC time (first two digits designate hours, next two digits
designate minutes and the rest designates seconds)
2 %2D
Day (varies between 01…31)
3 %2D
Month (varies between 01…12)
4 %4D
Year
5 %2D
Local zone hours (varies from -13 to +13)
6 %2D
Local zone minutes (varies from 00 to 59)
7 *%2X\0D\0A
Checksum (see 4.3.13.2.2)
180
Notes:
1. Local time zone is the magnitude of hours plus the magnitude of minutes
added, with the sign of local zone hours, to local time to obtain UTC.
2. To specify values of local zone hours and local zone minutes, use the
command set,pos/ltz,{H,M} (see 3.14).
4.3.13.3 TPS Proprietary ASCII messages
Important note. In prospective firmware versions, new parameters may appear in
the existing TPS proprietary ASCII messages. Note that adding new parameters
to such messages will conform to the following two rules:
1) new parameters can be appended to an existing ASCII message
(example:. ...1,2,3,@2A can be extended to ...1,2,3,10,@35);
2) new parameters can be inserted immediately before the right-hand curly brace
(symbol “}”)
(example: ...{0,1,2},27... can be extended to ...{0,1,2,rover},27...).
It is useful to bear these two rules in mind when creating new software. This will
allow program developers dealing with TPS proprietary ASCII messages to write
code forward compatible with prospective TPS firmware releases.
4.3.13.3.1
[DL] Data link status message
This message displays the status of the data links associated with the
corresponding serial ports/modem.
#
Format
Description
1 DLINK
Title of the message
2 %1D
Total number of data links (0…5). The rest of the message is available
only if this number is non-zero. Otherwise the total number of data
links value is immediately followed by the checksum.
3 ({%C,%C, Group of parameters associated with the given data link (note that the
%S,%3D, total number of such groups is determined by the previous parameter).
%4D,%4D These parameters are
,%.2F})
- Data link identifier (“A” – “D” – serial ports, “M” – modem).
- Decoder identifier (“R” – RTCM decoder, “C” – CMR decoder,”J” –
JPS decoder).
- Reference station identifier.
- Time [in seconds] elapsed since receiving last message (maximum
value = 999). Estimated with an accuracy of ±1 second.
- Number of received messages (between 0001 and 9999). If no
message has been received, this data field contains zero.
- Number of corrupt messages (between 0001 and 9999). If no
corrupt messages have been detected, this data field is set to zero.
- Data link quality in percent (0-100);
4
@%2X
Checksum
181
4.3.13.3.2
[ER] Error {var}
If your TPS receiver gets a command that, for some reason46, can't be executed,
then an error message is generated. The contents of the error message specifies
what is wrong with the issued command.
4.3.13.3.3
[PM] Parameters {var}
[PM] messages will contain information on the specific receiver parameters
(settings) used while collecting raw data measurements.
Starting with firmware version 2.2, the [PM] message format has been extended in
order to enable support for most of the parameters that the GRIL allows.
By default these messages, which may have arbitrary lengths, will be put at the
beginning of the log-file. Also, a [PM] message will be recorded into the log-file
every time one of the receiver parameters is changed.
At present, the first three “starting” [PM] messages and the [PM] messages
generated at the time of updating some of the current receiver parameters
(available in GRIL 2.3) have the following format:
PMXXXNAME=VALUE,@CC
where
XXX denotes the message length,
NAME denotes the parameter name,
VALUE denotes the parameter value,
CC is the hexadecimal checksum.
The other [PM] messages have a slightly different format, specifically:
PMXXX {VALUES},@CC
where
XXX denotes the message length,
VALUES denote the values of the parameters for the given group,
CC is the hexadecimal checksum.
Note: Attention Pinnacle™ users. [PM] message will play a very important part in
the future when new versions of Pinnacle™ appear configured to check JPS files
for being "Pinnacle-enabled". Note that this Pinnacle-protection mechanism will
use, along with the [SE] message, some of the information contained in [PM].
46
) invalid command name, invalid parameters in the command, etc.
182
4.3.13.3.4
[GS] Get GPS SV Status
This message describes the status of GPS satellites.
#
Format
Description
1 GPSVST
Title of the message
2 %2D
Total number of locked GPS satellites
3 ({%2D,%2D,%3D,
This 7-parameter section comprises:
{%2D,%2D,%2D},%
• GPS PRN number,
2D})
• elevation in degrees,
• azimuth in degrees,
• C/A signal-to-noise ratio [dB*Hz],
• P1 signal-to-noise ratio [dB*Hz],
• P2 signal-to-noise ratio [dB*Hz],
• channel navigation status (see below).
The total number of such 7-parameter sections will coincide
with the number of locked SVs.
4 @%2X
Checksum
183
Satellite navigation status
00
C/A data used for position computation
01
P1 data used for position computation
02
P2 data used for position computation
03
Ionosphere-free combination used for position computation
04
Measurements are not available
05
Ephemeris is not available
06
Unhealthy SV [as follows from operational (=ephemeris) SV health]
07
Time-Frequency parameters from the ephemeris data set may be wrong 2
08
Initial conditions (position and velocity vectors) from the ephemeris data set
may be wrong 2
09
Almanac SV health indicator is not available for this satellite 2
10
Unhealthy SV [as follows from the almanac SV health indicator] 2
11
“Alert” flag (from the word “HOW”) is set 1
12
URA indicates the absence of accuracy prediction for this SV 1
13
This SV is excluded from position computation by the user
14
SV with this frequency channel number is excluded from position computation
by the user 2
15
This SV is excluded from solution since its system number is unknown 2
16
This SV has elevation lower than the specified mask angle
17
Reserved
18
Ephemeris data is too old
19
This SV does not belong to the constellation the user has selected
20
Differential data from Base Station are not available for given satellite (this field
is meaningful only when receiver runs in DGPS)
21
Reserved
22
Wrong measurements have been detected by RAIM
23
SNR below specified minimum level
24
Reserved
25
Reserved
26
DLL is not settled
27
Ionospheric corrections are not received from base
28
Coarse code outlier has been detected
29
Reserved
30
SV is not used in RTK processing. It is similar to code 20 but is used
specifically for RTK.
31
The same as 30
32-50 Reserved
51
C/A slot is used in RTK processing
52
P L1 slot is used in RTK processing
53
P L2 slot is used in RTK processing
54
P L1 & P L2 measurements are used in RTK processing
55
C/A & P L2 measurements are used in RTK processing
56-62 Reserved
63
Satellite navigation status is undefined
1
2
GPS only
GLONASS only
184
Notes: Codes 0-3 and 45-62 will show for the given satellite which raw data
measurements have been used in position computation. The rest codes will
indicate why this salellite has been excluded from position computation.
4.3.13.3.5
[RS] Reference station status
This message contains parameters related to the reference station status.
#
Format
Description
1
REFST
Message title
2
%C
UTC time indicator:
“V” means that UTC time is valid
“N” means that UTC time is not valid
3
%6.2F
UTC time of position (the first two digits designate hours, the
next two digits designate minutes and the rest digits designate
seconds)
4
{%C,%C}
Checking reference station location: the first parameter relates
to the reference station coordinates used for referencing GPS
data (see the objects /par/ref/pos/gps/…), the second
parameter relates to the reference station coordinates used for
referencing
GLONASS
data
(see
the
objects
/par/ref/pos/glo/…).
“V” – means that the difference between the current receiver
coordinates and the user-defined reference coordinates does
not exceed the specified limit;
“N” – means that the difference between the current receiver
coordinates and the user-defined reference coordinates is
greater than the specified limit;
(see the parameter /par/ref/limit in 3.17.1)
5
@%2X
Checksum
4.3.13.3.6
[JE] Extended Jamming Suppressor information
This message contains additional quantitative information on detected in-band
interference. [JE] shows for each identified interference signal the following
estimates:
• Jamming signal frequency
• Jamming signal power
• Rejection bandwidth used by Jamming Suppressor
185
#
1
2
Format
Description
JAMEXT
(%S({%7.1F,%+3D,%2D}))
3
@%2X
Message Title
String value contains the “band descriptor” (GPS_L1,
GPS_L2, GLN_L1 or GLN_L2).
Band descriptor is followed by a sequence of
“jamming info triplets” describing all individual
jamming signals detected in the corresponding band.
Each particular jamming info triplet describes a
separate interference signal. It is comprised of (in the
order of precedence) “estimated jamming frequency”,
“estimated jamming power” and “selected rejection
bandwidth”, which are enclosed in curly braces.
Checksum
Notes:
1. Units of measurement.
• Jamming signal frequency is measured in kHz.
• Jamming signal power is measured in dBW.
• Rejection bandwidth is measured in kHz (at a -40 dB cut-off level). This
parameter can take one of the following discrete values: 5 kHz, 10 kHz,
20 kHz, 40 kHz or 80 kHz.
2. Note that [JE] message will provide information only on the two bands
enabled by the parameter /par/ajm/mode (see 3.13). Recall that the
following pairs of bands are supported:
- GPS/L1+GPS/L2,
- GLONASS/L1+GLONASS/L2,
- GPS/L1+ GLONASS/L1,
- GPS/L2+GLONASS/L2.
3. Due to the jamming power estimator's latency, the second field in the
jamming info triplet will contain the string “estm” (not a specific number) if
the message is output during the estimator's settling-down period.
4. If you enable [JE] message when anti-jamming is off (i.e., when the
parameter /par/ajm/mode is set to “off”), the message body will contain
the string Anti-jamming is off.
5. If Jamming Suppressor has detected no jamming signals, the message
body will contain the string No RFI detected.
Example (two interference signals in the GPS L1 band and one interference signal
in the GPS L2 band).
JE062,JAMEXT,GPS_L1,{1574000.3,-106,20},{1578311.8,-147,
5},GPS_L2,{1227999.8,-140, 5},@1E
186
4.3.13.3.7
[JI] Jamming Suppressor information
This message contains information about the detected in-band interference.
#
Format
Description
1 JAMINF
Message Title
2 ({%C,%S})
Receiver can detect interference signals within the following five
bands: GPS-L1, GPS-L2, GLONASS-L1, GLONASS-L2 and
MODEM47. Thus five consecutive pairs, each in the format
char,string, where the character value specifies the number of the
detected jamming signals and the string value indicates the
aggregate interference strength for the corresponding band. See
below for detailed information on these two flags.
3 @%2X
Checksum
Number of detected jamming signals:
_
Number of jamming signals is unknown
0
No jamming signal detected
1
One jamming signal detected
2
Two jamming signals detected
3
Three jamming signals detected
N More than three jamming signals detected
Aggregate in-band interference strength:
____
No jamming detected
Weak Slight
Aver
Moderate
High
Strong
Hard
Severe
4.3.13.3.8
[MS] RTCM status message
This message describes the status of RTCM rover station.
#
Format
Description
1 RTCMST Message title
2 %3D
Time [in seconds] elapsed since last message was received
(maximum value = 999). Estimated with an accuracy of ±1 second.
3 %4D
Number of received messages (between 0001…9999).
If no message has been received, this data field contains zero.
4 %4D
Number of corrupt messages (between 0001…9999).
If there are no corrupt messages detected, this data field is set to zero.
5 %.2F
Data link quality in percent (0-100).
6 @%2X
Checksum
Note: From this GRIL version on, message [MS] is considered obsolete.
We recommend that you use [DL] instead.
47
) Currently, TPS receivers do not provide meaningful information on MODEM interference. Data
fields allocated to MODEM are always filled with underscore characters.
187
4.3.13.3.9
[TX] Text message
This message allows the user to view text information derived on the rover end
from messages RTCM Type 16, RTCM Type 36 and CMR Type 2.
#
Format
Description
1 TEXT
Title of the message
2 %1D
Total number of the messages (0…2). The rest of the message is
available only if this number is non-zero. Otherwise the total number of
the messages value is immediately followed by the checksum.
3 ({%02D/% Group of parameters associated with the given text message (note
02D,%02
that the total number of such groups is determined by the previous
D:%02D:
parameter). These parameters are
%02D,”% Date of receiving of the message (MM/DD - month/day).
S”,%C,%
UTC time of receiving of the message (HH:MM:SS)
C,%S})
String value of up to 90 characters.
Decoder identifier (“R” – RTCM decoder, “C” – CMR decoder).
Data link identifier (“A” – “D” – serial ports, “M” – modem).
Reference station identifier.
4 @%2X
Checksum
4.3.13.3.10
[RM] Results of RAIM processing
This message contains RAIM output data.
#
Format
Description
1
RAIM
Message title
2
%C
UTC time indicator:
“V” means that UTC time is valid
“N” means that UTC time is not valid
3
%6.2F
UTC time of position (the first two digits designate hours, the
next two digits designate minutes and the rest of the digits
designate seconds)
4
%1D
RAIM indication:
0 - no anomalous measurements have been detected (position
is valid);
1 - RAIM is not able to detect anomalous measurements (for
example, due to poor geometry or limited number of visible
satellites) – position may be badly affected by anomalous
measurements;
2 - RAIM has detected and excluded anomalous
measurements (position is valid).
Note: Generally speaking, if more than one bad measurement
is detected, there is no guarantee that the RAIM has excluded
all bad measurements with the specified probability. However,
in most cases, RAIM runs properly even if more than one bad
measurement has been detected.
If the RAIM indicator is other than “2”, this data field is followed
by the checksum).
3 – RAIM is turned off (position may be badly affected by poor
measurements);
5
%D
Total number of excluded bad measurements
188
6
(%C%2D)
7
@%2X
4.3.13.3.11
IDs of the satellites with bad measurements. Note that the total
number of such satellites is determined by the previous
parameter).
- Navigation system identifier:
“G” – designates GPS satellites,
“R” or “F” – both designate GLONASS satellites. “F” is
used for “R” until the receiver has determined the satellite's
slot number.
- Satellite system number (or, for GLONASS, satellite
frequency channel number):
GPS SV PRN (follows after the “G” flag),
GLONASS SV slot number (follows after the “R” flag) or
GLONASS SV frequency channel number (follows after the
“F” flag);
Checksum
[NP] Navigation position
This message includes the receiver's navigational and positioning parameters.
#
Format
Description
1
NAVPOS
Title of the message
2
%C
UTC time indicator:
“V” means that UTC time is valid
“N” means that UTC time is not valid
189
3
%6.2F
4
%1D
5
%C%C
6
{%2D,%2D}
7
8
10
11
%S
%C%2Do%2D’
%2.6F"
%C%3Do%2D’
%2.6F"
%+5.4F
%C
12
%+.4F
13
14
15
16
17
18
19
20
%.2F
%.2F
%.3F
%.3F
%.4F
%+.4F
%3.3F
%C
21
22
23
24
25
%3.3F
%.3F
%.3F
%.2F
%3D
26
@%2X
9
UTC time of position (the first two digits designate hours, the
next two digits designate minutes and the rest of the digits
designate seconds)
Position computation indicator. If it equals “0”, this message
contains more meaningful information (see the following data
fields). If this indicator is non-zero, this data field is followed by
the checksum).
Position is valid only if the position computation indicator is
equal to “0”. For how to interpret other values, see below.
Position (first symbol) and velocity (second symbol)
computation mode (below).
Number of GPS and GLONASS satellites used in position
computation
Reference geodetic datum identifier
Latitude: hemisphere (“N”- northern, “S” – southern), degrees,
minutes and seconds
Longitude: hemisphere (“E”- eastern, “W” – western), degrees,
minutes and seconds
Altitude above ellipsoid [meters]
Geoidal separation indicator:
“V” means geoidal separation is valid;
“N” means geoidal separation is not valid.
Geoidal separation: the difference between the earth ellipsoid
and geoid (mean-sea-level) defined by the reference datum
[meters]
Horizontal dilution of precision (HDOP) [-]
Vertical dilution of precision (VDOP) [-]
Horizontal position RMS error [meters]
Vertical position RMS error [meters]
Horizontal velocity [kilometers/hour]
Vertical velocity [kilometers/hour]
True heading [degrees]
Magnetic heading indicator:
“V” means magnetic heading is valid;
“N” means magnetic heading is not valid.
Magnetic heading [degrees]
Horizontal velocity RMS error [meters/second]
Vertical velocity RMS error [meters/second]
Data link quality in percent (0-100)
Time [in seconds] elapsed since last RTCM, CMR or JPS
message was received (maximum value = 999). Estimated
with an accuracy of ±1 second.
Checksum
190
Position computation indicator
0 Position is valid
1 Too many iterations have been made (position is not valid)
2 Singular matrix (position is not valid)
3 Not enough data for position computation (position is not valid)
4 Either or both altitude and speed exceed specified threshold
values (position is not valid)
5 PDOP exceeds specified threshold value (position is not valid)
See the parameter /par/pos/pdop in 3.14.
Position (velocity) computation mode
A
Autonomous mode
D Code differential mode
C RTK positioning with codes
F
RTK positioning with float integers
R RTK positioning with fixed integers
4.3.13.3.12
[MP] Position in given map projection or local coordinates
The message describes receiver position in the specified map projection or local
coordinate system.
#
Format
Description
1
MAPRJ
Message title
2
%C
UTC time indicator:
“V” means that UTC time is valid
“N” means that UTC time is not valid
3
%6.2F
UTC time of position (the first two digits designate hours, the
next two digits designate minutes and the rest digits designate
seconds)
4
%1D
Position computation indicator. If it equals “0”, this message
contains meaningful information (see the following data fields).
If this indicator is non-zero, this data field is followed by the
checksum.
Position is valid only if the position computation indicator is
equal to “0”. For how to interpret other values, see below.
5
%C
Grid (or local) coordinates indicator:
“V” means that Grid (or local) coordinates are valid
“N” means that Grid (or local) coordinates are not valid
6
%S
Grid system ID (see Table below)
7
%2D
Zone of the grid system (“00”, if not available)
8
%+.4F
Northern component of grid coordinates or “X” component of
local coordinates [meters]
9
%+.4F
Eastern component of grid coordinates or “Y” component of
local coordinates [meters]
10 %+5.4F
Altitude above ellipsoid or local horizon (for local coordinates)
[meters]
11 @%2X
Checksum
191
Grid system IDs
UTM
Universal Transversal Mercator
TM
User-defined Transversal Mercator projection
STER
User-defined Stereographic projection
LOC
Local coordinates
4.3.13.3.13
[NS] Get GLONASS SV Status
This message describes the status of GLONASS satellites.
#
1
2
3
Format
GLSVST
%2D
({%2D,%2D,%2D,%
3D,
{%2D,%2D%2D},%2
D})
4
@%2X
4.3.13.3.14
Description
Title of the message
Total number of locked GLONASS satellites
This 8-parameter section comprises:
• GLONASS SV Orbit Slot Number,
• GLONASS SV Frequency Channel Number
• elevation in degrees,
• azimuth in degrees,
• C/A signal-to-noise ratio [dB*Hz],
• P1 signal-to-noise ratio [dB*Hz],
• P2 signal-to-noise ratio [dB*Hz],
• channel navigation status.
For the description of channel navigation status, see
4.3.13.3.4.
The total number of such 8-parameter sections will coincide
with the number of locked SVs.
Note: If for a GLONASS SV its orbit slot number is reported
as zero, this means that this parameter hasn't yet been
detected.
Checksum
[RE] Reply {var}
Some of the commands you send to the receiver get it to generate reply
messages. The contents of a reply message will depend on what particular
command has invoked this reply message (see 2 for more information about TPS
receiver commands).
4.3.13.3.15
[TR] “Time residuals”
This message is intended for various time transfer applications. It contains
information allowing the user to “match” an external clock to a specific
GPS/GLONASS satellite's time scale.
#
Format
Meaning
1 TIMERES Title of the message
2 %C
UTC time indicator:
“V” means that UTC time is valid
“N” means that UTC time is not valid
192
3
4
5
6
%6.2F
UTC time of position (the first two digits designate hours, the next two
digits designate minutes and the rest digits designate seconds)
%2D
Total number of satellites used in position computation
({%C%2D, Group of parameters associated with the given satellite (note that the
%.2F,%D} total number of such groups is determined by the previous parameter).
)
These parameters are
- Navigation system identifier:
“G” – designates GPS satellites,
“R” or “F” – both designate GLONASS satellites. “F” is used for “R”
until the receiver has determined the satellite's slot number.
- Satellite system number (or, for GLONASS, satellite frequency
channel number):
GPS SV PRN (follows after the “G” flag),
GLONASS SV slot number (follows after the “R” flag) or
GLONASS SV frequency channel number (follows after the “F”
flag);
“Time residual” in nanoseconds for the given satellite.
This satellite-specific time correction is defined as V1 - V2, where
V1 is the system time48 to the receiver time offset as
estimated using this particular satellite (i.e. the difference
between the satellite's own clock49 and the receiver clock).
V2 is the system time to the receiver time offset as
estimated using all of the satellites belonging to this
navigation system. Note that it is V2 that governs PPS
signals generated in the receiver.
Issue of data for satellite ephemeris:
For GPS satellites this parameter includes IODE (Issue Of
Data, Ephemeris);
For GLONASS satellites this parameter includes Ephemeris
reference time tb (7 LSB) and the indicator (MSB), which is set
to "1" if the ephemeris has been updated without a change in
t b.
Note: The interpretation of this parameter for GLONASS
satellites
is
subject
to
change
in
the
future.
@%2X
4.3.13.3.16
Checksum
[TM] Clock offsets and their time derivatives
The message contains clock offsets (the difference between receiver time scale
and GPS/GLONASS system time) and their derivatives.
48
) “System time” means GPS and GLONASS system time for GPS and GLONASS satellites,
respectively
49
) Assuming that the satellite clock has already been corrected to the corresponding system time,
either GPS or GLONASS time, by applying the broadcast frequency-time corrections. The reader
will notice that these “satellite-specific time residuals” first of all describe such effects as SA,
multipath and atmospheric delay, which are all satellite-specific.
193
#
1
2
Format
TIMING
%C
3
%6.2F
4
%1D
5
{%2D,%2D}
6
{{%C
7
8
%+.4F
%+.4F}
9
{%C
10
11
%+.4F
%+.4F}}
12
13
14
15
%.2F
%.3F
%.3F
%1D
16
@%2X
4.3.13.3.17
Description
Message title
UTC time indicator:
“V” means that UTC time is valid
“N” means that UTC time is not valid
UTC time of position (the first two digits designate hours, the
next two digits designate minutes and the rest of the digits
designate seconds)
Position computation indicator. If it equals “0”, this message
contains more meaningful information (see the following data
fields). If this indicator is non-zero, this data field is followed by
the checksum.
Position is valid only if the position computation indicator is
equal to “0”. For how to interpret other values, see [NP]
Number of GPS and GLONASS satellites used in position
computation
GPS time parameters indicator:
“V” means that GPS time parameters are valid
“N” means that GPS time parameters are not valid
[Receiver time scale] – [GPS system time] [meters]
Derivative of ([Receiver time scale] – [GPS system time])
[meters/second]
GLONASS time parameters indicator:
“V” means that GLONASS time parameters are valid
“N” means that GLONASS time parameters are not valid
[Receiver time scale] – [GLONASS system time] [meters]
Derivative of ([Receiver time scale] – [GLONASS system time])
[meters/second]
Time dilution of the precision (TDOP)
Clock offsets RMS error [meters]
RMS of the derivatives of clock offsets [meters/second]
The Improved Timing mode indicator. If it equals "0", this
means the Improved Timing mode is turned off. If this
parameter is "1" the mode is turned on.
Checksum
[RP] Reference station parameters
The message contains the reference station parameters such as the station’s
coordinates, antenna offsets, station ID, etc. These parameters are used in RTK
on the rover side.
These parameters are available via RTCM Messages Types 3, 22 or 32, CMR
Message Type 1 or JPS Message [BI].
#
1
2
Format
REFPAR
%1D
Description
Message title
Total number of groups containing the reference station
parameters. In the current version of the message, this field
194
3
4
5
6
7
8
9
10
11
12
13
14
15
can be set to 0 or 1.
“0” means that the reference station parameters are not valid.
“1” means that this message contains valid information.
({%S
Reference geodetic datum identifier
%C%2Dd%2Dm Latitude: hemisphere (“N”- northern, “S” – southern), degrees,
%2.6Fs
minutes and seconds
%C%3Dd%2Dm Longitude: hemisphere (“E”- eastern, “W” – western), degrees,
%2.6Fs
minutes and seconds
%.4F
Altitude above ellipsoid [meters]
%C
Antenna height indicator:
“V” means antenna height is valid;
“N” means antenna height is not valid.
%.4F
Antenna height [meters]
%C
Antenna East/North offsets indicator:
“V” means East/North offsets are valid;
“N” means East/North offsets are not valid.
%.4F
Antenna North offset [meters]
%.4F
Antenna East offset [meters]
%С
Decoder identifier (“R” – RTCM decoder, “C” – CMR decoder,
“J” – JPS decoder).
%С
Data link identifier (“A” – “D” – serial ports, “M” – modem, “U” –
by user input).
%S})
Reference station identifier.
@%2X
Checksum
By default, this message, as many other TPS messages, is output only after its
contents have changed.
4.3.13.3.18
[RK] RTK parameters
The message contains some RTK-related parameters, such as the difference
between the base receiver time and the rover receiver time, estimated probability
of fixing ambiguities correctly, etc.
#
1
2
Format
RTKPAR
%C
3
%6.2F
4
5
6
7
%D
%.1F
%.2F
%+.4F
8
%+.4F
Description
Message title
UTC time indicator:
“V” means that UTC time is valid
“N” means that UTC time is not valid
UTC time of the position fix (the first two digits designate
hours, the next two digits designate minutes and the rest of the
digits designate seconds)
Fixing ambiguity progress, in percentage []
Estimated probability of fixing ambiguities correctly []
χ2 for the position fix []
Time shift between the rover and base receiver times [multiplied
by the speed of light and presented in meters]
Derivative of time offset between the rover and the base
[meters/second]
195
9
%.2F
10
@%2X
4.3.13.3.19
Root-mean-squared single differenced ionosphere error as
estimated by the RTK engine [meters]
Checksum
[AP] Position covariance matrix
This message is an ASCII version of the message [SP].
#
1
2
Format
POSCOV
%C
3
%6.2F
4
%C
5
6
7
8
9
10
11
12
13
14
15
16
%C
%.3E
%.3E
%.3E
%.3E
%.3E
%.3E
%.3E
%.3E
%.3E
%.3E
@%2X
4.3.13.3.20
Description
Message title
UTC time indicator:
“V” means UTC time is valid
“N” means UTC time is not valid
UTC time of the position fix (the first two digits designate
hours, the next two digits designate minutes and the rest of the
digits designate seconds)
Position covariance matrix indicator:
“V” means that Position covariance matrix is available
“N” means that Position covariance matrix is not available
If this indicator is “N”, the indicator is followed by the
checksum.
Position computation mode (see [NP]).
Cov(1,1)
Cov(2,2)
Cov(3,3)
Cov(4,4)
Cov(1,2)
Cov(1,3)
Cov(1,4)
Cov(2,3)
Cov(2,4)
Cov(3,4)
Checksum
[AB] Baseline length
This message contains the length and coordinates of the reference station–rover
baseline.
#
1
2
Format
BASLIN
%C
3
%6.2F
4
%C
Description
Message title
UTC time indicator:
“V” means UTC time is valid
“N” means UTC time is not valid
UTC time of the position fix (the first two digits designate
hours, the next two digits designate minutes and the rest of the
digits designate seconds)
Baseline length indicator:
“V” means that baseline length is available
“N” means that baseline length is not available
196
5
6
7
8
9
10
%C
%.4F
%.4F
%.4F
%.4F
@%2X
If this indicator is “N”, the indicator is followed by the
checksum.
Position computation mode (see [NP]).
X(ref) – X(rover) [meters]
Y(ref) – Y(rover) [meters]
Z(ref) – Z(rover) [meters]
Position SEP [meters]
Checksum
4.3.14 RTCM messages
4.3.14.1 Introduction to RTCM messages
RTCM (Radio Technical Commission For Maritime Services) SC-104 (Special
Committee 104) has developed a standard for differential GNSS (Global
Navigation Satellite Systems) service (see [6]). The standard formulates
recommendations in the following areas:
(1) Data message and format – The message elements that make up the
corrections, the status messages, the station parameters and ancillary
data are defined in some details.
(2) User interface – A standard interface is defined which enables a
receiver to be used in concert with a variety of different data links.
The formats both GPS/GLONASS RTK data and GPS/GLONASS differential
corrections are defined as well as the formats of the messages, which includes,
e.g., reference station parameters, special message etc.
This standard is used, for example, for broadcasting the differential corrections by
the radio-beacon based differential services located near coastal waters all over
the world.
Every RTCM message consists of a variable number of 30-bit words (the reader
will notice some resemblance to the structure of the GPS Navigation Message).
The first two words in any RTCM message serve as the message header. The
header comprises the following data fields: preamble, message type, reference
station ID, modified Z-count, sequence number, length of frame and station
health. The contents of the other words will depend on the type of the message
(see 9 for more details).
4.3.14.2 List of RTCM Messages Supported by TPS Receiver
Table 1 contains a list of RTCM messages currently supported by TPS receivers.
The column “type” indicates the message type number as specified in the RTCM
standard.
The second column shows the message's TPS-specific identifier (or simply “ID”).
When the user enables a particular RTCM message with an appropriate
command, he/she specifies the message “ID”, not the message “type”.
The third column, “title”, describes the message contents.
197
The fourth column, “period”, specifies the default periods of the corresponding
RTCM messages.
The last column explains how to calculate an RTCM message's length in 30-bit
words. Note that according to the RTCM standard it takes the receiver five bytes50
to transmit a 30-bit word. This is because the two MSB in each of these five bytes
are “reserved” (more precisely, set to some pre-defined values). Thus the
following formula to compute the actual length of an RTCM message [in bits]:
[Length in bits] = [Length in 30-bit words] × 5 × 8
Table 1.
Notation:
- N designates the total number of satellites
- S designates the length (in characters) of the user-specified text
Type
Id
Title
Period
(seconds)
1
10
30
1
60
30
1
1
3
6
9
15
16
18
1
3
6
9
15
16
18
Differential GPS corrections
GPS reference station parameters
GPS null frame
GPS partial correction set
Ionospheric delay message
GPS special message
RTK uncorrected carrier phases
19
19
RTK uncorrected pseudoranges
1
20
20
RTK carrier phase corrections
1
21
21
1
22
31
32
34
34
22
31
32
34
65
36
36
RTK/High accuracy pseudorange
corrections
Extended reference station parameters
Differential GLONASS corrections
GLONASS reference station parameters
GLONASS partial correction set
GLONASS null frame
(34th message with N=0)
GLONASS special message
Length in 30-bit words
10
1
10
1
30
2+N*2-N/3
2+4
2
2+N*2-N/3
2+N*2-N/2
2+1+(S-1)/3
3+N*2 for C/A or P L1 data
2*(3+N*2) for L1+L2 data
3+N*2 for C/A or P L1 data
2*(3+N*2) for L1+L2 data
3+N*2 for C/A or P L1 data
2*(3+N*2) for L1+L2 data
3+N*2 for C/A or P L1 data
2*(3+N*2) for L1+L2 data
(2+1) to (2+3)
2+N*2-N/3
2+4
2+N*2-N/3
2
30
2+1+(S-1)/3
This table indicates how many 30-bit words each specific RTCM message takes.
For information on the total amount of data (in bytes) transmitted by the reference
station in RTK or DGPS, see Appendix F. Amount of Data Transmitted by
Reference Station in Differential modes.
50
) 8-bit bytes are meant
198
4.3.15 CMR messages
4.3.15.1 Introduction to CMR messages
The Compact Measurement Record (CMR) format was developed by Trimble
Navigation Limited and now is approved for public use. The format is suitable for
communication links that have a minimum of 2400 baud throughput (assuming
that only GPS data is used). It provides significant advantages over RTCM
messages (the latter are at least twice as long as compared against their CMR
counterparts). It should be noted however that the original version of the CMR
format does not allow for GLONASS. Therefore the original format definition
needs to be expanded to include GLONASS.
4.3.15.2 List of CMR Messages Supported by TPS Receivers
Table 2 lists CMR messages currently supported by TPS receivers. The column
“type” indicates the message type as specified in the CMR standard except the
message type var(3). TPS defined this type to overcome some limitations existing
in the CMR protocol.
The second column shows what TPS specific identifiers (“ID”s) are assigned to
different CMR messages. When enabling a CMR message with an appropriate
GRIL command, the user specifies its “ID”, not “type”.
The third column, “title”, describes what kind of data each CMR message
contains.
The fourth column, “period”, defines default periods for CMR messages.
The last column explains how to calculate the length of a CMR message (in
bytes).
Table 2.
Notation:
- N designates the total number of satellites.
- S is the length (in characters) of Long Station ID.
- FREQ takes “1” and “2” for single- and dual-frequency measurements,
respectively.
- Var indicates that the type is subject to change
Type
Id
0
1
2
var (3)
0
1
2
10
+
9
∗
Title
GPS observables
Reference station coordinates
Reference station description
GLONASS observables (TPS
proprietary message)
Scrolling Station Information
∗
Period
(seconds)
1
10
10
1
Length in bytes
6 + N * (8 + (FREQ-1) * 7)
31
31+S
6 + N * (8 + (FREQ-1) * 7)
1
16
) This message has been developed for reducing the peak throughput of the CMR format. It is
used for CMR message types 1 and 2. Data from this message type is transmitted by “frames”.
Each frame is 16 bytes in size (7-byte message body plus 9 auxiliary bytes), and is transmitted
199
4.4
Message groups and sets
Each of the receiver's messages has a unique name and a set of scheduling
parameters associated with it. There are four scheduling parameter types:
“period”, “phase”, “count”, and “flags”. When you enable the receiver to output a
specific message (as a separate message or as part of a message set) to a
specific destination (a port or a file), the “operating” scheduling parameters
governing the output are selected taking into account various settings, specifically:
- values explicitly specified at the time of issuing em or out commands,
- the default values of “count” for the commands em and out,
- the scheduling parameters specified for the given message as part
of the corresponding message set (these are taken into account when
enabling a message set, not an individual message),
- the current scheduling parameters (provided that you have started outputting
the given message to the given destination earlier; otherwise, such parameters
are undefined), and
- the default scheduling parameters specified for the given message as part of
the corresponding message group.
Note that the above categories of parameters are listed in the order of their
precedence (highest to lowest). User-specified values will override the command
defaults. In turn, the command defaults will override the values assigned to the
message sets, etc.
4.4.1 Message groups
There may be several message groups used in your receiver. Each group
comprises several related messages and also specifies their default scheduling
parameters.
Currently, TPS receivers support five message groups: “/msg/jps”, “/msg/nmea”,
“/msg/rtcm”, “/msg/cmr”, and “/msg/misc”. As follows from their names, these
groups comprise JPS, NMEA, RTCM, CMR and miscellaneous51 messages,
respectively. Note that more groups can be added in the future.
How do you handle message groups?
You can apply the list and print commands to the message groups as
follows:
print,/msg/jps
print,/msg/nmea
print,/msg/misc
print,/msg/jps/NAME
print,/msg/nmea/NAME
list,/msg/jps
list,/msg/nmea
list,/msg/jps/NAME
list,/msg/nmea/NAME
together with CMR Message Types 0 and 10, which allows considerable reduction of the data link
peak load.
For more details about this message, see ftp://ftp.trimble.com/pub/survey/bin/uconf97.exe
51
) Currently there are only two messages, MET3 and AGTILT, in the miscellaneous group. Both
are used very rarely, if ever.
200
where NAME should be replaced with a specific message name.
Note that the print command enables the receiver to output the corresponding
scheduling parameters for messages whereas the list command instructs the
receiver to output only message names.
Example 1.
list,/msg/jps
RE03D{JP,MF,PM,EV,XA,XB,ZA,ZB,YA,YB,RT,RD,ST,LT,BP,TO,DO,OO,UO,GT,
RE040 NT,GO,NO,TT,PT,SI,NN,EL,AZ,SS,FC,RC,rc,PC,pc,CP,cp,DC,CC,cc,EC,
RE040 TC,R1,P1,1R,1P,r1,p1,1r,1p,D1,C1,c1,E1,F1,R2,P2,2R,2P,r2,p2,2r,
RE040 2p,D2,C2,c2,E2,F2,ID,PV,PO,PG,VE,VG,DP,SG,BI,SE,PS,GE,NE,GA,NA,
RE040 WE,WA,WO,GS,NS,rE,rM,rV,TM,MP,TR,MS,DL,TX,SP,SV,RP,RK,BL,AP,AB,
RE01F re,RM,RS,IO,JI,JE,NP,LH,EE,ET}
Example 2.
print,/msg/nmea:on
RE021/msg/nmea={GGA={1.00,0.00,0,0x0},
RE017 GLL={1.00,0.00,0,0x0},
RE017 GNS={1.00,0.00,0,0x0},
RE017 GRS={1.00,0.00,0,0x0},
RE017 GSA={1.00,0.00,0,0x0},
RE017 GST={1.00,0.00,0,0x0},
RE017 GSV={1.00,0.00,0,0x0},
RE017 HDT={1.00,0.00,0,0x0},
RE017 RMC={1.00,0.00,0,0x0},
RE017 ROT={1.00,0.00,0,0x0},
RE017 VTG={1.00,0.00,0,0x0},
RE017 ZDA={1.00,0.00,0,0x0},
RE019 P_ATT={1.00,0.00,0,0x0}}
Example 3.
print,/msg/jps/JP
RE011{1.00,0.00,0,0x0}
4.4.2 Message sets
What is the difference between message sets and message groups?
To begin with, message sets, unlike message groups, do not necessarily
comprise “related” messages. Second, you can enable the receiver to output a
whole message set with a single command but you can't make it output an entire
message group in this way.
There may be several message sets in your receiver, and in the future there may
appear new message sets as the firmware is updated.
TPS receivers currently support the following six message sets:
/msg/def This is the default set of messages. It is used when starting data
logging with the MINTER FN button or when running em and out commands
with the second argument “/msg/def/”, e.g.
em,,/msg/def.
/msg/rtk/jps/min is the minimum adequate message set for an RTK
system using slow modems. The set comprises the messages: RT, SI, rc, cp,
2r,
2p,
BI,
ET.
For
example,
the
command
em,/dev/ser/c,/msg/rtk/jps/min allows your receiver to transmit
necessary JPS RTK minimum correction set to port C.
201
/msg/rtk/jps/max is the complete set of RTK messages. This set is
preferable if the modem throughput is high enough. The set comprises the
messages: RT, SI, rc, cp, DC, EC, 2r, 2p, D2, E2, BI, ET.
/par/out/dev/ser/? (here “?” designates “a”, “b”, “c” or “d”). This message set
comprises messages enabled for output to the corresponding serial port.
/par/out/cur/term This message set comprises messages enabled for output to
the current terminal.
/par/out/cur/log This message set comprises messages enabled for output to
the current log-file (if such a file exists). If there is no current file, this message
set is undefined.
Given a message set, its messages will be output in the same order in which
they have been checked in this set. The user can rearrange messages in the
set if necessary. To do this, the user may need, first, to remove all or some
of the messages from the corresponding message set and then put the
required messages back but in the right order.
Attention users of Pinnacle™ and other TPS post-processing software:
If a set of messages to be used is other than the default one or if the adopted
order of messages in the default set of messages is changed in some way, make
sure that the updated set of messages maintains the “epoch synchronization”, i.e.,
the messages [~~] and [RD] precede the messages containing code, carrier
phase and other types of measurements collected at the current epoch. Should
the user violate this condition, he or she may not be able to correctly process
corresponding raw data files with Pinnacle™ and other TPS post-processing
software.
The list below shows the default set of messages:
list,/msg/def
RE040{jps/JP,jps/MF,jps/PM,jps/EV,jps/XA,jps/XB,jps/RT,jps/RD,jps/SI,
RE040 jps/NN,jps/EL,jps/FC,jps/RC,jps/DC,jps/EC,jps/TC,jps/CP,jps/1R,
RE040 jps/1P,jps/2R,jps/2P,jps/E1,jps/D2,jps/E2,jps/SS,jps/SE,jps/PV,
RE040 jps/ST,jps/DP,jps/TO,jps/DO,jps/UO,jps/IO,jps/GE,jps/NE,jps/GA,
RE01D jps/NA,jps/WE,jps/WA,jps/WO}
The contents of a message set can be found by using the commands print and
list (in fact, this is similar to applying print and list to message groups).
You will notice one small difference here. When querying a message set with
print and list, you will be notified of not only the messages' individual names
but also the names of the groups they are associated with, for example:
print,/par/out/cur/term
RE01C{nmea/GGA={1.00,0.00,0,0x0}}
list,/par/out/cur/term
RE00A{nmea/GGA}
202
Also, a query can be confined to messages from a particular group. In this case,
the receiver will omit the group names reporting only the individual names, e.g.:
print,/par/out/cur/term/nmea
RE017{GGA={1.00,0.00,0,0x0}}
The commands set, remove, and create are currently applicable only to the
message set “/msg/def”.
Examples.
create,/msg/def/jps/GS instructs the receiver, first, to add JPS message
[GS] to the end of the default set of messages and, second, assign this message
its default scheduling parameters.
remove,/msg/def/jps/GA instructs the receiver to remove JPS message [GA]
from the default set of messages.
set,/msg/def/jps/SI,{1,0,0,0} instructs the receiver to change the
scheduling parameters previously assigned to JPS message [SI] in the default set
of messages.
For detailed information about the message scheduling flags, see 7.
203
5 Step-by-step instructions about using TPS receivers
in differential modes
5.1
Set up base station
1. Ensure that your receiver is in neither base nor rover mode. To do this, issue
the commands:
set,/par/rover/mode/,off
set,/par/base/mode/,off
2. Switch your receiver to the autonomous (stand-alone) positioning mode:
set,/par/pos/mode/cur,sp
3. Enter precise reference position coordinates, e.g.
set,/par/ref/pos//geo,{W84,N37d22.425m0s,W122d58.856m0s,1005.5}
4. Suppose you are going to output differential messages to serial port C. First,
disable output of any messages to this port: dm,dev/ser/c. In most cases, it is
also recommended to set /par/dev/ser/c/imode to “none”.
5. To enable your receiver to transmit necessary differential messages to port C,
you will issue the following commands as specified in the table below:
RTCM RTK (full
em,/dev/ser/c,rtcm{/18:1,/19:1,/22:10,/3:10}
measurements)
RTCM RTK (corrections) em,/dev/ser/c,rtcm{/20:1,/21:1,/22:10,/3:10}
CMR RTK
em,/dev/ser/c,cmr{/10:1,/0:1,/1:10} *) see below
CMR+ RTK
em,/dev/ser/c,cmr{/10:1,/0:1,/9:1} *) see below
Code differential,
em,/dev/ser/c,rtcm{/1:1,/31:1,/3:10}
full correction set
Code differential,
em,/dev/ser/c,rtcm{/9:1,/34:1,/3:10}
Partial correction set
JPS RTK, minimum
em,/dev/ser/c,/msg/rtk/jps/min
correction set
JPS RTK, maximum
em,/dev/ser/c,/msg/rtk/jps/max
correction set
Recall that CMR is intended for RTK applications only.
*) We strongly recommend using CMR messages in the specified order.
6. If you are going to use the built-in modem, you should first set the correct
modem mode, (i.e. you should send either set,/par/dev/modem/a/type,fhout or
set,/par/dev/modem/a/type,ssout) and then enable the receiver to output the
necessary messages to the modem:
em,/dev/modem/a,rtcm{/18:1,/19:1,/22:10,/3:10}, when using RTCM,
em,/dev/modem/a,cmr{/10:1,/0:1,/1:10}, when using CMR,
em,/dev/modem/a,/msg/rtk/jps/max or em,/dev/ser/a,/msg/rtk/jps/min when
using JPS.
See 3.17.1 for more information about running your receiver in base mode.
5.2
Set up rover station
1. Ensure that your receiver is in neither base nor rover mode.
set,/par/rover/mode/,off
204
set,/par/base/mode/,off
2. Suppose you are going to use port C to input RTCM, CMR or JPS messages.
In most cases, it is recommended to disable output of any messages to this
port: dm,dev/ser/c
3. Set port C to the correct differential mode. To enable your rover station to
receive RTCM, CMR or JPS messages on port C, send the command
set,/par/dev/ser/c/imode,rtcm,
set,/par/dev/ser/c/imode,cmr
or
set,/par/dev/ser/c/imode,jps respectively.
4. If using the internal modem, specify the correct modem mode first. Send either
set,/par/dev/modem/a/type,fhin or set,/par/dev/modem/a/type,ssin. Then select
the required port mode:
set,/par/dev/modem/a/imode,rtcm, for RTCM messages
set,/par/dev/modem/a/imode,cmr, for CMR messages.
set,/dev/ser/c/imode,jps, for JPS messages.
5. Finally, select between RTK and code differential modes. If you use RTK, send
set,/par/pos/mode/cur,pd. If you use code differential, run the command
set,/par/pos/mode/cur,cd.
Note that you can check the quality of your radio link by examining data from [DL]
message (for more information on this message, see 4.3.13.3.1).
5.3
Disable base mode for base station
First, send the command set,/par/base/mode/,off. If the internal modem has been
used, turn it off too: set,/par/dev/modem/a/type,off.
5.4
Disable rover mode for rover station
First, send the command set,/par/rover/mode/,off. Also, if this receiver is in a
mode other than “sp”, send the command set,/par/pos/mode/cur,sp. Finally, if you
have been using the internal modem, turn it off with the command
set,/par/dev/modem/a/type,off.
205
6 Step-by-step instruction about using TPS receivers in
Multiple reference stations mode
6.1
Set up base station
1. Specify reference position coordinates:
set,/par/ref/pos//geo,{W84,… }
2. Enter the reference station ID. This ID will include in CMR Plus messages.
Each station must have its own unique ID:
set,/par/cmr/base/stid,N where N is the number between 0 and 31.
3. Set the parameters for transmitting output frames.
a) Adjust transmission delays.
With transmission delays you allow the reference stations to broadcast
multiple RTK data on the same frequency. The value of the delay depends
on the total number of reference stations you want to use. Table below
shows recommended time delays according to the number of reference
stations transmitting on the same frequency.
Total number of
reference
stations
One
Two
Three
Four
Delay for Base 1
[seconds]
Delay for Base 2
[seconds]
Delay for Base 3
[seconds]
Delay for Base 4
[seconds]
0.030
0.030
0.030
0.030
0.530
0.363
0.280
0.696
0.530
0.780
To specify the transmission delay, use the following command (hereafter in
this section we assume the use of port C for broadcasting CMR Plus data):
set,/par/dev/ser/c/oframe/delay,D where D denotes a time delay.
b) Determine the length of the interval of transmission.
This parameter also depends on the total number of reference stations.
However, in contrast to the above-mentioned parameter, this parameter is
the same for all reference stations. With this parameter you provide a
mechanism that forces the receivers to transmit RTK data within the
specified time interval. We recommend you to use the values from table
below.
Total number of
reference stations
One
Two
Three
Four
Length of the interval of
transmission [seconds]
0.950
0.450
0.283
0.200
The corresponding command looks as the following:
set,/par/dev/ser/c/oframe/length,L where L is the length.
c) Set the period of transmitting of output frames.
This parameter must be set to the same value as the period of outputting
CMR Plus messages. For example, if the output interval of CMR Plus
messages is equal to 1 second, then this parameter must also be set to 1.
It can be achived with the following command:
set,/par/dev/ser/c/oframe/period,1.0
206
d) To enable the receiver to transmit the output frames to port C, you will
issue the following command:
set,/par/dev/ser/c/oframe/mode,on
4. Set serial port baud rate. If your radio modem runs at 9600 baud rate, the
following command must be used:
set,/par/dev/ser/c/rate,9600
5. Enable output of CMR Plus messages to port C with the period 1 second:
em,/dev/ser/c,cmr{/0,/9}:1.0
6. To ignore any data incoming on port C, use the command:
set,/par/dev/ser/c/imode,none
This command is necessary if the modems installed at the reference stations
are capable to receive data.
6.2
Set up rover receiver
1. Send the following set of commands:
set,/par/rover/mode/,off
set,/par/base/mode/,off
dm,/par/dev/ser/c
set,/par/dev/ser/c/imode,cmr
set,/par/pos/mode/cur,pd
2. Select the receiver’s baud rate for port C:
set,/par/dev/ser/c/rate,9600
Make sure that the modem’s port with which the receiver’s port is
communicating is set to the same baud rate.
3. Enable [DL] message.
After the connection to the reference stations has been established, the
user is able to view the information of the available reference stations using
[DL] message. The output of this message through the current terminal can
be enabled with the command:
em,,/msg/jps/DL
For example, this message can look as the following:
DL04C,DLINK,2,{B,C,0002,001,1722,0000,100.00},{B,C,0001,001,1719,0
000,100.00},@5D
This message reports that two sources of CMR data are available at port B.
These two sources of data have “2” and “1” reference station IDs,
respectively.
Note: There is a rule according to which the sources of RTK data are
arranged. The group of parameters associated with the reference station,
which data are used for computing RTK solution, is enclosed inside the first
curly braces52.
4. Select the reference station you want to use by specifying its ID. In this
case the RTK solution will only be referenced to the selected reference
station. Use [DL] message to detect which base stations work on the
52
) Unless the parameter /par/pos/pd/inuse is set to “-1” or the parameter /par/pos/pd/nrs/mode is
set to “on”.
207
frequency you use. Once you have made the decision about which of the
stations you want to use, set the following command:
set,/par/pos/pd/inuse,ID
This parameter ranges between 0 and 31. By default, ID is equal to -1. It
means that data received from any station will be used for computing RTK
position. If two or more sources of RTK data are available, factory default
setting may lead to the inability to compute RTK solution because RTK data
will be mixed with each other. Thus, in this case it is necessary to specify
the reference station ID or turn on mode of selecting the nearest reference
station.
The next step will explane to you how to set up the nearest reference
station.
5. Turn on the mode of selecting the nearest reference station:
set,/par/pos/pd/nrs/mode,on
Enabling this mode allows the receiver to use RTK data obtained from the
nearest reference station. In process of the survey, the receiver will be
automatically switched to the nearest station. At the moments of such
switches, RTK solution will not be available (the RTK engine will be reset,
so during some epochs the receiver will output stand-alone solution).
Note:
When running the receiver in this mode, make sure that the
parameter /par/pos/pd/inuse is set to -1. Otherwise, the receiver will
continue using the reference station ID specified with the previous
parameter.
Also, there is a couple of parameters related to this mode:
1) The user can specify the maximum difference in distances
between the receiver and reference stations for switching from
the previous nearest station to the current one. It can be done
with the following parameter:
set,/par/pos/pd/nrs/lim,D where D is the distance in meters.
This parameter lies in the range 1.0…10000.0 meters. The
default value is 25 meters.
2) Specify the command set,/par/pos/pd/nrs/cnt,N where N is the
parameter varies from 1 to 30000. The default value is 10. With
this parameter you set the value of a counter. The counter
defines the total number of attempts during which the new
nearest staton will still be remained as the nearest one among
the other reference stations available.
For more information about these parameters, see 3.17.2.4.1.
208
7 Daisy Chain feature
Below in this section, the notation [port] is used to denote an input port of the
receiver's, for example, dev/ser/a, dev/modem/a or cur/term.
You can make your TPS receiver redirect data from a port to an “output stream”.
We will call this receiver feature “data echoing”. “Output stream” may be either a
port (e.g. /dev/ser/a) or the current log-file (/cur/log). Each receiver port has
a set of parameters through which it can be controlled. One of these parameters is
named /par/[port]/echo (or, for short, “echo parameter”). A port's echo
parameter defines the output stream into which you are going to redirect input
data thus activating data echoing. Specifically, this parameter contains the name
of a valid output stream (e.g. /dev/ser/a or the string /dev/null (the latter
indicates that data echoing is disabled for the corresponding port). The default
value is /dev/null for all of the receiver's ports.
Whatever the value of /par/[port]/echo, the receiver will handle input data on
the port in accordance with its input mode. Recall that you select among the port
input modes via the parameter /par/[port]/imode. If you want to disable
interpretation of input data on [port], you should set the port's input mode to
echo.
After a port's input mode is switched to echo and the corresponding echo
parameter is set to a value other than /dev/null, incoming data will be
redirected to the specified output stream without interpreting them.
If a port's input mode is switched to echo, but the corresponding echo parameter
is set to /dev/null, then incoming data will still be interpreted as commands
(note that these data are redirected nowhere in this case). This situation is
equivalent to running this port in cmd mode.
There are two ways to disable data echoing and return to cmd mode.
The most straightforward, yet not always a feasible solution, is to reset the port's
echo parameter back to /dev/null by issuing an appropriate command via this
or another port.
The other way is based on using a special sequence of characters (“echo-off
sequence”) that are sent to the port to disable data echoing.
When do we have to use the echo-off sequence to disable data echoing for
[port]? We have to use this technique if
- /par/[port]/echo ≠ /dev/null
- /par/[port]/imode = echo
- none of the ports are running in command mode.
The receiver provides a “watchdog mechanism” that will force the echo parameter
/par/[port]/echo to /dev/null as soon as the echo-off sequence is
received and identified. Note that the input mode remains unchanged for [port].
Bear in mind that the echo-off sequence will get to the output stream before the
watchdog mechanism goes off. Suppose that the port you redirect data to is
connected to a device that interprets the output stream somehow. What happens
if the device mistakes the echo-off sequence (or part of it) for one of its own
control sequences (commands)?
Obviously, this can cause problems. Therefore, the echo-off sequence must meet
the following two requirements:
209
1) The echo-off sequence must be as distinctive from other possible character
combinations on the port as possible. This will minimize the probability of “false
alarm”.
2) Neither the echo-off sequence as a whole nor any part of it should be
coincident with any of the external device's control sequences.
Every port has its own special sequence to turn off data echoing. This sequence is
stored in the parameter /par/[port]/eoff. The default value is #OFF# for all
of the receiver's ports. This sequence is safe as long as you connect TPS
receivers to each other (note that #OFF# will be interpreted as a comment for a
pure TPS daisy chain configuration).
While data echoing is on, incoming data are redirected into an output stream
unchanged and without delay. There are applications, however, where this is
unacceptable. Suppose you have two or more ports concurrently redirecting their
input data into the same output stream. Generally speaking, you may not be able
to distinguish among data from different ports unless special measures are taken.
TPS receivers provide a special feature, called “wrapped echoing”, allowing you to
effectively mix data from different sources without corrupting data integrity in the
output stream. To activate “wrapped echoing”, set the parameter
/par/[port]/ewrap to “on”.
When “wrapped echoing” is turned on, the receiver packs individual characters on
the port into a separate message in JPS format. Note that this message also
contains the identifier of the corresponding port, which allows you to easily
distinguish data from different sources in the output stream.
Once the new message is packed up, it is redirected to the output stream. How
does the receiver know when to send off this message? The message is sent off
as soon as either the message buffer is full or the time passed since some data
was last received on the port exceeds the timeout threshold. Note that the
message has the header [>>].
The following examples illustrate how to set up a daisy chain configuration and
then return to normal operation.
A. Suppose you are going to use a control device (PC, hand-held, etc.) to handle
the modem through your TPS receiver's ports. Assume that your modem is on
port C whereas the control device is connected to another port. Also assume that
the echo-off sequence should be set to QUIT for the current terminal.
To set up the required daisy chain configuration, run the following commands (for
brevity, we omit here such commands as “set baud rate”, etc.):
Enables data echoing from port C to the
current terminal
set,dev/ser/c/imode,echo
Disables input data interpretation on port C
set,cur/term/eoff,QUIT
Defines an echo-off sequence for the current
terminal
set,cur/term/echo,/dev/null
Disables data echoing on the current
terminal
set,cur/term/imode,echo
Disables input data interpretation on the
current terminal
set,cur/term/echo,/dev/ser/c
Enables data echoing from the current
terminal to port C
The above settings will instruct the receiver to redirect all input from port C to the
current terminal and to redirect input data from port C to the current terminal.
set,dev/ser/c/echo,/cur/term
210
QUIT
set,cur/term/imode,cmd
set,dev/ser/c/echo,/dev/null
set,dev/ser/c/imode,cmd
Turns off data echoing for the current terminal.
Enable input data interpretation on the current
terminal.
Returns the current terminal to command
mode
Disables data echoing on port C
Returns port C to command mode
B. Suppose you want to monitor commands sent to port B by using the current
terminal. It can be done with the following command:
set,dev/ser/b/echo,/cur/term
To turn off data echoing for port B, run
set,dev/ser/b/echo,/dev/null
211
8 Appendix A. Message Scheduling Flags
In this appendix, we consider the “message scheduling flags”. These flags govern
the process of the receiver outputting messages. Each message scheduling flag
can be represented as a binary word in which only one bit is set. The bit-wise OR
product of these flags specifies the “flags” option associated with the em command
(see 2.6).
The following is a list of the message scheduling flags. Hexadecimal
representations are followed by flag names. Note that these names are introduced
here only for the reader's convenience and are used nowhere except this
particular appendix (remember that these names can't be used when you explicitly
specify the “flags” option for your em or out command).
0x0001 F_OUT
0x0002 F_CHANGE
0x0004 F_OUT_ON_ADD
0x0008 F_NOTENA
0x0010 F_FIX_PER
0x0020 F_FIX_PH
0x0040 F_FIX_CNT
0x0080 F_FIX_FL
0x0100 reserved
0x0200 reserved
0x0400 reserved
0x0800 F_DISABLE
0x1000...0x8000 reserved
Here is the description of the message scheduling flags:
F_OUT: If this flag is set, the first of the messages invoked by the corresponding
command will be output at the epoch53 closest to the command execution time
(whatever the specified “period” option).
F_CHANGE: If this flag is set, the corresponding message will be output only if
the message data have changed. Note that the receiver checks whether the
message data have changed specifically at the moments matching the given
“period”. The field “phase”, which loses its original function in this case, now plays
the role of a “forced output period” (“forced output” means that the corresponding
message will be output whether its contents will have changed or not). If the field
“phase” is set to zero, then the receiver performs no “forced output” so that the
corresponding message will be output only on condition that its data have
changed.
53
) as specified by the parameter /par/raw/curmsint
212
F_NOTENA: Suppose you are going to set F_NOTENA for a message which is
already “checked” in the message set associated with the chosen output stream
and which already has F_DISABLE=1 in this message set (see the description of
F_DISABLE below). In this case, the receiver will retain the F_DISABLE value as
it is (i.e., F_DISABLE=1).
The receiver uses this flag in order not to output the file header every time you
change the “period” value when recording data into the log file (for, example, if
you send em,,def:1 followed by em,,def:5, you instruct the receiver to
change the output interval from 1 second to 5 seconds).
The flags F_FIX_PER, F_FIX_PH, F_FIX_CNT and F_FIX_FL are used to disable
the user to change the option values (“period”, “phase”, “count”, “flags”) through
the corresponding commands. For example, the command em,,def:2 will not
allow you to set the jps/XA message output period to 2 seconds since, for jps/XA,
the flag F_FIX_PER is set to unity (as established for the default set of messages
“/msg/def”).
F_DISABLE is not explicitly programmable by the user. When one enables a
message with a nonzero “count”, then, after this message has been output “count”
times, the message scheduler sets this flag to “1” for the corresponding message
set.
F_OUT_ON_ADD: If this flag is set, then the (first) message will be output
immediately after executing the corresponding em or out command. Messages
that do not allow asynchronous output will just ignore this flag. Currently only two
TPS messages, [JP] and [MF], can be output asynchronously. When setting
messages from the default set of messages to their factory defaults, these kinds
of flags are always set to unity.
213
9 Appendix B. Format and Naming Conventions
In the context of this reference manual:
- byte means 8-bit byte
- the least significant bit always has zero index.
Data field types used in this document:
• a1
1-byte ASCII character
• i1
1-byte signed integer
• i2
2-byte signed integer
• i4
4-byte signed integer
• u1
1-byte unsigned integer
• u2
2-byte unsigned integer
• u4
4-byte unsigned integer
• f4
4-byte floating point (IEEE) number
• f8
8-byte floating point (IEEE) number
• str
zero-terminated sequence of ASCII characters
• nstr sequence of ASCII characters prepended by an u1-type
value specifying the number of characters in the sequence
[units,type]
This notation means that the corresponding value has the type “type” and is
measured in “units”.
{length}
For a fixed length message, “length” is a constant defining the message length.
For a variable length message, “length” may be either an arithmetic expression
depending on some other variable parameters or just the string “var”.
nSats
This denotes the actual number of satellites the given message involves.
For binary messages, some of their integer and floating point fields may contain54
special values, which are intended to warn the user when the corresponding data
are just unavailable. Binary fields that always have meaningful values are marked
with the plus sign, “+” (see the first column of the field definition). The following
table specifies (unique) special values for various data field types:
Field Type
Special Value
i1
u1
i2
u2
i4
u4
f4
f8
127 (0x7F)
255 (0xFF)
32767 (0x7FFF)
65535 (0xFFFF)
2147483647 (0x7FFF_FFFF)
4294967295 (0xFFFF_FFFF)
NaN (0x7FC0_0000)
NaN (0x7FF8_0000_0000_0000)
54
) unless otherwise stated
214
10 Appendix C. Computing 8-Bit Checksum for Receiver
Commands & Messages
8-bit checksum is computed according to the following algorithm:
typedef unsigned char u1;
u1 cs(u1 const* buf, int count) {
enum {
bits
= 8,
lShift = 2,
rShift = bits - lShift
};
#define ROT_LEFT(val) ((val << lShift) | (val >> rShift))
u1 res = 0;
}
while(count--)
res = ROT_LEFT(res) ^ *buf++;
return ROT_LEFT(res);
For messages, 8-bit checksum is computed starting with the first byte of the
message identifier and ending with the byte immediately preceding the checksum
field55.
For commands, 8-bit checksum is computed starting with the command's first
non-blank byte and ending with the “@” inclusive.
Warning: Make sure that this 8-bit checksum has the type “unsigned char” in
your code. Otherwise the sign bit will be extended in right shifts.
55
) Recall that in ASCII messages the checksum field will be preceded by “@”.
215
11 Appendix D. TPS Data Transfer Protocol
The terms “transmitter” and “receiver” are usually used to name the
communicating parties in transfer protocol descriptions. We will call the TPS board
“TPS receiver” in this section to distinguish it from the receiving end of the
protocol called “receiver”.
All multi-byte fields are sent in least significant byte (LSB) first order.
11.1 Protocol description
Data transfer protocol is primarily designed for downloading measurement files
from TPS receivers to a host computer. The process of downloading/uploading
should be initiated by command(s) sent to the TPS receiver that specifies which
file should be transmitted. After a transfer is initiated, parties should use the
protocol described here.
The protocol is a fixed-size block protocol with checksum and the ability to re-send
a block multiple times if a transmission error occurs. The format of a single block
could be represented by the following C structure:
struct Block {
u1 type;
// Block type:
// ORDINAL (SOB, 0x02)
// LAST (EOT, 0x04)
// ABORT (#, 0x23)
// The following fields do not exist for block type 'ABORT'.
union {
u2 number; // Block number for block of type
// ORDINAL (0 - based).
i2 count;
// Number of bytes of data in the
// block of type LAST. Value -1
// indicates transfer error. In this
// case 'data' field of the block
// contains a zero-terminated string
// describing the error type.
};
u1 data[size512]; // Data. In the block of type LAST
// only the first 'count' bytes are
// valid. The rest of the bytes are filled
// with zeroes.
u2 cs;
// Checksum of bytes starting from
// the 'type' field up to, but not
// including, 'cs' field. It is calculated
// through all blocks starting from block 0.
u1 eob;
// End Of Block marker (EOB, 0x03).
};
The transmitter sends blocks of this format in response to the receiver’s request.
Requests are single byte values. There are three types of requests:
1. Request to re-send the latest block (NACK, negative acknowledge,
0x15).
2. Request to send next block (ACK, positive acknowledge, 0x06).
3. One of the characters in the range [!-/] (ASCII codes [0x21-0x2F]) to
abort transfer. The particular value sent denotes which error occurred.
The transmitter should ignore the rest of the values.
216
After the transfer protocol is initiated, the receiver should send NACK request to
instruct the transmitter to send the first block (block number zero (0)). If an error
occurs in the received block, the receiver could send NACK to instruct the
transmitter to re-send the block. After the block is successfully received (including
test for data integrity), the receiver sends ACK to instruct the transmitter to send
the next block. If ACK or NACK was sent but no data is received from the
transmitter, ACK or NACK can be resent. In the latter case there is the possibility
of losing synchronization between the transmitter and receiver (i.e. the receiver
thinks the transmitter received only one ACK but the transmitter actually received
two ACKs). To deal with this situation the block number is implemented. The
receiver can detect if synchronization is lost by checking that the block number
stored in the received block matches the required block number. The first block
sent will have a block number of zero (0) and each following block will be
incremented by one (1).
The protocol can be terminated by the following events:
1. Transmitter sends a block of type LAST with a positive “count” field. This
is a normal end of transfer. In this case the last “count” bytes of data are
in the “data” field of the block. The rest of the bytes of the “data” field are
filled with zeroes.
2. Transmitter sends a block of type LAST with a ”count” field equal to “-1”
(minus one). This means that an error on the transmitter end has
occurred. The “data” field of the block contains a zero-terminated ASCII
string describing the error in this case.
3. Transmitter sends a block of type ABORT (i.e. sends “#” instead of SOB
or EOT). This means that the receiver should immediately terminate its
operation.
4. Receiver sends a code in the range [0x21-0x2F] instead of ACK or
NACK. This means that an error on the receiver end has occurred. In
this case the particular value sent denotes the error code.
11.2 CRC16 calculation algorithm
The CRC16 checksum is calculated from the bytes of blocks starting from the field
“type” up to but not including the field “cs”. The initial value of “cs” is set to zero (0)
at the beginning of the transfer session. Each additional block uses the initial
value for “cs” obtained from the previous successfully sent block.
217
typedef unsigned short Crc16;
enum {
WIDTH = 16, /* Width of poly (number of most significant bits).
*/
POLY = 0x1021, /* Poly. Bit #16 is set and hidden. */
BYTE_BITS = 8, /* Number of bits in byte. */
TABLE_SIZE = 1 << BYTE_BITS, /* Size of table. */
MSB_MASK = 1 << (WIDTH - 1)
/* Mask for high order bit in
word. */
};
/* Table (generated by 'crc16init()'. */
static Crc16 table[TABLE_SIZE];
/*Initializes the table. Should be called once before the first
call to 'crc16()' */
void crc16init(void)
{
Crc16 i;
for(i = 0; i < TABLE_SIZE; ++i) {
Crc16 val = i << (WIDTH - BYTE_BITS);
int j;
for(j = 0; j < BYTE_BITS; ++j)
val = (val << 1) ^ ((val & MSB_MASK) ? POLY : 0);
table[i] = val;
}
}
/* Calculates CRC16 of 'cnt' bytes from 'src' and returns result.
Starting value of CRC16 is supplied by caller in 'crc'. */
Crc16 crc16(Crc16 crc, void const* src, int cnt)
{
unsigned char const* s = (unsigned char const*)src;
while(cnt-)
crc = (crc << BYTE_BITS) ^
table[(crc >> (WIDTH - BYTE_BITS)) ^ *s++];
return crc;
}
Assuming the received block is stored into the buffer named “block”, the control
sum checking could be done as follows:
unsigned char block[1 + 2 + 512 + 2 + 1];
Crc16 crc = 0;
...
/* NOTE: crc isn't reset to 0 at each block. */
crc = crc16(crc, block, 1 + 2 + 512);
if(crc == crcReceived)
/* Checksum is correct */
else
/* Checksum is wrong */
To achieve this result, the transmitter calculates the “cs” field as follows:
218
unsigned char block[1 + 2 + 512 + 2 + 1];
Crc16 crc = 0;
...
/* NOTE: crc isn't reset to 0 at each block. */
crc = crc16(crc, block, 1 + 2 + 512);
/* Resulting 'crc' is output by transmitter LSB first. */
219
12 Appendix E. Frame format for Free-Form Events
12.1 Preface
The purpose of this document is to describe a “frame format” for free-form
events. Recall that free-form events are supported not only by Field Face™ but
also by other TPS software packages.
In this document the reader will also find the detailed description of all of the
free-form event types supported by Field Face™. Not only fully described are
these event types, but also recommendations are given as to how program
developers should handle every specific free-form event type.
We suggest that program developers, whether TPS or “outside” software
engineers, should strictly follow the proposed frame format when writing code
dealing with free-form events56. This will allow them to avoid unnecessary format
clashes in the future.
12.2 General format of TPS Free-Form Events
Field Face uses the following format for free-form events:
<DATA_NAME>=<value>
where <DATA_NAME> designates one of the following names:
_ANT, _ANH, _DYM, _SIT, _CAN, _SAV, _DSC, _FEA.
<DATA_NAME> determines the “physical” type of the corresponding event.
By convention, all free-form events created by TPS software must start with
underscore. To avoid format conflicts, third-party program developers who create
their own TPS receiver interfacing software should not use the leading underscore
in their own (“non-TPS”) <DATA_NAME>s unless these are syntactically and
semantically identical to the TPS counterparts.
Below we will use <DATA_NAME> to refer to specific free-form event
types.
12.3 Currently supported TPS Free-Form Events
12.3.1 _ANT Event (“ANTENNA TYPE”)
This event indicates TPS antenna type used. The value of an _ANT event is a
non-empty string comprising up to 20 ASCII characters. Although this event can
contain an arbitrary string, it is highly recommended to use only antenna type
names approved and standardized by IGS. For officially adopted antenna type
identifiers, visit the GPS Antenna Calibration page on the IGS web site at
http://www.ngs.noaa.gov/ANTCAL/.
Examples: _ANT=TOP_CR3_GGD
_ANT=TOP_HIPER_GD
56
) unless this format is, for some reason, unacceptable for their specific task.
220
12.3.2 _ANH Event (“ANTENNA HEIGHT”)
The value of an _ANH event has the format <height_value>[s], where
height_value is an ASCII representation of the measured antenna height in
meters.
Antenna height is expressed as a float in the “usual” (not scientific) notation so
that the integer part is delimited from the fractional one with a dot. The optional s
character indicates, if present, that the corresponding value relates to the
measured slant. If no optional character is used, this indicates the measured
vertical.
Example 2. _ANH=2.000
Example 3. _ANH=1.543s
12.3.3 _DYM Event (“DYNAMICS”)
The value of a _DYM event can be either STATIC or DYNAMIC.
STATIC indicates that the antenna phase center (APC) is fixed at the moment this
event is issued (and that the APC will probably remain static for some time after
issuing this event, say, until another _DYM event appears).
On the contrary, DYNAMIC indicates that the APC will probably not be static after
the event is issued.
Example 4. _DYM=STATIC
Example 5. _DYM=DYNAMIC
12.3.4 _SIT Event (“SITE”)
The value of a _SIT event is a non-empty string comprising up to 20 ASCII
characters. Currently only alpha-numeric characters, hyphen and underscore are
allowed for use. In the future, however, we plan to relax the above mentioned
limitations on _SIT <value>.
By TPS convention, _SIT<value> serves as an occupation (or site) identifier. Note
that this kind of information plays a very important part in post-processing
applications.
Example 6. _SIT=P1-34_aBcD
12.3.5 _CAN Event (“CANCEL”)
The value of a _CAN event is a non-empty string comprising up to 20 ASCII
characters. Currently only alpha-numeric characters, hyphen and underscore are
allowed for use.
A CANCEL event is issued if the user wants the post-processing software to
ignore the earlier entered occupation name.
Post-processing software is supposed to take a particular CANCEL event into
account if the following two conditions exist:
- the CANCEL event is preceded by at least one SITE event in the log-file;
the CANCEL event and the latest of the SITE events preceding it have the
same value. If it is not the case, the CANCEL event is considered “false”
and is discarded.
A CANCEL event, if identified as valid, will instruct the post-processing software to
“cancel” the given occupation, i.e., all the data collected over the interval between
221
the corresponding SITE and CANCEL events will not be attributed to any of the
measured occupations.
12.3.6 _SAV Event (“SAVE”)
The value of a _SAV event is a non-empty string comprising up to 20 ASCII
characters. Currently only alpha-numeric characters, hyphen and underscore are
allowed for use.
Post-processing software is supposed to take a particular SAVE event into
account if the following two conditions exist:
- the SAVE event is preceded by at least one SITE event in the log-file;
- the SAVE event and the latest of the SITE events preceding it have the same
value. If it is not the case, the SAVE event is considered “false” and is
discarded.
SAVE events are intended to notify the post-processing software that the
corresponding occupation is finished and that all of the data recorded at this
occupation are considered valid.
By TPS convention, a SAVE event, if considered “true”, indicates that, as a rule,
data recorded after issuing this SAVE event do not belong to the occupation
whose name is specified in the field _SAV <value>.
Example 8. _SAV=P1-34_aBcD
12.3.7 Site Scope
Below in this document, we will use the term “named site scope” or just “site
scope”. The formal definition of the term is as follows:
Named site scope in a TPS receiver log-file is a set of messages recorded into
this file over the interval between a site scope opening event, which is always a
SITE event, and the corresponding site scope closing event, which can be
- another SITE event with a different <value>
- a SAVE event with the same <value>
- a CANCEL event with the same <value>
- a DYNAMICS event whose <value> differs from the <value> of the previous
DYNAMICS event in this scope.
12.3.8 _DSC Event (“DESCRIPTION”)
This event type enables the user to associate a free format comment with the
current occupation. Issuing a _DSC event while not within a particular site scope
still can be quite useful. Interpreting “out of scope” description events is a
software-specific procedure.
A DESCRIPTION event's value can be an arbitrary sequence of 8-bit bytes
excluding
- <CR> (0x0D),
- <LF> (0x0A),
- <double quote> " (0x22).
Note that double backslash (i.e. \\) is used to represent backslash itself.
Notes:
222
1. Currently Field FaceTM does not allow the user to enter description text
longer than 127 bytes.
2. In DESCRIPTION events, it is assumed that all of the bytes whose values
are less than 128 as well as the two-byte sequences \r, \n, and \' will
represent ASCII characters. However, no assumptions are made regarding
other bytes that can be found in this type of event, i.e., interpreting such
bytes is software-specific.
12.3.9 _FEA Event (“FEATURE”)
This event type allows the user to specify a “spatial feature” for an object related
to the GIS project being done.
This object can have more than one attribute associated with it so that the field
operator will have to do work similar to filling in a questionnaire form.
The general format of _FEA event is as follows:
_FEA=EntityName:FieldName|FieldType|Units=ValueAsText
where
EntityName=AuthorityID.EntityNameProperly
FieldType and Units are optional (by default, “string” and “meter”).
There exist four field types: s, i, f, d (string, integer, float, date and time,
respectively). The symbol “|”(0X7C) serves as a delimiter.
Also, if a feature event contains a numeric value, it may be necessary for the
operator to specify the unit of measurement (meters, seconds, etc.). The letter
designating the unit of measurement is put before the equality sign (“=”), which is
followed by the corresponding numeric value (see the example below).
Example. Supposing we want to define a few features for a light post while
performing our GIS survey. Assume that the following information needs to be
entered into the receiver log file:
POST (name of the object that we enter the features for)
Height: 4.2 meters
Material: aluminum
Condition: poor
Age: 99 years
In this example, the four feature events will look as follows:
_FEA=SuperSurveyorLTD.POLE:SuperSurveyorLTD.Height|f|m=4.2
_FEA=SuperSurveyorLTD.POLE:SuperSurveyorLTD.Material|s=alumi
num
_FEA=SuperSurveyorLTD.POLE:SuperSurveyorLTD.Condition|s=poor
_FEA=SuperSurveyorLTD.POLE:SuperSurveyorLTD.Age|i|year=99
223
12.4 Additional comments on _CAN and _SAV
For post-processing software, it would be incorrect to consider the free-form
events CANCEL and SAVE as the only possible end-of-occupation indicators. In
some scenarios, the end of an occupation may coincide with the end of the file, or
with the beginning of another occupation (_SIT event), or with some other events.
If the situation is especially involved, the post-processing software may need to
prompt the user for additional information in order to correctly recognize the
occupation boundaries, etc.
224
13 Appendix F. Amount of Data Transmitted by Reference
Station in Differential modes
Before running real-time kinematic or code differential, it is required to estimate
the amount of data transmitted by the base station via the given data link. This
numeric characteristic is critical to answering the important question: Whether the
given data channel's throughput is sufficient for the particular task or not?
In this appendix, the user will find a few simple equations describing the amount57
of transmitted RTCM data as a function of the number of satellites, the navigation
system type (GPS or GLONASS) and the receiver frequency capability (single- or
dual-frequency unit).
13.1 Code Differential Mode
In code differential, the reference station will transmit either RTCM message type
1 (GPS Differential Corrections) together with RTCM message type 31
(GLONASS Differential Corrections), or RTCM message type 9 (GPS Partial
Differential Corrections) together with RTCM message type 34 (GLONASS Partial
Differential Corrections). In the second case (i.e., when using partial differential
corrections), data for only up to three satellites may be transmitted at one time
whereas, in the first case, data for all of the tracked satellites are transmitted
simultaneously. This explains why the amount of data in RTCM messages types 9
and 34 is always less or equal to the amount of data in RTCM messages types 1
and 31. Note, however, that this reduction of the amount of transmitted data is
achieved at the expense of position accuracy deterioration, which should be born
in mind when choosing between the full and partial differential correction
messages.
The minimum amount of data required in code differential is described by
the following equation:
[Number of 30-bit words] = 2 + N*2 - [N/3],
where N designates the number of satellites.
This equation allows the user to calculate the amount of data for a single
navigation system (either GPS or GLONASS). To get an aggregate estimate of
the number of 30-bit words required for GPS+GLONASS, just calculate separate
estimates for GPS and GLONASS and then sum them up. (Note that the brackets
[ ] here designate the operation “division without remainder”, e.g., [2/3]=0, [3/3]=1,
[4/3]=1).
To go from 30-bit words to 8-bit bytes, the estimated number of bytes, as it follows
from the RTCM standard, should be multiplied by 5.
Example.
Assuming the reference station has been tracking 10 GPS SVs and 5 GLONASS
SVs.
First assume that differential data are transmitted by means of RTCM
messages types 1 and 31. Then the number of required 30-bit words is equal to:
2 + 10*2 + [10/3] + 2 + 5*2 + [5/3] = 38.
57
) in bytes
225
Thus the number of bytes 38×5=190.
On the other hand, assuming the use of RTCM messages types 9 and 34
(all other things being the same), we will get the following estimate for the number
of 30-bit words:
2 + 3*2 + [3/3] + 2 + 3*2 + [3/3] = 18.
Therefore the number of bytes is 18×5=90.
13.2 Real Time Kinematic
Currently TPS receivers support two RTK protocols, specifically:
♦ RTCM message types 18 and 19;
♦ RTCM message types 20 and 21;
♦ CMR
13.2.1 Protocol Using RTCM Message Types 18 and 19 (or 20 and 21).
The minimum amount of data required in RTK is described by the following
equation:
[Number of 30-bit words] = 2*FREQ*(3+2*N),
where
N designates the number of satellites,
FREQ = 1 and 2 for single- and dual-frequency receivers, respectively.
This equation allows the user to calculate the amount of data for a single
navigation system (either GPS or GLONASS). To get an aggregate estimate of
the number of 30-bit words required for GPS+GLONASS, just calculate separate
estimates for GPS and GLONASS and then sum them up.
It should be born in mind that the reference station will transmit its coordinates
too. Reference station coordinates are normally transmitted less frequently than
raw measurements. However, these kinds of “rare data” too should be taken into
consideration when estimating the peak throughput for the given data link.
Nine 30-bit words are used to transmit the reference station's position, specifically,
six words in RTCM message type 3 and three words in RTCM message type 22.
To go from 30-bit words to 8-bit bytes, multiply the estimated number of words by
5 (in accordance with the RTCM standard).
Example.
Assuming the reference station has been tracking 10 GPS SVs and 5 GLONASS
SVs. Let's also assume that dual-frequency data are transmitted. Then the
number of required 30-bit words is equal to:
2*2*(3 + 10*2) + 2*2*(3 + 5*2) = 144.
Thus the number of bytes 144×5=720. The data amount corresponding to the
“peak throughput” is equal to 144+9 = 153 30-bit words or 153*5= 765 bytes.
13.2.2 CMR and CMR Plus protocols
The minimum amount of data required in RTK is described by the following
equation:
[Number of bytes] = 6 + N * (8 + (FREQ-1) * 7),
where
N designates the number of satellites,
FREQ = 1 and 2 for single- and dual-frequency receivers, respectively.
226
This equation allows the user to calculate the amount of data for a single
navigation system (either GPS or GLONASS). To get an aggregate estimate of
the number of 8-bit bytes required for GPS+GLONASS, just calculate separate
estimates for GPS and GLONASS and then sum them up.
It should be born in mind that the reference station will transmit its coordinates
and description too. Reference station coordinates and description are normally
transmitted far less frequently than raw measurements. However, these kinds of
data too should be taken into consideration when estimating the peak throughput
for the data link. When the CMR protocol is used, 31 bytes are required to
transmit the reference station's position (recall that this is the size of CMR
message type 1) and 81 bytes (maximum) are required to transmit the reference
station’s description (CMR message type 2).
To further the progress of reducing the peak throughput, Trimble Navigation
Limited has developed a new technique which allows the receiver to transmit the
reference station information by small frames (Scrolling Station Information), in
preference to sending all of the information at a time. Each frame is 16 bytes in
size (7-byte message body plus 9 auxiliary bytes), and is transmitted along with
CMR Message Types 0 and TPS proprietary GLONASS message.
Below we will compares the performance of the CMR and CMR Plus formats.
Assuming the reference station has been tracking 10 GPS SVs and 5 GLONASS
SVs. Let's also assume that dual-frequency CMR data are transmitted by the
reference station.
CMR
The minimum amount of data required
in RTK: 6+10*(8+7) + 6+5*(8+7) = 237
bytes.
The amount of data corresponding to
the data channel's peak throughput:
237+31+81= 349 bytes.
CMR Plus
The minimum amount of data required
in RTK: 6+10*(8+7) + 6+5*(8+7) = 237
bytes.
The amount of data corresponding to
the data channel's peak throughput:
237+16=253 bytes.
227
14 Appendix G. TPS Receiver Parameter Flowchart
/a&blocks(p)
/dev
/blk
/a&block_size(p)
15
15
/mode
79
/span
80
/avg
/ref
/pos
/src
97
/syspos
/gps
/xyz
78
/glo
/xyz
78
/gps
/geo
79
/glo
/geo
79
/gps
/xyz(p)
65
/glo
/xyz(p)
65
/gps
/geo(p)
65
/geo(p)
65
/glo
/offs
78
/l2_l1
78
/log&count(p)
16
/ant
/limit
/minsvs
/frg
/[port]
48
/term
202
/log
202
/elm
/[port]
47
47
/epochs
/[port](p)
47
/dev
/ser
/a...d
202
/glo
/type
Error! Bookmark not defined.
/meas
/p2
/amp(p)
22
/pcode
84
/stat(p)
22
/stid
84
/ext
22
/desc
84
/input
/cmr
- node
(p)- print only
(s)-set only
a...d - for ports A to D
(o)- obsolete
79
/cur
/out
21
/motion
84
84
/base
/rover
/glo
/sat
/gps
/type
/sat
/fcn
Error! Bookmark not defined.
Error! Bookmark not defined.
48
48
/N
/lock
48
48
/glo
/fcn
/opts
/N
125
/NAME(p)
/opts
126
/NAME
/date(p)
/NAME
/cur(p)
/NAME
/leased(p)
/NAME
/mode
/purchased(p)
125
125
125
125
78
78
/base
/mode
/ant
Legend
/dc(p)
21
21
/curinp(p)
21
/inp
20
228
/jps
85
/rtcm
80
/cmr
83
48
/extandc(p)
29
/out
27
/board(p)
/ab
26
/c
26
27
/charger(p)
/bat
/curmode(p)
/mode(p)
27
27
/pwr
/a(p)
27
/b(p)
27
/speed
28
/curspeed(p)
28
/charge
/conv(p)
29
/a5v(p)
26
/d5v(p)
26
/a3v(p)
26
/d3v(p)
26
/ext(p)
26
/bat
28
/curbat(p)
28
/meas
/rtm
/tscale
/ver
/smi
/ca
111
/p1
111
/p2
111
/code
52
/carrier
52
111
111
51
/iono
/dopp
/minsmi
52
/smi
51
/band
54
/pll
/gdl
/raw
/clp2
/msint
/order
55
/adapt
56
/band
54
/loop
56
/loops
55
/indband
55
/comband
55
/static
55
49
/clp
/curmsint(p)
51
/smi
51
/corr
/ca
/cagdl
/band
/locdtm
54
/rover
/usenm
86
86
/ver
Error! Bookmark not defined.
/svm
81
/health
/rtcm
81
/stid
82
/smooth
82
/end
82
/es
82
/ver
Error! Bookmark not defined.
/locdtm
/base
/reset
13
/power
13
/sleep
13
/load(p)
16
/text
/sys
81
/meas
/sat
/waas
80
/[1|2]
229
114
/instead0
115
/ion
115
/gps
82
/glo
82
/ca
82
/p1
82
/p2
82
/uptime(p)
14
/model(p)
14
/ver
/main(p)
/mem(p)
14
/id(p)
14
/rcv
/flash
/waitstates(p)
/ver
/waas
/raw
17
/main(p)
14
/boot(p)
14
/hw(p)
14
/board(p)
116
/numb
14
116
/gpio
/event
14
/modem(p)
14
/out
35
/value
36
/[a|b]
/thermo
/out(p)
17
/a(p)
15
/locked(p)
75
/lock
/in
/edge
/time
/tied
75
74
74
74
75
/par
/dev
/blk
/a
/size(p)
15
/files(p)
15
/free(p)
15
/bad_blocks(p)
/rtc
/time(p)
/pps
/lpm
/cpu
/gps
15
15
/per
/ms
72
/offs
/ms
72
/offs
/ns
72
/edge
72
/time
72
/mper
/tied
/out
74
/[a|b]
14
/frq(p)
16
/prn(p)
49
/prn
/cmd
17
/verify(p)
/N
/create
73
71
48
/prefix
/a
/b
/c
109
/par
/ajm
/mode
53
/osc
/mode
53
/rover
/base
/gp
/ggalim
/fix
/pos
/mode
/rtcm
/cur
96
95
95
/sec
113
/alt
114
/min
230
/xyz(p)
94
/valid(p)
94
/glo
113
/GLL
113
/GNS
113
/VTG
114
/speed
/VTG
114
/res
/GRS
114
112
94
/geo(p)
94
/xyz(p)
94
113
/deg
/offset
112
94
/geo(p)
/min
/head
/valid(p)
/got
113
/nmea
107
107
/xyz
112
112
/frac
107
/geo
/gps
86
/GGA
/ver
/d
/e
107
107
/notvis
49
/elm
/sc
49
/lock
/period
108
/count(p)
18
/log
/sc
/rot
/mode
/gps
/force
19
/rmold
19
/mode
18
/sp
59
/cur
59
/sat
60
/sat
/filt
/mode
70
/type
70
/num
70
/maxdel
70
/reset(s)
71
/weight
71
/mode
90
/meas
/aflevel
90
/period
/pd
92
/hd
/port
/period
18
/phase
18
/count
18
/N
60
/ca
91
/p2
91
/len
97
/mode
97
/pos
/fixpos
91
/keep
98
/se
92
/clean
99
/rlim
105
/mult
/mode
105
/nearest
105
/mix
/mixpos
/cd
/maxage
/port
/ionofree
/datum
/cur
66
/USER
66
/[D]
67
/p90
/fsn
/fixpos
/raim
/al
231
/maxage
105
/par
67
/par
68
/ell
68
68
/N
60
/N
60
60
60
/fsn
/clk
107
67
/NAME
/glo
/best
105
69
/sat
/sat
106
105
/par
/NAME
106
104
/iono
/local
/0
/uselen
90
/ref
/pos
91
/p1
64
/manual
112
/mode
111
97
/xyz
96
/geo
96
/raim
/grid
/fix
61
/pdop
/pd
/elm
59
/ltz
63
/sp
/dev
/msint
50
/sys
61
/gpsglo
63
/geoidh
62
/alt
61
/curmsint(p)
51
/reset
/minsnr
13
/mode
111
/USER
68
/cur
68
/alt
62
/geoidh
62
/gpsglo
63
/dyn
93
/iono
61
/tropo
61
/meas
59
59
/ser
/a...d
/dup
31
/omode
31
/imode
30
/echo
31
/eoff
31
/ewrap
31
/rate
32
/rate&def
32
/ir
/rtscts
/dup
/cur
/modem
/term
/?
30
/echo
31
/eoff
31
/ewrap
31
/rate
32
/rate&def
/ir
/rtscts
32
/stops
32
/parity(p)
33
232
32
33
/bits(p)
33
32
33
/omode
31
/pin
23
/dup
/dial
23
/state(p)
23
/err(p)
23
/port(p)
24
/mode
22
/a
/prl
/stops
/parity(p)
32
/bits(p)
/modem
/dev
31
/imode
32
32
31
/imode
30
/echo
31
/eoff
31
/ewrap
31
/omode
/dup
31
31
/auto
110
/rot
110
/dyn
110
/action
109
109
/file
109
/button
/dev
/blk
/stat
/except
/fsinit
15
/nv
/str
47
/str(p)
/job
46
/removed
46
/N
/cmds
/active
41
/mode
40
/cmds
/stat(p)
/sess
/restart
46
/N
41
/N
42
40
/job
/spec
41
/cmds
41
42
/count
41
42
/port
41
/N(p)
42
/next(p)
43
/N
/job
40
/active(p)
42
/count(p)
42
/count
/stat
/job(p)
43
/time(p)
43
/time
/opts
/NAME
/mode(o)
/hd
/rcvid(o)
/rtcm
15
13
/note
/note(p)
/a
/uselen(o)
/cur(o)
125
126
126
/len
/0(o)
126
126
/mode(o)
/meas(o)
126
/iono(o)
126
126
/raw
/tropo(o)
/eim(o)
/button
/opts
/period(o)
/NAME(o)
126
/version
/rtcm
/opts
/main(o)
/rover
/NAME(o)
126
/pos
&[name,size,time](p)
/log
/NAME&size(p)
/NAME(p) 15
15
/log
16
/cur
/log&size(p)
16
126
126
126
/maxage(o)
126
15
15
233
126
/curr(p)
43
/delta(p)
43
15 Appendix H58. Reference Ellipsoids and Local Datums
Ellipsoid ID
Semi-major axis a
(meters)
Reciprocal of
flattening 1/f
Description
AA
AN
6377563.396
6378160.0
299.3249646
298.25
Airy 1830
Australian National
BR
6377397.155
299.1528128
Bessel 1841 (Ethiopia
Indonesia Japan and
Korea)
BN
6377483.865
299.1528128
CC
6378206.4
294.9786982
CD
6378249.145
293.465
EB
6377298.556
300.8017
EA
EC
EF
6377276.345
6377301.243
6377309.613
300.8017
300.8017
300.8017
EE
6377304.063
300.8017
ED
6377295.664
300.8017
RF
6378137.0
298.257222101
HE
HO
ID
IN
KA
AM
FA
SA
WD
WE
PE
6378200.0
6378270.0
6378160.0
6378388.0
6378245.0
6377340.189
6378155.0
6378160.0
6378135.0
6378137.0
6378136.0
298.3
297.0
298.247
297.0
298.3
299.3249646
298.3
298.25
298.26
298.257223563
298.257839303
Bessel 1841
(Namibia)
Clarke 1866
Clarke 1880 (As
accepted by DMA)
Everest (Brunei and
E.Malaysia (Sabah
and Sarawak))
Everest (India 1830)
Everest (India 1956)
Everest (Pakistan)
Everest (W.Malaisia
and Singapore 1948)
Everest (W.Malaisia
1969)
Geodetic Reference
System 1980
Helmert 1906
Hough 1960
Indonesian 1974
International 1924
Krassovsky 1940
Modified Airy
Modified Fischer 1960
South American 1969
WGS 1972
WGS 1984
PE-90
List of DATUMS Supported by TPS Receivers
Relationships between local datums and WGS84
##
Geodetic DATUM
Translation
Vector (meters)
Scale (ppm) and Rotation
DATUM ID
Reference
Ellipsoid
DX
DY
DZ
µ
Vector (seconds of arc)
εx
εy
εz
0
WGS 1984
W84
WGS84
0.0
0.0
0.0
0.0
0.0
0.0
1
PZ 1990
P90
PZ-90
0.0
0.0
1.0
0.0
0.0
0.0
2
WGS 1972
W72
WGS72
0.0
0.0
4.5
0.227
0.0
0.0
58
0.0
0.2062648
-0.554
) information on reference ellipsoids and local datums presented in this Appendix was borrowed
from [3]
234
3
ADINDAN
4
ADINDAN
5
ADINDAN
6
ADINDAN
7
ADINDAN
8
ADINDAN
9
ADINDAN
10
AFGOOYE
ADI-M
(Ethiopia and
Sudan)
ADI-E
(Burkina Faso)
ADI-F
(Cameroon)
ADI-A
(Ethiopia)
ADI-C
(Mali)
ADI-D
(Senegal)
ADI-B
(Sudan)
AFG
(Somalia)
Clarke1880
-166
-15
204
Clarke1880
-118
-14
218
Clarke1880
-134
-2
210
Clarke1880
-165
-11
206
Clarke1880
-123
-20
220
Clarke1880
-128
-18
224
Clarke1880
-161
-14
205
Krassovsky1940
-43
-163
45
Clarke1880
-143
-90
-294
Clarke1880
-138
-105
-289
Clarke1880
-153
-5
-292
Clarke1880
-125
-108
-295
Clarke1880
-161
-73
-317
Clarke1880
-134
-105
-295
Clarke1880
-169
-19
-278
Clarke1880
-147
-74
-283
Clarke1880
-142
-96
-293
Clarke1880
-160
-6
-302
Clarke1880
-157
-2
-299
Clarke1880
-175
-23
-303
Clarke1880
-79
-129
145
International1924
-173
253
27
Clarke1880
-136
-108
-292
Clarke1880
-263
6
431
Clarke1880
-83
37
124
International1924
-130
-117
-151
International1924
-112
-77
-145
Clarke1880
-130
29
364
Zeros
ARF-M
11
ARC 1950
12
ARC 1950
13
ARC 1950
14
ARC 1950
15
ARC 1950
16
ARC 1950
17
ARC 1950
18
ARC 1950
19
ARC 1950
20
ARC 1960
21
ARC 1960
22
ARC 1960
23
AYABELLE
LIGHTHOUSE
24
BISSAU
25
CAPE
26
CARTHAGE
27
DABOLA
28
EUROPEAN 1950
29
EUROPEAN 1950
30
LEIGON
(Botswana,
Lesotho, Malawi,
Swaziland, Zaire,
Zambia and
Zimbabwe)
ARF-A
(Botswana)
ARF-H
(Burundi)
ARF-B
(Lesotho)
ARF-C
(Malawi)
ARF-D
(Swaziland)
ARF-E
(Zaire)
ARF-F
(Zambia)
ARF-G
(Zimbabwe)
ARS-M
(Kenya and
Tanzania)
ARS-A
(Kenya)
ARS-B
(Tanzania)
PHA
(Djibouti)
BID
(Guinea-Bissau)
CAP
(South Africa)
CGE
(Tunisia)
DAL
(Guinea)
EUR_F
(Egypt)
EUR_T
(Tunisia)
LEH
(Ghana)
235
Zeros
Zeros
31
LIBERIA 1964
32
MASSAWA
33
MERCHICH
34
MINNA
35
MINNA
36
M'PORALOKO
37
38
NORTH SAHARA
1959
OLD EGYPTIAN
1907
LIB
(Liberia)
MAS
(Eritrea
(Ethiopia))
MER
(Morocco)
MIN-A
(Cameroon)
MIN-B
(Nigeria)
MPO
(Gabon)
NSD
(Algeria)
OEG
(Egypt)
PTB
39
POINT 58
40
POINTE NOIRE
1948
41
SCHWARZECK
42
SIERRA LEONE
1960
43
VOIROL 1960
44
AIN EL ABD 1970
45
AIN EL ABD 1970
46
DJAKARTA
(BATAVIA)
47
EUROPEAN 1950
48
HONG KONG 1963
49
HU-TZU-SHAN
50
INDIAN
51
INDIAN
52
INDIAN 1954
53
INDIAN 1960
(Vietnam (near
16 degree N))
54
INDIAN 1960
(Con Sol Island
(Vietnam))
55
INDIAN 1975
56
INDONESIAN 1974
57
KANDAWALA
58
KERTAU 1948
(Burkina Faso
and Niger)
PTN
(Congo)
SCK
(Namibia)
SRL
(Sierra Leone)
VOR
(Algeria)
AIN-A
(Bahrain Island)
AIN-B
(Saudi Arabia)
BAT
(Sumatra
(Indonesia))
EUR-H
(Iran)
HKD
(Hong Kong)
HTN
(Taiwan)
IND-B
(Bangladesh)
IND-I
(India and Nepal)
INF-A
(Thailand)
ING-A
ING-B
INH-A
(Thailand)
IDN
(Indonesia)
KAN
(Sri Lanka)
KEA
(West Malaysia
and Singapore)
Clarke1880
-90
40
88
Bessel1841
639
405
60
Clarke1880
31
146
47
Clarke1880
-81
-84
115
Clarke1880
-92
-93
122
Clarke1880
-74
-130
42
Clarke1880
-186
-93
310
Helmert1906
-130
110
-13
Clarke1880
-106
-129
165
Clarke1880
-148
51
-291
Bessel1841NAM
616
97
251
Clarke1880
-88
4
101
Clarke1880
-123
-206
219
International1924
-150
-250
-1
International1924
-143
-236
7
Bessel1841
-377
681
-50
International1924
-117
-132
-164
International1924
-156
-271
-189
International1924
-637
-549
-203
Everest Ind1830
282
726
254
Everest Ind1956
295
736
257
Everest Ind1830
217
823
299
Everest Ind1830
198
881
317
Everest Ind1830
182
915
344
Everest Ind1830
210
814
289
Indonesian1974
-24
-15
5
Everest Ind1830
-97
-787
86
Everest
WMS1948
-11
851
5
236
Zeros
Zeros
NAH-A
59
NAHRWAN
(Masirah Island
(Oman))
60
NAHRWAN
(United Arab
Emirates)
61
NAHRWAN
62
OMAN
63
QATAR NATIONAL
64
SOUTH ASIA
NAH-B
NAH-C
(Saudi Arabia)
FAH
(Oman)
QAT
(Qatar)
SOA
(Singapore)
Clarke1880
-247
-148
369
Clarke1880
-249
-156
381
Clarke1880
-243
-192
477
Clarke1880
-346
-1
224
International1924
-128
-283
22
Modified Fisher
7
-10
-26
Everest BEM
-679
669
-48
Bessel1841
-148
507
685
Bessel1841
-146
508
682
Bessel1841
-147
506
687
Bessel1841
-146
508
682
Australian
-133
-48
148
Australian
-134
-48
149
Bessel1841
374
150
588
International1924
-87
-98
-121
International1924
-87
-96
-120
International1924
-104
-101
-140
TIL
65
TIMBALAI 1948
(Brunei and East
Malaysia
(Sarawak and
Sabah))
TOY-M
66
TOKYO
67
TOKYO
68
TOKYO
69
TOKYO
70
AUSTRALIAN
GEODETIC 1966
71
AUSTRALIAN
GEODETIC 1984
72
COORDINATE
SYSTEM 1937 OF
ESTONIA
(Japan, Okinawa
and South
Korea)
TOY-A
(Japan)
TOY-B
(South Korea)
TOY-C
(Okinawa)
AUA
(Australia and
Tasmania)
AUG
(Australia and
Tasmania)
EST
(Estonia)
Zeros
EUR-M
73
EUROPEAN 1950
(Mean Solution
(Austria,
Belgium,
Denmark,
Finland,
France, FRG,
Gibraltar,
Greece, Italy,
Luxembourg,
Netherlands,
Norway,
Portugal, Spain,
Sweden and
Switzerland))
EUR-A
74
EUROPEAN 1950
75
EUROPEAN 1950
(Western Europe
(Limited to
Austria,
Denmark,
France,
FRG,
Netherlands, and
Switzerland))
EUR-E
(Cyprus)
237
Zeros
EUR-G
76
EUROPEAN 1950
(England,
Channel Islands,
Scotland and
Shetland islands)
International1924
-86
-96
-120
International1924
-86
-96
-120
International1924
-84
-95
-130
International1924
-97
-103
-120
International1924
-97
-88
-135
International1924
-107
-88
-149
International1924
-87
-95
-120
International1924
-84
-107
-120
International1924
-86
-98
-119
EUR-K
(England,
Ireland, Scotland
and Shetland
islands)
77
EUROPEAN 1950
78
EUROPEAN 1950
79
EUROPEAN 1950
80
EUROPEAN 1950
81
EUROPEAN 1950
82
EUROPEAN 1950
(Norway and
Finland)
83
EUROPEAN 1950
(Portugal and
Spain)
EUR-B
(Greece)
EUR-I
(Italy (Sardinia))
EUR-J
(Italy (Sicily))
EUR-L
(Malta)
EUR-C
EUR-D
EUS
84
EUROPEAN 1979
85
HJORSEY 1955
86
IRELAND 1965
87
ORDNANCE
SURVEY OF
GREAT BRITAIN
1936
(Mean Solution
(Austria, Finland,
Netherlands,
Norway,
Spain, Sweden
and
Switzerland))
HJO
(Iceland)
IRL
(Ireland)
Zeros
International1924
-73
46
-86
Modified AIRY
506
-122
611
AIRY1830
375
-111
431
AIRY1830
371
-112
434
AIRY1830
371
-111
434
AIRY1830
384
-111
425
AIRY1830
370
-108
434
International1924
-225
-65
9
Krassovsky1940
28
-121
-77
OGB-M
88
89
90
91
ORDNANCE
SURVEY OF
GREAT BRITAIN
1936
ORDNANCE
SURVEY OF
GREAT BRITAIN
1936
ORDNANCE
SURVEY OF
GREAT BRITAIN
1936
ORDNANCE
SURVEY OF
GREAT BRITAIN
1936
92
ROME 1940
93
S-42 (PULKOVO
1942)
(Mean solution
(England,
Isle of Man,
Scotland,
Shetland Islands
and Wales))
OGB-A
(England)
OGB-B
(England, Isle of
Man, and Wales)
OGB-C
(Scotland and
Shetland
Islands)
OGB-D
(Wales)
MOD
(Sardinia)
SPK-A
(Hungary)
238
94
95
96
97
98
99
S-42 (PULKOVO
1942)
S-42 (PULKOVO
1942)
S-42 (PULKOVO
1942)
S-42 (PULKOVO
1942)
S-42 (PULKOVO
1942)
S-42 (PULKOVO
1942)
SPK-B
(Poland)
SPK-C
(Czechoslovakia)
SPK-D
(Latvia)
SPK-E
(Kazakhstan)
SPK-F
(Albania)
SPK-G
(Romania)
Krassovsky1940
23
-124
-82
Krassovsky1940
26
-121
-78
Krassovsky1940
24
-124
-82
Krassovsky1940
15
-130
-84
Krassovsky1940
24
-130
-92
Krassovsky1940
28
-121
-77
Krassovsky1940
26.3
132.6
-76.3
SPK-0
100
S-42 (PULKOVO
1942)
(former Soviet
Union (not
standard
designation))
CCD
101
S-JYSK
102
CAPE CANAVERAL
103
NORTH AMERICAN
1927
(Chechoslavakia
(prior to 1 Jan
1993))
-0.12
-0.22
-0.4
Zeros
Bessel1841
589
76
480
Clarke1866
-2
151
181
Clarke1866
-8
160
176
Clarke1866
-8
159
175
CAC
(Mean solution
(Florida and
Bahamas))
NAS-C
(Mean solution
(CONUS))
NAS-B
104
NORTH AMERICAN
1927
(Western united
states: Arizona,
Arkansas,
California,
Colorado,
Idaho, Iowa,
Kansas,
Montana,
Nebraska,
Nevada, New
Mexico,
North Dakota,
Oklahoma,
Oregon,
South Dakota,
Texas,
Utah,
Washington and
Wyoming)
Zeros
239
-0.9
NAS-A
105
NORTH AMERICAN
1927
(Eastern united
states: Alabama,
Connecticut,
Delaware,
District of
Columbia,
Florida,
Georgia, Illinois,
Indiana,
Kentucky,
Louisiana,
Maine,
Maryland,
Massachusetts,
Michigan,
Minnesota,
Mississippi,
Missouri,
New Hampshire,
New
Jersey, New
York,
North Carolina,
Ohio,
Pennsylvania,
Rhode
Island, South
Carolina,
Tennessee,
Vermont,
Virginia, West
Virginia
and Wisconsin)
Clarke1866
-9
161
179
Zeros
NAS-D
106
NORTH AMERICAN
1927
107
NORTH AMERICAN
1927
108
NORTH AMERICAN
1927
109
NORTH AMERICAN
1927
110
NORTH AMERICAN
1927
(Alaska
(excluding
Aleutian
Islands))
NAS-V
(Aleutian Islands
(East of 180W))
NAS-W
(Aleutian Islands
(West of 180W))
Clarke1866
-5
135
172
Clarke1866
-2
152
149
Clarke1866
2
204
105
Clarke1866
-4
154
178
Clarke1866
1
140
165
Clarke1866
-10
158
187
Clarke1866
-7
162
188
NAS-Q
(Bahamas
(excluding San
Salvador Island))
NAS-R
(San Salvador
Island)
NAS-E
111
NORTH AMERICAN
1927
112
NORTH AMERICAN
1927
(Canada: Mean
solution
(including
Newfoundland))
NAS-F
(Canada: Alberta
and British
Columbia)
240
NAS-G
113
NORTH AMERICAN
1927
114
NORTH AMERICAN
1927
(Eastern
Canada:
Newfoundland,
New
Brunswick, Nova
Scotia
and Quebec)
Zeros
Clarke1866
-22
160
190
Clarke1866
-9
157
184
Clarke1866
4
159
188
Clarke1866
-7
139
181
Clarke1866
0
125
201
Clarke1866
-3
142
183
NAS-H
(Canada:
Manitoba and
Ontario)
NAS-I
115
116
117
NORTH AMERICAN
1927
NORTH AMERICAN
1927
NORTH AMERICAN
1927
(Canada:
Northwest
territories and
Saskatchewan)
NAS-J
(Canada: Yukon)
NAS-O
(Canal zone)
NAS-P
118
NORTH AMERICAN
1927
(Caribbean:
Antigua
Island,
Barbados,
Barbuda, Caicos
Islands, Cuba,
Dominican
Republic,
Grand Cayman,
Jamaica
and Turks
Islands)
Zeros
NAS-N
(Central
America: Belize,
Costa Rica, El
Salvador,
Guatemala,
Honduras
and Nicaragua)
119
NORTH AMERICAN
1927
120
NORTH AMERICAN
1927
NAS-T
121
NORTH AMERICAN
1927
(Greenland
(Hayes
Peninsula))
122
NORTH AMERICAN
1927
(Cuba)
Clarke1866
0
125
194
Clarke1866
-9
152
178
Clarke1866
11
114
195
Clarke1866
-12
130
190
GRS1980
0
0
0
GRS1980
-2
0
4
GRS1980
0
0
0
GRS1980
0
0
0
GRS1980
1
1
-1
NAS-U
NAS-L
(Mexico)
NAR-A
123
NORTH AMERICAN
1983
124
NORTH AMERICAN
1983
125
126
127
NORTH AMERICAN
1983
NORTH AMERICAN
1983
NORTH AMERICAN
1983
(Alaska
(excluding
Aleutian
Islands))
NAR-E
(Aleutian
Islands)
NAR-B
(Canada)
NAR-C
(CONUS)
NAR-H
(Hawaii)
241
128
129
130
NORTH AMERICAN
1983
BOGOTA
OBSERVATORY
CAMPO
INCHAUSPE 1969
131
CHUA ASTRO
132
CORREGO
ALEGRE
NAR-D
(Mexico and
Central America)
BOO
(Colombia)
CAI
(Argentina)
CHU
(Paraguay)
COA
(Brazil)
GRS1980
0
0
0
International1924
307
304
-318
International1924
-148
136
90
International1924
-134
229
-29
International1924
-206
172
-6
International1924
-288
175
-376
International1924
-270
188
-388
International1924
-270
183
-390
International1924
-305
243
-442
International1924
-282
169
-371
International1924
-278
171
-367
International1924
-298
159
-369
International1924
-279
175
-379
International1924
-295
173
-371
International1924
16
196
93
South
American1969
-57
1
-41
-62
-1
-37
-61
2
-48
-60
-2
-41
Zeros
PRP-M
133
134
135
136
137
138
139
140
141
142
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH AMERICAN
1956
PROVISIONAL
SOUTH CHILEAN
1963 (also known as
HITO XVIII 1963)
(Mean solution
(Bolivia, Chile,
Colombia,
Ecuador,
Guyana, Peru
and Venezuela))
PRP-A
(Bolivia)
PRP-B
(Northern Chile
(near 19 S))
PRP-C
(Southern Chile
(near 43 S))
PRP-D
(Colombia)
PRP-E
(Ecuador)
PRP-F
(Guyana)
PRP-G
(Peru)
PRP-H
(Venezuela)
HIT
(Southern Chile
(near 53 S))
SAN-M
143
144
145
146
SOUTH AMERICAN
1969
SOUTH AMERICAN
1969
SOUTH AMERICAN
1969
SOUTH AMERICAN
1969
(Mean solution
(Argentina,
Bolivia, Brazil,
Chile,
Colombia,
Ecuador,
Guyana,
Paraguay, Peru,
Trinidad and
Tobago, and
Venezuela))
SAN-A
(Argentina)
SAN-B
(Bolivia)
SAN-C
(Brazil)
South
American1969
South
American1969
South
American1969
242
Zeros
147
148
SOUTH AMERICAN
1969
SOUTH AMERICAN
1969
SAN-D
South
American1969
South
American1969
-75
-1
-44
-44
6
-36
South
American1969
-48
3
-44
(Baltra,
Galapagos
Islands)
South
American1969
-47
26
-42
SAN-G
South
American1969
South
American1969
South
American1969
-53
3
-47
-61
2
-33
-58
0
-44
South
American1969
-45
12
-33
South
American1969
-45
8
-33
International1924
-265
120
-358
Clarke1880
-270
13
62
International1924
-205
107
53
International1924
-320
550
-494
Clarke1866
-73
213
296
Clarke1880
260
12
-147
Clarke1880
-7
215
225
International1924
-104
167
-38
International1924
-794
119
-298
Clarke1866
42
124
147
Clarke1880
174
359
365
International1924
-10
375
165
(Chile)
SAN-E
(Colombia)
Zeros
SAN-F
149
SOUTH AMERICAN
1969
150
SOUTH AMERICAN
1969
151
152
153
SOUTH AMERICAN
1969
SOUTH AMERICAN
1969
SOUTH AMERICAN
1969
(Ecuador
(excluding
Galapagos
Islands))
SAN-J
(Guyana)
SAN-H
(Paraguay)
SAN-I
(Peru)
SAN-K
154
SOUTH AMERICAN
1969
155
SOUTH AMERICAN
1969
156
ZANDERIJ
157
ANTIGUA ISLAND
ASTRO 1943
158
ASCENSION
ISLAND 1958
159
ASTRO DOS 71/4
(St. Helena
Island)
160
BERMUDA 1957
(Bermuda
Islands)
161
DECEPTION
ISLAND
(Deception
Island,
Antarctica)
162
FORT THOMAS
1955
(Trinidad and
Tobago)
SAN-L
(Venezuela)
ZAN
(Suriname)
AIA
(Antigua,
Leeward Islands)
ASC
(Ascension
Island)
SHB
BER
DID
FOT
(Nevis, St. Kitts,
Leeward Islands)
GRA
163
GRACIOSA BASE
SW 1948
164
ISTS 061 ASTRO
1968
165
L.C.5 ASTRO 1961
166
MONTSERRAT
ISLAND ASTRO
1958
167
NAPARIMA, BWI
(Faial, Graciosa,
Pico, Sao Jorge
and
Terceira Islands
(Azores))
ISG
(South Georgia
Islands)
LCF
(Cayman Brac
Island)
ASM
(Montserrat,
Leeward Islands)
NAP
(Trinidad and
Tobago)
243
Zeros
FLO
168
OBSERVATORIO
METEOROLOGICO
1939
169
PICO DE LAS
NIEVES
170
PORTO SANTO
1936
171
PUERTO RICO
(Puerto Rico and
Virgin Islands)
172
QORNOQ
(South
Greenland)
(Corvo and
Flores Islands
(Azores))
PLN
(Canary Islands)
POS
(Porto Santo and
Madeira Islands)
PUR
QUO
Zeros
International1924
-425
-169
81
International1924
-307
-92
127
International1924
-499
-249
314
Clarke1866
11
72
-101
International1924
164
138
-189
International1924
-203
141
53
International1924
-355
21
72
International1924
-289
-124
60
International1924
-632
438
-609
Australian
-491
-22
435
International1924
-133
-321
50
International1924
208
-435
-229
International1924
145
-187
103
Clarke1880
41
-220
-134
International1924
94
-948
-1262
Clarke1866
-115
118
426
International1924
145
75
-272
International1924
114
-116
-333
International1924
124
-234
-25
International1924
-127
-769
472
International1924
298
-304
-375
International1924
175
-38
113
SAO
173
SAO BRAZ
174
SAPPER HILL 1943
175
SELVAGEM
GRANDE 1938
176
TRISTAN ASTRO
1968
177
ANNA 1 ASTRO
1965
178
GAN 1970
179
ISTS 073 ASTRO
1969
180
KERGUELEN
ISLAND 1949
181
MAHE 1971
182
REUNION
183
AMERICAN SAMOA
1962
184
185
186
ASTRO BEACON
"E" 1945
ASTRO TERN
ISLAND (FRIG)
1961
ASTRONOMICAL
STATION 1952
(Sao Miguel,
Santa Maria
Islands (Azores))
SAP
(East Falkland
Island)
SGM
(Salvage
Islands)
TDC
(Tristan da
Cunha)
ANO
(Cocos Islands)
GAA
(Republic of
Maldives)
IST
(Diego Garcia)
KEG
(Kerguelen
Island)
MIK
(Mahe Island)
REU
(Mascarene
Islands)
AMA
(American
Samoa Islands)
ATF
(Iwo Jima)
TRN
(Tern Island)
ASQ
(Marcus Island)
IBE
187
BELLEVUE (IGN)
188
CANTO ASTRO
1966
189
CHATHAM ISLAND
ASTRO 1971
(Efate and
Erromango
Islands)
CAO
(Phoenix
Islands)
CHI
(Chatham Island
(New Zealand))
244
Zeros
GIZ
190
191
192
DOS 1968
EASTER ISLAND
1967
GEODETIC DATUM
1949
193
GUAM 1963
194
GUX 1 ASTRO
195
JOHNSTON
ISLAND 1961
(Gizo Island
(New Georgia
Islands))
EAS
(Easter Island)
GEO
(New Zealand)
GUA
(Guam)
DOB
(Guadalcanal
1924 Island)
JOH
(Johnston Island)
International1924
230
-199
-752
International1924
211
147
111
International1924
84
-22
209
Clarke1866
-100
-248
259
International1924
252
-209
-751
International1924
189
-79
-202
International1924
647
1777
-1124
Clarke1866
-133
-77
-51
Clarke1866
-133
-79
-72
International1924
912
-58
1227
Clarke1866
61
-285
-181
Clarke1866
89
-279
-183
Clarke1866
45
-290
-172
Clarke1866
65
-290
-190
Clarke1866
58
-283
-182
International1924
185
165
42
International1924
170
42
84
Clarke1880
51
391
-36
Hough1960
102
52
-38
International1924
276
-57
149
Bessel1841
-384
664
-48
International1924
-104
-129
239
KUS
196
KUSAIE ASTRO
1951
(Caroline
Islands, Fed.
States of
Micronesia)
LUZ-A
(Philippines
(Excluding
Mindanao
Island))
197
LUZON
198
LUZON
199
MIDWAY ASTRO
1961
200
OLD HAWAIIAN
201
OLD HAWAIIAN
202
OLD HAWAIIAN
203
OLD HAWAIIAN
204
OLD HAWAIIAN
205
PITCAIRN ASTRO
1967
206
SANTO (DOS) 1965
(Espirito Santo
Island)
207
VITI LEVU 1916
(Viti Levu Island
(Fiji Islands))
208
WAKE-ENIWETOK
1960
209
WAKE ISLAND
ASTRO 1952
LUZ-B
(Mindanao
Island)
MID
(Midway Islands)
OHA-M
(Mean solution
Hawaii)
OHA-A
(Hawaii)
OHA-B
(Kauai)
OHA-C
(Maui)
OHA-D
(Oahu)
PIT
(Pitcairn Island)
SAE
MVS
ENW
(Marshall
Islands)
WAK
(Wake Atoll)
BUR
210
BUKIT RIMPAH
211
CAMP AREA
ASTRO
(Bangka and
Belitung Islands
(Indonesia))
CAZ
(Camp McMurdo
Area, Antarctica)
245
EUR-S
212
EUROPEAN 1950
213
GUNUNG SEGARA
214
HERAT NORTH
(Iraq, Israel,
Jordan, Kuwait,
Lebanon, Saudi
Arabia and
Syria)
GSE
(Kalimantan
(Indonesia))
HEN
(Afghanistan)
International1924
-103
-106
-141
Bessel1841
-403
684
41
International1924
-333
-222
114
Bessel1841
682
-203
480
Everest PAK
283
682
231
Krassovsky1940
28
-130
-95
International1924
-189
-242
-91
Clarke1880
-73
-247
227
Clarke1866
-155
171
37
HER
215
HERMANNSKOGEL
216
INDIAN
217
PULKOVO 1942
218
TANANARIVE
OBSERVATORY
1925
219
VOIROL 1874
220
YACARE
(Yugoslavia
(Prior to 1990)
Slovenia,
Croatia, Bosnia
and
Herzegovina,
Serbia)
IND-P
(Pakistan)
PUK
(Russia)
TAN
(Madagaskar)
VOI
(Tunisia/Algeria)
YAC
(Uruguay)
246
16 References
1. ICD-GPS-200C, Revision IRN-200C-002 September 25, 1997. ARINC
Research Corporation.
2. Technical characteristics of the NAVSTAR GPS (June 1991). Reprinted
October, 1993 by Navtech Seminars & Navtech Book and Software Store Inc.,
from U.S. Government document.
3. Department of Defense. World Geodetic System 1984 — Its Definitions and
Relationships with Local Geodetic Systems — TR8350.2.
Available at ftp://164.214.2.65/pub/gg/tr8350.2/wgs84fin.pdf
4. Parameters of Earth 1990 PZ-90. KNITs, Moscow, 1998
5. NMEA-0183 Standard For Interfacing Marine Electronic Devices v.3.0. July 1,
2000. (also see http://www.nmea.org)
6. RTCM recommended standards for differential GNSS (Global Navigation
Satellite System) service, version 2.3, August 20, 2001. (RTCM PAPER 1362001/SC104-STD).
247
Glossary
Term
Definition
A
Automatic File Rotation Mode. In this
mode the receiver will periodically
close/open log-files at scheduled
(evenly spaced) times.
A data structure that contains orbit
information about all satellites, clock
corrections, atmospheric delays and
some other related parameters. It is
broadcast by a GPS satellite and is
intended to facilitate rapid satellite
acquisition within GPS receivers.
Generally speaking, almanac data
must be acquired before GPS
navigation can begin.
Unknown number of full wavelengths
counting from the reference satellite to
the antenna phase center.
Sophisticated technique used in TPS
receivers
to
suppress
in-band
interference.
Acronym for American Standard Code
for Information Interchange. The
standard code used for information
interchange among data processing
systems,
data
communications
systems, and associated equipment.
The horizontal direction of a celestial
point from a terrestrial point, expressed
as the angular distance from a
reference direction, usually measured
from 0° at the reference direction
clockwise through 359°.
AFRM
Almanac
Ambiguity
Anti-jamming
ASCII
Azimuth
B
Bandwidth
The difference between the limiting
frequencies within which performance
of a unit/device, in respect to some
characteristic, lies within specified
limits.
248
The three-dimensional vector that
represents the distance and direction
from one survey station to another. It is
the result of processing GPS
observations that were collected
simultaneously at each station.
Also referred to as a reference station.
Base station is a receiver set up on a
known location and intended to collect
data for rover receivers running in
differential mode. In code differential,
for example, the base station
calculates the pseudorange error for
each satellite and, through differential
correction, improves the accuracy of a
roving GPS receiver’s position.
Abbreviation for binary digit. A
character used to represent one of the
two digits in the numeration system
with a base of two, and only two,
possible states of a physical entity or
system.
In a bit stream, the number of bits
occurring per unit time, usually
expressed in bits per second.
Type of variable widely used in
matematical
logic,
programming
languages, etc. Takes two values,
“true” and “false”. In the context of the
GRIL manual, we normally use “on”
and “off” or “yes” and “no”, which are
synonymous with “true” and “false”.
Baseline
Base station
bit
Bit Rate
Boolean value
C
Carrier phase
C/A-code
Cartesian system coordinate
One of the parameters of carrier wave
which is measured by TPS receiver.
The standard (Coarse/Acquisition, or
Clear/Access) GPS code – a sequence
of 1023 pseudo-random binary biphase
modulations on the GPS carrier at a
chip rate of 1.023 MHz.
Earth-fixed spatial Cartesian system
(X, Y, Z). The Z-axis coincides with the
mean rotational axis of the earth (Polar
motion, CIO Pole). The mean
equatorial plane perpendicular to this
axis forms the (X-Y) plane. The (X-Z)
plane is generated by the mean
meridian plane of Greenwich. The Yaxis is directed so as to obtain a right
handed system.
249
Checksum is the “additional” part of a
transmitted message that allows
verification/correction of the informative
part of the message on the receiver
side.
Sophisticated technique used in TPS
receivers to substantially improve the
tracking characteristics of an individual
channel by means of using all tracking
data from this and the other receiver
channels all together.
Compact Measurement Record format.
Cyclic Redundancy Checking is a
method of checking for errors in data
transmitted on a communications link.
A discontinuity of an integer number of
cycles in the measured carrier beat
phase resulting from a temporary
loss-of-lock in the carrier tracking loop
of a GPS receiver.
Checksum
Co-op tracking
CMR
CRC
Cycle slip
D
DATUM
Delay mode
DGPS
DATUM is a reference object that
describes the position, orientation and
scale
relationships
of
the
corresponding reference ellipsoid to
the Earth. Although most modern
geodetic datums are formally defined
with respect to the center of the Earth,
historically, they are also dependant of
fundamental points on the surface of
the Earth.
TPS receivers support two RTK
modes, delay and extrapolation.
When a rover receiver is running in
delay mode, the RTK engine will
compute the position only for the
epochs for which the differential
correction data (from the base) are
available on the rover end. Due to the
data transfer latency and other
reasons, the differential correction data
are always delayed at the rover. Thus
the name of the mode.
Note that delay mode is normally used
for
static
surveying
in
RTK
applications.
Code Differential GPS.
250
Dilution of Precision
The following DOP characteristics are
widely used in practice:
GDOP: Geometric (3 position
coordinates plus clock offset in the
solution).
DOP
PDOP: Position (3 coordinates)
HDOP: Horizontal (2 horizontal
coordinates)
VDOP: (height only)
TDOP: time (clock offset only)
E
EGNOS
Elevation
Elevation mask
Ellipsoid
Ellipsoid height
Ephemeris
Epoch
Ethernet
Event signal
European Geostationary Navigation
Overlay Service.
The angle above the horizon.
The angle below which satellites will
not be tracked by a GPS/GLONASS
receiver.
In the context of this manual, a 3Drotation body generated by rotating an
ellipse around the earth's polar axis.
The height from the specified point to
the ellipsoid’s surface as measured
along the local normal.
The predictions of a satellite’s orbit that
are broadcast by the satellite within the
data message.
In GPS, an epoch is the moment at
which a measurement is made by a
receiver.
Ethernet is the most widely-installed
local area network (LAN) technology.
The IEEE standard 802.3 defines the
rules for configuring an Ethernet
network. It is a 10 Mbps, CSMA/CD
(Carrier Sense Multiple Access /
Collision Detection) baseband network
that runs over thin coax, thick coax,
twisted pair or fiber optic cable.
TPS receiver is capable of receiving an
external device’s event signals and
measuring their reception times in the
selected time scale.
251
TPS receivers support two RTK
modes, delay and extrapolation.
When a rover receiver is running in
extrapolation mode, its RTK engine will
update the position for the current
epoch irrespective of whether the
differential correction data for this
epoch have been received from the
base or not. If the differential correction
data for the current epoch are not
received from the base yet, the RTK
engine will extrapolate the most recent
of
the
base’s
carrier
phase
measurements to the current epoch.
Note that extrapolation mode is
normally
used
when
dynamic
surveying is carried out in RTK.
Extrapolation mode
F
Frequency
Channel
Number
(GLONASS).
Repeated switching of frequencies
during radio transmission according to
a specified algorithm, to minimize
unauthorized interception or jamming
of radiocommunications.
FCN
Frequency Hopping
G
Geoid is an equi-gravitational surface
(i.e., a surface of constant gravitational
force).
High precision time scale using the
atomic hydrogen maser oscillator (Hmaser) of the GLONASS Central Clock
(instability does not exceed 5∗10-14 per
day).
GPS system time is referenced to the
Master Clock (MC) at the USNO and
steered to UTC (USNO) from which
system time will not deviate by more
than one microsecond.
Geoid
GLONASS system time
GPS system time
H
I
A measurement of Doppler
frequency or phase over time.
Integrated Doppler
J
K
252
shift
L
A receiver’s internal file to which
various message types are recorded
(raw data measurements, time tags,
position&velocity estimates, ephemeris
and almanac data and many more).
Log file
M
MINimum INTERface. User’s interface
allows the user to control and display
the operation of the receiver.
Differential mode in which the rover is
allowed to receive and use differential
corrections from more than one
reference station.
Interference caused by reflected
satellite signals arriving at the receiver,
typically as a result of nearby
structures or other reflective surfaces.
MINTER
Multi-base
Multipath
N
National
Association.
NMEA
Marine
Electronics
O
An electronic circuit designed to
produce an ideally stable alternating
voltage or current.
Oscillator
P
P-code
PLL
PPS signal
PRN
The Precise (or Protected) GPS code –
a very long (about 1014 bit) sequence
of pseudo-random binary biphase
modulations on the GPS carrier at a
chip rate of 10.23 MHz which does not
repeat itself for about 267 days.
Phase lock loop. An electronic circuit
that controls an oscillator so that it
maintains a constant phase angle
relative to a reference signal.
Pulse-Per-Second. A precisely timed
output signal, one edge of which is
synchronized
with
the
selected
reference time.
Pseudo-Random Noise, a sequence of
digital 1's and 0's which appears to be
randomly distributed like noise, but can
be
exactly
reproduced.
Each
NAVSTAR and GLONASS satellite has
its own unique C/A and P pseudorandom-noise codes and are often
referred to by their PRN number.
253
A ground-based differential GPS
receiver that simulates the signal of a
GPS satellite and can be used for
ranging.
Pseudorange
is
the
receiver's
measurement of distance to satellite,
plus an offset of the receiver's clock.
Pseudolite
Pseudorange
Q
R
Receiver
Autonomous
Integrity
Monitoring.
The
satellite-based
navigation
community's
term
for fault detection.
Receiver
INdependent
EXchange
format. This is a GPS data format
(established by the International
Association of Geodesy) that was
designed to conveniently standardize
observations between receivers from
different manufacturers.
A typical value of a number (n) of
values of a quantity (x1,x2,x3...) equal to
the square root of the sum of the
squares of the values divided by n, i.e.
RMS value = [sqroot][(x12 + x22 +
x32...)/n].
Any mobile GPS receiver collecting
data during a field session.
Radio Technical Commission for
Maritime Services.
Real Time Kinematic.
RAIM
RINEX
RMS value
Rover
RTCM
RTK
S
SEP
Sigma (
)
Sleep mode
Spread Spectrum
Spherical Error Probable - the radius of
the sphere that will contain 50% of the
expected errors in three dimensions.
Standard deviation = sqrt(Variance) =
sigma ( ). Characterizes the width of
the distribution of a random value.
You can switch your TPS receiver to a
low power consumption mode. In this
mode, the receiver’s processor is
allowed to go into a sleep state while
idling.
Radiocommunications techniques in
which a signal is transmitted in a
bandwidth considerably greater than
the frequency content of the original
information.
254
Mode in which a TPS receiver
computes its position “autonomously”,
i.e. without using measurements and
some other data from any other
receivers. The position is identified with
respect to a well-defined coordinate
system, commonly a geocentric
system.
Stand-alone positioning mode
T
U
Universal Serial Bus is a "plug and
play" interface between a computer
and add-on devices.
U.S. Naval Observatory.
Universal Time Coordinated is the
international time standard. This term
is sometimes used to refer to
Greenwich Meridian Time (GMT).
USB
USNO
UTC
V
W
Wide Area Augmentation System.
A wait state is a situation in which a
computer program or processor is
waiting for the completion of some
event before resuming activity.
WAAS
Wait state
X
Y
Z
255
Index
Covariance matrix
-position ............................................. 143, 196
-velocity...................................................... 144
Current terminal.......................................... 30, 32
%
%x…x%............................................................. 4
A
D
ACK ................................................................ 217
Almost fixed format
-geographic coordinates in ....................... 58
Alternative reference position....................... 95
Ambiguity fixing
-histograms ............................................... 102
-level
--high ........................................................ 90
--low.......................................................... 90
--medium ................................................. 90
-statistics.................................................... 102
Antenna
-external....................................................... 21
-height................................................. 195, 221
-input ................................................ 19, 20, 21
Anti-jamming ................................................... 53
-extended information.............................. 185
ASCII
-character
--(0-9,A-F).............................................. 171
--abort transfer ...................................... 216
--delimiter................................................. 83
--underscore............................................ 11
-messages
-data type specificators ....................... 169
-TPS Proprietary................................... 181
Automatic File Rotation Mode
-remove the earliest log-file ...................... 19
-via MINTER ............................................. 110
Daisy chain.................................................... 209
Data bits........................................................... 33
DATUMS
-format.......................................................... 56
-supported by TPS receiver ...................... 66
Default value ................................................... 13
Dial number..................................................... 23
Differential corrections
-maximum age .......................................... 104
Differential mode
-amount of data transmitted in................ 225
-running TPS receiver in ......................... 204
DLL, delay lock loop....................................... 54
DOP
-GDOP ....................................................... 143
-HDOP ....................................................... 143
-PDOP.................................................. 61, 143
-TDOP........................................................ 143
-VDOP........................................................ 143
Doppler .......................................................... 157
E
Echo mode ...................................................... 30
Echo-off sequence ................................. 31, 209
Elevation mask
-for position computation........................... 59
-for raw data ................................................ 47
Ellipsoid
-inverse flattening ....................................... 66
-major semi-axis ......................................... 66
-reference .................................................. 234
-rotation angles ........................................... 66
-scale............................................................ 66
-translation vector....................................... 66
Ellipsoidal height ............................................ 61
Epoch
-number ....................................................... 47
-synchronization ....................... 129, 130, 202
Event signal..................................................... 74
-falling/rising edge ...................................... 74
Exception mode.............................................. 13
External
-events [XA] [XB] ...................................... 166
-modem........................................................ 22
B
Baseline
-a priori (fixed) length................................. 97
-length ........................................................ 196
C
Carriage-return(CR)......................................... 1
Carrier to noise ratio .................................... 157
Checksum
-8-bit ........................................................... 215
-CRC16 calculation technique................ 217
CMR
-GLONASS measurements .............. 85, 199
Code differential
-with use of WAAS/EGNOS data........... 117
Co-op tracking mode ..................................... 55
Corrections
-ionospheric................................................. 61
-tropospheric ............................................... 61
F
False
-Easting........................................................ 69
256
-Northing...................................................... 69
Flash memory
-access time................................................ 17
Free-form event...................................... 11, 220
Frequency source .......................................... 21
-name prefix .............................................. 109
-recording ...................................................... 8
-remove.......................................................... 8
-removed...................................................... 15
Loop
-guided ......................................................... 54
-guiding ........................................................ 54
-order............................................................ 55
G
General format
-geographic coordinates in ....................... 57
Geoidal separation......................................... 62
Geostationary satellites
-EGNOS..................................................... 114
-WAAS ....................................................... 114
--messages ........................................... 165
--PRN code ........................................... 114
GLONASS
-almanac.................................................... 161
-ephemeris ................................................ 162
GPS
-almanac.................................................... 159
-ephemeris ................................................ 160
Grid system ..................................................... 68
M
Messages
-group......................................................... 200
-identifier .................................................... 127
-non-standard............................................ 127
-output
--count ........................................................ 8
--scheduling flags ............................. 8, 212
-sets............................................................ 200
MINTER
-LED blink mode ....................................... 109
-receiver dynamic mode .......................... 109
Multi-base code differential......................... 105
-mixing differential corrections in ........... 106
-nearest reference station in................... 105
-position averaging in............................... 106
Multipath reduction
-carrier phase.............................................. 52
-code ............................................................ 52
H
Handshaking ....................................... 32, 37, 38
Heading mode ........................................ 97, 100
I
N
Implicit message output period .................. 108
Improved timing mode............................. 64, 73
Internal
-disk.............................................................. 15
Ionosphere-free code differential ............... 105
Ionospheric corrections
-from WAAS/EGNOS satellites .............. 115
Ionospheric parameters
-broadcast ................................................. 163
NACK ............................................................. 217
NMEA
-‘+’ character ............................................. 170
-approved sentence ................................. 171
-mantissa lengths ..................................... 113
-Talker ID................................................... 112
-True Heading........................................... 112
Not monitored reference station................... 86
J
O
JPS2RIN™.................................................... 116
OAF, Option Authorization File .................. 121
Old reference coordinates............................. 98
OmniSTAR
-service information.................................. 119
Optimized real time application messages
............................................................ 111, 136
L
Latency
-of message .............................................. 168
Least Common Multiple ................................ 73
Line-feed(LF) .................................................... 1
Load
-processor ................................................... 16
Local
-datum........................................................ 234
--differential corrections in..................... 86
-system
--position in............................................ 191
-time zone.................................................... 63
Logfile
-appending data to ................................... 109
-current ........................................................ 16
P
Parameters
-obsolete .................................................... 126
-print-only..................................................... 13
-set-only ....................................................... 13
Parity .............................................. 33, 34, 35, 37
PIN code.......................................................... 23
Pinnacle™ ..................................... 116, 130, 202
PLL, phase lock loop ..................................... 54
Port
-infrared ....................................................... 32
257
-input mode ................................................. 30
-modem........................................................ 30
-output mode............................................... 31
-parallel ........................................................ 30
Position computation mode .......................... 59
Position filter parameters .............................. 70
Power
-failure ........................................................ 110
Power/battery management
-in Odyssey ................................................. 26
PPS signal....................................................... 71
-falling/rising edge ...................................... 72
-marked........................................................ 73
Predefined messages.................................. 130
Projection
-Stereographic ............................................ 69
-Transverse Mercator ................................ 69
Pseudolite........................................................ 48
Pseudorange smoothing corrections......... 150
S
Satellite
-azimuth ..................................................... 147
-elevation ................................................... 147
-navigation status codes ......................... 184
SEP, spherical error probable .................... 144
Session programming.................................... 38
Signal lock loop indicators .......................... 163
Sleep mode ..................................................... 14
Smoothing interval
-Doppler ....................................................... 51
-ionosphere ................................................. 51
-pseudorange.............................................. 51
Stop bits........................................................... 32
T
Temperature
-of receiver board ....................................... 17
Time scales
-GLONASS system .................................. 133
-GPS system............................................. 133
-receiver..................................................... 133
-UTC(SU)................................................... 133
-UTC(USNO)............................................. 133
TPS
-data transfer protocol ......................... 5, 216
-datum numbers ....................................... 141
-Eurocard..................................................... 35
R
RAIM
-alarm limit................................................. 111
-output data ................................................. 188
Receiver options
-Cinderella ................................................. 120
-expiration data......................................... 125
-leased ....................................................... 124
-purchased ................................................ 124
Reset
-full firmware ............................................. 102
-receiver....................................................... 13
-RTK only................................................... 102
Rover dynamics.............................................. 93
RTCM
-back-compatibility parameters ................ 83
-Multiple Message Indicator...................... 87
-sequence number ..................................... 86
RTK mode
-delay ........................................................... 90
-extrapolation .............................................. 90
U
UNDEF............................................................. 96
Update rate
-measurements........................................... 49
-position ....................................................... 50
W
Wrapped
-echoing ............................................. 168, 210
-mode ........................................................... 31
258
Download

GPS Receiver Interface Language (GRIL)