diff options
Diffstat (limited to 'contrib/ntp/html/mx4200data.htm')
-rw-r--r-- | contrib/ntp/html/mx4200data.htm | 445 |
1 files changed, 445 insertions, 0 deletions
diff --git a/contrib/ntp/html/mx4200data.htm b/contrib/ntp/html/mx4200data.htm new file mode 100644 index 0000000..2123607 --- /dev/null +++ b/contrib/ntp/html/mx4200data.htm @@ -0,0 +1,445 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<TITLE>MX4200 Receiver Data Format</TITLE> +<BODY> +<h1>MX4200 Receiver Data Format</h1> + +<hr> +<h2>Table of Contents</h2> + +<ul> + <li><a href="#control">Control Port Sentences</a></li> + <li><a href="#input">Control Port Input Sentences</a> + <ul> + <li> <a href="#input_000">$PMVXG,000</a> Initialization/Mode Control - Part A</li> + <li> <a href="#input_001">$PMVXG,001</a> Initialization/Mode Control - Part B</li> + <li> <a href="#input_007">$PMVXG,007</a> Control Port Configuration</li> + <li> <a href="#input_023">$PMVXG,023</a> Time Recovery Configuration</li> + <li> <a href="#input_gpq">$CDGPQ,YYY</a> Query From a Remote Device / Request to Output a Sentence</li> + </ul> + <li><a href="#output">Control Port Output Sentences</a> + <ul> + <li> <a href="#output_000">$PMVXG,000</a> Receiver Status + <li> <a href="#output_021">$PMVXG,021</a> Position, Height, Velocity + <li> <a href="#output_022">$PMVXG,022</a> DOPs + <li> <a href="#output_030">$PMVXG,030</a> Software Configuration + <li> <a href="#output_101">$PMVXG,101</a> Control Sentence Accept/Reject + <li> <a href="#output_523">$PMVXG,523</a> Time Recovery Configuration + <li> <a href="#output_830">$PMVXG,830</a> Time Recovery Results + </ul> +</ul> + +<hr> + +<h2><a name="control">Control Port Sentences</a></h2> + +<p>The Control (CDU) Port is used to initialize, monitor, and control +the receiver. The structure of the control port sentences is based on +the <cite>NMEA-0183</cite> Standard for Interfacing Marine Electronics +Navigation Devices (version 1.5). For more details, please refer to +the <cite>NMEA-0183</cite> Specification available from the <a +href="http://www.nmea.org/"> National Marine Electronics +Association</a>.</p> + +<p>Reserved characters are used to indicate the beginning and the end +of records in the data stream, and to delimit data fields within a +sentence. Only printable ASCII characters (Hex 20 through 7F) may be +used in a sentence. <a href="#table_2">Table 2</a> lists the reserved +characters and defines their usage. <a href="#table_1">Table 1</a> +illustrates the general Magnavox proprietary NMEA sentence format. +</p> + +<h4><a name="table_1">Table 1. Magnavox Proprietary NMEA Sentence +Format</a></h4> + +<p> +<code> +$PMVXG,XXX,...................*CK +</code> + +<p> + +<table border> + <tr> <th>Character <th>Meaning + <tr> <td><code>$</code> <td>Sentence Start Character + <tr> <td><code>P</code> <td>Special ID (P = Proprietary) + <tr> <td><code>MVX</code> <td>Originator ID (MVX = Magnavox) + <tr> <td><code>G</code> <td>Interface ID (G = GPS) + <tr> <td><code>XXX</code> <td>Sentence Type + <tr> <td><code>...</code> <td>Data + <tr> <td><code>*</code> <td>Optional Checksum Field Delimiter + <tr> <td><code>CK</code> <td>Optional Checksum +</table> + +<h4><a name="table_2">Table 2. NMEA Sentence Reserved Characters</a></h4> + +<table border> + <tr> <th>Character <th>Hex Value <th>Usage + <tr> <td><code>$</code> <td>24 <td>Start of Sentence Identifier + <tr> <td><code>{cr}{lf}</code> <td>0D 0A <td>End of Sentence Identifier + <tr> <td><code>,</code> <td>2C <td>Sentence Delimiter + <tr> <td><code>*</code> <td>2A <td>Optional Checksum Field Delimiter +</table> + +<p>Following the start character <code>$</code>, are five characters +which constitute the block label of the sentence. For Magnavox +proprietary sentences, this label is always <code>PMVXG</code>. The +next field after the block label is the sentence type, consisting of +three decimal digits.</p> + +<p>The data, delimited by commas, follows the sentence type. Note that +the receiver uses a free-format parsing algorithm, so you need not send +the exact number of characters shown in the examples. You will need to +use the commas to determine how many bytes of data need to be +retrieved.</p> + +<p>The notation <code>CK</code> shown in <a href="#table_1">Table 1</a> +symbolically indicates the optional checksum in the examples. The +checksum is computed by exclusive-ORing all of the bytes between the +<code>$</code> and the <code>*</code> characters. The <code>$</code> , +<code>*</code> and the checksum are not included in the checksum +computation.</p> + +<p>Checksums are optional for Control Port input sentences, but are +highly recommended to limit the effects of communication errors. +Magnavox receivers always generate checksums for Control Port output +sentences.</p> + +<p>ASCII data characters are transmitted in the following format:</p> + +<table border> + <tr> <td> Data Bits <td>8 (msb always 0) + <tr> <td> Parity <td>None + <tr> <td> Stop Bits <td>1 +</table> + +<p>NULL fields are fields which do not contain any data. They would +appear as two commas together in the sentence format, except for the +final field. Some Magnavox proprietary sentences require that the +format contain NULL fields. mandatory NULL fields are identified by an +'*' next to the respective field.</p> + +<hr> + +<h2><a name="input">Control Port Input Sentences</a></h2> +These are the subset of the MX4200 control port input sentences sent by +the NTP driver to the GPS receiver. + +<hr> + +<h3><a name="input_000">$PMVXG,000</a></h3> +<h4>Initialization/Mode Control - Part A</h4> +Initializes the time, position and antenna height of the MX4200. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range + <tr> <td>1 <td>Day <td> <td>Int <td> <td>1-31 + <tr> <td>2 <td>Month <td> <td>Int <td> <td>1-12 + <tr> <td>3 <td>Year <td> <td>Int <td> <td>1991-9999 + <tr> <td>4 <td>GMT Time <td>HHMMSS <td>Int <td> <td>000000-235959 + <tr> <td>5 <td>WGS-84 Latitude <td>DDMM.MMMM<td>Float<td>0.0 <td>0 - 8959.9999 + <tr> <td>6 <td>North/South Indicator <td> <td>Char <td>N <td>N,S + <tr> <td>7 <td>WGS-84 Longitude <td>DDDMM.MMMM<td>Float<td>0.0 <td>0 - 17959.9999 + <tr> <td>8 <td>East/West Indicator <td> <td>Char <td>E <td>E,W + <tr> <td>9 <td>Altitude (height above Mean Sea Level) in meters (WGS-84) <td>Meters<td>Float<td>0.0<td>+/-99999.0 + <tr> <td>10 <td>Not Used <td> <td> <td> <td> +</table> +Example:<br> +<code>$PMVXG,000,,,,,,,,,,*48</code><br> +<code>$PMVXG,000,,,,,5128.4651,N,00020.0715,W,58.04,*4F</code> + +<hr> + +<h3><a name="input_001">$PMVXG,001</a></h3> +<h4>Initialization/Mode Control - Part B</h4> +Specifies various navigation parameters: Altitude aiding, acceleration +DOP limits, and satellite elevation limits. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range + <tr> <td>*1 <td>Constrain Altitude <td> <td>Int <td>1 <td>0=3D Only<br>1=Auto<br>2=2D Only + <tr> <td>2 <td>Not Used <td> <td> <td> <td> + <tr> <td>*3 <td>Horizontal Acceleration Factor<td>m/sec^2 <td>Float <td>1.0 <td>0.5-10.0 + <tr> <td>*4 <td>Not Used <td> <td> <td> <td> + <tr> <td>*5 <td>VDOP Limit <td> <td>Int <td>10 <td>1-9999 + <tr> <td>*6 <td>HDOP Limit <td> <td>Int <td>10 <td>1-9999 + <tr> <td>7 <td>Elevation Limit <td>Deg <td>Int <td>5 <td>0-90 + <tr> <td>8 <td>Time Output Mode <td> <td>Char <td>U <td>U=UTC<br>L=Local Time + <tr> <td>9 <td>Local Time Offset <td>HHMM <td>Int <td>0 <td>+/- 0-2359 +</table> +Example:<br> +<code>$PMVXG,001,3,,0.1,0.1,10,10,5,U,0*06</code> + +<hr> + + +<h3><a name="input_007">$PMVXG,007</a></h3> +<h4>Control Port Output Configuration</h4> +This message enables or disables output of the specified sentence and +defines the output rate. The user sends this message for each sentence +that the receiver is to output. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range + <tr> <td>1 <td>Control Port Output Block Label<td> <td>Char <td> <td> + <tr> <td>2 <td>Clear Current Output List<td> <td>Int <td> <td>0=No<br>1=Yes + <tr> <td>3 <td>Add/Delete Sentence from List<td> <td>Int <td> <td>1=Append<br>2=Delete + <tr> <td>4 <td>Not Used <td> <td> <td> <td> + <tr> <td>5 <td>Sentence Output Rate <td>Sec <td>Int <td> <td>1-9999 + <tr> <td>6 <td># digits of Precision for CGA and GLL sentences<td> <td>Int <td>2 <td>2-4 + <tr> <td>7 <td>Not Used <td> <td> <td> <td> + <tr> <td>8 <td>Not Used <td> <td> <td> <td> +</table> +Example:<br> +<code>$PMVXG,007,022,0,1,,1,,,*4F</code> + +<hr> + + +<h3><a name="input_023">$PMVXG,023</a></h3> +<h4>Time Recovery Configuration</h4> +This message is used to enable/disable the time recovery feature of the +receiver. The time synchronization for the 1PPS output is specified in +addition to a user time bias and an error tolerance for a valid pulse. +This record is accepted in units configured for time recovery. If the +back panel contains a 1PPS outlet, the receiver is a time recovery +unit. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range + <tr> <td>*1 <td>Time Recovery Mode <td> <td>Char <td>D <td>D=Dynamic<br>S=Static<br>K=Known Position<br>N=No Time Recovery + <tr> <td>2 <td>Time Synchronization <td> <td>Char <td>G <td>U=UTC<br>G=GPS + <tr> <td>3 <td>Time Mark Mode <td> <td>Char <td>A <td>A=Always<br>V=Valid Pulses Only + <tr> <td>4 <td>Maximum Time Error <td>Nsec <td>Int <td>100 <td>50-1000 + <tr> <td>5 <td>User Time Bias <td>Nsec <td>Int <td>0 <td>+/- 99999 + <tr> <td>6 <td>ASCII Time Message Control<td> <td>Int <td>0 <td>0=No Output<br>1=830 to Control Port<br>2=830 to Equipment Port + <tr> <td>7 <td>Known Pos PRN <td> <td>Int <td>0 <td>1-32<br>0=Track All Sats +</table> +Example:<br> +<code>$PMVXG,023,S,U,A,500,0,1,*16</code> + +<hr> + + +<h3><a name="input_gpq">$CDGPQ,YYY</a></h3> +<h4>Query From a Remote Device / Request to Output a Sentence</h4> +Enables the controller to request a one-time transmission of a specific +block label. To output messages at a periodic rate, refer to input +sentence <a href="#input_007">$PMVXG,007</a>. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Default <th>Range + <tr> <td>1:CD <td>ID of Remote Device <td> <td>Char <td> <td>(See <cite>NMEA-0183</cite>) + <tr> <td>2:GP <td>GPS <td> <td>Char <td> <td>(See <cite>NMEA-0183</cite>) + <tr> <td>3:Q <td>Query <td> <td>Char <td> <td>(See <cite>NMEA-0183</cite>) + <tr> <td>4:YYY <td>Label of Desired Sentence<td> <td>Char <td> <td>Any Valid NMEA or Magnavox Sentence Type +</table> +Example:<br> +<code>$CDGPQ,030*5E</code> + + + +<hr> +<h2><a name="output">Control Port Output Sentences</a></h2> +These are the subset of the MX4200 control port output sentences +recognized by the NTP driver. + +<hr> + +<h3><a name="output_000">$PMVXG,000</a></h3> +<h4>Receiver Status</h4> +Returns the current status of the receiver including the operating +mode, number of satellites visible, and the number of satellites being +tracked. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Range + <tr> <td>1 <td>Current Receiver Status <td> <td>Char <td>ACQ=Reacquisition<br>ALT=Constellation Selection<br>IAC=Initial Acquisition<br>IDL=Idle, No Satellites<br>NAV=Navigating<br>STS=Search The Sky<br>TRK=Tracking + <tr> <td>2 <td>Number of Satellites that should be Visible <td> <td>Int <td>0-12 + <tr> <td>3 <td>Number of Satellites being Tracked <td> <td>Int <td>0-12 + <tr> <td>4 <td>Time since Last Navigation <td>HHMM <td>Int <td>0-2359 + <tr> <td>5 <td>Initialization Status <td> <td>Int <td>0=Waiting for Initialization<br>1=Initialization Complete +</table> +Example:<br> +<code>$PMVXG,000,TRK,3,3,0122,1*19</code> + +<hr> + +<h3><a name="output_021">$PMVXG,021</a></h3> +<h4>Position, Height, Velocity</h4> +This sentence gives the receiver position, height, navigation mode and +velocity north/east. <em>This sentence is intended for post analysis +applications.</em> + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Range + <tr> <td>1 <td>UTC Measurement Time <td>Seconds into the week<td>Float<td>0-604800.00 + <tr> <td>2 <td>WGS-84 Latitude <td>DDMM.MMMM<td>Float <td>0-89.9999 + <tr> <td>3 <td>North/South Indicator <td> <td>Char <td>N, S + <tr> <td>4 <td>WGS-84 Longitude <td>DDDMM.MMMM <td>Float <td>0-179.9999 + <tr> <td>5 <td>East/West Indicator <td> <td>Char <td>E, W + <tr> <td>6 <td>Altitude (MSL) <td>Meters <td>Float <td> + <tr> <td>7 <td>Geoidal Height <td>Meters <td>Float <td> + <tr> <td>8 <td>Velocity East <td>M/Sec <td>Float <td> + <tr> <td>9 <td>Velocity North <td>M/Sec <td>Float <td> + <tr> <td>10 <td>Navigation Mode <td> <td>Int <td><em>Navigating</em><br> + 1=Position From a Remote Device<br> + 2=2D<br> + 3=3D<br> + 4=2D differential<br> + 5=3D differential<br> + <em>Not Navigating</em><br> + 51=Too Few Satellites<br> + 52=DOPs too large<br> + 53=Position STD too large<br> + 54=Velocity STD too large<br> + 55=Too many iterations for velocity<br> + 56=Too many iterations for position<br> + 57=3 Sat Startup failed +</table> +Example:<br> +<code>$PMVXG,021,142244.00,5128.4744,N,00020.0593,W,00054.4,0047.4,0000.1,-000.2,03*66</code> + +<hr> + +<h3><a name="output_022">$PMVXG,022</a></h3> +<h4>DOPs</h4> +This sentence reports the DOP (Dilution Of Precision) values actually +used in the measurement processing corresponding to the satellites +listed. The satellites are listed in receiver channel order. Fields +11-16 are output only on 12-channel receivers. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Range + <tr> <td>1 <td>UTC Measurement Time <td>Seconds into the week<td>Float<td>0-604800.00 + <tr> <td>2 <td>East DOP (EDOP) <td> <td>Float <td> + <tr> <td>3 <td>North DOP (NDOP) <td> <td>Float <td> + <tr> <td>4 <td>Vertical DOP (VDOP) <td> <td>Float <td> + <tr> <td>5 <td>PRN on Channel #1 <td> <td>Int <td>1-32 + <tr> <td>6 <td>PRN on Channel #2 <td> <td>Int <td>1-32 + <tr> <td>7 <td>PRN on Channel #3 <td> <td>Int <td>1-32 + <tr> <td>8 <td>PRN on Channel #4 <td> <td>Int <td>1-32 + <tr> <td>9 <td>PRN on Channel #5 <td> <td>Int <td>1-32 + <tr> <td>10 <td>PRN on Channel #6 <td> <td>Int <td>1-32 + <tr> <td>11 <td>PRN on Channel #7 <td> <td>Int <td>1-32 + <tr> <td>12 <td>PRN on Channel #8 <td> <td>Int <td>1-32 + <tr> <td>13 <td>PRN on Channel #9 <td> <td>Int <td>1-32 + <tr> <td>14 <td>PRN on Channel #10 <td> <td>Int <td>1-32 + <tr> <td>15 <td>PRN on Channel #11 <td> <td>Int <td>1-32 + <tr> <td>16 <td>PRN on Channel #12 <td> <td>Int <td>1-32 +</table> +Example:<br> +<code>$PMVXG,022,142243.00,00.7,00.8,01.9,27,26,10,09,13,23*77</code> + +<hr> + +<h3><a name="output_030">$PMVXG,030</a></h3> +<h4>Software Configuration</h4> +This sentence contains the navigation processor and baseband firmware +version numbers. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Range + <tr> <td>1 <td>Nav Processor Version Number <td> <td>Char <td> + <tr> <td>2 <td>Baseband Firmware Version Number <td> <td>Char <td> +</table> +Example:<br> +<code>$PMVXG,030,DA35,015</code> + +<hr> + +<h3><a name="output_101">$PMVXG,101</a></h3> +<h4>Control Sentence Accept/Reject</h4> +This sentence is returned (on the Control Port) for every +<strong>$PMVXG</strong> and <strong>$XXGPQ</strong> sentence that is +received. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Range + <tr> <td>1 <td>Sentence ID <td> <td>Char <td> + <tr> <td>2 <td>Accept/Reject Status <td> <td>Int <td>0=Sentence Accepted<br> + 1=Bad Checksum<br> + 2=Illegal Value<br> + 3=Unrecognized ID<br> + 4=Wrong # of fields<br> + 5=Required Data Field Missing<br> + 6=Requested Sentence Unavailable + <tr> <td>3 <td>Bad Field Index <td> <td>Int <td> + <tr> <td>4 <td>Requested Sentence ID (If field #1 = GPQ) <td> <td>Char <td> +</table> +Example:<br> +<code>$PMVXG,101,GPQ,0,,030*0D</code> + +<hr> + +<h3><a name="output_523">$PMVXG,523</a></h3> +<h4>Time Recovery Configuration</h4> +This sentence contains the configuration of the time recovery function +of the receiver. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Range + <tr> <td>1 <td>Time Recovery Mode <td> <td>Char <td>D=Dynamic<br>S=Static<br>K=Known Position<br>N=No Time Recovery + <tr> <td>2 <td>Time Synchronization <td> <td>Char <td>U=UTC Time<br>G=GPS Time + <tr> <td>3 <td>Time Mark Mode <td> <td>Char <td>A=Always Output Time Pulse<br>V=Only when Valid + <tr> <td>4 <td>Maximum Time Error for which a time mark will be considered valid <td>Nsec <td>Int <td> + <tr> <td>5 <td>User Time Bias <td>Nsec <td>Int <td> + <tr> <td>6 <td>Time Message Control <td> <td>Int <td>0=No Message<br>1=830 to Control Port<br>2=830 to Equipment Port + <tr> <td>7 <td>Not Used <td> <td> <td> +</table> +Example:<br> +<code>$PMVXG,523,S,U,A,0500,000000,1,0*23</code> + +<hr> + +<h3><a name="output_830">$PMVXG,830</a></h3> +<h4>Time Recovery Results</h4> +This sentence is output approximately 1 second preceding the 1PPS +output. It indicates the exact time of the next pulse, whether or not +the time mark will be valid (based on operator-specified error +tolerance), the time to which the pulse is synchronized, the receiver +operating mode, and the time error of the <strong>last</strong> 1PPS +output. The leap second flag (Field #11) is not output by older +receivers. + +<p> +<table border> + <tr> <th>Field <th>Description <th>Units <th>Format <th>Range + <tr> <td>1 <td>Time Mark Valid <td> <td>Char <td>T=Valid<br>F=Not Valid + <tr> <td>2 <td>Year <td> <td>Int <td>1993- + <tr> <td>3 <td>Month <td> <td>Int <td>1-12 + <tr> <td>4 <td>Day <td>Nsec <td>Int <td>1-31 + <tr> <td>5 <td>Time <td>HH:MM:SS<td>Int <td>00:00:00-23:59:59 + <tr> <td>6 <td>Time Synchronization <td> <td>Char <td>U=UTC<br>G=GPS + <tr> <td>7 <td>Operating Mode <td> <td>Char <td>D=Dynamic<br>S=Static<br>K=Known Position + <tr> <td>8 <td>Oscillator Offset - estimate of oscillator frequency error <td>PPB <td>Int <td> + <tr> <td>9 <td>Time Mark Error of last pulse <td>Nsec <td>Int <td> + <tr> <td>10 <td>User Time Bias <td>Nsec <td>Int <td> + <tr> <td>11 <td>Leap Second Flag - indicates that a leap second will occur. + This value is usually zero except during the week + prior to a leap second occurence, when this value + will be set to +/-1. A value of +1 indicates + that GPS time will be 1 second further ahead of + UTC time. + <td> <td>Int <td>-1,0,1 +</table> +Example:<br> +<code>$PMVXG,830,T,1998,10,12,15:30:46,U,S,000298,00003,000000,01*02</code> + +<hr> + + +</BODY> +</HTML> |