Parse Types
Common
| Parse Type ID | Name | Description | Notes | Supports Byte Swapping | Supports Signed |
|---|---|---|---|---|---|
| 1 | Integer | Parser expects to receive a HEX string. The HEX string is converted to an integer. If the input cannot be converted to an integer the original value read off of the tool is saved to the database. | Yes | Yes | |
| 2 | u16 Array – Chart | Parser expects to receive a HEX string. The parser will split the hex string into 2 byte chunks, convert those values to integers and return an array of integer values. The order of values is preserved throughout the parsing process. These integer values are then matched by index with the array of labels in the “Data Labels” field of the memory map. | These values are displayed in a Bar Chart format in QuickLink. Since the data is stored as an ordered array of values, other data consumers can choose other options for display of the data. | Yes | Yes |
| 4 | Timestamp | Parser expects to receive a HEX string. HEX string is converted to an integer, multiplied by 1000 and saved to database as an ISO 8601 string. | Displayed as a human readable date string. | Yes | |
| 5 | u16 Array – Table | Parser expects to receive a HEX string. The parser will split the hex string into 2 byte chunks, convert those values to integers and return an array of integer values. The order of values is preserved throughout the parsing process. These integer values are then matched by index with the array of labels in the “Data Labels” field of the memory map. | These values are displayed in a table format in QuickLink. Since the data is stored as an ordered array of values, other data consumers can choose other options for display of the data. | Yes | Yes |
| 7 | u32 Array – Chart | Parser expects to receive a HEX string. The parser will split the hex string into 4 byte chunks, convert those values to integers and return an array of integer values. The order of values is preserved throughout the parsing process. These integer values are then matched by index with the array of labels in the “Data Labels” field of the memory map. | These values are displayed in a Bar Chart format in QuickLink. Since the data is stored as an ordered array of values, other data consumers can choose other options for display of the data. | Yes | Yes |
| 14 | M18 Battery Cell Balance | This parse type should be applied to the Cell Voltages memory location. The parser will divide the data from the pack into an array of voltages and determine the min and max voltage. It will then calculate the delta between the min and max values. If the delta is greater than the "comparator_value" the pack is out of balance. For cell voltage calculations the "comparator_value" is set to 100. | |||
| 15 | Two Dimensional Bar Chart (High/Low) | Parser expects to receive a HEX string. Hex string is split into 1 byte chunks. The order of values is preserved throughout the parsing process. Each byte is converted to an integer and saved in the database. | Histogram data that is displayed as a chart with each x-axis label/category having both a High and Low value. | Yes | |
| 16 | HEX to ASCII | HEX string is converted to ASCII value. | Displayed as string. | ||
| 17 | Boolean | Parser expects to receive a HEX string. The HEX string is converted to an integer. If the integer value is equal to 1 the parser will save the value as True. Otherwise it will be saved as False. If the input cannot be converted to an integer the original value read off of the tool is saved to the database | Displayed in QuickLink as True or False. | ||
| 18 | Enumeration Dictionary – Integer | HEX string is converted to an integer. That integer is then used as a key into the Enumeration Dictionary associated with that memory address. The final value saved in the database will be the dictionary value (as a string) for the supplied key. Requires “enumeration_dictionary_uuid” column to reference an enumeration dictionary. More information on Enumeration Dictionaries | Displayed as string. | Yes | |
| 19 | Enumeration Dictionary - BITFIELD | HEX value read off of the tools needs to be converted to binary. Each ON bit in the resulting binary representation needs to be evaluated to a HEX string without the other ON bits impacting the final value. Each resulting hex value is the key in a key/value lookup. The final value saved in the database will be the dictionary value (as a string) for the supplied key. Requires “enumeration_dictionary_uuid” column to reference an enumeration dictionary. More Information on Enumeration Dictionaries | |||
| 20 | MX - Present Conditions | A block of data which is optionally byte swapped and parsed as either a binary value or a decimal value. | |||
| 21 | MX - Group 1 Data | A block of data which is keyed by byte position with the following fields: Status, State Compatibility, DL, Min Cell, Max Cell, Output Current, Stack Voltage, Terminal Voltage, Temperature, FG Status, State of Charge, Remaining Capacity, Generic Conditions | |||
| 22 | 2 Byte By 2 Byte | This parse type was initially developed for recording pairs of a product id and a count associated with that product id. The HEX value read off of the tool is divided into 2 byte chunks. For each set of 2 chunks, the first chunk is left as its HEX value. The second 2 bytes is parsed as an unsigned integer. | Data is displayed in a table where column 1 is the first 2 bytes as a HEX value and column 2 is the integer count. | Yes | |
| 23 | HEX String | Parser expects to receive a HEX string. The string is saved to the database as it is received, unless Is Byte Swapped is set to true, in which case the string is byte swapped prior to insertion into the database. | |||
| 24 | 5 Byte By 2 Byte | This parse type is similar to "2 Byte By 2 Byte", but was developed for recording pairs of a MPBID and a count associated with that MPBID. The HEX value read off of the tool is divided into 7 byte chunks. The 1st five bytes of the chunk is left as a HEX value. The last 2 bytes are parsed as an unsigned integer. | Data is displayed in a table where column 1 is the first 5 bytes as a HEX value and column 2 is the integer count. | Yes | |
| 25 | Raw Data | Data with this parse type is not mutated during parsing and is stored in the database exactly as it was pulled off of the tool. | |||
| 26 | UCB Data | A UCB data block comprising multiple child blocks representing individual data points. This block is read from the tool as a single unit and transmitted to the cloud as the same. It is then parsed based on the child element definitions in the Memory Map and stored individually for later access. See field definitions PARSE_OFFSET_ADDRESS, PARSE_SEGMENT_LENGTH, and PARENT_FIELD fields for details on using this parse type. | Including this data type in a Memory Map requires also defining all the child elements for the block which must add up to the same length as defined for the UCB block using the PARSE_SEGMENT_LENGTH field. For example if this block is defined as 100 bytes of data, you must also define child elements PARSE_SEGMENT_LENGTH field sum length also equals 100 bytes. For an example memory map with a properly configured UCB field and child field, see the mock tool memory map FF01 v7 | ||
| 28 | Q7.8 Fixed Point Number | A Q7.8 fixed point number is a signed 16-bit integer with a 1 bit sign, 7 bit integer, and 8 bits of fractional precision. The value is stored in the database as a decimal number. See Texas Instrument Version for more details | Samples: 0x7FFF = 127.99609375, 0x8001 = -127.99609375, 0xFF7F w/ byte swap = 127.99609375, 0x0180 w/ byte swap = -127.99609375 | Yes | Implied |
| 29 | Single Precision Floating Point Number | A single precision floating point number is a 32-bit number with 24 bits of precision. The value is stored in the database as a decimal number. | Samples: 0x4048f5c3 = 3.140000104904175, 0xc3f54840 w/ byte swap = 3.140000104904175 | Yes | Implied |
| 30 | Double Precision Floating Point Number | A double precision floating point number is a 64-bit number with 53 bits of precision. The value is stored in the database as a decimal number. | Samples: 0x40091EB860000000 = 3.140000104904175, 0x00000060B81E0940 w/ byte swap = 3.140000104904175 | Yes | Implied |
| 31 | Q8.7 Fixed Point Number | A Q8.7 fixed point number is a signed 16-bit integer with a 1 bit sign, 8 bit integer, and 7 bits of fractional precision. The value is stored in the database as a decimal number. See Texas Instrument Version for more details | Samples: 0x7FFF = 255.9921875, 0x8001 = -255.9921875, 0xFF7F w/ byte swap = 255.9921875, 0x0180 w/ byte swap = -255.9921875 | Yes | Implied |
| 32 | u8 Array - Chart | Parser expects to receive a HEX string. The parser will split the hex string into 1 byte chunks, convert those values to integers and return an array of integer values. The order of values is preserved throughout the parsing process. | These values are displayed in a Bar Chart format in QuickLink. Since the data is stored as an ordered array of values, other data consumers can choose other options for display of the data. | No | Yes |
| 33 | Multidimensional Dataset | Parser expects to receive a HEX string. The parser will split the raw HEX string data by parsing it into segments based on predefined labels and sub_labels. It calculates field lengths to divide the data into segments, iterating through each combination to extract corresponding integer values. See field definitions PARSED_DATA_LABELS and PARSED_DATA_SUB_LABELS fields for details on using this parse type. | Sample: 0x03070415 PARSED_DATA_LABELS: "A, B" PARSED_DATA_SUB_LABELS: "<1, >1" Result: [A][<1] = 3, [A][>1] = 7, [B][<1] = 4, [B][>1] = 21 | Yes | |
| 34 | Fixed Point (Dynamic) | Fixed point numbers parsed using the defined Q Notation configuration (QN.M) | Sample: 0x00018000 with config of Q15.16 parses as 1.5. 0xF1 with config of Q3.4 parses as -0.9375 | Yes | Yes |
| 35 | Fixed Point Array (Dynamic) | An array of fixed point numbers parsed using the defined Q Notation configuration (QN.M) | Sample: 0x00018000123456780003243F with config of Q15.16 parses as [1.5, 4660.3377685546875, 3.1415863037109375] | Yes | Yes |
| 36 | Float Array | An array of single precision floating point (32bit) numbers | Sample: 0x4048F5C340F8FFFF parses as [3.140000104904175, 7.78125] | Yes | Implied |
MX Batteries
| Parse Type ID | Name | Description | Notes |
|---|---|---|---|
| 9 | MX – FETCMIDX – Index | Parser expects to receive a HEX string. Hex string is converted to an integer. This field is required for proper display of MX Events in the circular buffer. | |
| 10 | MX EVENTS – SYS TICK CIRCULAR BUFFER | Parser expects to receive a HEX string. The parser will split the hex string into 4 byte chunks, convert those values to integers and return an array of integer values. | Displayed within Events UI Requires FETCMIDX for proper display. |
| 11 | MX EVENTS – u32 Array w/ Index | Parser expects to receive a HEX string. The parser will split the hex string into 4 byte chunks, convert those values to integers and return an array of integer values. | Displayed within Events UI Requires FETCMIDX for proper display. |
| 12 | MX EVENTS – POSIX CLOCK CIRCULAR BUFFER | Parser expects to receive a HEX string. The parser will split the hex string into 8 byte chunks, convert those values to timestamps and return an array of timestamp values. | Displayed within Events UI Requires FETCMIDX for proper display. |
| 13 | MX EVENTS – STATE TRANSITIONS | Parser expects to receive a HEX string. The parser will split the hex string into 2 byte chunks, convert those values to integers. Integer values will be used to identify the correct state transition: 0 = UNINITIALIZED 1 = INTERNAL ERROR 2 = SLEEP 3 = IDLE 4 = CHARGING 5 = DISCHARGING 6 = MANUFACTURING | Displayed within Events UI Requires FETCMIDX for proper display. |
MX Super Charger
| Parse Type ID | Name | Description | Notes |
|---|---|---|---|
| 27 | MX SuperCharger Events | This event type is specific to the MX Super Chargers. The Super Charger stores an array of events, each being comprised of the following ordered data points; Event Index, Power Cycle Number, Time Since Power On, Faults, and Warnings. The Faults and Warnings fields themselves are a list of zero or more enumerations of predefined faults and warning codes. Faults (bit value: enumeration):0 : OUTPUT_VOLTAGE_UNEXPECTED 4: OUTPUT_CURRENT_UNEXPECTED 5: OUTPUT_CURRENT_UNDER_TOLERANCE 6: OUTPUT_CURRENT_OVER_TOLERANCE 8: CHARGE_FET_SHORTED 9: UNABLE_TO_EQUALIZE_OUTPUT_VOLTAGE 10: OUTPUT_POWER_SUPPLY_SEQUENCING_ERROR 24: HEATSINK_TEMPERATURE_SENSOR_DAMAGED 25: POWER_ELECTRONICS_FAN_FAILURE 28: MX2_FOUNDATION_ASSERT 29: UNSUPPORTED_DEVICE 30: ABSOLUTE_MAXIMUM_OUTPUT_CURRENT_EXCEEDED 31: BATTERY_MAXIMUM_OUTPUT_VOLTAGE_EXCEEDED Warnings (bit value: enumeration): 0: CHARGER_LOCKED 8: PACK_OUT_OF_TEMP 9: BATTERY_FAN_FAILURE 24: POWER_ELECTRONICS_COLD 25: POWER_ELECTRONICS_HOT 26: CHARGER_OUT_OF_TEMP | Data for this parse type is only viewable within QuickLink Web. |