×CANboat documentationTopPGN listPhysical QuantitiesField TypesLookup enumerationsIndirect lookup enumerationsBitfield enumerationsLookup with FieldType enumerationsNotes

The CANboat project Quick PCS PGN documentation version 9.2.0.

This page covers the bus of Quick's Proportional Control System (windlasses, thrusters). For NMEA 2000 see the NMEA 2000 PGN documentation. The data is also available as XML and JSON.

Copyright

CANboat version v9.2.0 (C) 2009-2026, Kees Verruijt, Harlingen, The Netherlands. For more information see https://github.com/canboat/canboat This file is part of CANboat. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Quick PCS

Quick's Proportional Control System connects its windlasses, thrusters and their controls over a CAN bus of its own. Its frames have a standard 11 bit CAN identifier rather than the 29 bit ISO 11783 one of NMEA 2000 and J1939, and that identifier is only a message type: there is no priority, source or destination in it, and no manufacturer either. On this page the "PGN" of a message is that identifier. A device appears to identify itself in the first two bytes of each message instead.

Because an 11 bit identifier says nothing about who sent it, any other device on the bus that uses 11 bit frames would decode as if it were Quick. CANboat therefore only decodes Quick when asked to, with --protocol quick, and an identifier this page does not define is shown as a plain 11 bit frame, not as a Quick one. Only SocketCAN and candump captures carry 11 bit frames; NMEA 2000 gateways drop them.

What is here comes from a single capture of one windlass, contributed in canboat/canboat#938. More captures, of other devices and settings, are very welcome: please open an issue at https://github.com/canboat/canboat/issues.

Note: It should be obvious that all data below is not authoritative; it is just our interpretation.

PGN list

11-bit CAN frame

An 11-bit CAN identifier with no definition. An 11-bit identifier is only a message type and carries no manufacturer, so nothing says which device or protocol sent it; its payload is shown as is.

0x6C0: PGN 1728 - Quick: Unknown 0x6C0

Sent by a Quick windlass alongside Chain Count (0x6C1). Its payload did not change in the one capture we have, so what it carries is not known.

This PGN is not fully reverse engineered. Some aspects that are known to be missing/incorrect:

This single-frame PGN is 8 bytes long and contains 2 fields.

Field # Field Name Description Unit Type PartOfPrimaryKey
1Talker IDThe same 16 bits start every Quick message from a device; see Chain Count
0 .. 65532
16 bits unsigned NUMBER
2Data48 bits BINARY

0x6C1: PGN 1729 - Quick: Chain Count

A Quick windlass's chain counter, about twice a second.

This PGN is not fully reverse engineered. Some aspects that are known to be missing/incorrect:

This single-frame PGN is 8 bytes long and contains 3 fields.

Field # Field Name Description Unit Type PartOfPrimaryKey
1Talker IDThe same 16 bits start every Quick message from a device
0 .. 65532
16 bits unsigned NUMBER
2Chain CounterChain paid out, counted in the unit that Units names
0 .. 4294967292
32 bits unsigned NUMBER
3UnitsThe unit Chain Counter counts in
0 .. 65532
16 bits lookup QUICK_CHAIN_UNITS

0x6C2: PGN 1730 - Quick: Unknown 0x6C2

Sent by a Quick windlass alongside Chain Count (0x6C1). Its payload did not change in the one capture we have, so what it carries is not known.

This PGN is not fully reverse engineered. Some aspects that are known to be missing/incorrect:

This single-frame PGN is 8 bytes long and contains 2 fields.

Field # Field Name Description Unit Type PartOfPrimaryKey
1Talker IDThe same 16 bits start every Quick message from a device; see Chain Count
0 .. 65532
16 bits unsigned NUMBER
2Data48 bits BINARY

0x6C3: PGN 1731 - Quick: Unknown 0x6C3

Sent by a Quick windlass alongside Chain Count (0x6C1). Its payload did not change in the one capture we have, so what it carries is not known.

This PGN is not fully reverse engineered. Some aspects that are known to be missing/incorrect:

This single-frame PGN is 8 bytes long and contains 2 fields.

Field # Field Name Description Unit Type PartOfPrimaryKey
1Talker IDThe same 16 bits start every Quick message from a device; see Chain Count
0 .. 65532
16 bits unsigned NUMBER
2Data48 bits BINARY

Physical quantities

A lot of fields represent a physical, observable, quantity.

ELECTRICAL_CURRENT - Electrical current

In the CAN data these are expressed in Ampere, abbreviated as A.

