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:
- The list of fields is incomplete; some fields maybe be missing or their attributes may be incorrect
- The length of one or more fields is likely incorrect
- The resolution of one or more fields is likely incorrect
- The default transmission interval is not known
This single-frame PGN is 8 bytes long and contains 2 fields.
| Field # | Field Name | Description | Unit | Type | PartOfPrimaryKey |
|---|---|---|---|---|---|
| 1 | Talker ID | The same 16 bits start every Quick message from a device; see Chain Count | 0 .. 65532 | 16 bits unsigned NUMBER | |
| 2 | Data | 48 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:
- The resolution of one or more fields is likely incorrect
- One or more of the lookup fields contain missing or incorrect values
- The default transmission interval is not known
This single-frame PGN is 8 bytes long and contains 3 fields.
| Field # | Field Name | Description | Unit | Type | PartOfPrimaryKey |
|---|---|---|---|---|---|
| 1 | Talker ID | The same 16 bits start every Quick message from a device | 0 .. 65532 | 16 bits unsigned NUMBER | |
| 2 | Chain Counter | Chain paid out, counted in the unit that Units names | 0 .. 4294967292 | 32 bits unsigned NUMBER | |
| 3 | Units | The 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:
- The list of fields is incomplete; some fields maybe be missing or their attributes may be incorrect
- The length of one or more fields is likely incorrect
- The resolution of one or more fields is likely incorrect
- The default transmission interval is not known
This single-frame PGN is 8 bytes long and contains 2 fields.
| Field # | Field Name | Description | Unit | Type | PartOfPrimaryKey |
|---|---|---|---|---|---|
| 1 | Talker ID | The same 16 bits start every Quick message from a device; see Chain Count | 0 .. 65532 | 16 bits unsigned NUMBER | |
| 2 | Data | 48 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:
- The list of fields is incomplete; some fields maybe be missing or their attributes may be incorrect
- The length of one or more fields is likely incorrect
- The resolution of one or more fields is likely incorrect
- The default transmission interval is not known
This single-frame PGN is 8 bytes long and contains 2 fields.
| Field # | Field Name | Description | Unit | Type | PartOfPrimaryKey |
|---|---|---|---|---|---|
| 1 | Talker ID | The same 16 bits start every Quick message from a device; see Chain Count | 0 .. 65532 | 16 bits unsigned NUMBER | |
| 2 | Data | 48 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)
| Value | Description |
|---|---|
| 0 | Undefined |
| 1 | NGT Transfer Normal Mode |
| 2 | NGT Transfer Rx All Mode |
| 3 | NGT Transfer Raw Mode |
| 4 | NGW Convert Normal Mode |
| 5 | CAN Packet Mode |
| 6 | CAN Packet ASCII Mode |
| 16 | Buffer Mode 1 |
| 17 | Buffer Mode 2 |
| 18 | Buffer Mode 3 |
| 19 | Autoswitch Direct Mode |
| 20 | Autoswitch Smart Mode |
| 21 | Combine Slow Mode |
| 22 | Combine Fast Mode |
| 23 | Test Mode 1 |
| 24 | NSI Mode 1 |
| 25 | IEC 61162-450 Mode 1 |
| 512 | Normal |
| 40000 | Predefined Mode 1 |
| 40001 | Predefined Mode 2 |
CERTIFICATION_LEVEL (0 - 255)
| Value | Description |
|---|---|
| 0 | Level A |
| 1 | Level B |
QUICK_CHAIN_UNITS (0 - 65535)
| Value | Description |
|---|---|
| 2 | Feet |
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