little_endian_packets // Ranging Service enum PctFormat : 2 { IQ = 0, PHASE = 1, } enum RangingDoneStatus : 4 { ALL_RESULTS_COMPLETE = 0x0, PARTIAL_RESULTS = 0x1, ABORTED = 0xF, } enum SubeventDoneStatus : 4 { ALL_RESULTS_COMPLETE = 0x0, ABORTED = 0xF, } enum RangingAbortReason : 4 { NO_ABORT = 0x0, LOCAL_HOST_OR_REMOTE = 0x1, INSUFFICIENT_FILTERED_CHANNELS = 0x2, INSTANT_HAS_PASSED = 0x3, UNSPECIFIED = 0xF, } enum SubeventAbortReason : 4 { NO_ABORT = 0x0, LOCAL_HOST_OR_REMOTE = 0x1, NO_CS_SYNC_RECEIVED = 0x2, SCHEDULING_CONFLICTS_OR_LIMITED_RESOURCES = 0x3, UNSPECIFIED = 0xF, } struct StepMode { mode_type : 2, _reserved_ : 5, aborted : 1, } struct RasSubeventHeader { start_acl_conn_event : 16, frequency_compensation : 16, ranging_done_status : RangingDoneStatus, subevent_done_status : SubeventDoneStatus, ranging_abort_reason : RangingAbortReason, subevent_abort_reason : SubeventAbortReason, reference_power_level : 8, num_steps_reported : 8, } packet RasSubevent { subevent_header : RasSubeventHeader, subevent_data : 8[], } struct RangingHeader { ranging_counter : 12, configuration_id : 4, selected_tx_power : 8, antenna_paths_mask : 4, _reserved_ : 2, pct_format : PctFormat, } struct SegmentationHeader { first_segment : 1, last_segment : 1, rolling_segment_counter: 6, } packet FirstRangingDataSegment { segmentation_header : SegmentationHeader, ranging_header : RangingHeader, data : 8[], } packet RangingDataSegment { segmentation_header : SegmentationHeader, data : 8[], }