广播帧编解码 -- TXS-10002-2025 标准 7.1.4
实现 SLE 广播、发现和接入所需的帧结构编解码:
广播帧通用结构 (BroadcastFrame)
扩展广播帧资源配置信息 (ExtAdvResourceConfig)
发现接入资源配置信息 (DiscoveryAccessResourceConfig)
接入基本信息 (AccessBasicInfo)
接入请求信息 (AccessRequestInfo)
接入响应信息 (AccessResponseInfo)
启动系统管理帧信息 (SystemMgmtFrameInfo)
Module Contents
Classes
AccessBasicInfo
|
接入基本信息 (7.1.4.4, 表31) |
AccessRequestInfo
|
接入请求信息 (7.1.4.5, 表32/33) |
AccessResponseEntry
|
单个接入响应条目 |
AccessResponseInfo
|
接入响应信息 (7.1.4.6, 表34) |
AccessResponseType
|
接入响应类型 (7.1.4.6) |
AddrType
|
媒体接入层标识类型 (7.1.4 表25) |
BroadcastDataType
|
广播帧数据类型 (7.1.4 表26) |
BroadcastFilter
|
广播帧过滤器 (7.1.5) |
BroadcastFrame
|
广播帧通用结构 (7.1.4, 表25) |
DiscoveryAccessEntry
|
单个发现接入资源条目 |
DiscoveryAccessResourceConfig
|
发现接入资源配置信息 (7.1.4.2, 表28) |
ExtAdvResourceConfig
|
扩展广播帧资源配置信息 (7.1.4.1, 表27) |
FilterCondition
|
单个过滤条件 |
FilterOp
|
过滤条件组合运算符 |
GTNegotiation
|
GT 角色协商结果 (7.1.4.2) |
NarrowbandMeasurementConfig
|
非链接态窄带跳频测量信息配置 (7.1.4.10, 表39) |
NonLinkedBroadcastLinkInfo
|
非链接态广播链路信息 (7.1.4.8, 表36/37) |
QueryRequestFilterInfo
|
查询请求过滤信息 (7.1.4.9, 表38) |
RequestType
|
请求类型标志 (7.1.4.2) |
SystemMgmtFrameInfo
|
启动系统管理帧信息 (7.1.4.7, 表35) |
TransportIndicationInfo
|
传输指示信息 (7.1.4.3, 表29) |
UWBPulseMeasurementConfig
|
非链接态超宽带脉冲测量信息配置 (7.1.4.11, 表41) |
API
-
class nearlink_sdr.mac.broadcast.AccessBasicInfo[源代码]
接入基本信息 (7.1.4.4, 表31)
-
smf_baseline_slot: int
None
-
smf_offset: int
None
-
smf_link_id: int
None
-
smf_period: int
None
-
smf_frame_type: int
None
-
smf_bandwidth: int
None
-
smf_pilot_density: int
None
-
access_link_id: int
None
-
access_period: int
None
-
access_timeout: int
None
-
sleep_clock_accuracy: int
None
-
access_crc_type: int
None
-
access_crc_init: int
None
-
hop_map: bytes
None
-
smf_channel_count: int
None
-
smf_channel_table: bytes
None
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.AccessBasicInfo[源代码]
-
class nearlink_sdr.mac.broadcast.AccessRequestInfo[源代码]
接入请求信息 (7.1.4.5, 表32/33)
-
structure_indication: int
None
-
gt_role: int | None
None
-
frame_support: int | None
None
-
bandwidth_support: int | None
None
-
mcs_support: int | None
None
-
pilot_support: int | None
None
-
slot_support: int | None
None
-
switch_delay: int | None
None
-
crc_support: int | None
None
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.AccessRequestInfo[源代码]
-
class nearlink_sdr.mac.broadcast.AccessResponseEntry[源代码]
单个接入响应条目
-
peer_addr: bytes
None
-
response_type: int
None
-
peer_addr_type: int
None
-
repeat_indication: int
None
-
capability: bytes | None
None
-
class nearlink_sdr.mac.broadcast.AccessResponseInfo[源代码]
接入响应信息 (7.1.4.6, 表34)
-
entries: list[nearlink_sdr.mac.broadcast.AccessResponseEntry]
'field(...)'
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.AccessResponseInfo[源代码]
-
class nearlink_sdr.mac.broadcast.AccessResponseType[源代码]
Bases: enum.IntEnum
接入响应类型 (7.1.4.6)
Initialization
Initialize self. See help(type(self)) for accurate signature.
-
ACCEPT
0
-
GT_NEGOTIATION_FAIL
1
-
RESOURCE_LIMITED
2
-
USER_REJECT
3
-
class nearlink_sdr.mac.broadcast.AddrType[源代码]
Bases: enum.IntEnum
媒体接入层标识类型 (7.1.4 表25)
Initialization
Initialize self. See help(type(self)) for accurate signature.
-
ALLIANCE_ASSIGNED
0
-
LOCAL_ORG
2
-
RESOLVABLE_RANDOM
3
-
NON_RESOLVABLE_RANDOM
4
-
ALLIANCE_RESERVED
5
-
PRIVATE
6
-
class nearlink_sdr.mac.broadcast.BroadcastDataType[源代码]
Bases: enum.IntEnum
广播帧数据类型 (7.1.4 表26)
Initialization
Initialize self. See help(type(self)) for accurate signature.
-
DISCOVERY_ACCESS_RESOURCE
0
-
TRANSPORT_INDICATION
1
-
ACCESS_BASIC
2
-
ACCESS_REQUEST
3
-
ACCESS_RESPONSE
4
-
SYSTEM_MGMT_FRAME
5
-
UNLINKED_BROADCAST_LINK
6
-
QUERY_REQUEST_FILTER
7
-
NB_HOPPING_MEAS_CONFIG
8
-
UWB_PULSE_MEAS_CONFIG
9
-
UPPER_LAYER_DATA
255
-
class nearlink_sdr.mac.broadcast.BroadcastFilter[源代码]
广播帧过滤器 (7.1.5)
支持按设备地址、设备名称、服务UUID、服务数据和厂商数据等信息
的单个条件或多个条件的与/或/非组合过滤。
-
conditions: list[nearlink_sdr.mac.broadcast.FilterCondition]
'field(...)'
-
operator: nearlink_sdr.mac.broadcast.FilterOp
None
-
match(frame: nearlink_sdr.mac.broadcast.BroadcastFrame) → bool[源代码]
检查广播帧是否满足过滤条件
-
class nearlink_sdr.mac.broadcast.BroadcastFrame[源代码]
广播帧通用结构 (7.1.4, 表25)
结构指示 (5 bits) 控制可选字段:
bit 0: 本端标识存在
bit 1: 解析密钥标识存在
bit 2: 对端标识存在
bit 3: 扩展广播帧资源配置存在
bit 4: 数据部分存在
-
structure_indication: int
None
-
local_addr_type: int
None
-
peer_addr_type: int
None
-
local_addr: bytes
None
-
irk_id: int
None
-
peer_addr: bytes
None
-
ext_adv_config: nearlink_sdr.mac.broadcast.ExtAdvResourceConfig | None
None
-
data_items: list[tuple[int, bytes]]
'field(...)'
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.BroadcastFrame[源代码]
-
class nearlink_sdr.mac.broadcast.DiscoveryAccessEntry[源代码]
单个发现接入资源条目
-
request_type: int
None
-
carry_info_indication: int
None
-
peer_addr_type: int
None
-
addr_present: int
None
-
peer_addr: bytes
None
-
class nearlink_sdr.mac.broadcast.DiscoveryAccessResourceConfig[源代码]
发现接入资源配置信息 (7.1.4.2, 表28)
-
request_offset: int
None
-
request_max_length: int
None
-
response_offset: int
None
-
gt_negotiation: int
None
-
entry_count: int
None
-
entries: list[nearlink_sdr.mac.broadcast.DiscoveryAccessEntry]
'field(...)'
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.DiscoveryAccessResourceConfig[源代码]
-
class nearlink_sdr.mac.broadcast.ExtAdvResourceConfig[源代码]
扩展广播帧资源配置信息 (7.1.4.1, 表27)
4 字节结构:
频点索引: 8 bits
偏移量: 12 bits
无线帧类型指示: 4 bits
带宽指示: 2 bits
导频密度指示: 2 bits
时钟精度: 3 bits
偏移量单位: 1 bit
-
channel_index: int
None
-
offset: int
None
-
frame_type: int
None
-
bandwidth: int
None
-
pilot_density: int
None
-
clock_accuracy: int
None
-
offset_unit: int
None
-
BYTE_LENGTH
4
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.ExtAdvResourceConfig[源代码]
-
class nearlink_sdr.mac.broadcast.FilterCondition[源代码]
单个过滤条件
-
field_name: str
None
-
value: bytes
b''
-
negate: bool
False
-
class nearlink_sdr.mac.broadcast.FilterOp[源代码]
Bases: enum.IntEnum
过滤条件组合运算符
Initialization
Initialize self. See help(type(self)) for accurate signature.
-
AND
0
-
OR
1
-
NOT
2
-
class nearlink_sdr.mac.broadcast.GTNegotiation[源代码]
Bases: enum.IntEnum
GT 角色协商结果 (7.1.4.2)
Initialization
Initialize self. See help(type(self)) for accurate signature.
-
NEGOTIATE_T
0
-
NEGOTIATE_G
1
-
FIXED_T
2
-
FIXED_G
3
-
class nearlink_sdr.mac.broadcast.NarrowbandMeasurementConfig[源代码]
非链接态窄带跳频测量信息配置 (7.1.4.10, 表39)
包含感知信号配置、事件组参数、跳频配置、初始化阶段参数、
先发链路参数和跳频信道位图等字段。
-
config_index: int
0
-
event_group_start_offset: int
0
-
nb_event_period: int
0
-
nb_event_group_period: int
0
-
nb_events_in_group: int
0
-
nb_event_group_count: int
0
-
nb_event_stat_count: int
0
-
schedule_slot: int
4
-
meas_signal_bw: int
0
-
hopping_mode: int
0
-
init_channel: int
0
-
init_interaction_type: int
0
-
init_sync_signal: int
0
-
init_sync_config: int
0
-
init_meas_signal_type: int
0
-
init_meas_signal1_len: int
0
-
init_intra_event_interval: int
0
-
init_switch_interval: int
0
-
init_meas_signal2_len: int
0
-
init_inter_event_interval: int
0
-
mf1_inter_event_interval: int
0
-
mf2_inter_event_interval: int
0
-
nb_intra_event_interval: int
0
-
nb_inter_group_interval: int
0
-
nb_event_total: int
0
-
mf1_event_period: int
0
-
mf1_switch_interval: int
0
-
tx_sync_signal: int
0
-
tx_antenna_count: int
0
-
tx_sync_config: int
0
-
tx_meas_signal_type: int
0
-
tx_meas_signal1_len: int
0
-
tx_meas_signal1_security: int
0
-
tx_meas_signal2_multitone: int
0
-
tx_first_sub_signal_len: int
0
-
tx_antenna_switch_interval: int
0
-
tx_meas_signal2_len: int
0
-
hop_band_bitmap: int
0
-
hop_channel_2g4: int
0
-
hop_channel_5g1: int
0
-
hop_channel_5g8: int
0
-
stability: int
0
-
reserved: int
0
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.NarrowbandMeasurementConfig[源代码]
-
class nearlink_sdr.mac.broadcast.NonLinkedBroadcastLinkInfo[源代码]
非链接态广播链路信息 (7.1.4.8, 表36/37)
-
transmission_type: int
None
-
service_adapt_mode: int
None
-
reserved: int
0
-
system_slot_seq: int
0
-
event_group_offset: int
0
-
event_group_set_id: int
0
-
event_group_count: int
0
-
event_group_interval: int
0
-
event_group_period: int
0
-
event_period: int
0
-
event_count: int
0
-
sync_anchor_delay: int
0
-
sync_ref_delay: int
0
-
base_link_id: int
0
-
frame_type: int
0
-
bandwidth: int
0
-
pilot_density: int
0
-
sdu_max: int
0
-
sdu_period: int
0
-
pdu_max: int
0
-
new_packet_count: int
0
-
crc_type: int
0
-
crc_base_init: int
0
-
hop_map: bytes
b''
-
giv: bytes
b''
-
gskd: bytes
b''
-
is_5g: bool
False
-
pack() → bytes[源代码]
编码为字节序列
-
classmethod unpack(data: bytes, is_5g: bool = False) → nearlink_sdr.mac.broadcast.NonLinkedBroadcastLinkInfo[源代码]
从字节序列解码
-
class nearlink_sdr.mac.broadcast.QueryRequestFilterInfo[源代码]
查询请求过滤信息 (7.1.4.9, 表38)
变长结构, 包含:
16比特标准服务标识列表
128比特自定义服务标识列表
-
uuid_16_list: list[int]
'field(...)'
-
uuid_128_list: list[bytes]
'field(...)'
-
pack() → bytes[源代码]
编码为字节序列
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.QueryRequestFilterInfo[源代码]
从字节序列解码
-
class nearlink_sdr.mac.broadcast.RequestType[源代码]
Bases: enum.IntEnum
请求类型标志 (7.1.4.2)
Initialization
Initialize self. See help(type(self)) for accurate signature.
-
QUERY
0
-
ACCESS
1
-
UNRESTRICTED
2
-
class nearlink_sdr.mac.broadcast.SystemMgmtFrameInfo[源代码]
启动系统管理帧信息 (7.1.4.7, 表35)
-
baseline_slot: int
None
-
offset: int
None
-
access_addr: int
None
-
period: int
None
-
frame_type: int
None
-
bandwidth: int
None
-
pilot_density: int
None
-
channel_count: int
None
-
channel_table: bytes
None
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.SystemMgmtFrameInfo[源代码]
-
class nearlink_sdr.mac.broadcast.TransportIndicationInfo[源代码]
传输指示信息 (7.1.4.3, 表29)
总长度 480 bits (2.4GHz) 或 600 bits (5.xGHz),
取决于跳频地图长度 (80 或 200 bits)。
-
system_slot_seq: int
None
-
event_group_offset: int
None
-
event_group_period: int
None
-
event_period: int
None
-
intra_event_interval: int
None
-
inter_event_interval: int
None
-
event_count: int
None
-
peer_addr: bytes
None
-
peer_addr_type: int
None
-
sleep_clock_accuracy: int
None
-
first_last_indication: int
None
-
reserved_1: int
0
-
tx_frame_type: int
0
-
rx_frame_type: int
0
-
tx_crc_type: int
0
-
rx_crc_type: int
0
-
tx_feedback_type: int
0
-
rx_feedback_type: int
0
-
system_schedule_slot: int
0
-
reserved_2: int
0
-
tx_link_id: int
0
-
rx_link_id: int
0
-
tx_bandwidth: int
0
-
rx_bandwidth: int
0
-
tx_pilot_density: int
0
-
rx_pilot_density: int
0
-
tx_pdu_max: int
0
-
rx_pdu_max: int
0
-
tx_max_time_offset: int
0
-
rx_max_time_offset: int
0
-
tx_crc_init: int
0
-
rx_crc_init: int
0
-
delay_period: int
0
-
timeout: int
0
-
hop_map: bytes
b''
-
is_5g: bool
False
-
pack() → bytes[源代码]
编码为字节序列
-
classmethod unpack(data: bytes, is_5g: bool = False) → nearlink_sdr.mac.broadcast.TransportIndicationInfo[源代码]
从字节序列解码
-
class nearlink_sdr.mac.broadcast.UWBPulseMeasurementConfig[源代码]
非链接态超宽带脉冲测量信息配置 (7.1.4.11, 表41)
-
config_index: int
0
-
event_group_start_offset: int
0
-
init_event_group_period: int
0
-
schedule_slot: int
4
-
init_channel_count: int
0
-
init_channel_list: list[int]
'field(...)'
-
init_interaction_type: int
0
-
init_sync_signal: int
0
-
init_sync_config: int
0
-
init_intra_event_interval: int
0
-
init_switch_interval: int
0
-
init_meas_signal_type: int
0
-
init_meas_signal1_len: int
0
-
init_meas_signal2_len: int
0
-
tx_antenna_count: int
0
-
tx_multi_antenna_config: int
0
-
uwb_first_frame_start: int
0
-
uwb_event_period: int
0
-
uwb_event_group_period: int
0
-
uwb_events_in_group: int
0
-
uwb_event_group_count: int
0
-
uwb_event_stat_count: int
0
-
uwb_channel: int
0
-
uwb_signal_bw: int
0
-
channel_overlap_mode: int
0
-
channel_order_mode: int
0
-
channel_stitch_count: int
0
-
channel_stitch_step: int
0
-
sync_symbol_kl: int
0
-
sync_symbol_n: int
0
-
sync_symbol_index: int
0
-
meas_symbol_shift: int
0
-
meas_seg_symbol_count: int
0
-
meas_seg_count: int
0
-
meas_seg_gap: int
0
-
meas_symbol_cp_len: int
0
-
meas_symbol_zero_len: int
0
-
stability: int
0
-
device_status: int
0
-
pack() → bytes[源代码]
-
classmethod unpack(data: bytes) → nearlink_sdr.mac.broadcast.UWBPulseMeasurementConfig[源代码]