nearlink_sdr.mac.smf¶
系统管理帧编解码 -- TXS-10002-2025 标准 6.6
实现系统管理帧 (System Management Frame) 的完整编解码:
SMFHeader: 系统管理帧数据包头 (分段指示 + 信令编号)
ScheduleSignaling: 系统管理帧调度信令 (6.6.2.1)
LinkSignaling: 链路信令 (6.6.2.2)
OffsetSignaling: 偏移信令 (6.6.2.3)
SystemManagementFrame: 完整系统管理帧组装与解析
Module Contents¶
Classes¶
无线帧类型配置 (6.6.2.1, 表17) |
|
链路信令 (6.6.2.2, 表18) |
|
偏移信令 (6.6.2.3, 表19) |
|
偏移量单位 (6.6.2.3) |
|
系统管理帧数据包头 |
|
系统管理帧的信令 TLV 结构 (类型 + 长度 + 内容) |
|
信令类型 (6.6.2) |
|
系统管理帧调度信令 (6.6.2.1, 表16) |
|
调度时隙长度 (6.6.2.2) |
|
分段指示 (6.6.2) |
|
系统管理帧完整结构 (6.6.2) |
|
单个时间资源配置条目 (6.6.2.2) |
Functions¶
将分段的系统管理帧数据重组为完整帧 |
API¶
- class nearlink_sdr.mac.smf.FrameTypeConfig[源代码]¶
Bases:
enum.IntEnum无线帧类型配置 (6.6.2.1, 表17)
Initialization
Initialize self. See help(type(self)) for accurate signature.
- FT1¶
0
- FT2¶
1
- FT3_M0¶
2
- FT3_M1¶
3
- FT3_M2¶
4
- FT3_M3¶
5
- FT3_M4¶
6
- FT3_M5¶
7
- FT4_M0¶
8
- FT4_M1¶
9
- FT4_M2¶
10
- FT4_M3¶
11
- FT4_M4¶
12
- FT4_M5¶
13
- class nearlink_sdr.mac.smf.LinkSignaling[源代码]¶
链路信令 (6.6.2.2, 表18)
描述链路的时间资源分布情况。
- resources: list[nearlink_sdr.mac.smf.TimeResourceEntry]¶
'field(...)'
- classmethod unpack(data: bytes) nearlink_sdr.mac.smf.LinkSignaling[源代码]¶
- class nearlink_sdr.mac.smf.OffsetSignaling[源代码]¶
偏移信令 (6.6.2.3, 表19)
标识链路建立和同步的偏移量信息。
- BYTE_LENGTH¶
5
- classmethod unpack(data: bytes) nearlink_sdr.mac.smf.OffsetSignaling[源代码]¶
- class nearlink_sdr.mac.smf.OffsetUnit[源代码]¶
Bases:
enum.IntEnum偏移量单位 (6.6.2.3)
Initialization
Initialize self. See help(type(self)) for accurate signature.
- US_25¶
0
- US_300¶
1
- class nearlink_sdr.mac.smf.SMFHeader[源代码]¶
系统管理帧数据包头
1 字节:
分段指示: 2 bits (高位)
信令编号: 6 bits (低位)
- BYTE_LENGTH¶
1
- classmethod unpack(data: bytes) nearlink_sdr.mac.smf.SMFHeader[源代码]¶
- class nearlink_sdr.mac.smf.SMFSignalingType[源代码]¶
Bases:
enum.IntEnum信令类型 (6.6.2)
Initialization
Initialize self. See help(type(self)) for accurate signature.
- SCHEDULE¶
0
- LINK¶
1
- OFFSET¶
2
- class nearlink_sdr.mac.smf.ScheduleSignaling[源代码]¶
系统管理帧调度信令 (6.6.2.1, 表16)
指示系统管理帧的间隔、带宽、频点表以及参数生效时刻。
- classmethod unpack(data: bytes) nearlink_sdr.mac.smf.ScheduleSignaling[源代码]¶
- class nearlink_sdr.mac.smf.ScheduleSlotLength[源代码]¶
Bases:
enum.IntEnum调度时隙长度 (6.6.2.2)
Initialization
Initialize self. See help(type(self)) for accurate signature.
- US_25¶
0
- US_50¶
1
- US_75¶
2
- US_100¶
3
- US_125¶
4
- class nearlink_sdr.mac.smf.SegmentIndication[源代码]¶
Bases:
enum.IntEnum分段指示 (6.6.2)
Initialization
Initialize self. See help(type(self)) for accurate signature.
- COMPLETE¶
0
- FIRST¶
1
- MIDDLE¶
2
- LAST¶
3
- class nearlink_sdr.mac.smf.SystemManagementFrame[源代码]¶
系统管理帧完整结构 (6.6.2)
组合 SMFHeader + 多个 SMFSignalingTLV 构成完整系统管理帧载荷。 提供高层便捷方法, 直接操作 ScheduleSignaling / LinkSignaling / OffsetSignaling。
- header: nearlink_sdr.mac.smf.SMFHeader¶
'field(...)'
- signalings: list[nearlink_sdr.mac.smf.SMFSignalingTLV]¶
'field(...)'
- classmethod unpack(data: bytes) nearlink_sdr.mac.smf.SystemManagementFrame[源代码]¶
- add_schedule(sig: nearlink_sdr.mac.smf.ScheduleSignaling) None[源代码]¶
添加调度信令
- add_link(sig: nearlink_sdr.mac.smf.LinkSignaling) None[源代码]¶
添加链路信令
- add_offset(sig: nearlink_sdr.mac.smf.OffsetSignaling) None[源代码]¶
添加偏移信令
- get_schedules() list[nearlink_sdr.mac.smf.ScheduleSignaling][源代码]¶
提取所有调度信令
- get_links() list[nearlink_sdr.mac.smf.LinkSignaling][源代码]¶
提取所有链路信令
- get_offsets() list[nearlink_sdr.mac.smf.OffsetSignaling][源代码]¶
提取所有偏移信令
- class nearlink_sdr.mac.smf.TimeResourceEntry[源代码]¶
单个时间资源配置条目 (6.6.2.2)
描述一个时间分片的资源分配:
偏移量 (2 字节, 调度时隙单位)
持续长度 (2 字节, 调度时隙单位)
周期间隔 (2 字节, 调度时隙单位)
重复次数 (1 字节)
- BYTE_LENGTH¶
7
- classmethod unpack(data: bytes) nearlink_sdr.mac.smf.TimeResourceEntry[源代码]¶
- nearlink_sdr.mac.smf.reassemble_smf(fragments: list[bytes]) nearlink_sdr.mac.smf.SystemManagementFrame[源代码]¶
将分段的系统管理帧数据重组为完整帧
每个 fragment 是一个完整的系统管理帧 payload (含 SMFHeader)。 按照分段指示规则:
FIRST(1): 首段, 取其 header 的信令编号
MIDDLE(2): 中间段
LAST(3): 尾段
COMPLETE(0): 不分段, 直接解析