For more information see: https://en.wikipedia.org/wiki/Electric_current

ELECTRICAL_CHARGE - Electrical charge

In the CAN data these are expressed in Coulomb, abbreviated as C.

For more information see: https://en.wikipedia.org/wiki/Electric_charge

ELECTRICAL_ENERGY - Electrical energy

The amount of electricity used or stored. The base unit used in NMEA 2000 is the Kilo Watt Hour (kWh) which is equivalent to 3.6e6 J (Joules).

In the CAN data these are expressed in Kilo Watt Hour, abbreviated as kWh.

For more information see: https://en.wikipedia.org/wiki/Electrical_energy

ELECTRICAL_POWER - Electrical power

The amount of energy transferred or converted per unit time.

In the CAN data these are expressed in Watt, abbreviated as W.

For more information see: https://en.wikipedia.org/wiki/Electrical_power

ELECTRICAL_APPARENT_POWER - AC apparent power

The amount of power transferred where the current and voltage are in phase.

In the CAN data these are expressed in Volt Ampere, abbreviated as VA.

For more information see: https://en.wikipedia.org/wiki/Volt-ampere

ELECTRICAL_REACTIVE_POWER - AC reactive power

The amount of power transferred where the current and voltage are not in phase.

In the CAN data these are expressed in Volt Ampere Reactive, abbreviated as VAR.

For more information see: https://en.wikipedia.org/wiki/Volt-ampere#Reactive

POTENTIAL_DIFFERENCE - Potential difference

In the CAN data these are expressed in Volt, abbreviated as V.

For more information see: https://en.wikipedia.org/wiki/Voltage

POWER_FACTOR - Power Factor

Used in AC circuits only, the ratio of the real power absorbed by the load to the apparent power flowing in the circuit. If less than one, the voltage and current are not in phase.

In the CAN data these are expressed in Cos(Phi), abbreviated as Cos Phi.

For more information see: https://en.wikipedia.org/wiki/Power_factor

LENGTH - Length

The physical size in one dimension of an object.

In the CAN data these are expressed in Meter, abbreviated as m.

For more information see: https://en.wikipedia.org/wiki/Length

DISTANCE - Distance

The amount of separation between two objects.

In the CAN data these are expressed in meter, abbreviated as m.

For more information see: https://en.wikipedia.org/wiki/Distance

SPEED - Speed

The velocity, or length per unit of time.

In the CAN data these are expressed in meter per second, abbreviated as m/s.

For more information see: https://en.wikipedia.org/wiki/Speed

ANGLE - Angle

All standardized PGNs seen so far all use radians, but some manufacturer specific PGNs use degrees (deg).

In the CAN data these are expressed in radian, abbreviated as rad.

For more information see: https://en.wikipedia.org/wiki/Angle

ANGULAR_VELOCITY - Angular velocity

The speed at which a measured angle changes

In the CAN data these are expressed in radians per second, abbreviated as rad/s.

For more information see: https://en.wikipedia.org/wiki/Angular_velocity

VOLUME - Volume

A measure of occupied three-dimensional space.

In the CAN data these are expressed in liter, abbreviated as L.

For more information see: https://en.wikipedia.org/wiki/Volume

VOLUMETRIC_FLOW - Volumetric flow

The volume of fluid which passes per unit time.

In the CAN data these are expressed in liter per hour, abbreviated as L/h.

For more information see: https://en.wikipedia.org/wiki/Volumetric_flow_rate

MAGNETIC_FIELD - Magnetic field

In the CAN data these are expressed in Tesla, abbreviated as T.

For more information see: https://en.wikipedia.org/wiki/Magnetic_field

FREQUENCY - Frequency

In the CAN data these are expressed in Hertz, abbreviated as Hz.

For more information see: https://en.wikipedia.org/wiki/Radio_frequency

DATE - Date

A calendar date is a reference to a particular day in time, in NMEA 2000 expressed as the number of days since 1970-01-01 (UNIX epoch).

In the CAN data these are expressed in days, abbreviated as d.

For more information see: https://en.wikipedia.org/wiki/Calendar_date

TIME - Time

Time is what clocks measure. We use time to place events in sequence one after the other, and we use time to compare how long events last. Absolute times in NMEA2000 are expressed as seconds since midnight(in an undefined timezone)

In the CAN data these are expressed in Second, abbreviated as s.

For more information see: https://en.wikipedia.org/wiki/Time

DURATION - Duration of an event or interval between two points in time

In the CAN data these are expressed in Second, abbreviated as s.

