freeipmi-users
[Top][All Lists]
Advanced

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

Re: [Freeipmi-users] ipmi-sensors missing data on HP Gen7/8 servers


From: Stephen Abbene
Subject: Re: [Freeipmi-users] ipmi-sensors missing data on HP Gen7/8 servers
Date: Fri, 15 Mar 2013 10:01:21 -0700

Thanks Albert,

I will get a hold of my contacts at HP and see if they can get me that 
information.  I also have a few HP Gen7/Gen8 servers set aside for testing and 
I could try to recreate the different error light states if you think that 
would be helpful.

-----Original Message-----
From: Albert Chu [mailto:address@hidden
Sent: Friday, March 15, 2013 9:57 AM
To: Stephen Abbene
Cc: address@hidden
Subject: RE: [Freeipmi-users] ipmi-sensors missing data on HP Gen7/8 servers

Hey Stephen,

Those are OEM specific sensors.  While I support a number of OEM sensors
in FreeIPMI, I don't yet support these from HP.  I've asked HP several
times for the "magic" to interpret those sensors, but they have been
unable or unwilling to provide me the magic.

I see that you work at Nvidia.  If HP is a partner of yours, perhaps you
might have some leverage to get the "magic" out of them?  Basically, I
need the sensor event table so that I know (hypothetically) 00h = "ok",
01h = "led on", 02h = "led off", 04h = "blinking", or whatever it may
be.

Al

On Thu, 2013-03-14 at 18:21 -0700, Stephen Abbene wrote:
> Thanks for replying so Quickly Albert.  `ipmi-sensors -W
> discretereading` seems to have done the trick thank you.  Any tips on
> getting the "System Chassis 1 UID Light" and "System Chassis 2 Health
> LED" fields to populate with meaningful data?
>
> I have included the output of `ipmi-sensors -W discretereading --debug` below:
>
> =====================================================
> 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]
> [              3Eh] = record_count[16b]
> [            FFFFh] = free_space[16b]
> [        511B69F4h] = most_recent_addition_timestamp[32b]
> [        FFFFFFFFh] = most_recent_erase_timestamp[32b]
> [               1h] = get_sdr_repository_allocation_info_command_supported[ 
> 1b]
> [               1h] = reserve_sdr_repository_command_supported[ 1b]
> [               0h] = partial_add_sdr_command_supported[ 1b]
> [               1h] = delete_sdr_command_supported[ 1b]
> [               0h] = reserved[ 1b]
> [               0h] = 
> modal_non_modal_sdr_repository_update_operation_supported[ 2b]
> [               0h] = overflow_flag[ 1b]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               0h] = 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]
> [               1h] = sensor_number[ 8b]
> [              17h] = entity_id[ 8b]
> [               1h] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.settable_sensor[ 1b]
> [               3h] = 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]
> [              C0h] = sensor_type[ 8b]
> [              70h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_lower_threshold_reading_mask[16b]
> [               0h] = deassertion_event_upper_threshold_reading_mask[16b]
> [               7h] = 
> discrete_reading_settable_threshold_readable_threshold_mask[16b]
> [               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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 55h 49h 44h 20h 4Ch 69h 67h 68h ]
> [ 74h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               1h] = 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]
> [               2h] = sensor_number[ 8b]
> [              17h] = entity_id[ 8b]
> [               2h] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.settable_sensor[ 1b]
> [               3h] = 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]
> [              C0h] = sensor_type[ 8b]
> [              71h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_lower_threshold_reading_mask[16b]
> [               0h] = deassertion_event_upper_threshold_reading_mask[16b]
> [               7h] = 
> discrete_reading_settable_threshold_readable_threshold_mask[16b]
> [               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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CAh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 48h 65h 61h 6Ch 74h 68h 20h 4Ch ]
> [ 45h 44h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               2h] = 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]
> [               3h] = sensor_number[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               8h] = sensor_type[ 8b]
> [              6Fh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               1h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = 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]
> [               1h] = 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]
> [               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]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               6h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [               1h] = oem[ 8b]
> [              CEh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 50h 6Fh 77h 65h 72h 20h 53h 75h ]
> [ 70h 70h 6Ch 79h 20h 31h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               3h] = 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]
> [               4h] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 31h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               4h] = 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]
> [               5h] = sensor_number[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 32h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               5h] = 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]
> [               6h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 33h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               6h] = 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]
> [               7h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 34h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               7h] = 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]
> [               8h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 35h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               8h] = 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]
> [               9h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 36h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               9h] = 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]
> [               Ah] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 37h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Ah] = 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]
> [               Bh] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               8h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 38h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Bh] = 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]
> [               Ch] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               9h] = entity_instance[ 7b]
> [               1h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Bh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               1h] = 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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C4h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 73h 00h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Entity Association Record
> =====================================================
> [               Ch] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [               8h] = record_type[ 8b]
> [               Bh] = record_length[ 8b]
> [               7h] = container_entity_id[ 8b]
> [               9h] = container_entity_instance[ 8b]
> [               0h] = flags.reserved[ 5b]
> [               0h] = flags.sensor_presence[ 1b]
> [               0h] = flags.record_link[ 1b]
> [               1h] = flags.contained_entities[ 1b]
> [               7h] = entity_id_contained_entity_range_1[ 8b]
> [               2h] = instance_id_contained_entity_range_1[ 8b]
> [               7h] = entity_id_contained_entity_range_2[ 8b]
> [               8h] = instance_id_contained_entity_range_2[ 8b]
> [               0h] = entity_id_contained_entity_range_3[ 8b]
> [               0h] = instance_id_contained_entity_range_3[ 8b]
> [               0h] = entity_id_contained_entity_range_4[ 8b]
> [               0h] = instance_id_contained_entity_range_4[ 8b]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Dh] = 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]
> [               Dh] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              2Eh] = upper_non_recoverable_threshold[ 8b]
> [              2Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [ 30h 31h 2Dh 49h 6Eh 6Ch 65h 74h ]
> [ 20h 41h 6Dh 62h 69h 65h 6Eh 74h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Eh] = 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]
> [               Eh] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 32h 2Dh 43h 50h 55h 20h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Fh] = 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]
> [               Fh] = sensor_number[ 8b]
> [              41h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 33h 2Dh 43h 50h 55h 20h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              10h] = 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]
> [              10h] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 34h 2Dh 50h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 2Dh 36h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              11h] = 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]
> [              11h] = sensor_number[ 8b]
> [              20h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 35h 2Dh 50h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 37h 2Dh 31h 32h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              12h] = 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]
> [              12h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 36h 2Dh 50h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 2Dh 36h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              13h] = 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]
> [              13h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 37h 2Dh 50h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 37h 2Dh 31h 32h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              14h] = 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]
> [              14h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 38h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              15h] = 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]
> [              15h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 39h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              16h] = 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]
> [              16h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 30h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              17h] = 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]
> [              17h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               8h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 31h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              18h] = 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]
> [              18h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               9h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 32h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              19h] = 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]
> [              19h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 33h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              1Ah] = 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]
> [              1Ah] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 34h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              1Bh] = 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]
> [              1Bh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Ch] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 35h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> 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]
> [              1Ch] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Dh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 36h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> 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]
> [              1Dh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Eh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 37h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> 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]
> [              1Eh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Fh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 38h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> 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]
> [              1Fh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 39h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              20h] = 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]
> [              20h] = sensor_number[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              3Ch] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 30h 2Dh 48h 44h 20h 4Dh 61h ]
> [ 78h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              21h] = 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]
> [              21h] = sensor_number[ 8b]
> [              42h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              69h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CAh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 31h 2Dh 43h 68h 69h 70h 73h ]
> [ 65h 74h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              22h] = 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]
> [              22h] = sensor_number[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 32h 2Dh 50h 2Fh 53h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              23h] = 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]
> [              23h] = sensor_number[ 8b]
> [              13h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 33h 2Dh 56h 52h 20h 50h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              24h] = 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]
> [              24h] = sensor_number[ 8b]
> [              13h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 34h 2Dh 56h 52h 20h 50h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              25h] = 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]
> [              25h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              64h] = upper_non_recoverable_threshold[ 8b]
> [              5Fh] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 35h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              26h] = 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]
> [              26h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 36h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              27h] = 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]
> [              27h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 37h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              28h] = 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]
> [              28h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 38h 2Dh 56h 52h 20h 50h 32h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              29h] = 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]
> [              29h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 39h 2Dh 56h 52h 20h 50h 32h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Ah] = 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]
> [              2Ah] = sensor_number[ 8b]
> [              28h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              41h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 30h 2Dh 53h 75h 70h 65h 72h ]
> [ 63h 61h 70h 20h 4Dh 61h 78h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Bh] = 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]
> [              2Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 31h 2Dh 69h 4Ch 4Fh 20h 5Ah ]
> [ 6Fh 6Eh 65h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Ch] = 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]
> [              2Ch] = sensor_number[ 8b]
> [              42h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 32h 2Dh 4Ch 4Fh 4Dh 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Dh] = 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]
> [              2Dh] = sensor_number[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 33h 2Dh 50h 43h 49h 20h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> 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]
> [              2Eh] = sensor_number[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 34h 2Dh 50h 43h 49h 20h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> 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]
> [              2Fh] = sensor_number[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 35h 2Dh 50h 43h 49h 20h 31h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> 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]
> [              30h] = sensor_number[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 36h 2Dh 50h 43h 49h 20h 32h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> 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]
> [              31h] = sensor_number[ 8b]
> [               Bh] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 37h 2Dh 4Ch 4Fh 4Dh 20h 43h ]
> [ 61h 72h 64h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              32h] = 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]
> [              32h] = sensor_number[ 8b]
> [              42h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 38h 2Dh 53h 79h 73h 74h 65h ]
> [ 6Dh 20h 42h 6Fh 61h 72h 64h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              33h] = 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]
> [              33h] = sensor_number[ 8b]
> [               Dh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 39h 2Dh 53h 79h 73h 20h 45h ]
> [ 78h 68h 61h 75h 73h 74h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              34h] = 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]
> [              34h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               Ah] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               3h] = 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]
> [               3h] = sensor_type[ 8b]
> [               9h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = 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]
> [               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]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               6h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               2h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 50h 6Fh 77h 65h 72h 20h 4Dh 65h ]
> [ 74h 65h 72h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              35h] = 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]
> [              35h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               Bh] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               3h] = 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]
> [               Ch] = sensor_type[ 8b]
> [              6Fh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               1h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               0h] = 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]
> [               1h] = 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]
> [               1h] = 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]
> [              58h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 4Dh 65h 6Dh 6Fh 72h 79h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              36h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              70h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               1h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              37h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              73h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               4h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 34h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              38h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              78h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               9h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 39h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              39h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Bh] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               Ch] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CDh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 32h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Ah] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Ch] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               Dh] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Bh] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Fh] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              10h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 34h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Ch] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              84h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              15h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 39h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Dh] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              87h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              18h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CDh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 32h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               0h] = 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]
> [               1h] = sensor_number[ 8b]
> [              17h] = entity_id[ 8b]
> [               1h] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.settable_sensor[ 1b]
> [               3h] = 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]
> [              C0h] = sensor_type[ 8b]
> [              70h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_lower_threshold_reading_mask[16b]
> [               0h] = deassertion_event_upper_threshold_reading_mask[16b]
> [               7h] = 
> discrete_reading_settable_threshold_readable_threshold_mask[16b]
> [               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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 55h 49h 44h 20h 4Ch 69h 67h 68h ]
> [ 74h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               1h] = 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]
> [               2h] = sensor_number[ 8b]
> [              17h] = entity_id[ 8b]
> [               2h] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.settable_sensor[ 1b]
> [               3h] = 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]
> [              C0h] = sensor_type[ 8b]
> [              71h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_lower_threshold_reading_mask[16b]
> [               0h] = deassertion_event_upper_threshold_reading_mask[16b]
> [               7h] = 
> discrete_reading_settable_threshold_readable_threshold_mask[16b]
> [               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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CAh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 48h 65h 61h 6Ch 74h 68h 20h 4Ch ]
> [ 45h 44h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               2h] = 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]
> [               3h] = sensor_number[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               8h] = sensor_type[ 8b]
> [              6Fh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               1h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = 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]
> [               1h] = 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]
> [               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]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               6h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [               1h] = oem[ 8b]
> [              CEh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 50h 6Fh 77h 65h 72h 20h 53h 75h ]
> [ 70h 70h 6Ch 79h 20h 31h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               3h] = 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]
> [               4h] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 31h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               4h] = 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]
> [               5h] = sensor_number[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 32h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               5h] = 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]
> [               6h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 33h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               6h] = 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]
> [               7h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 34h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               7h] = 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]
> [               8h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 35h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               8h] = 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]
> [               9h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 36h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               9h] = 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]
> [               Ah] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 37h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Ah] = 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]
> [               Bh] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               8h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 38h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Bh] = 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]
> [               Ch] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               9h] = entity_instance[ 7b]
> [               1h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Bh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               1h] = 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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C4h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 73h 00h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Entity Association Record
> =====================================================
> [               Ch] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [               8h] = record_type[ 8b]
> [               Bh] = record_length[ 8b]
> [               7h] = container_entity_id[ 8b]
> [               9h] = container_entity_instance[ 8b]
> [               0h] = flags.reserved[ 5b]
> [               0h] = flags.sensor_presence[ 1b]
> [               0h] = flags.record_link[ 1b]
> [               1h] = flags.contained_entities[ 1b]
> [               7h] = entity_id_contained_entity_range_1[ 8b]
> [               2h] = instance_id_contained_entity_range_1[ 8b]
> [               7h] = entity_id_contained_entity_range_2[ 8b]
> [               8h] = instance_id_contained_entity_range_2[ 8b]
> [               0h] = entity_id_contained_entity_range_3[ 8b]
> [               0h] = instance_id_contained_entity_range_3[ 8b]
> [               0h] = entity_id_contained_entity_range_4[ 8b]
> [               0h] = instance_id_contained_entity_range_4[ 8b]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Dh] = 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]
> [               Dh] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              2Eh] = upper_non_recoverable_threshold[ 8b]
> [              2Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [ 30h 31h 2Dh 49h 6Eh 6Ch 65h 74h ]
> [ 20h 41h 6Dh 62h 69h 65h 6Eh 74h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Eh] = 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]
> [               Eh] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 32h 2Dh 43h 50h 55h 20h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Fh] = 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]
> [               Fh] = sensor_number[ 8b]
> [              41h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 33h 2Dh 43h 50h 55h 20h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              10h] = 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]
> [              10h] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 34h 2Dh 50h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 2Dh 36h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              11h] = 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]
> [              11h] = sensor_number[ 8b]
> [              20h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 35h 2Dh 50h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 37h 2Dh 31h 32h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              12h] = 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]
> [              12h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 36h 2Dh 50h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 2Dh 36h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              13h] = 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]
> [              13h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 37h 2Dh 50h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 37h 2Dh 31h 32h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              14h] = 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]
> [              14h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 38h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              15h] = 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]
> [              15h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 39h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              16h] = 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]
> [              16h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 30h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              17h] = 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]
> [              17h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               8h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 31h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              18h] = 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]
> [              18h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               9h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 32h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              19h] = 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]
> [              19h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 33h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              1Ah] = 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]
> [              1Ah] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 34h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              1Bh] = 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]
> [              1Bh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Ch] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 35h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> 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]
> [              1Ch] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Dh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 36h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> 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]
> [              1Dh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Eh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 37h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> 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]
> [              1Eh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Fh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 38h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> 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]
> [              1Fh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 39h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              20h] = 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]
> [              20h] = sensor_number[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              3Ch] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 30h 2Dh 48h 44h 20h 4Dh 61h ]
> [ 78h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              21h] = 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]
> [              21h] = sensor_number[ 8b]
> [              42h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              69h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CAh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 31h 2Dh 43h 68h 69h 70h 73h ]
> [ 65h 74h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              22h] = 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]
> [              22h] = sensor_number[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 32h 2Dh 50h 2Fh 53h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              23h] = 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]
> [              23h] = sensor_number[ 8b]
> [              13h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 33h 2Dh 56h 52h 20h 50h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              24h] = 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]
> [              24h] = sensor_number[ 8b]
> [              13h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 34h 2Dh 56h 52h 20h 50h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              25h] = 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]
> [              25h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              64h] = upper_non_recoverable_threshold[ 8b]
> [              5Fh] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 35h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              26h] = 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]
> [              26h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 36h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              27h] = 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]
> [              27h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 37h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              28h] = 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]
> [              28h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 38h 2Dh 56h 52h 20h 50h 32h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              29h] = 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]
> [              29h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 39h 2Dh 56h 52h 20h 50h 32h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Ah] = 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]
> [              2Ah] = sensor_number[ 8b]
> [              28h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              41h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 30h 2Dh 53h 75h 70h 65h 72h ]
> [ 63h 61h 70h 20h 4Dh 61h 78h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Bh] = 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]
> [              2Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 31h 2Dh 69h 4Ch 4Fh 20h 5Ah ]
> [ 6Fh 6Eh 65h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Ch] = 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]
> [              2Ch] = sensor_number[ 8b]
> [              42h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 32h 2Dh 4Ch 4Fh 4Dh 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Dh] = 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]
> [              2Dh] = sensor_number[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 33h 2Dh 50h 43h 49h 20h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> 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]
> [              2Eh] = sensor_number[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 34h 2Dh 50h 43h 49h 20h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> 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]
> [              2Fh] = sensor_number[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 35h 2Dh 50h 43h 49h 20h 31h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> 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]
> [              30h] = sensor_number[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 36h 2Dh 50h 43h 49h 20h 32h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> 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]
> [              31h] = sensor_number[ 8b]
> [               Bh] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 37h 2Dh 4Ch 4Fh 4Dh 20h 43h ]
> [ 61h 72h 64h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              32h] = 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]
> [              32h] = sensor_number[ 8b]
> [              42h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 38h 2Dh 53h 79h 73h 74h 65h ]
> [ 6Dh 20h 42h 6Fh 61h 72h 64h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              33h] = 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]
> [              33h] = sensor_number[ 8b]
> [               Dh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 39h 2Dh 53h 79h 73h 20h 45h ]
> [ 78h 68h 61h 75h 73h 74h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              34h] = 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]
> [              34h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               Ah] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               3h] = 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]
> [               3h] = sensor_type[ 8b]
> [               9h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = 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]
> [               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]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               6h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               2h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 50h 6Fh 77h 65h 72h 20h 4Dh 65h ]
> [ 74h 65h 72h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              35h] = 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]
> [              35h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               Bh] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               3h] = 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]
> [               Ch] = sensor_type[ 8b]
> [              6Fh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               1h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               0h] = 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]
> [               1h] = 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]
> [               1h] = 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]
> [              58h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 4Dh 65h 6Dh 6Fh 72h 79h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              36h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              70h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               1h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              37h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              73h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               4h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 34h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              38h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              78h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               9h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 39h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              39h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Bh] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               Ch] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CDh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 32h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Ah] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Ch] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               Dh] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Bh] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Fh] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              10h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 34h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Ch] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              84h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              15h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 39h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Dh] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              87h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              18h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CDh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 32h 00h 00h 00h ]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               0h] = 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]
> [               1h] = sensor_number[ 8b]
> [              17h] = entity_id[ 8b]
> [               1h] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.settable_sensor[ 1b]
> [               3h] = 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]
> [              C0h] = sensor_type[ 8b]
> [              70h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_lower_threshold_reading_mask[16b]
> [               0h] = deassertion_event_upper_threshold_reading_mask[16b]
> [               7h] = 
> discrete_reading_settable_threshold_readable_threshold_mask[16b]
> [               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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 55h 49h 44h 20h 4Ch 69h 67h 68h ]
> [ 74h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               1h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> ID | Name             | Type         | Reading    | Units | Event
> 0  | UID Light        | OEM Reserved | N/A        | N/A   | 'OEM Event = 
> 0000h'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               1h] = 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]
> [               2h] = sensor_number[ 8b]
> [              17h] = entity_id[ 8b]
> [               2h] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.settable_sensor[ 1b]
> [               3h] = 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]
> [              C0h] = sensor_type[ 8b]
> [              71h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_lower_threshold_reading_mask[16b]
> [               0h] = deassertion_event_upper_threshold_reading_mask[16b]
> [               7h] = 
> discrete_reading_settable_threshold_readable_threshold_mask[16b]
> [               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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CAh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 48h 65h 61h 6Ch 74h 68h 20h 4Ch ]
> [ 45h 44h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               2h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 1  | Health LED       | OEM Reserved | N/A        | N/A   | 'OEM Event = 
> 0000h'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               2h] = 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]
> [               3h] = sensor_number[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               8h] = sensor_type[ 8b]
> [              6Fh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               1h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = 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]
> [               1h] = 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]
> [               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]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               6h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [               1h] = oem[ 8b]
> [              CEh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 50h 6Fh 77h 65h 72h 20h 53h 75h ]
> [ 70h 70h 6Ch 79h 20h 31h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               3h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              12h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 2  | Power Supply 1   | Power Supply | 90.00      | W     | 'Presence 
> detected'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               3h] = 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]
> [               4h] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 31h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               4h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               1h] = reading_state[ 1b]
> [               0h] = sensor_scanning[ 1b]
> [               0h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               1h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> Sensor reading/event bitmask not available: sensor reading unavailable
> 3  | Fan 1            | Fan          | N/A        | N/A   | N/A
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               4h] = 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]
> [               5h] = sensor_number[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 32h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               5h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              32h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 4  | Fan 2            | Fan          | 19.60      | %     | 'transition to 
> Running'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               5h] = 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]
> [               6h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 33h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               6h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              46h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 5  | Fan 3            | Fan          | 27.44      | %     | 'transition to 
> Running'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               6h] = 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]
> [               7h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 34h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               7h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              46h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 6  | Fan 4            | Fan          | 27.44      | %     | 'transition to 
> Running'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               7h] = 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]
> [               8h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 35h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               8h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              46h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 7  | Fan 5            | Fan          | 27.44      | %     | 'transition to 
> Running'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               8h] = 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]
> [               9h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 36h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               9h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              46h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 8  | Fan 6            | Fan          | 27.44      | %     | 'transition to 
> Running'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               9h] = 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]
> [               Ah] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 37h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               Ah] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              32h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 9  | Fan 7            | Fan          | 19.60      | %     | 'transition to 
> Running'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Ah] = 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]
> [               Bh] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               8h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Ah] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               1h] = assertion_event_mask.event_offset_4[ 1b]
> [               0h] = assertion_event_mask.event_offset_5[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_1[ 1b]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               0h] = discrete_reading_mask.state_bit_5[ 1b]
> [               1h] = discrete_reading_mask.state_bit_6[ 1b]
> [               0h] = discrete_reading_mask.state_bit_7[ 1b]
> [               1h] = 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]
> [               1h] = sensor_unit1.percentage[ 1b]
> [               0h] = sensor_unit1.modifier_unit[ 2b]
> [               0h] = sensor_unit1.rate_unit[ 3b]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               0h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [              88h] = 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]
> [               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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C5h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 20h 38h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               Bh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              32h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 10 | Fan 8            | Fan          | 19.60      | %     | 'transition to 
> Running'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Bh] = 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]
> [               Ch] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               9h] = entity_instance[ 7b]
> [               1h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = sensor_capabilities.entity_ignore_support[ 1b]
> [               4h] = sensor_type[ 8b]
> [               Bh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               0h] = discrete_reading_mask.state_bit_2[ 1b]
> [               1h] = discrete_reading_mask.state_bit_3[ 1b]
> [               1h] = discrete_reading_mask.state_bit_4[ 1b]
> [               1h] = 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] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C4h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 46h 61h 6Eh 73h 00h 00h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               Ch] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               1h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 11 | Fans             | Fan          | N/A        | N/A   | 'Fully Redundant'
> =====================================================
> SDR Entity Association Record
> =====================================================
> [               Ch] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [               8h] = record_type[ 8b]
> [               Bh] = record_length[ 8b]
> [               7h] = container_entity_id[ 8b]
> [               9h] = container_entity_instance[ 8b]
> [               0h] = flags.reserved[ 5b]
> [               0h] = flags.sensor_presence[ 1b]
> [               0h] = flags.record_link[ 1b]
> [               1h] = flags.contained_entities[ 1b]
> [               7h] = entity_id_contained_entity_range_1[ 8b]
> [               2h] = instance_id_contained_entity_range_1[ 8b]
> [               7h] = entity_id_contained_entity_range_2[ 8b]
> [               8h] = instance_id_contained_entity_range_2[ 8b]
> [               0h] = entity_id_contained_entity_range_3[ 8b]
> [               0h] = instance_id_contained_entity_range_3[ 8b]
> [               0h] = entity_id_contained_entity_range_4[ 8b]
> [               0h] = instance_id_contained_entity_range_4[ 8b]
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Dh] = 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]
> [               Dh] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              2Eh] = upper_non_recoverable_threshold[ 8b]
> [              2Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [ 30h 31h 2Dh 49h 6Eh 6Ch 65h 74h ]
> [ 20h 41h 6Dh 62h 69h 65h 6Eh 74h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               Dh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              19h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 13 | 01-Inlet Ambient | Temperature  | 25.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Eh] = 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]
> [               Eh] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 32h 2Dh 43h 50h 55h 20h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               Eh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              28h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 14 | 02-CPU 1         | Temperature  | 40.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [               Fh] = 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]
> [               Fh] = sensor_number[ 8b]
> [              41h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 33h 2Dh 43h 50h 55h 20h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               Fh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              28h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 15 | 03-CPU 2         | Temperature  | 40.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              10h] = 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]
> [              10h] = 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]
> [               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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 34h 2Dh 50h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 2Dh 36h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              10h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              26h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 16 | 04-P1 DIMM 1-6   | Temperature  | 38.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              11h] = 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]
> [              11h] = sensor_number[ 8b]
> [              20h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 35h 2Dh 50h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 37h 2Dh 31h 32h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              11h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              27h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 17 | 05-P1 DIMM 7-12  | Temperature  | 39.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              12h] = 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]
> [              12h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 36h 2Dh 50h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 2Dh 36h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              12h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              22h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 18 | 06-P2 DIMM 1-6   | Temperature  | 34.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              13h] = 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]
> [              13h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              57h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 30h 37h 2Dh 50h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 37h 2Dh 31h 32h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              13h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              1Ch] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 19 | 07-P2 DIMM 7-12  | Temperature  | 28.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              14h] = 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]
> [              14h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 38h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              14h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              26h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 20 | 08-P1 Mem Zone   | Temperature  | 38.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              15h] = 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]
> [              15h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 30h 39h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              15h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              26h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 21 | 09-P1 Mem Zone   | Temperature  | 38.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              16h] = 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]
> [              16h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 30h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              16h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              27h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 22 | 10-P1 Mem Zone   | Temperature  | 39.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              17h] = 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]
> [              17h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               8h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 31h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              17h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              2Ah] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 23 | 11-P1 Mem Zone   | Temperature  | 42.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              18h] = 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]
> [              18h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               9h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 32h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              18h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              28h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 24 | 12-P1 Mem Zone   | Temperature  | 40.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              19h] = 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]
> [              19h] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 33h 2Dh 50h 31h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              19h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              27h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 25 | 13-P1 Mem Zone   | Temperature  | 39.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              1Ah] = 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]
> [              1Ah] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 34h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              1Ah] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              24h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 26 | 14-P2 Mem Zone   | Temperature  | 36.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              1Bh] = 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]
> [              1Bh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Ch] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 35h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              1Bh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              23h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 27 | 15-P2 Mem Zone   | Temperature  | 35.00      | C     | 'OK'
> =====================================================
> 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]
> [              1Ch] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Dh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 36h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              1Ch] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              22h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 28 | 16-P2 Mem Zone   | Temperature  | 34.00      | C     | 'OK'
> =====================================================
> 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]
> [              1Dh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Eh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 37h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              1Dh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              20h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 29 | 17-P2 Mem Zone   | Temperature  | 32.00      | C     | 'OK'
> =====================================================
> 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]
> [              1Eh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [               Fh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 38h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              1Eh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              1Fh] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 30 | 18-P2 Mem Zone   | Temperature  | 31.00      | C     | 'OK'
> =====================================================
> 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]
> [              1Fh] = sensor_number[ 8b]
> [              20h] = entity_id[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 31h 39h 2Dh 50h 32h 20h 4Dh 65h ]
> [ 6Dh 20h 5Ah 6Fh 6Eh 65h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              1Fh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              1Eh] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 31 | 19-P2 Mem Zone   | Temperature  | 30.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              20h] = 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]
> [              20h] = sensor_number[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              3Ch] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 30h 2Dh 48h 44h 20h 4Dh 61h ]
> [ 78h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              20h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               1h] = reading_state[ 1b]
> [               0h] = sensor_scanning[ 1b]
> [               0h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> Sensor reading/event bitmask not available: sensor reading unavailable
> 32 | 20-HD Max        | Temperature  | N/A        | C     | N/A
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              21h] = 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]
> [              21h] = sensor_number[ 8b]
> [              42h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              69h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CAh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 31h 2Dh 43h 68h 69h 70h 73h ]
> [ 65h 74h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              21h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              2Eh] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 33 | 21-Chipset       | Temperature  | 46.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              22h] = 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]
> [              22h] = sensor_number[ 8b]
> [               Ah] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 32h 2Dh 50h 2Fh 53h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              22h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              20h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 34 | 22-P/S           | Temperature  | 32.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              23h] = 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]
> [              23h] = sensor_number[ 8b]
> [              13h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 33h 2Dh 56h 52h 20h 50h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              23h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              2Bh] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 35 | 23-VR P1         | Temperature  | 43.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              24h] = 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]
> [              24h] = sensor_number[ 8b]
> [              13h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 32h 34h 2Dh 56h 52h 20h 50h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              24h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              1Ch] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 36 | 24-VR P2         | Temperature  | 28.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              25h] = 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]
> [              25h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              64h] = upper_non_recoverable_threshold[ 8b]
> [              5Fh] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 35h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              25h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              2Dh] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 37 | 25-VR P1 Zone    | Temperature  | 45.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              26h] = 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]
> [              26h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               4h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 36h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              26h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              28h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 38 | 26-VR P1 Mem     | Temperature  | 40.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              27h] = 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]
> [              27h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               5h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 37h 2Dh 56h 52h 20h 50h 31h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              27h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              26h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 39 | 27-VR P1 Mem     | Temperature  | 38.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              28h] = 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]
> [              28h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               6h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 38h 2Dh 56h 52h 20h 50h 32h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              28h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              1Dh] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 40 | 28-VR P2 Mem     | Temperature  | 29.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              29h] = 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]
> [              29h] = sensor_number[ 8b]
> [              13h] = entity_id[ 8b]
> [               7h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              78h] = upper_non_recoverable_threshold[ 8b]
> [              73h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 32h 39h 2Dh 56h 52h 20h 50h 32h ]
> [ 20h 4Dh 65h 6Dh 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              29h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              1Ch] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 41 | 29-VR P2 Mem     | Temperature  | 28.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Ah] = 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]
> [              2Ah] = sensor_number[ 8b]
> [              28h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              41h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 30h 2Dh 53h 75h 70h 65h 72h ]
> [ 63h 61h 70h 20h 4Dh 61h 78h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              2Ah] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               1h] = reading_state[ 1b]
> [               0h] = sensor_scanning[ 1b]
> [               0h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> Sensor reading/event bitmask not available: sensor reading unavailable
> 42 | 30-Supercap Max  | Temperature  | N/A        | C     | N/A
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Bh] = 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]
> [              2Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 31h 2Dh 69h 4Ch 4Fh 20h 5Ah ]
> [ 6Fh 6Eh 65h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              2Bh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              23h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 43 | 31-iLO Zone      | Temperature  | 35.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Ch] = 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]
> [              2Ch] = sensor_number[ 8b]
> [              42h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 32h 2Dh 4Ch 4Fh 4Dh 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              2Ch] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               1h] = reading_state[ 1b]
> [               0h] = sensor_scanning[ 1b]
> [               0h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> Sensor reading/event bitmask not available: sensor reading unavailable
> 44 | 32-LOM           | Temperature  | N/A        | C     | N/A
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              2Dh] = 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]
> [              2Dh] = sensor_number[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 33h 2Dh 50h 43h 49h 20h 31h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              2Dh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               1h] = reading_state[ 1b]
> [               0h] = sensor_scanning[ 1b]
> [               0h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> Sensor reading/event bitmask not available: sensor reading unavailable
> 45 | 33-PCI 1         | Temperature  | N/A        | C     | N/A
> =====================================================
> 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]
> [              2Eh] = sensor_number[ 8b]
> [               Bh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 34h 2Dh 50h 43h 49h 20h 32h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              2Eh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               1h] = reading_state[ 1b]
> [               0h] = sensor_scanning[ 1b]
> [               0h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> Sensor reading/event bitmask not available: sensor reading unavailable
> 46 | 34-PCI 2         | Temperature  | N/A        | C     | N/A
> =====================================================
> 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]
> [              2Fh] = sensor_number[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 35h 2Dh 50h 43h 49h 20h 31h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              2Fh] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              20h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 47 | 35-PCI 1 Zone    | Temperature  | 32.00      | C     | 'OK'
> =====================================================
> 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]
> [              30h] = sensor_number[ 8b]
> [              10h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 36h 2Dh 50h 43h 49h 20h 32h ]
> [ 20h 5Ah 6Fh 6Eh 65h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              30h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              21h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 48 | 36-PCI 2 Zone    | Temperature  | 33.00      | C     | 'OK'
> =====================================================
> 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]
> [              31h] = sensor_number[ 8b]
> [               Bh] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [              64h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 37h 2Dh 4Ch 4Fh 4Dh 20h 43h ]
> [ 61h 72h 64h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              31h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               1h] = reading_state[ 1b]
> [               0h] = sensor_scanning[ 1b]
> [               0h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> Sensor reading/event bitmask not available: sensor reading unavailable
> 49 | 37-LOM Card      | Temperature  | N/A        | C     | N/A
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              32h] = 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]
> [              32h] = sensor_number[ 8b]
> [              42h] = entity_id[ 8b]
> [               3h] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              4Bh] = upper_non_recoverable_threshold[ 8b]
> [              46h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              CFh] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 33h 38h 2Dh 53h 79h 73h 74h 65h ]
> [ 6Dh 20h 42h 6Fh 61h 72h 64h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              32h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              1Ah] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 50 | 38-System Board  | Temperature  | 26.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              33h] = 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]
> [              33h] = sensor_number[ 8b]
> [               Dh] = 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]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               1h] = 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]
> [               1h] = 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]
> [               1h] = 
> threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
> [               0h] = 
> threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
> [               1h] = 
> 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]
> [               1h] = 
> readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
> [               1h] = 
> 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              7Fh] = sensor_maximum_reading[ 8b]
> [              81h] = sensor_minimum_reading[ 8b]
> [              5Fh] = upper_non_recoverable_threshold[ 8b]
> [              5Ah] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 33h 39h 2Dh 53h 79h 73h 20h 45h ]
> [ 78h 68h 61h 75h 73h 74h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              33h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              28h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               0h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 51 | 39-Sys Exhaust   | Temperature  | 40.00      | C     | 'OK'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              34h] = 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]
> [              34h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               Ah] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               3h] = 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]
> [               3h] = sensor_type[ 8b]
> [               9h] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               0h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = 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]
> [               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]
> [               0h] = sensor_unit1.analog_data_format[ 2b]
> [               6h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               2h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [              FFh] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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[16B]
> [ 50h 6Fh 77h 65h 72h 20h 4Dh 65h ]
> [ 74h 65h 72h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              34h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [              2Dh] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [               2h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 52 | Power Meter      | Current      | 90.00      | W     | 'Device Enabled'
> =====================================================
> SDR Full Sensor Record
> =====================================================
> [              35h] = 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]
> [              35h] = sensor_number[ 8b]
> [               7h] = entity_id[ 8b]
> [               Bh] = entity_instance[ 7b]
> [               0h] = entity_instance.type[ 1b]
> [               0h] = sensor_initialization.sensor_scanning[ 1b]
> [               0h] = sensor_initialization.event_generation[ 1b]
> [               0h] = sensor_initialization.init_sensor_type[ 1b]
> [               0h] = sensor_initialization.init_hysteresis[ 1b]
> [               0h] = sensor_initialization.init_thresholds[ 1b]
> [               0h] = sensor_initialization.init_events[ 1b]
> [               0h] = sensor_initialization.init_scanning[ 1b]
> [               0h] = sensor_initialization.reserved[ 1b]
> [               3h] = 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]
> [               Ch] = sensor_type[ 8b]
> [              6Fh] = event_reading_type_code[ 8b]
> [               0h] = assertion_event_mask.event_offset_0[ 1b]
> [               1h] = assertion_event_mask.event_offset_1[ 1b]
> [               0h] = assertion_event_mask.event_offset_2[ 1b]
> [               0h] = assertion_event_mask.event_offset_3[ 1b]
> [               0h] = 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]
> [               1h] = 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]
> [               1h] = 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]
> [              58h] = sensor_unit2.base_unit[ 8b]
> [               0h] = sensor_unit3.modifier_unit[ 8b]
> [               0h] = linearization[ 7b]
> [               0h] = linearization.reserved[ 1b]
> [               0h] = 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]
> [               0h] = nominal_reading[ 8b]
> [               0h] = normal_maximum[ 8b]
> [               0h] = normal_minimum[ 8b]
> [               0h] = sensor_maximum_reading[ 8b]
> [               0h] = sensor_minimum_reading[ 8b]
> [               0h] = upper_non_recoverable_threshold[ 8b]
> [               0h] = upper_critical_threshold[ 8b]
> [               0h] = 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]
> [              C6h] = id_string_type_length_code[ 8b]
> [  BYTE ARRAY ... ] = id_string[16B]
> [ 4Dh 65h 6Dh 6Fh 72h 79h 00h 00h ]
> [ 00h 00h 00h 00h 00h 00h 00h 00h ]
> =====================================================
> Get Sensor Reading Request
> =====================================================
> [              2Dh] = cmd[ 8b]
> [              35h] = sensor_number[ 8b]
> =====================================================
> Get Sensor Reading Response
> =====================================================
> [              2Dh] = cmd[ 8b]
> [               0h] = comp_code[ 8b]
> [               0h] = sensor_reading[ 8b]
> [               0h] = reserved1[ 5b]
> [               0h] = reading_state[ 1b]
> [               1h] = sensor_scanning[ 1b]
> [               1h] = all_event_messages[ 1b]
> [              40h] = sensor_event_bitmask1[ 8b]
> [               0h] = sensor_event_bitmask2[ 7b]
> [               1h] = reserved2[ 1b]
> 53 | Memory           | Memory       | N/A        | N/A   | 'Presence 
> detected'
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              36h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              70h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               1h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              37h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              73h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               4h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 34h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              38h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              78h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               9h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 39h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              39h] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Bh] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               Ch] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CDh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 31h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 32h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Ah] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Ch] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [               Dh] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Bh] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              7Fh] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              10h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 34h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Ch] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              84h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              15h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CCh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 39h 00h 00h 00h 00h ]
> =====================================================
> SDR FRU Device Locator Record
> =====================================================
> [              3Dh] = record_id[16b]
> [               1h] = sdr_version_major[ 4b]
> [               5h] = sdr_version_minor[ 4b]
> [              11h] = record_type[ 8b]
> [              1Bh] = record_length[ 8b]
> [               0h] = device_access_address.reserved[ 1b]
> [              10h] = device_access_address[ 7b]
> [              87h] = logical_fru_device_device_slave_address[ 8b]
> [               0h] = 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]
> [               1h] = device_type_modifier[ 8b]
> [              20h] = fru_entity_id[ 8b]
> [              18h] = fru_entity_instance[ 8b]
> [               0h] = oem[ 8b]
> [              CDh] = device_id_string_type_length[ 8b]
> [  BYTE ARRAY ... ] = device_id_string[16B]
> [ 43h 50h 55h 20h 32h 20h 44h 49h ]
> [ 4Dh 4Dh 20h 31h 32h 00h 00h 00h ]
>
> -----Original Message-----
> From: Albert Chu [mailto:address@hidden
> Sent: Thursday, March 14, 2013 5:35 PM
> To: Stephen Abbene
> Cc: address@hidden
> Subject: Re: [Freeipmi-users] ipmi-sensors missing data on HP Gen7/8 servers
>
> Hi Stephen,
>
> Could you please try the "discretereading" workaround (i.e. -W 
> discretereading).  There's a description of the issue in the manpage about 
> the issue and it's only been seen on HP systems.  I believe HP has 
> acknowledged the issue, but due to legacy reasons I don't believe they want 
> to change it.
>
> If that doesn't work, please send the --debug output.
>
> Al
>
> On Thu, 2013-03-14 at 16:55 -0700, Stephen Abbene wrote:
> > Hello,
> >
> >
> >
> > Today I installed  freeipmi 1.2.5 on several HP gen7 and Gen8 servers and 
> > have noticed that all the systems are missing the RPM from the fans and the 
> > power meter information.  Is there a way I can obtain this information?  I 
> > can provide the output from --debug or any other information you may need.
> >
> >
> >
> > Here are some of the specs of one of the systems I am testing, I can 
> > provide more information if it is required.
> >
> > . HP Proliant DL160 G8
> >
> > . CentOS 5.7
> >
> > . 2x Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz
> >
> > . 1x Power Supply (detected)
> >
> > . 8x fans (detected)
> >
> >
> >
> > I have included the output of ` ipmi-sensors --entity-sensor-names`  and 
> > `bmc-info` from a HP dl160 Gen8 below.
> >
> >
> >
> > # ipmi-sensors --entity-sensor-names
> >
> > ID | Name                                            | Type         | 
> > Reading    | Units | Event
> >
> > 0  | System Chassis 1 UID Light       | OEM Reserved | N/A        | N/A   | 
> > 'OEM Event = 0000h'
> >
> > 1  | System Chassis 2 Health LED    | OEM Reserved | N/A        | N/A   | 
> > 'OEM Event = 0000h'
> >
> > 2  | Power Supply 1 Power Supply 1         | Power Supply | N/A        | 
> > N/A   | 'Presence detected'
> >
> > 3  | System Board 1 Fan 1                            | Fan          | N/A   
> >      | N/A   | N/A
> >
> > 4  | System Board 2 Fan 2                            | Fan          | N/A   
> >      | N/A   | 'transition to Running'
> >
> > 5  | System Board 3 Fan 3                            | Fan          | N/A   
> >      | N/A   | 'transition to Running'
> >
> > 6  | System Board 4 Fan 4                            | Fan          | N/A   
> >      | N/A   | 'transition to Running'
> >
> > 7  | System Board 5 Fan 5                            | Fan          | N/A   
> >      | N/A   | 'transition to Running'
> >
> > 8  | System Board 6 Fan 6                            | Fan          | N/A   
> >      | N/A   | 'transition to Running'
> >
> > 9  | System Board 7 Fan 7                            | Fan          | N/A   
> >      | N/A   | 'transition to Running'
> >
> > 10 | System Board 8 Fan 8                            | Fan          | N/A   
> >      | N/A   | 'transition to Running'
> >
> > 11 | System Board 9 Fans                             | Fan          | N/A   
> >      | N/A   | 'Fully Redundant'
> >
> > 13 | Air Inlet 01-Inlet Ambient                      | Temperature  | 25.00 
> >      | C     | 'OK'
> >
> > 14 | Processor 1 02-CPU 1                            | Temperature  | 40.00 
> >      | C     | 'OK'
> >
> > 15 | Processor 2 03-CPU 2                            | Temperature  | 40.00 
> >      | C     | 'OK'
> >
> > 16 | Memory Device 1 04-P1 DIMM 1-6                  | Temperature  | 38.00 
> >      | C     | 'OK'
> >
> > 17 | Memory Device 2 05-P1 DIMM 7-12                 | Temperature  | 39.00 
> >      | C     | 'OK'
> >
> > 18 | Memory Device 3 06-P2 DIMM 1-6                  | Temperature  | 34.00 
> >      | C     | 'OK'
> >
> > 19 | Memory Device 4 07-P2 DIMM 7-12                 | Temperature  | 29.00 
> >      | C     | 'OK'
> >
> > 20 | Memory Device 5 08-P1 Mem Zone                  | Temperature  | 38.00 
> >      | C     | 'OK'
> >
> > 21 | Memory Device 6 09-P1 Mem Zone                  | Temperature  | 38.00 
> >      | C     | 'OK'
> >
> > 22 | Memory Device 7 10-P1 Mem Zone                  | Temperature  | 39.00 
> >      | C     | 'OK'
> >
> > 23 | Memory Device 8 11-P1 Mem Zone                  | Temperature  | 42.00 
> >      | C     | 'OK'
> >
> > 24 | Memory Device 9 12-P1 Mem Zone                  | Temperature  | 40.00 
> >      | C     | 'OK'
> >
> > 25 | Memory Device 10 13-P1 Mem Zone                 | Temperature  | 39.00 
> >      | C     | 'OK'
> >
> > 26 | Memory Device 11 14-P2 Mem Zone                 | Temperature  | 36.00 
> >      | C     | 'OK'
> >
> > 27 | Memory Device 12 15-P2 Mem Zone                 | Temperature  | 35.00 
> >      | C     | 'OK'
> >
> > 28 | Memory Device 13 16-P2 Mem Zone                 | Temperature  | 34.00 
> >      | C     | 'OK'
> >
> > 29 | Memory Device 14 17-P2 Mem Zone                 | Temperature  | 33.00 
> >      | C     | 'OK'
> >
> > 30 | Memory Device 15 18-P2 Mem Zone                 | Temperature  | 31.00 
> >      | C     | 'OK'
> >
> > 31 | Memory Device 16 19-P2 Mem Zone                 | Temperature  | 30.00 
> >      | C     | 'OK'
> >
> > 32 | Disk 20-HD Max                                                      | 
> > Temperature  | N/A        | C     | N/A
> >
> > 33 | System Board 1 21-Chipset                       | Temperature  | 46.00 
> >      | C     | 'OK'
> >
> > 34 | Power Supply 2 22-P/S                            | Temperature  | 
> > 32.00      | C     | 'OK'
> >
> > 35 | Power Unit 1 23-VR P1                           | Temperature  | 43.00 
> >      | C     | 'OK'
> >
> > 36 | Power Unit 2 24-VR P2                           | Temperature  | 28.00 
> >      | C     | 'OK'
> >
> > 37 | Power Unit 3 25-VR P1 Zone                      | Temperature  | 45.00 
> >      | C     | 'OK'
> >
> > 38 | Power Unit 4 26-VR P1 Mem                       | Temperature  | 40.00 
> >      | C     | 'OK'
> >
> > 39 | Power Unit 5 27-VR P1 Mem                       | Temperature  | 38.00 
> >      | C     | 'OK'
> >
> > 40 | Power Unit 6 28-VR P2 Mem                                              
> > | Temperature  | 30.00      | C     | 'OK'
> >
> > 41 | Power Unit 7 29-VR P2 Mem                                        | 
> > Temperature  | 28.00      | C     | 'OK'
> >
> > 42 | Battery 30-Supercap Max                                              | 
> > Temperature  | N/A        | C     | N/A
> >
> > 43 | System Management Module 31-iLO Zone            | Temperature  | 35.00 
> >      | C     | 'OK'
> >
> > 44 | System Board 2 32-LOM                                             | 
> > Temperature  | N/A        | C     | N/A
> >
> > 45 | Add-in Card 1 33-PCI 1                          | Temperature  | N/A   
> >      | C     | N/A
> >
> > 46 | Add-in Card 2 34-PCI 2                          | Temperature  | N/A   
> >      | C     | N/A
> >
> > 47 | System Internal Expansion Board 1 35-PCI 1 Zone | Temperature  | 33.00 
> >      | C     | 'OK'
> >
> > 48 | System Internal Expansion Board 2 36-PCI 2 Zone | Temperature  | 33.00 
> >      | C     | 'OK'
> >
> > 49 | Add-in Card 3 37-LOM Card                       | Temperature  | N/A   
> >      | C     | N/A
> >
> > 50 | System Board 3 38-System Board                  | Temperature  | 26.00 
> >      | C     | 'OK'
> >
> > 51 | Back Panel Board 39-Sys Exhaust                 | Temperature  | 40.00 
> >      | C     | 'OK'
> >
> > 52 | System Board 10 Power Meter                     | Current      | N/A   
> >      | N/A   | 'Device Enabled'
> >
> > 53 | System Board 11 Memory                          | Memory       | N/A   
> >      | N/A   | 'Presence detected'
> >
> >
> > # bmc-info
> >
> > Device ID             : 19
> >
> > Device Revision       : 1
> >
> > Device SDRs           : unsupported
> >
> > Firmware Revision     : 1.10
> >
> > Device Available      : yes (normal operation)
> >
> > IPMI Version          : 2.0
> >
> > Sensor Device         : supported
> >
> > SDR Repository Device : supported
> >
> > SEL Device            : supported
> >
> > FRU Inventory Device  : supported
> >
> > IPMB Event Receiver   : unsupported
> >
> > IPMB Event Generator  : unsupported
> >
> > Bridge                : unsupported
> >
> > Chassis Device        : supported
> >
> > Manufacturer ID       : Hewlett-Packard (11)
> >
> > Product ID            : 8192
> >
> >
> >
> > Channel Information
> >
> >
> >
> > Channel Number       : 0
> >
> > Medium Type          : IPMB (I2C)
> >
> > Protocol Type        : IPMB-1.0
> >
> > Active Session Count : 0
> >
> > Session Support      : session-less
> >
> > Vendor ID            : Intelligent Platform Management Interface forum 
> > (7154)
> >
> >
> >
> > Channel Number       : 2
> >
> > Medium Type          : 802.3 LAN
> >
> > Protocol Type        : IPMB-1.0
> >
> > Active Session Count : 0
> >
> > Session Support      : multi-session
> >
> > Vendor ID            : Intelligent Platform Management Interface forum 
> > (7154)
> >
> >
> >
> > Channel Number       : 7
> >
> > Medium Type          : OEM
> >
> > Protocol Type        : KCS
> >
> > Active Session Count : 0
> >
> > Session Support      : session-less
> >
> > Vendor ID            : Intelligent Platform Management Interface forum 
> > (7154)
> >
> > 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
>
>
> -----------------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and may 
> contain
> confidential information.  Any unauthorized review, use, disclosure or 
> distribution
> is prohibited.  If you are not the intended recipient, please contact the 
> sender by
> reply email and destroy all copies of the original message.
> -----------------------------------------------------------------------------------
--
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]