freeipmi-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Freeipmi-users] Free ipmi 1.6.3 ipmi-sel command exits with a error


From: Stephen Abbene
Subject: Re: [Freeipmi-users] Free ipmi 1.6.3 ipmi-sel command exits with a error on some quanta servers
Date: Wed, 14 Aug 2019 20:39:42 +0000
User-agent: Microsoft-MacOutlook/10.1b.0.190715

Thank you for the quick response Albert.  Here is the output you requested 
below:

$ sudo ./ipmi-sel -W discretereading --debug
=====================================================
Get SDR Repository Info Request
=====================================================
[              20h] = cmd[ 8b]
=====================================================
Get SDR Repository Info Response
=====================================================
[              20h] = cmd[ 8b]
[               0h] = comp_code[ 8b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[              71h] = record_count[16b]
[            1070h] = free_space[16b]
[               0h] = most_recent_addition_timestamp[32b]
[               0h] = most_recent_erase_timestamp[32b]
[               1h] = get_sdr_repository_allocation_info_command_supported[ 1b]
[               1h] = reserve_sdr_repository_command_supported[ 1b]
[               1h] = partial_add_sdr_command_supported[ 1b]
[               0h] = delete_sdr_command_supported[ 1b]
[               0h] = reserved[ 1b]
[               1h] = 
modal_non_modal_sdr_repository_update_operation_supported[ 2b]
[               0h] = overflow_flag[ 1b]
=====================================================
SDR Management Controller Device Locator Record
=====================================================
[               1h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[              12h] = record_type[ 8b]
[              12h] = record_length[ 8b]
[               0h] = device_slave_address.reserved[ 1b]
[              10h] = device_slave_address[ 7b]
[               0h] = channel_number[ 4b]
[               0h] = channel_number.reserved[ 4b]
[               0h] = global_initialization.event_message_generation[ 2b]
[               0h] = global_initialization.log_initialization_agent_errors[ 1b]
[               0h] = 
global_initialization.controller_logs_initialization_agent_errors[ 1b]
[               0h] = power_state_notification.reserved[ 1b]
[               0h] = power_state_notification.controller[ 1b]
[               0h] = 
power_state_notification.acpi_device_power_state_notification[ 1b]
[               0h] = 
power_state_notification.acpi_system_power_state_notification[ 1b]
[               1h] = device_capabilities.sensor_device[ 1b]
[               1h] = device_capabilities.sdr_repository_device[ 1b]
[               1h] = device_capabilities.sel_device[ 1b]
[               1h] = device_capabilities.fru_inventory_device[ 1b]
[               1h] = device_capabilities.ipmb_event_receiver[ 1b]
[               1h] = device_capabilities.ipmb_event_generator[ 1b]
[               1h] = device_capabilities.bridge[ 1b]
[               1h] = device_capabilities.chassis_device[ 1b]
[               0h] = reserved[24b]
[               0h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               0h] = oem[ 8b]
[              C7h] = device_id_string_type_length[ 8b]
[  30303532545341h] = device_id_string[56b]
=====================================================
SDR FRU Device Locator Record
=====================================================
[               2h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[              11h] = record_type[ 8b]
[              11h] = record_length[ 8b]
[               0h] = device_access_address.reserved[ 1b]
[              10h] = device_access_address[ 7b]
[               0h] = logical_fru_device_device_slave_address[ 8b]
[               6h] = private_bus_id[ 3b]
[               0h] = lun_for_master_write_read_fru_command[ 2b]
[               0h] = logical_physical_access_lun_bus_id.reserved[ 2b]
[               1h] = logical_physical_fru_device[ 1b]
[               0h] = channel_number.reserved[ 4b]
[               0h] = channel_number[ 4b]
[               0h] = reserved[ 8b]
[              10h] = device_type[ 8b]
[               0h] = device_type_modifier[ 8b]
[               7h] = fru_entity_id[ 8b]
[               1h] = fru_entity_instance[ 8b]
[               0h] = oem[ 8b]
[              C6h] = device_id_string_type_length[ 8b]
[    5552465F424Dh] = device_id_string[48b]
=====================================================
SDR Event Only Record
=====================================================
[               3h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              18h] = record_length[ 8b]
[               1h] = sensor_owner_id.type[ 1b]
[               0h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              A6h] = sensor_number[ 8b]
[              22h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               Ch] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CCh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[12B]
[ 4Dh 65h 6Dh 6Fh 72h 79h 20h 45h ]
[ 76h 65h 6Eh 74h ]
=====================================================
SDR Event Only Record
=====================================================
[               4h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              15h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              9Dh] = sensor_number[ 8b]
[              2Bh] = entity_id[ 8b]
[               2h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               7h] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              C9h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[ 9B]
[ 55h 50h 49h 20h 45h 72h 72h 6Fh ]
[ 72h ]
=====================================================
SDR Event Only Record
=====================================================
[               5h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              16h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              A1h] = sensor_number[ 8b]
[              2Bh] = entity_id[ 8b]
[               4h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              13h] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CAh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[10B]
[ 50h 43h 49h 45h 20h 45h 72h 72h ]
[ 6Fh 72h ]
=====================================================
SDR Event Only Record
=====================================================
[               6h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              16h] = record_length[ 8b]
[               1h] = sensor_owner_id.type[ 1b]
[               0h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              9Eh] = sensor_number[ 8b]
[              2Bh] = entity_id[ 8b]
[               3h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               Fh] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CAh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[10B]
[ 50h 4Fh 53h 54h 20h 45h 72h 72h ]
[ 6Fh 72h ]
=====================================================
SDR Event Only Record
=====================================================
[               7h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              18h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              87h] = sensor_number[ 8b]
[              2Bh] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               Ch] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CCh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[12B]
[ 4Dh 65h 6Dh 6Fh 72h 79h 20h 45h ]
[ 72h 72h 6Fh 72h ]
=====================================================
SDR Event Only Record
=====================================================
[               8h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              18h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              90h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              13h] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CCh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[12B]
[ 43h 72h 69h 74h 69h 63h 61h 6Ch ]
[ 20h 49h 52h 51h ]
=====================================================
SDR Compact Sensor Record
=====================================================
[               9h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               2h] = record_type[ 8b]
[              23h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              71h] = sensor_number[ 8b]
[               6h] = entity_id[ 8b]
[               2h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               0h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               0h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               0h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[              23h] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = assertion_event_mask.event_offset_0[ 1b]
[               1h] = assertion_event_mask.event_offset_1[ 1b]
[               1h] = assertion_event_mask.event_offset_2[ 1b]
[               1h] = assertion_event_mask.event_offset_3[ 1b]
[               0h] = assertion_event_mask.event_offset_4[ 1b]
[               0h] = assertion_event_mask.event_offset_5[ 1b]
[               0h] = assertion_event_mask.event_offset_6[ 1b]
[               0h] = assertion_event_mask.event_offset_7[ 1b]
[               0h] = assertion_event_mask.event_offset_8[ 1b]
[               0h] = assertion_event_mask.event_offset_9[ 1b]
[               0h] = assertion_event_mask.event_offset_10[ 1b]
[               0h] = assertion_event_mask.event_offset_11[ 1b]
[               0h] = assertion_event_mask.event_offset_12[ 1b]
[               0h] = assertion_event_mask.event_offset_13[ 1b]
[               0h] = assertion_event_mask.event_offset_14[ 1b]
[               0h] = assertion_event_mask.reserved[ 1b]
[               0h] = deassertion_event_mask.event_offset_0[ 1b]
[               0h] = deassertion_event_mask.event_offset_1[ 1b]
[               0h] = deassertion_event_mask.event_offset_2[ 1b]
[               0h] = deassertion_event_mask.event_offset_3[ 1b]
[               0h] = deassertion_event_mask.event_offset_4[ 1b]
[               0h] = deassertion_event_mask.event_offset_5[ 1b]
[               0h] = deassertion_event_mask.event_offset_6[ 1b]
[               0h] = deassertion_event_mask.event_offset_7[ 1b]
[               0h] = deassertion_event_mask.event_offset_8[ 1b]
[               0h] = deassertion_event_mask.event_offset_9[ 1b]
[               0h] = deassertion_event_mask.event_offset_10[ 1b]
[               0h] = deassertion_event_mask.event_offset_11[ 1b]
[               0h] = deassertion_event_mask.event_offset_12[ 1b]
[               0h] = deassertion_event_mask.event_offset_13[ 1b]
[               0h] = deassertion_event_mask.event_offset_14[ 1b]
[               0h] = deassertion_event_mask.reserved[ 1b]
[               1h] = discrete_reading_mask.state_bit_0[ 1b]
[               1h] = discrete_reading_mask.state_bit_1[ 1b]
[               1h] = discrete_reading_mask.state_bit_2[ 1b]
[               1h] = discrete_reading_mask.state_bit_3[ 1b]
[               0h] = discrete_reading_mask.state_bit_4[ 1b]
[               0h] = discrete_reading_mask.state_bit_5[ 1b]
[               0h] = discrete_reading_mask.state_bit_6[ 1b]
[               0h] = discrete_reading_mask.state_bit_7[ 1b]
[               0h] = discrete_reading_mask.state_bit_8[ 1b]
[               0h] = discrete_reading_mask.state_bit_9[ 1b]
[               0h] = discrete_reading_mask.state_bit_10[ 1b]
[               0h] = discrete_reading_mask.state_bit_11[ 1b]
[               0h] = discrete_reading_mask.state_bit_12[ 1b]
[               0h] = discrete_reading_mask.state_bit_13[ 1b]
[               0h] = discrete_reading_mask.state_bit_14[ 1b]
[               0h] = discrete_reading_mask.reserved[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               3h] = sensor_unit1.analog_data_format[ 2b]
[               0h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[24b]
[               0h] = oem[ 8b]
[              C8h] = id_string_type_length_code[ 8b]
[676F646863746157h] = id_string[64b]
=====================================================
SDR Compact Sensor Record
=====================================================
[               Ah] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               2h] = record_type[ 8b]
[              24h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              E6h] = sensor_number[ 8b]
[               6h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               0h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               0h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               0h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[              10h] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               0h] = assertion_event_mask.event_offset_0[ 1b]
[               0h] = assertion_event_mask.event_offset_1[ 1b]
[               1h] = assertion_event_mask.event_offset_2[ 1b]
[               0h] = assertion_event_mask.event_offset_3[ 1b]
[               1h] = assertion_event_mask.event_offset_4[ 1b]
[               1h] = assertion_event_mask.event_offset_5[ 1b]
[               0h] = assertion_event_mask.event_offset_6[ 1b]
[               0h] = assertion_event_mask.event_offset_7[ 1b]
[               0h] = assertion_event_mask.event_offset_8[ 1b]
[               0h] = assertion_event_mask.event_offset_9[ 1b]
[               0h] = assertion_event_mask.event_offset_10[ 1b]
[               0h] = assertion_event_mask.event_offset_11[ 1b]
[               0h] = assertion_event_mask.event_offset_12[ 1b]
[               0h] = assertion_event_mask.event_offset_13[ 1b]
[               0h] = assertion_event_mask.event_offset_14[ 1b]
[               0h] = assertion_event_mask.reserved[ 1b]
[               0h] = deassertion_event_mask.event_offset_0[ 1b]
[               0h] = deassertion_event_mask.event_offset_1[ 1b]
[               0h] = deassertion_event_mask.event_offset_2[ 1b]
[               0h] = deassertion_event_mask.event_offset_3[ 1b]
[               0h] = deassertion_event_mask.event_offset_4[ 1b]
[               0h] = deassertion_event_mask.event_offset_5[ 1b]
[               0h] = deassertion_event_mask.event_offset_6[ 1b]
[               0h] = deassertion_event_mask.event_offset_7[ 1b]
[               0h] = deassertion_event_mask.event_offset_8[ 1b]
[               0h] = deassertion_event_mask.event_offset_9[ 1b]
[               0h] = deassertion_event_mask.event_offset_10[ 1b]
[               0h] = deassertion_event_mask.event_offset_11[ 1b]
[               0h] = deassertion_event_mask.event_offset_12[ 1b]
[               0h] = deassertion_event_mask.event_offset_13[ 1b]
[               0h] = deassertion_event_mask.event_offset_14[ 1b]
[               0h] = deassertion_event_mask.reserved[ 1b]
[               0h] = discrete_reading_mask.state_bit_0[ 1b]
[               0h] = discrete_reading_mask.state_bit_1[ 1b]
[               0h] = discrete_reading_mask.state_bit_2[ 1b]
[               0h] = discrete_reading_mask.state_bit_3[ 1b]
[               0h] = discrete_reading_mask.state_bit_4[ 1b]
[               0h] = discrete_reading_mask.state_bit_5[ 1b]
[               0h] = discrete_reading_mask.state_bit_6[ 1b]
[               0h] = discrete_reading_mask.state_bit_7[ 1b]
[               0h] = discrete_reading_mask.state_bit_8[ 1b]
[               0h] = discrete_reading_mask.state_bit_9[ 1b]
[               0h] = discrete_reading_mask.state_bit_10[ 1b]
[               0h] = discrete_reading_mask.state_bit_11[ 1b]
[               0h] = discrete_reading_mask.state_bit_12[ 1b]
[               0h] = discrete_reading_mask.state_bit_13[ 1b]
[               0h] = discrete_reading_mask.state_bit_14[ 1b]
[               0h] = discrete_reading_mask.reserved[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               3h] = sensor_unit1.analog_data_format[ 2b]
[               0h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               1h] = id_string_instance_modifier_offset[ 7b]
[               1h] = entity_instance_sharing[ 1b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[24b]
[               0h] = oem[ 8b]
[              C9h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[ 9B]
[ 45h 76h 65h 6Eh 74h 20h 4Ch 6Fh ]
[ 67h ]
=====================================================
SDR Event Only Record
=====================================================
[               Bh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              19h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              16h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               6h] = channel_number[ 4b]
[              17h] = sensor_number[ 8b]
[              2Eh] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              DCh] = sensor_type[ 8b]
[              75h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 53h 50h 53h 20h 46h 57h 20h 48h ]
[ 65h 61h 6Ch 74h 68h ]
=====================================================
SDR Event Only Record
=====================================================
[               Ch] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              18h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              16h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               6h] = channel_number[ 4b]
[              18h] = sensor_number[ 8b]
[              2Eh] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              DCh] = sensor_type[ 8b]
[              72h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CCh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[12B]
[ 4Eh 4Dh 20h 45h 78h 63h 65h 70h ]
[ 74h 69h 6Fh 6Eh ]
=====================================================
SDR Event Only Record
=====================================================
[               Dh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              15h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              16h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               6h] = channel_number[ 4b]
[              19h] = sensor_number[ 8b]
[              2Eh] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              DCh] = sensor_type[ 8b]
[              73h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              C9h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[ 9B]
[ 4Eh 4Dh 20h 48h 65h 61h 6Ch 74h ]
[ 68h ]
=====================================================
SDR Event Only Record
=====================================================
[               Eh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              1Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              16h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               6h] = channel_number[ 4b]
[              1Ah] = sensor_number[ 8b]
[              2Eh] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              DCh] = sensor_type[ 8b]
[              74h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CFh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[15B]
[ 4Eh 4Dh 20h 43h 61h 70h 61h 62h ]
[ 69h 6Ch 69h 74h 69h 65h 73h ]
=====================================================
SDR Event Only Record
=====================================================
[               Fh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              18h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              16h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               6h] = channel_number[ 4b]
[              1Bh] = sensor_number[ 8b]
[              2Eh] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              DCh] = sensor_type[ 8b]
[              72h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CCh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[12B]
[ 4Eh 4Dh 20h 54h 68h 72h 65h 73h ]
[ 68h 6Fh 6Ch 64h ]
=====================================================
SDR Event Only Record
=====================================================
[              10h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              12h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              F0h] = sensor_number[ 8b]
[              D1h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              14h] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              C6h] = id_string_type_length_code[ 8b]
[    6E6F74747542h] = id_string[48b]
=====================================================
SDR Event Only Record
=====================================================
[              11h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              16h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              77h] = sensor_number[ 8b]
[              13h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               9h] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CAh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[10B]
[ 50h 6Fh 77h 65h 72h 20h 55h 6Eh ]
[ 69h 74h ]
=====================================================
SDR Event Only Record
=====================================================
[              12h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              19h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              7Ah] = sensor_number[ 8b]
[              90h] = entity_id[ 8b]
[               2h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              28h] = sensor_type[ 8b]
[              6Fh] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 42h 4Dh 43h 20h 46h 57h 20h 48h ]
[ 65h 61h 6Ch 74h 68h ]
=====================================================
SDR Event Only Record
=====================================================
[              13h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              12h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              74h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               2h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               7h] = sensor_type[ 8b]
[               3h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              C6h] = id_string_type_length_code[ 8b]
[    525245544143h] = id_string[48b]
=====================================================
SDR Full Sensor Record
=====================================================
[              14h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              34h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D0h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              3Fh] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Dh] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              8Ah] = nominal_reading[ 8b]
[              E2h] = normal_maximum[ 8b]
[              B6h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              D0h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              B0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              C9h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[ 9B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 31h 32h ]
[ 56h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              15h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              34h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D1h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              ADh] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              8Ah] = nominal_reading[ 8b]
[              EFh] = normal_maximum[ 8b]
[              BAh] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              CFh] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              AEh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              C9h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[ 9B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 33h 56h ]
[ 33h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              16h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              39h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D3h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              47h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              6Bh] = nominal_reading[ 8b]
[              7Bh] = normal_maximum[ 8b]
[              5Ch] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              9Fh] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              87h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CEh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[14B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 31h 56h ]
[ 30h 35h 5Fh 50h 43h 48h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              17h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              33h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D2h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               5h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               1h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              8Bh] = nominal_reading[ 8b]
[              E4h] = normal_maximum[ 8b]
[              A8h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              D0h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              AEh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              C8h] = id_string_type_length_code[ 8b]
[5635505F746C6F56h] = id_string[64b]
=====================================================
SDR Full Sensor Record
=====================================================
[              18h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D4h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              3Fh] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Dh] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              8Ah] = nominal_reading[ 8b]
[              E2h] = normal_maximum[ 8b]
[              B6h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              D5h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              AFh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 31h 32h ]
[ 56h 5Fh 41h 55h 58h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              19h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D5h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              47h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              98h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              6Ch] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 56h 4Eh ]
[ 4Eh 5Fh 50h 43h 48h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              1Ah] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D6h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              5Fh] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              8Ah] = nominal_reading[ 8b]
[              7Bh] = normal_maximum[ 8b]
[              5Ch] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              CCh] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              B2h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 31h 56h ]
[ 38h 5Fh 50h 43h 48h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              1Bh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              37h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D7h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              D6h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              99h] = nominal_reading[ 8b]
[              B4h] = normal_maximum[ 8b]
[              88h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              AAh] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              73h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CCh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[12B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 33h 56h ]
[ 5Fh 42h 41h 54h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              1Ch] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              3Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D8h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              5Fh] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              E2h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              9Dh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              D0h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[16B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 56h 43h ]
[ 43h 49h 4Eh 5Fh 43h 50h 55h 30h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              1Dh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              3Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              DAh] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              5Fh] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              E2h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              9Dh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              D0h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[16B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 56h 43h ]
[ 43h 49h 4Eh 5Fh 43h 50h 55h 31h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              1Eh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              3Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              D9h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              47h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              A7h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              73h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              D0h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[16B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 56h 43h ]
[ 43h 49h 4Fh 5Fh 43h 50h 55h 30h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              1Fh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              3Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              DBh] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              47h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              A7h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              73h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              D0h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[16B]
[ 56h 6Fh 6Ch 74h 5Fh 50h 56h 43h ]
[ 43h 49h 4Fh 5Fh 43h 50h 55h 31h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              20h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              DCh] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              47h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              B6h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              9Bh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 56h 6Fh 6Ch 74h 5Fh 43h 50h 55h ]
[ 30h 5Fh 41h 42h 43h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              21h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              DDh] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              47h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              B6h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              9Bh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 56h 6Fh 6Ch 74h 5Fh 43h 50h 55h ]
[ 30h 5Fh 44h 45h 46h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              22h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              DEh] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              47h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              B6h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              9Bh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 56h 6Fh 6Ch 74h 5Fh 43h 50h 55h ]
[ 31h 5Fh 41h 42h 43h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              23h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              DFh] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               2h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               0h] = sensor_unit1.analog_data_format[ 2b]
[               4h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[              47h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               Ch] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              7Ah] = nominal_reading[ 8b]
[              9Fh] = normal_maximum[ 8b]
[              52h] = normal_minimum[ 8b]
[              FFh] = sensor_maximum_reading[ 8b]
[               0h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              B6h] = upper_critical_threshold[ 8b]
[               0h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[              9Bh] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 56h 6Fh 6Ch 74h 5Fh 43h 50h 55h ]
[ 31h 5Fh 44h 45h 46h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              24h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              6Ch] = sensor_number[ 8b]
[              20h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              1Eh] = nominal_reading[ 8b]
[              4Dh] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              55h] = upper_critical_threshold[ 8b]
[              54h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 54h 65h 6Dh 70h 5Fh 43h 50h 55h ]
[ 30h 5Fh 41h 42h 43h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              25h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              6Dh] = sensor_number[ 8b]
[              20h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              1Eh] = nominal_reading[ 8b]
[              4Dh] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              55h] = upper_critical_threshold[ 8b]
[              54h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 54h 65h 6Dh 70h 5Fh 43h 50h 55h ]
[ 30h 5Fh 44h 45h 46h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              26h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              6Eh] = sensor_number[ 8b]
[              20h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              1Eh] = nominal_reading[ 8b]
[              4Dh] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              55h] = upper_critical_threshold[ 8b]
[              54h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 54h 65h 6Dh 70h 5Fh 43h 50h 55h ]
[ 31h 5Fh 41h 42h 43h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              27h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              6Fh] = sensor_number[ 8b]
[              20h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              1Eh] = nominal_reading[ 8b]
[              4Dh] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              55h] = upper_critical_threshold[ 8b]
[              54h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 54h 65h 6Dh 70h 5Fh 43h 50h 55h ]
[ 31h 5Fh 44h 45h 46h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              28h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              33h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              BEh] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              2Bh] = nominal_reading[ 8b]
[              4Dh] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              80h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              5Ah] = upper_critical_threshold[ 8b]
[              59h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              C8h] = id_string_type_length_code[ 8b]
[4843505F706D6554h] = id_string[64b]
=====================================================
SDR Full Sensor Record
=====================================================
[              29h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              34h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              AAh] = sensor_number[ 8b]
[              41h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              28h] = nominal_reading[ 8b]
[              62h] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              80h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              68h] = upper_critical_threshold[ 8b]
[              67h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              C9h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[ 9B]
[ 54h 65h 6Dh 70h 5Fh 43h 50h 55h ]
[ 30h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              2Ah] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              34h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              ABh] = sensor_number[ 8b]
[              41h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              28h] = nominal_reading[ 8b]
[              62h] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              80h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              68h] = upper_critical_threshold[ 8b]
[              67h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              C9h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[ 9B]
[ 54h 65h 6Dh 70h 5Fh 43h 50h 55h ]
[ 31h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              2Bh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              36h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              68h] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              50h] = upper_critical_threshold[ 8b]
[              4Bh] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CBh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[11B]
[ 54h 65h 6Dh 70h 5Fh 52h 69h 73h ]
[ 65h 72h 35h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              2Ch] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              37h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              58h] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              69h] = upper_critical_threshold[ 8b]
[              68h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CCh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[12B]
[ 54h 65h 6Dh 70h 5Fh 56h 52h 5Fh ]
[ 43h 50h 55h 30h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              2Dh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              37h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              59h] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              69h] = upper_critical_threshold[ 8b]
[              68h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CCh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[12B]
[ 54h 65h 6Dh 70h 5Fh 56h 52h 5Fh ]
[ 43h 50h 55h 31h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              2Eh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              3Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              5Ah] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              69h] = upper_critical_threshold[ 8b]
[              68h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              D0h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[16B]
[ 54h 65h 6Dh 70h 5Fh 56h 52h 5Fh ]
[ 43h 50h 55h 30h 5Fh 41h 42h 43h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              2Fh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              3Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              5Bh] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              69h] = upper_critical_threshold[ 8b]
[              68h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              D0h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[16B]
[ 54h 65h 6Dh 70h 5Fh 56h 52h 5Fh ]
[ 43h 50h 55h 30h 5Fh 44h 45h 46h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              30h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              3Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              5Ch] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              69h] = upper_critical_threshold[ 8b]
[              68h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              D0h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[16B]
[ 54h 65h 6Dh 70h 5Fh 56h 52h 5Fh ]
[ 43h 50h 55h 31h 5Fh 41h 42h 43h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              31h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              3Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              5Dh] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              69h] = upper_critical_threshold[ 8b]
[              68h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              D0h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[16B]
[ 54h 65h 6Dh 70h 5Fh 56h 52h 5Fh ]
[ 43h 50h 55h 31h 5Fh 44h 45h 46h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              32h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              33h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              EEh] = sensor_number[ 8b]
[              40h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              3Ch] = upper_critical_threshold[ 8b]
[              37h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              C8h] = id_string_type_length_code[ 8b]
[3050425F706D6554h] = id_string[64b]
=====================================================
SDR Full Sensor Record
=====================================================
[              33h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              33h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              EFh] = sensor_number[ 8b]
[              40h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              3Ch] = upper_critical_threshold[ 8b]
[              37h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              C8h] = id_string_type_length_code[ 8b]
[3150425F706D6554h] = id_string[64b]
=====================================================
SDR Full Sensor Record
=====================================================
[              34h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              35h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              EDh] = sensor_number[ 8b]
[              40h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               1h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               1h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               1h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              26h] = upper_critical_threshold[ 8b]
[              24h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               5h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CAh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[10B]
[ 54h 65h 6Dh 70h 5Fh 49h 6Eh 6Ch ]
[ 65h 74h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              35h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              39h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              30h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              75h] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              4Ch] = upper_critical_threshold[ 8b]
[              4Bh] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CEh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[14B]
[ 54h 65h 6Dh 70h 5Fh 4Eh 56h 4Dh ]
[ 65h 53h 53h 44h 5Fh 30h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              36h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              39h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              31h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              75h] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              4Ch] = upper_critical_threshold[ 8b]
[              4Bh] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CEh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[14B]
[ 54h 65h 6Dh 70h 5Fh 4Eh 56h 4Dh ]
[ 65h 53h 53h 44h 5Fh 31h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              37h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              39h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              32h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              75h] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              4Ch] = upper_critical_threshold[ 8b]
[              4Bh] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CEh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[14B]
[ 54h 65h 6Dh 70h 5Fh 4Eh 56h 4Dh ]
[ 65h 53h 53h 44h 5Fh 32h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              38h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              39h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              33h] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              75h] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              4Ch] = upper_critical_threshold[ 8b]
[              4Bh] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CEh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[14B]
[ 54h 65h 6Dh 70h 5Fh 4Eh 56h 4Dh ]
[ 65h 53h 53h 44h 5Fh 33h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              39h] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              38h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              63h] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              35h] = upper_critical_threshold[ 8b]
[              30h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 54h 65h 6Dh 70h 5Fh 49h 6Eh 6Ch ]
[ 65h 74h 5Fh 4Dh 42h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              3Ah] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              39h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              62h] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               0h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               1h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               1h] = sensor_initialization.init_thresholds[ 1b]
[               1h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               2h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               1h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               1h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               1h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               1h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               2h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              19h] = nominal_reading[ 8b]
[              2Ah] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              C5h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              55h] = upper_critical_threshold[ 8b]
[              50h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CEh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[14B]
[ 54h 65h 6Dh 70h 5Fh 4Fh 75h 74h ]
[ 6Ch 65h 74h 5Fh 4Dh 42h ]
=====================================================
SDR Full Sensor Record
=====================================================
[              3Bh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               1h] = record_type[ 8b]
[              36h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = sensor_owner_lun.reserved[ 2b]
[               0h] = channel_number[ 4b]
[              BDh] = sensor_number[ 8b]
[               7h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               1h] = sensor_initialization.sensor_scanning[ 1b]
[               0h] = sensor_initialization.event_generation[ 1b]
[               1h] = sensor_initialization.init_sensor_type[ 1b]
[               0h] = sensor_initialization.init_hysteresis[ 1b]
[               0h] = sensor_initialization.init_thresholds[ 1b]
[               0h] = sensor_initialization.init_events[ 1b]
[               1h] = sensor_initialization.init_scanning[ 1b]
[               0h] = sensor_initialization.reserved[ 1b]
[               0h] = sensor_capabilities.event_message_control_support[ 2b]
[               0h] = sensor_capabilities.threshold_access_support[ 2b]
[               0h] = sensor_capabilities.hysteresis_support[ 2b]
[               0h] = sensor_capabilities.auto_re_arm_support[ 1b]
[               0h] = sensor_capabilities.entity_ignore_support[ 1b]
[               1h] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[               0h] = 
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[               0h] = lower_threshold_reading_mask.reserved[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[               0h] = 
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[               0h] = 
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[               0h] = upper_threshold_reading_mask.reserved[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[               0h] = 
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[               0h] = readable_threshold_mask.reserved1[ 1b]
[               0h] = readable_threshold_mask.reserved2[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[               0h] = 
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[               0h] = settable_threshold_mask.reserved1[ 1b]
[               0h] = settable_threshold_mask.reserved2[ 1b]
[               0h] = sensor_unit1.percentage[ 1b]
[               0h] = sensor_unit1.modifier_unit[ 2b]
[               0h] = sensor_unit1.rate_unit[ 3b]
[               2h] = sensor_unit1.analog_data_format[ 2b]
[               1h] = sensor_unit2.base_unit[ 8b]
[               0h] = sensor_unit3.modifier_unit[ 8b]
[               0h] = linearization[ 7b]
[               0h] = linearization.reserved[ 1b]
[               1h] = m_ls[ 8b]
[               0h] = tolerance[ 6b]
[               0h] = m_ms[ 2b]
[               0h] = b_ls[ 8b]
[               0h] = accuracy_ls[ 6b]
[               0h] = b_ms[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = accuracy_exp[ 2b]
[               0h] = accuracy_ms[ 4b]
[               0h] = b_exponent[ 4b]
[               0h] = r_exponent[ 4b]
[               0h] = analog_characteristics_flag.nominal_reading[ 1b]
[               0h] = analog_characteristics_flag.normal_max[ 1b]
[               0h] = analog_characteristics_flag.normal_min[ 1b]
[               0h] = analog_characteristics_flag.reserved[ 5b]
[              2Bh] = nominal_reading[ 8b]
[              4Dh] = normal_maximum[ 8b]
[               0h] = normal_minimum[ 8b]
[              7Fh] = sensor_maximum_reading[ 8b]
[              80h] = sensor_minimum_reading[ 8b]
[               0h] = upper_non_recoverable_threshold[ 8b]
[              55h] = upper_critical_threshold[ 8b]
[              50h] = upper_non_critical_threshold[ 8b]
[               0h] = lower_non_recoverable_threshold[ 8b]
[               0h] = lower_critical_threshold[ 8b]
[               0h] = lower_non_critical_threshold[ 8b]
[               0h] = positive_going_threshold_hysteresis[ 8b]
[               0h] = negative_going_threshold_hysteresis[ 8b]
[               0h] = reserved[16b]
[               0h] = oem[ 8b]
[              CBh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[11B]
[ 54h 65h 6Dh 70h 5Fh 4Fh 75h 74h ]
[ 6Ch 65h 74h ]
=====================================================
SDR Event Only Record
=====================================================
[              3Ch] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              1Bh] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              A7h] = sensor_number[ 8b]
[              2Ch] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              13h] = sensor_type[ 8b]
[              70h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CFh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[15B]
[ 4Fh 74h 68h 65h 72h 20h 49h 49h ]
[ 4Fh 20h 45h 72h 72h 6Fh 72h ]
=====================================================
SDR Event Only Record
=====================================================
[              3Dh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              19h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              16h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               6h] = channel_number[ 4b]
[              B2h] = sensor_number[ 8b]
[              2Eh] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[              DCh] = sensor_type[ 8b]
[               3h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 4Eh 4Dh 20h 53h 6Dh 61h 52h 54h ]
[ 20h 43h 4Ch 53h 54h ]
=====================================================
SDR Event Only Record
=====================================================
[              3Eh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              15h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              10h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               0h] = channel_number[ 4b]
[              7Bh] = sensor_number[ 8b]
[              D0h] = entity_id[ 8b]
[               1h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               8h] = sensor_type[ 8b]
[               3h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              C9h] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[ 9B]
[ 50h 53h 55h 20h 41h 6Ch 65h 72h ]
[ 74h ]
=====================================================
SDR Event Only Record
=====================================================
[              3Fh] = record_id[16b]
[               1h] = sdr_version_major[ 4b]
[               5h] = sdr_version_minor[ 4b]
[               3h] = record_type[ 8b]
[              19h] = record_length[ 8b]
[               0h] = sensor_owner_id.type[ 1b]
[              16h] = sensor_owner_id[ 7b]
[               0h] = sensor_owner_lun[ 2b]
[               0h] = fru_inventory_device_owner_lun[ 2b]
[               6h] = channel_number[ 4b]
[              ADh] = sensor_number[ 8b]
[               3h] = entity_id[ 8b]
[               4h] = entity_instance[ 7b]
[               0h] = entity_instance.type[ 1b]
[               Bh] = sensor_type[ 8b]
[               1h] = event_reading_type_code[ 8b]
[               1h] = share_count[ 4b]
[               0h] = id_string_instance_modifier_type[ 2b]
[               0h] = sensor_direction[ 2b]
[               0h] = id_string_instance_modifier_offset[ 7b]
[               0h] = entity_instance_sharing[ 1b]
[               0h] = reserved[ 8b]
[               0h] = oem[ 8b]
[              CDh] = id_string_type_length_code[ 8b]
[  BYTE ARRAY ... ] = id_string[13B]
[ 43h 68h 61h 73h 73h 69h 73h 20h ]
[ 50h 6Fh 77h 65h 72h ]
ipmi_sdr_parse_sensor_units: invalid sdr record

On 8/14/19, 1:30 PM, "Albert Chu" <address@hidden> wrote:

    External email: Use caution opening links or attachments
    
    
    Hi Stephen,
    
    This is an error I don't recall seeing before.  It appears one of the
    SDR records is not legal and FreeIPMI doesn't really know how to
    proceed b/c of it.  No workaround I can think about at the moment.
    
    Could you send me the --debug output.  Minimally I can see what
    FreeIPMI thinks this motherboard is doing.  Then we consider workaround
    options that I might add.
    
    Al
    
    On Wed, 2019-08-14 at 19:25 +0000, Stephen Abbene wrote:
    > Hello,
    >
    > I noticed that on some quanta systems, particularly the QuantaPlex
    > T42D-2U systems that the ipmi-sel command exits with an error, "
    > ipmi_sdr_parse_sensor_units: invalid sdr record".  Does anyone have
    > any suggestions on how to get this working?
    >
    > $ sudo dmidecode -s system-product-name
    > QuantaPlex T42D-2U
    >
    > $ sudo ./ipmi-sel --version
    > ipmi-sel - 1.6.3
    > Copyright (C) 2003-2015 FreeIPMI Core Team
    > This program is free software; you may redistribute it under the
    > terms of
    > the GNU General Public License.  This program has absolutely no
    > warranty.
    >
    > $ sudo rm -rf /root/.freeipmi
    >
    > $ sudo ./ipmi-sel -f
    > Flushing cache: /root/.freeipmi/sdr-cache/sdr-cache-XXXX.localhost
    > [sabbene@rno-sim-g08-196 ipmi-sel]$ sudo ./ipmi-sel -W
    > discretereading
    > Caching SDR repository information: /root/.freeipmi/sdr-cache/sdr-
    > cache-XXXX.localhost
    > Caching SDR record 113 of 113 (current record ID 113)
    > ipmi_sdr_parse_sensor_units: invalid sdr record
    >
    > $ sudo ./ipmi-sel -W discretereading
    > Caching SDR repository information: /root/.freeipmi/sdr-cache/sdr-
    > cache-XXXX.localhost
    > Caching SDR record 113 of 113 (current record ID 113)
    > ipmi_sdr_parse_sensor_units: invalid sdr record
    >
    > $ sudo ipmitool mc info
    > Device ID                 : 32
    > Device Revision           : 1
    > Firmware Revision         : 3.67
    > IPMI Version              : 2.0
    > Manufacturer ID           : 7244
    > Manufacturer Name         : Quanta
    > Product ID                : 13636 (0x3544)
    > Product Name              : Unknown (0x3544)
    > Device Available          : yes
    > Provides Device SDRs      : yes
    > Additional Device Support :
    >     Sensor Device
    >     SDR Repository Device
    >     SEL Device
    >     FRU Inventory Device
    >     IPMB Event Receiver
    >     IPMB Event Generator
    >     Chassis Device
    > Aux Firmware Rev Info     :
    >     0x00
    >     0x00
    >     0x00
    >     0x00
    >
    >
    > Thanks,
    > Stephen Abbene
    >
    > _______________________________________________
    > Freeipmi-users mailing list
    > address@hidden
    > https://lists.gnu.org/mailman/listinfo/freeipmi-users
    --
    Albert Chu
    address@hidden
    Computer Scientist
    High Performance Systems Division
    Lawrence Livermore National Laboratory
    
    
    


reply via email to

[Prev in Thread] Current Thread [Next in Thread]