GEOGRAPHICAL_LATITUDE - Geographical latitude

Combined with a geographical longitude the two fields form a unique point on earth, when height is disregarded.

In the CAN data these are expressed in degree, abbreviated as deg.

For more information see: https://en.wikipedia.org/wiki/Geographic_coordinate_system

GEOGRAPHICAL_LONGITUDE - Geographical longitude

Combined with a geographical latitude the two fields form a unique point on earth, when height is disregarded.

In the CAN data these are expressed in degree, abbreviated as deg.

For more information see: https://en.wikipedia.org/wiki/Geographic_coordinate_system

TEMPERATURE - Temperature

In the CAN data these are expressed in Kelvin, abbreviated as K.

For more information see: https://en.wikipedia.org/wiki/Temperature

PRESSURE - Pressure

In the CAN data these are expressed in Pascal, abbreviated as Pa.

For more information see: https://en.wikipedia.org/wiki/Pressure

PRESSURE_RATE - Pressure rate

How the pressure changes over time.

In the CAN data these are expressed in Pascal per hour, abbreviated as Pa/hr.

For more information see: https://en.wikipedia.org/wiki/Pressure

CONCENTRATION - Concentration of one substance in another, in this marine context usually the amount of salts in water

In the CAN data these are expressed in parts per million, abbreviated as ppm.

For more information see: https://www.engineeringtoolbox.com/water-salinity-d_1251.html

DIMENSIONLESS_RATIO - Dimensionless ratio

A ratio of two quantities with the same dimension, yielding a unitless number. Includes percentages, eccentricity (m/m), clock drift (s/s), and similar.

In the CAN data these are expressed in ratio, abbreviated as ratio.

For more information see: https://en.wikipedia.org/wiki/Dimensionless_quantity

SQUARE_ROOT_LENGTH - Square root of length

Used in GPS/GNSS almanac data for the square root of the semi-major axis of satellite orbits.

In the CAN data these are expressed in sqrt(m), abbreviated as sqrt(m).

For more information see: https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes

SIGNAL_STRENGTH - Signal strength expressed in dB with respect to 1 uV/m

In the CAN data these are expressed in decibel, abbreviated as dB.

For more information see: https://en.wikipedia.org/wiki/Signal_strength_in_telecommunications

SIGNAL_TO_NOISE_RATIO - Signal-to-noise ratio

In the CAN data these are expressed in decibel, abbreviated as dB.

For more information see: https://en.wikipedia.org/wiki/Signal-to-noise_ratio

Field types

All fields are of one of the following field types.

NUMBER - Number

Encoding: Binary numbers are little endian. Number fields that are at least two bits in length use the highest positive value to represent unknown. Number fields with at least 7 as maximum (3 bits unsigned, 4 bits signed) use the highest value minus one as an error indicator. This is likely also true for numbers where 3 is the maximum value, but there are few fields that have this length -- certainly as a number, there are a lot of lookup fields of two bits length. For signed numbers the maximum values are the maximum positive value and that minus 1, not the all-ones bit encoding which is the maximum negative value.

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

For more information see: https://en.wikipedia.org/wiki/Binary_number

FLOAT - 32 bit IEEE-754 floating point number

32 bits signed number

Unavailable value: the IEEE-754 Not-a-Number value means the field is unavailable.

For more information see: https://en.wikipedia.org/wiki/IEEE_754

DECIMAL - An unsigned numeric value where each byte holds the binary value of two decimal digits (0..99)

Encoding: Each byte contains the binary value of two decimal digits, so 1234 is represented by 2 bytes containing 0x0c (=12) and 0x22 (=34). This is NOT BCD. A value with an odd number of digits is padded with a trailing zero, e.g. the 9-digit MMSI 512000953 is encoded as 5120009530 (5 bytes), as a DSC call sends it (ITU-R M.585); a trailing zero is taken as that padding and dropped, so it decodes as 512000953, the same as an MMSI field. The leading zeros of a group (0MIDXXXXX) or coast station (00MIDXXXX) MMSI are part of it and stay. A decoder must not drop the trailing zero when the field has TrailingZeroIsDigitField and TrailingZeroIsDigitValue and the field with that order holds that value, as the last digit is then part of the value. PGN 129808's DSC Message Address does this for a call to a geographical area (DSC Format 102), whose ten digits all count. A byte that is not a digit pair (above 99), or a field the packet ends inside, makes the whole value not available.

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

LOOKUP - Number value where each value encodes for a distinct meaning

