Communication Protocol Spec¶
Table of contents¶
- Abstract
- MSP430 USS Design Center Packet Structure
- Configuration Parameters Description
- Command 0x80
- Command 0x81
- Command 0x82
- Command 0x83
- Command 0x84
- Command 0x85
- Command 0x86
- Command 0x87
- Command 0x88
- Command 0x89
- Command 0x8A
- Command 0x8B
- Command 0x8C
- Command 0x8D
- Command 0x8E
- Command 0x8F
- Command 0x90
- Command 0x91
- Command 0x92
- Command 0x93
- Command 0x94
- Command 0x95
- Command 0x96
- Command 0x97
- Command 0x98
- Command 0x99
- Command 0x9A
- Command 0x9B
- Command 0x9C
- Command 0x9D
- Command 0x9E
- Command 0x9F
- Command 0xA0
- Plotting Parameters Description
- Variable Length Plotting Parameters Description
- Calibration Parameters Description
ABSTRACT¶
The MSP USS Design Center communication protocol is a communications specification for sending ultrasonic specific data. It enables MSP430 USS-equipped microcontrollers to communicate with design, debug, and tuning tools on host PCs. In addition to this function, it can also provide a mechanism for interfacing a USS MCU to another host MCU or SoC in the context of a larger system. This document discusses the details of the protocol: packet types, packet structure, and transmission. It does not discuss implementations, either for target or host.
MSP430 USS Design Center Packet Structure¶
MSP USS Design Center generic Packet Structure | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
[0] | [1] | [2] | [3] | [4] | [5] | [6] | ... | [N +1] | [N+2] | [N+3] |
MSP
Design Center ID Byte |
Command ID Byte | Read/Write Command Byte | Payload Byte0 |
Payload Byte 1 |
Payload Byte2 |
Payload Byte3 |
... | Payload Byte N |
Checksum (LSB) | Checksum (MSB) |
Configuration Parameters Description¶
All Configuration Parameter (Commands 0x80-0xAF) contains 4 payload bytes. The table below represents the packet structure of a configuration parameter.
MSP USS Design Center generic Packet Structure | ||||||||
---|---|---|---|---|---|---|---|---|
[0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] |
MSP
Design Center ID Byte |
Command ID Byte | Read/Write Command Byte | Payload Byte0 |
Payload Byte 1 |
Payload Byte2 |
Payload Byte3 |
Checksum (LSB) | Checksum (MSB) |
Command 0x80 (Gap Between Pulse Start and ADC Capture)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x80 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Gap between pulse start and ADC capture | uint16_t | 0x0000-0xFFFF |
Byte[3](LSB) Byte[4](MSB) |
Bytes [5-6] | Don't care | N/A | N/A |
Command 0x81 (Number of Pulses)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x81 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Number of Pulses | uint16_t | 0x0000-0xFFFF |
Byte[3](LSB) Byte[4](MSB) |
Bytes [5-6] | Don't care | N/A | N/A |
Command 0x82 (Gap Between Up stream and Down stream)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x82 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Gap Between Up stream and Down stream | uint16_t | 0x0000-0xFFFF |
Byte[3](LSB) Byte[4](MSB) |
Bytes [5-6] | Don't care | N/A | N/A |
Command 0x83 (Gap Between Down stream and Up stream)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x83 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Gap Between Down stream and Up stream | uint16_t | 0x0000-0xFFFF |
Byte[3](LSB) Byte[4](MSB) |
Bytes [5-6] | Don't care | N/A | N/A |
Command 0x84 (Gain Control)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x84 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | Gain Control Selection | uint8_t | -6.5 db ==17 -5.5 db ==18 -4.6 db ==19 -4.1 db ==20 -3.3 db ==21 -2.3 db ==22 -1.4 db ==23 -0.8 db ==24 0.1 db ==25 1.0 db ==26 1.9 db ==27 2.6 db ==28 3.5 db ==29 4.4 db ==30 5.2 db ==31 6.0 db ==32 6.8 db ==33 7.7 db ==34 8.7 db ==35 9.0 db ==36 9.8 db ==37 10.7 db ==38 11.7 db ==39 12.2 db ==40 13.0 db ==41 13.9 db ==42 14.9 db ==43 15.5 db ==44 16.3 db ==45 17.2 db ==46 18.2 db ==47 18.8 db ==48 19.6 db ==49 20.5 db ==50 21.5 db ==51 22.0 db ==52 22.8 db ==53 23.6 db ==54 24.6 db ==55 25.0 db ==56 25.8 db ==57 26.7 db ==58 27.7 db ==59 28.1 db ==60 28.9 db ==61 29.8 db ==62 30.8 db ==63 |
|
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x85 (Meter Constant)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x85 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | Meter Constant | float | +/-3.40 282 346e+38 |
Byte[3](LSB) Byte[6](MSB) |
Command 0x86 (XT2 Frequency in KHz)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x86 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | XT2 Frequency in KHz | uint16_t | 0x0000-0xFFFF |
Byte[3](LSB) Byte[4](MSB) |
Bytes [5-6] | Don't care | N/A | N/A |
Command 0x87 (ADC Sampling Frequency in KHz)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x87 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | ADC Sampling Frequency in KHz | uint16_t | 0x00-0xFFFF |
Byte[3](LSB) Byte[4](MSB) |
Bytes [5-6] | Don't care | N/A | N/A |
Command 0x88 (Signal Sampling Frequency)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x88 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Signal Sampling Frequency | uint16_t | 0x0000-0xFFFF |
Byte[3](LSB) Byte[4](MSB) |
Bytes [5-6] | Don't care | N/A | N/A |
Command 0x89 (Oversampling Rate)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x89 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | ADC Oversampling Rate | uint8_t | 0x00-0xff | |
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x8A (Delta ToF Offset in ps)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x8A | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | Delta ToF Offset in ps | int32_t | 0x0000-0xFFFF |
Byte[3](LSB) Byte[6](MSB) |
Command 0x8B (Absolute ToF additional delay in ns)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x8B | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Absolute ToF additional delay in ns | int32_t | 0x0000-0xFFFFFFF |
Byte[3](LSB) Byte[6](MSB) |
Command 0x8C (Capture Duration in usec)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x8C | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Capture Duration in usec | uint16_t | 0x0000-0xFFFF |
Byte[3](LSB) Byte[4](MSB) |
Bytes [5-6] | Don't care | N/A | N/A |
Command 0x8D ([Param1])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x8D | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #1 | int32_t | 0x0-0xffffffff |
Command 0x8E ([Param2])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x8E | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #2 | int32_t | 0x0000-0xffffffff |
Command 0x8F ([Param3])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x8F | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #3 | int32_t | 0x0000-0xffffffff |
Command 0x90 ([Param4])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x90 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #4 | int32_t | 0x0000-0xffffffff |
Command 0x91 ([Param7])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x91 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #7 | int32_t | 0x0000-0xffffffff |
Command 0x92 ([Param8])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x92 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #8 | int32_t | 0x0000-0xffffffff |
Command 0x93 ([Param9])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x93 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #9 | int32_t | 0x0000-0xffffffff |
Command 0x94 ([Param10])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x94 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #10 | int32_t | 0x0000-0xffffffff |
Command 0x95 (LEA enabled)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x95 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | LEA enabled | bool | true == Computation with LEA is enabled false == Computation with LEA is NOT enabled | |
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x96 (Request Application Configuration Update)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x96 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | Request configuration update | bool | true == Design Center is requesting a configuration update
false == Design Center is NOT requesting a configuration update | |
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x97 (Request Delta ToF, Abs ToF and Volume Flow data)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x97 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | Request configuration update | bool | true == Design Center is requesting Delta ToF, Abs ToF and Volume Flow data
false == Design Center is NOT requesting Delta ToF, Abs ToF and Volume Flow data | |
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x98 (Request UPS and DNS captures)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x98 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | Request configuration update | bool | true == Design Center is requesting UPS and DNS captures
false == Design Center is NOT requesting UPS and DNS captures | |
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x99 (Application version)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x99 | Requests USS DC application version |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | Application Type | uint8_t | 0x00 == Gas Meter 0x01 == Water Meter 0x02-0xff (Reserved) |
|
Bytes [4] | Device ID | uint8_t | 0x00 == MSPFR6047 0x01 == MSP430FR5994 0x02 == MSP430FR6043 0x03 == MSP430FR6007 0x04-0xff (Reserved) |
|
Bytes [5] | Hardware ID | uint8_t | 0x00 == EVM 0x01 == Launchpad 0x02-0xff (Reserved) |
|
Bytes [5] | Firmware ID | uint8_t | 0x00 - 0xff | Indicates the version of comm protocol supported |
Command 0x9A (Error package)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x9A | Reports Error occurred on application code |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | Error Type | uint8_t |
See the [Application Error Messages](ch_errors.html#full-library-error-list)
|
|
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x9B (F1 and f2 package)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x9B | Provides f1 and f2 application values |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Frequency 1 value | uint16_t | 1-65,535 | Frequency is in KHz |
Bytes [5-6] | Frequency 2 value | uint16_t | 1-65,535 | Note 1: Frequency is in KHz Note 2: Currently only used for Gas Meter applications |
Command 0x9C (Pattern option)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x9C | Provides pattern option |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3] | Pattern option | uint8_t | 0x00 == Single Tone 0x01 == Dual Tone 0x02 == f1 to f2 sweep Tone 0x03-0xff (reserved) |
|
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x9D (User message display)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x9D | Provides messages to be displayed in pop-up message form in Design Center |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-4] | Message Code | uint16_t | 0x0000 == Configuration update successful 0x0001 == Configuration update error 0x0003-0xffff (reserved) |
|
Bytes [4-6] | Don't care | N/A | N/A |
Command 0x9E ([Param5])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x9E | Provides start PGAandINBias count |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #5 | int32_t | 0x0000-0xffffffff |
Command 0x9F ([Param6])¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0x9F | Provides start PGAandINBias count |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | General Purpose Param #6 | int32_t | 0x0000-0xffffffff |
Command 0xA0 (Advanced Calibration Table)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xA0 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | Byte 3 | Advanced Calibration Table Status | uint8_t |
0x00 == The MCU has the calibration table disabled. (requested by GUI)
0x01 == The MCU has the calibration table enabled. 0xFF == The MCU has the calibration table disabled (invalid calibration table in MCU) |
Bytes [4-6] | Don't care | N/A | N/A |
Command 0xA1-0xAF (Reserved Commands)¶
Plotting Parameters Description¶
All plotting parameter (Commands 0xB0-0xCF) contains 8 payload bytes. The table below represents the packet structure of a plotting parameter.
MSP USS Design Center generic Packet Structure | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
[0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] | [10] | [11] | [12] |
MSP
Design Center ID Byte |
Command ID Byte | Read/Write Command Byte | Payload Byte0 |
Payload Byte 1 |
Payload Byte2 |
Payload Byte3 |
Payload Byte4 |
Payload Byte5 |
Payload Byte6 |
Payload Byte7 |
Checksum (LSB) | Checksum (MSB) |
Command 0xB0 (Payload contains Delta ToF computation)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xB0 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-10] | Payload contains Delta ToF computation | float | float date type valid range |
Byte[3](LSB) Byte[6](MSB) |
Command 0xB1 (Payload contains Absolute ToF Up stream computation)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xB1 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | Payload contains Absolute ToF Up stream computation | float | float date type valid range |
Byte[3](LSB) Byte[6](MSB) |
Bytes [7-10] | Don't care | N/A | N/A |
Command 0xB2 (Payload contains Absolute ToF Down stream computation)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xB2 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | Payload contains Absolute ToF Down stream computation | float | float date type valid range |
Byte[3](LSB) Byte[6](MSB) |
Bytes [7-10] | Don't care | N/A | N/A |
Command 0xB3 (Payload contains Volume Flow Rate computation)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xB3 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | Payload contains Absolute ToF Down stream computation | float | float date type valid range |
Byte[3](LSB) Byte[6](MSB) |
Bytes [7-10] | Don't care | N/A | N/A |
Command 0xB4 (Payload contains ADC UPS capture start/stop flags and number of expected packages)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xB4 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes 3 | Contains ADC UPS start/stop condition | bool | true == Transmission of ADC UPS capture data will start false == Transmission of ADC UPS capture data is done | |
Bytes 4 | Payload contains ADC UPS number of packets to be transmitted | uint8_t | Valid number of packages (1-255) | |
Bytes [5-10] | Don't care | N/A | N/A |
Command 0xB5 (Payload contains ADC DNS capture start/stop flags and number of expected packages)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xB5 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes 3 | Contains ADC DNS start/stop condition | bool | true == Transmission of ADC UPS capture data will start false == Transmission of ADC UPS capture data is done | |
Bytes 4 | Payload contains ADC DNS number of packets to be transmitted | uint8_t | Valid number of packages (1-255) | |
Bytes [5-10] | Don't care | N/A | N/A |
Command 0xB6 (Generic Plotter command)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xB6 | Allows user to send data to generic ploter |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write |
|
Bytes [3-6] | Generic Plotter command | float | float date type valid range | |
Bytes [7-10] | Don't care | N/A | N/A |
Command 0xB7 (Advanced Generic Plotter command)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xB7 | Allows user to send data to generic plotter defined in cmd |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write |
|
Bytes [3-6] | Generic Plotter command | float | float date type valid range | |
Byte 7 | Plotter Number | uint8_t | 1 to 4 |
|
Bytes [8-10] | Don't care | N/A | N/A |
Command 0xB8-0xBF (Reserved plotting commands)¶
Variable Length Plotting Parameters Description¶
All plotting parameter (Commands 0xC0-0xCF) contains 60 payload bytes.
MSP USS Design UPS/DNS Capture Packet Structure | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
[0] | [1] | [2] | [3] | [4] | [5] | [6] | [...] | [58] | [59] | [60] | [61] | [62] |
MSP
Design Center ID Byte |
Command ID Byte | Read/Write Command Byte | Payload Byte0 |
Payload Byte 1 |
Payload Byte2 |
Payload Byte |
... | Payload Byte 55 |
Payload Byte 56 |
Payload Byte 57 |
Checksum (LSB) | Checksum (MSB) |
Command 0xC0 (Payload contains UPS ADC capture)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xC0 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Byte 3 | Specifies UPS package number | uint8_t | (1-255) | |
Byte 4 | Specifies number of captures (CAP_SIZE) contained in the package | uint8_t | (1-255) | |
Bytes [5-((2*CAP_SIZE) + 4)] | Contains UPS captures | int16_t | (-32768,32767) | |
Bytes [(2*CAP_SIZE) + 5) - 59] | Don't care | N/A | N/A | IMPORTANT: This is only valid when (CAP_SIZE < 27) |
Byte 60 | Don't care | N/A | N/A |
Command 0xC1 (Payload contains DNS ADC capture)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xC0 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Byte 3 | Specifies DNS package number | uint8_t | (1-255) | |
Byte 4 | Specifies number of captures (CAP_SIZE) contained in the package | uint8_t | (1-255) | |
Bytes [5-((2*CAP_SIZE) + 4)] | Contains UPS captures | int16_t | (-32768,32767) | |
Bytes [(2*CAP_SIZE) + 5) - 59] | Don't care | N/A | N/A | IMPORTANT: This is only valid when (CAP_SIZE < 27) |
Byte 60 | Don't care | N/A | N/A |
Command 0xC2-0xCF (Reserved variable length plotting commands)¶
Calibration Parameters Description¶
All calibration parameter (Commands 0xD0-0xDF) contains 20 payload bytes.
MSP USS Design Calibration Packet Structure | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
[0] | [1] | [2] | [3] | [4] | [5] | [6] | [...] | [18] | [19] | [20] | [31] | [32] |
MSP
Design Center ID Byte |
Command ID Byte | Read/Write Command Byte | Payload Byte0 |
Payload Byte 1 |
Payload Byte2 |
Payload Byte |
... | Payload Byte 25 |
Payload Byte 26 |
Payload Byte 27 |
Checksum (LSB) | Checksum (MSB) |
Command 0xD0 (Request Calibration Config)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xD0 | Request target calibration configuration |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Byte 3 | Number of Calibration Ranges | uint8_t | 1 to 16 | |
Byte 4 | Calibration Mode | uint8_t | 0x01 == Linear Regression | |
Byte 5 | Calibration Update | bool | true == Calibration Parameters update in progress false == Calibration Parameters update completed | |
Bytes [6-20] | Don't care | N/A | N/A |
Command 0xD1 (Maximum Volume Flow Rate)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xD1 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Bytes [3-6] | Maximum Volume Flow Rate | float | float date type valid range |
Byte[4](LSB) Byte[7](MSB) |
Bytes [7-20] | Don't care | N/A | N/A |
Command 0xD2 (Calibration Linear Constants)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xD2 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Byte 3 | Range Number | uint8_t | 1 to 16 | |
Bytes [4-7] | Minimum Alpha (VFR/meter constant) | float | float date type valid range |
Byte[4](LSB) Byte[7](MSB) |
Bytes [8-11] | Slope Meter Constant | float | float date type valid range |
Byte[8](LSB) Byte[11](MSB) |
Bytes [12-15] | Offset Meter Constant | float | float date type valid range |
Byte[12](LSB) Byte[15](MSB) |
Bytes [16-20] | Don't care | N/A | N/A |
Command 0xD3 (Device ACK)¶
Byte # | Description | Data Type | Valid Value/Range | Notes |
Byte 0 | Design Center ID | uint8_t | 0x04 | |
Byte 1 | Command | uint8_t | 0xD3 | |
Byte 2 | Read/Write Command | uint8_t | 0x00 == Read 0x01 == Write | |
Byte 3 | Command | uint8_t | Acknowledged Command ID | |
Bytes [4-20] | Don't care | N/A | N/A |