The Control (CDU) Port is used to initialize, monitor, and control the receiver. The structure of the control port sentences is based on the NMEA-0183 Standard for Interfacing Marine Electronics Navigation Devices (version 1.5). For more details, please refer to the NMEA-0183 Specification available from the National Marine Electronics Association.
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. Table 2 lists the reserved characters and defines their usage. Table 1 illustrates the general Magnavox proprietary NMEA sentence format.
$PMVXG,XXX,...................*CK
Character | Meaning |
---|---|
$ | Sentence Start Character |
P | Special ID (P = Proprietary) |
MVX | Originator ID (MVX = Magnavox) |
G | Interface ID (G = GPS) |
XXX | Sentence Type |
... | Data |
* | Optional Checksum Field Delimiter |
CK | Optional Checksum |
Character | Hex Value | Usage |
---|---|---|
$ | 24 | Start of Sentence Identifier |
{cr}{lf} | 0D 0A | End of Sentence Identifier |
, | 2C | Sentence Delimiter |
* | 2A | Optional Checksum Field Delimiter |
Following the start character $
, are five characters
which constitute the block label of the sentence. For Magnavox
proprietary sentences, this label is always PMVXG
. The
next field after the block label is the sentence type, consisting of
three decimal digits.
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.
The notation CK
shown in Table 1
symbolically indicates the optional checksum in the examples. The
checksum is computed by exclusive-ORing all of the bytes between the
$
and the *
characters. The $
,
*
and the checksum are not included in the checksum
computation.
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.
ASCII data characters are transmitted in the following format:
Data Bits | 8 (msb always 0) |
Parity | None |
Stop Bits | 1 |
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.
Field | Description | Units | Format | Default | Range |
---|---|---|---|---|---|
1 | Day | Int | 1-31 | ||
2 | Month | Int | 1-12 | ||
3 | Year | Int | 1991-9999 | ||
4 | GMT Time | HHMMSS | Int | 000000-235959 | |
5 | WGS-84 Latitude | DDMM.MMMM | Float | 0.0 | 0 - 8959.9999 |
6 | North/South Indicator | Char | N | N,S | |
7 | WGS-84 Longitude | DDDMM.MMMM | Float | 0.0 | 0 - 17959.9999 |
8 | East/West Indicator | Char | E | E,W | |
9 | Altitude (height above Mean Sea Level) in meters (WGS-84) | Meters | Float | 0.0 | +/-99999.0 |
10 | Not Used |
$PMVXG,000,,,,,,,,,,*48
$PMVXG,000,,,,,5128.4651,N,00020.0715,W,58.04,*4F
Field | Description | Units | Format | Default | Range |
---|---|---|---|---|---|
*1 | Constrain Altitude | Int | 1 | 0=3D Only 1=Auto 2=2D Only | |
2 | Not Used | ||||
*3 | Horizontal Acceleration Factor | m/sec^2 | Float | 1.0 | 0.5-10.0 |
*4 | Not Used | ||||
*5 | VDOP Limit | Int | 10 | 1-9999 | |
*6 | HDOP Limit | Int | 10 | 1-9999 | |
7 | Elevation Limit | Deg | Int | 5 | 0-90 |
8 | Time Output Mode | Char | U | U=UTC L=Local Time | |
9 | Local Time Offset | HHMM | Int | 0 | +/- 0-2359 |
$PMVXG,001,3,,0.1,0.1,10,10,5,U,0*06
Field | Description | Units | Format | Default | Range |
---|---|---|---|---|---|
1 | Control Port Output Block Label | Char | |||
2 | Clear Current Output List | Int | 0=No 1=Yes | ||
3 | Add/Delete Sentence from List | Int | 1=Append 2=Delete | ||
4 | Not Used | ||||
5 | Sentence Output Rate | Sec | Int | 1-9999 | |
6 | # digits of Precision for CGA and GLL sentences | Int | 2 | 2-4 | |
7 | Not Used | ||||
8 | Not Used |
$PMVXG,007,022,0,1,,1,,,*4F
Field | Description | Units | Format | Default | Range |
---|---|---|---|---|---|
*1 | Time Recovery Mode | Char | D | D=Dynamic S=Static K=Known Position N=No Time Recovery | |
2 | Time Synchronization | Char | G | U=UTC G=GPS | |
3 | Time Mark Mode | Char | A | A=Always V=Valid Pulses Only | |
4 | Maximum Time Error | Nsec | Int | 100 | 50-1000 |
5 | User Time Bias | Nsec | Int | 0 | +/- 99999 |
6 | ASCII Time Message Control | Int | 0 | 0=No Output 1=830 to Control Port 2=830 to Equipment Port | |
7 | Known Pos PRN | Int | 0 | 1-32 0=Track All Sats |
$PMVXG,023,S,U,A,500,0,1,*16
Field | Description | Units | Format | Default | Range |
---|---|---|---|---|---|
1:CD | ID of Remote Device | Char | (See NMEA-0183) | ||
2:GP | GPS | Char | (See NMEA-0183) | ||
3:Q | Query | Char | (See NMEA-0183) | ||
4:YYY | Label of Desired Sentence | Char | Any Valid NMEA or Magnavox Sentence Type |
$CDGPQ,030*5E
Field | Description | Units | Format | Range |
---|---|---|---|---|
1 | Current Receiver Status | Char | ACQ=Reacquisition ALT=Constellation Selection IAC=Initial Acquisition IDL=Idle, No Satellites NAV=Navigating STS=Search The Sky TRK=Tracking | |
2 | Number of Satellites that should be Visible | Int | 0-12 | |
3 | Number of Satellites being Tracked | Int | 0-12 | |
4 | Time since Last Navigation | HHMM | Int | 0-2359 |
5 | Initialization Status | Int | 0=Waiting for Initialization 1=Initialization Complete |
$PMVXG,000,TRK,3,3,0122,1*19
Field | Description | Units | Format | Range |
---|---|---|---|---|
1 | UTC Measurement Time | Seconds into the week | Float | 0-604800.00 |
2 | WGS-84 Latitude | DDMM.MMMM | Float | 0-89.9999 |
3 | North/South Indicator | Char | N, S | |
4 | WGS-84 Longitude | DDDMM.MMMM | Float | 0-179.9999 |
5 | East/West Indicator | Char | E, W | |
6 | Altitude (MSL) | Meters | Float | |
7 | Geoidal Height | Meters | Float | |
8 | Velocity East | M/Sec | Float | |
9 | Velocity North | M/Sec | Float | |
10 | Navigation Mode | Int | Navigating 1=Position From a Remote Device 2=2D 3=3D 4=2D differential 5=3D differential Not Navigating 51=Too Few Satellites 52=DOPs too large 53=Position STD too large 54=Velocity STD too large 55=Too many iterations for velocity 56=Too many iterations for position 57=3 Sat Startup failed |
$PMVXG,021,142244.00,5128.4744,N,00020.0593,W,00054.4,0047.4,0000.1,-000.2,03*66
Field | Description | Units | Format | Range |
---|---|---|---|---|
1 | UTC Measurement Time | Seconds into the week | Float | 0-604800.00 |
2 | East DOP (EDOP) | Float | ||
3 | North DOP (NDOP) | Float | ||
4 | Vertical DOP (VDOP) | Float | ||
5 | PRN on Channel #1 | Int | 1-32 | |
6 | PRN on Channel #2 | Int | 1-32 | |
7 | PRN on Channel #3 | Int | 1-32 | |
8 | PRN on Channel #4 | Int | 1-32 | |
9 | PRN on Channel #5 | Int | 1-32 | |
10 | PRN on Channel #6 | Int | 1-32 | |
11 | PRN on Channel #7 | Int | 1-32 | |
12 | PRN on Channel #8 | Int | 1-32 | |
13 | PRN on Channel #9 | Int | 1-32 | |
14 | PRN on Channel #10 | Int | 1-32 | |
15 | PRN on Channel #11 | Int | 1-32 | |
16 | PRN on Channel #12 | Int | 1-32 |
$PMVXG,022,142243.00,00.7,00.8,01.9,27,26,10,09,13,23*77
Field | Description | Units | Format | Range |
---|---|---|---|---|
1 | Nav Processor Version Number | Char | ||
2 | Baseband Firmware Version Number | Char |
$PMVXG,030,DA35,015
Field | Description | Units | Format | Range |
---|---|---|---|---|
1 | Sentence ID | Char | ||
2 | Accept/Reject Status | Int | 0=Sentence Accepted 1=Bad Checksum 2=Illegal Value 3=Unrecognized ID 4=Wrong # of fields 5=Required Data Field Missing 6=Requested Sentence Unavailable | |
3 | Bad Field Index | Int | ||
4 | Requested Sentence ID (If field #1 = GPQ) | Char |
$PMVXG,101,GPQ,0,,030*0D
Field | Description | Units | Format | Range |
---|---|---|---|---|
1 | Time Recovery Mode | Char | D=Dynamic S=Static K=Known Position N=No Time Recovery | |
2 | Time Synchronization | Char | U=UTC Time G=GPS Time | |
3 | Time Mark Mode | Char | A=Always Output Time Pulse V=Only when Valid | |
4 | Maximum Time Error for which a time mark will be considered valid | Nsec | Int | |
5 | User Time Bias | Nsec | Int | |
6 | Time Message Control | Int | 0=No Message 1=830 to Control Port 2=830 to Equipment Port | |
7 | Not Used |
$PMVXG,523,S,U,A,0500,000000,1,0*23
Field | Description | Units | Format | Range |
---|---|---|---|---|
1 | Time Mark Valid | Char | T=Valid F=Not Valid | |
2 | Year | Int | 1993- | |
3 | Month | Int | 1-12 | |
4 | Day | Nsec | Int | 1-31 |
5 | Time | HH:MM:SS | Int | 00:00:00-23:59:59 |
6 | Time Synchronization | Char | U=UTC G=GPS | |
7 | Operating Mode | Char | D=Dynamic S=Static K=Known Position | |
8 | Oscillator Offset - estimate of oscillator frequency error | PPB | Int | |
9 | Time Mark Error of last pulse | Nsec | Int | |
10 | User Time Bias | Nsec | Int | |
11 | 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. | Int | -1,0,1 |
$PMVXG,830,T,1998,10,12,15:30:46,U,S,000298,00003,000000,01*02