For almost all lookups the list of values is known with some precision, but it is quite possible that a value occurs that has no corresponding textual explanation. Generally the same special values for Error (max value - 1) and Unknown (max value) that are used for plain numbers are also valid for lookups, but some lookups define a lookup key/value pair for the maximum possible value in that field. In fact, recent additions to PGNs such as alerts have two bit lookup fields that specify four actual valid values. This makes it impossible to send an unknown value for these fields.

Encoding: Each lookup has a LookupEnumeration defining what the possible values mean

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

INDIRECT_LOOKUP - Number value where each value encodes for a distinct meaning but the meaning also depends on the value in another field

For almost all lookups the list of values is known with some precision, but it is quite possible that a value occurs that has no corresponding textual explanation.

Encoding: Each lookup has a LookupIndirectEnumeration defining what the possible values mean

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

BITLOOKUP - Number value where each bit value encodes for a distinct meaning

For almost all lookups the list of values is known with some precision, but it is quite possible that a value occurs that has no corresponding textual explanation.

Encoding: Each LookupBit has a LookupBitEnumeration defining what the possible values mean. A bitfield can have any combination of bits set.

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

DYNAMIC_FIELD_KEY - Number value where each value encodes for a distinct meaning including a fieldtype of the next variable field; generally followed by an optional DYNAMIC_FIELD_LENGTH and a DYNAMIC_FIELD_VALUE field; when there is no DYNAMIC_FIELD_LENGTH field the length is contained in the lookup table

These values have been determined by reverse engineering, given the known values it is anticipated that there are unknown enumeration values and some known values have incorrect datatypes

Encoding: Each lookup has a LookupFieldTypeEnumeration defining what the possible values mean

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

DYNAMIC_FIELD_LENGTH - Number value that indicates the length of the following DYNAMIC_FIELD_VALUE field

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

DYNAMIC_FIELD_VALUE - Variable field whose type and length is dynamic

Encoding: The type definition of the field is defined by an earlier LookupFieldTypeEnumeration field. The length is defined by the preceding length field or the length determined by the lookup value.

Unavailable value: depends on the data type that is resolved at run time through the companion DYNAMIC_FIELD_KEY field.

TIME - Time

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

For more information see: https://en.wikipedia.org/wiki/Time

DURATION - Duration

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

DATE - Date

16 bits unsigned number

Encoding: The date, in days since 1 January 1970.

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

For more information see: https://en.wikipedia.org/wiki/Calendar_date

PGN - Parameter Group Number

Encoding: A 24 bit number referring to a PGN

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

ISO_NAME - ISO NAME field

64 bits unsigned number

Encoding: A 64 bit field containing the ISO name, e.g. all fields produced by PGN 60928. Use the definition of PGN 60928 to explain the subfields.

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

STRING_FIX - A fixed length string containing single byte codepoints.

The character encoding is not defined by NMEA 2000. Bytes below 0x80 are ASCII, but above that devices differ, so CANboat decodes the content as UTF-8 when the bytes form well-formed UTF-8 and as ISO 8859-1 (Latin-1) otherwise. See the STRING_LAU comment for the observations behind this.

Encoding: This always takes up as many bytes as defined in the field definition. Three end-of-string characters are seen: 0xff (255), the standard NMEA 2000 "Unknown" value. '@', the standard AIS "Unknown" value for strings. 0x00, the standard C end-of-string marker. It is encouraged to stop the string at the first such character (and not make it part of the string). An empty string can be considered to make the entire field "Unknown".

Unavailable value: an empty string (after trimming end-of-string bytes such as 0xff, 0x00 and '@') means the whole field is unavailable.

STRING_LZ - A varying length string containing single byte codepoints encoded with a length byte and terminating zero.

This type of string is found only in SonicHub and Fusion brand specific PGNs. SonicHub is no longer produced. The use of the Fusion specific PGNs is no longer very prevalent now that there are generic PGNs for audio/media devices. Fusion devices have been observed sending UTF-8 here, including characters that ISO 8859-1 cannot represent at all (see samples/fusion-130820-utf8.raw). CANboat decodes the content as UTF-8 when the bytes form well-formed UTF-8 and as ISO 8859-1 (Latin-1) otherwise.

Encoding: The length of the string is determined by a starting length byte. It also contains a terminating zero byte. The length byte includes neither the zero byte or itself, and it counts bytes rather than characters, so a multi-byte character contributes more than one. For the character encoding see the comment.

Unavailable value: an empty string (after trimming end-of-string bytes such as 0xff, 0x00 and '@') means the whole field is unavailable.

STRING_LAU - A varying length string containing double or single byte codepoints encoded with a length byte.

Observed on a single bus: a Fusion sends UTF-8 under control byte 1 (bytes C5 AB for U+016B, see samples/fusion-126998-utf8.raw) while a B&G sends ISO 8859-1 (byte E6 for U+00E6, see samples/bandg-129285-latin1.raw) -- the same field type under the same control byte. The encoding therefore follows from neither the field type nor the control byte, and CANboat decodes the content as UTF-8 when the bytes form well-formed UTF-8 and as ISO 8859-1 (Latin-1) otherwise. The two devices also frame the field differently: the B&G appends a zero byte and counts it in the length, the Fusion does neither. Control byte 0 has so far only been seen on fields that were empty.

Encoding: The length of the string is determined by a starting length byte. This count includes the length and type bytes, so any empty string contains count 2. The 2nd byte contains 0 for UNICODE (UTF-16) or 1 for ASCII. In practice the ASCII encoding is not restricted to 7-bit ASCII; bytes above 0x7f do occur, and what they mean depends on the sending device. See the comment.

Unavailable value: an empty string (after trimming end-of-string bytes such as 0xff, 0x00 and '@') means the whole field is unavailable.

BINARY - Binary field

Encoding: Unspecified content consisting of any number of bits.

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

RESERVED - Reserved field

NMEA reserved for future expansion and/or to align next data on byte boundary

Encoding: All reserved bits shall be 1

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

SPARE - Spare field

This is like a reserved field but originates from other sources where unused fields shall be 0, like the AIS ITU-1371 standard.

Encoding: All spare bits shall be 0

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

MMSI - MMSI

32 bits unsigned number

Encoding: The MMSI is encoded as a 32 bit number, but is always printed as a 9 digit number and should be considered as a string. The first three or four digits are special, see the USCG link for a detailed explanation. The top three 32-bit values are reserved, as for any number (see below); in addition 0 is not a valid MMSI (no station holds MID 000) and devices send it for "none", so 0 is also treated as not available.

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

For more information see: https://navcen.uscg.gov/maritime-mobile-service-identity

VARIABLE - Variable

Encoding: The definition of the field is that of the reference PGN and reference field, this is totally variable.

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

FIELD_INDEX - Field Index

8 bits unsigned number

Encoding: Index of the specified field in the PGN referenced.

Unavailable value: the top of the integer range is reserved. The most positive value means "data not available"; depending on the bit width the next one or two values below it mean "out of range" and "reserved". Each individual field lists its actual reserved values as Unknown, OutOfRange and Reserved. For a lookup, a value that the enumeration names explicitly is a real value and is not reserved.

ADDRESS - NMEA 2000 / J1939 network address

8 bits unsigned number

Encoding: One byte holding the bus address of a device. Every value is meaningful, so there are no top-of-range sentinels -- 0..253 are claimable device addresses, 254 is the null address (a device that has not claimed, or cannot claim, an address) and 255 is the global address, meaning broadcast / all devices.

Unavailable value: none. This field type has no unavailable encoding (it is an identifier, filler or structured field).

For more information see: https://en.wikipedia.org/wiki/SAE_J1939

Lookup enumerations

ACTISENSE_OPERATING_MODE (0 - 65535)

ValueDescription
0Undefined
1NGT Transfer Normal Mode
2NGT Transfer Rx All Mode
3NGT Transfer Raw Mode
4NGW Convert Normal Mode
5CAN Packet Mode
6CAN Packet ASCII Mode
16Buffer Mode 1
17Buffer Mode 2
18Buffer Mode 3
19Autoswitch Direct Mode
20Autoswitch Smart Mode
21Combine Slow Mode
22Combine Fast Mode
23Test Mode 1
24NSI Mode 1
25IEC 61162-450 Mode 1
512Normal
40000Predefined Mode 1
40001Predefined Mode 2

CERTIFICATION_LEVEL (0 - 255)

ValueDescription
0Level A
1Level B

QUICK_CHAIN_UNITS (0 - 65535)

ValueDescription
2Feet

Indirect Lookup enumerations

Bitfield Lookup enumerations

Lookup with FieldType enumerations

Notes

Excess-K offset

Some fields are not stored as a straight signed two's complement binary number, but as an binary number with an offset.

So in effect the value is signed, but it is stored as an unsigned number where the unsigned number n should be interpreted as (n + K). As the offset in these definitions is negative, it results in a value that can be negative.

For more information see: https://en.wikipedia.org/wiki/Offset_binary