nearlink_sdr.phy.data_link¶
异步/同步数据链路传输规程 (标准 6.5.1 ~ 6.5.3)。
实现数据链路参数管理、流控决策、同步数据丢弃机制、 事件组集合调度, 以及同步业务适配 (周期/非周期) 的 分段重组逻辑。
Module Contents¶
Classes¶
同步业务适配方式 (6.5.3.1)。 |
|
非周期适配分片 (6.5.3.3)。 |
|
同步数据链路非周期适配 (6.5.3.3)。 |
|
异步数据链路参数 (6.5.1.2)。 |
|
异步数据链路流控决策 (6.5.1.3)。 |
|
事件组集合 (6.5.2.5)。 |
|
同步数据链路周期适配 (6.5.3.2)。 |
|
同步数据丢弃机制 (6.5.2.4)。 |
|
同步数据链路参数 (6.5.2.2)。 |
|
同步数据链路流控 (6.5.2.3)。 |
|
传输模式 (6.5.1.4 ~ 6.5.1.7, 6.5.2.6 ~ 6.5.2.10)。 |
API¶
- class nearlink_sdr.phy.data_link.AdaptMode[源代码]¶
Bases:
enum.IntEnum同步业务适配方式 (6.5.3.1)。
Initialization
Initialize self. See help(type(self)) for accurate signature.
- PERIODIC¶
0
- APERIODIC¶
1
- class nearlink_sdr.phy.data_link.AperiodicServiceAdaptor(pdu_max: int = 251, header_size: int = 4)[源代码]¶
同步数据链路非周期适配 (6.5.3.3)。
将 SDU 分片, 每个包含首段的分片携带时间偏移量。
Initialization
- fragment_sdu(sdu: bytes, time_offset_us: int = 0) list[nearlink_sdr.phy.data_link.AperiodicFragment][源代码]¶
将 SDU 分片。
- class nearlink_sdr.phy.data_link.AsyncDataLinkParams[源代码]¶
异步数据链路参数 (6.5.1.2)。
- mode: nearlink_sdr.phy.data_link.TransmissionMode¶
None
- class nearlink_sdr.phy.data_link.AsyncFlowControl[源代码]¶
异步数据链路流控决策 (6.5.1.3)。
根据标准规则, 判断先发节点是否应停止在当前事件组 后续事件中发送。
- should_stop_unicast_tx(tx_flow_ctrl: int, rx_flow_ctrl: int | None, rx_ack: bool | None, rx_data_len: int | None) bool[源代码]¶
单播先发节点停止条件 (6.5.1.3)。
条件一: 先发发送 flow_ctrl=0 且收到后发 flow_ctrl=0, ACK, data_len=0 条件二: 先发发送了消息但未收到后发消息 (rx 参数为 None)
- should_stop_multicast_semi_reliable(tx_flow_ctrl: int, any_nack: bool) bool[源代码]¶
半可靠组播组长停止条件。
组长发送 flow=0 且未收到任何 NACK。
- should_stop_multicast_full(tx_flow_ctrl: int, member_feedbacks: list[tuple[int, bool, int]]) bool[源代码]¶
非半可靠组播/双向组播组长停止条件。
组长发送 flow=0, 收到所有组员 flow=0、ACK、data_len=0。
- class nearlink_sdr.phy.data_link.PeriodicServiceAdaptor[源代码]¶
同步数据链路周期适配 (6.5.3.2)。
将上层 SDU 分段为 PDU, 并按事件组周期进行时间同步。
- class nearlink_sdr.phy.data_link.SyncDataDiscard[源代码]¶
同步数据丢弃机制 (6.5.2.4)。
跟踪发送序列号、本地基准值和有效载荷计数, 支持 主动丢弃和被动丢弃判定。
- class nearlink_sdr.phy.data_link.SyncDataLinkParams[源代码]¶
同步数据链路参数 (6.5.2.2)。
- adapt_mode: nearlink_sdr.phy.data_link.AdaptMode¶
None
- mode: nearlink_sdr.phy.data_link.TransmissionMode¶
None
- class nearlink_sdr.phy.data_link.SyncFlowControl[源代码]¶
同步数据链路流控 (6.5.2.3)。
与异步流控逻辑基本一致, 但同步链路中先发节点在 满足停止条件后直接停止, 后发节点的行为由事件组 内事件总数约束。
- should_stop_unicast_tx(tx_flow_ctrl: int, rx_flow_ctrl: int | None, rx_ack: bool | None, rx_data_len: int | None) bool[源代码]¶
单播先发停止 (6.5.2.3)。
- should_stop_multicast_full(tx_flow_ctrl: int, member_feedbacks: list[tuple[int, bool, int]]) bool[源代码]¶
- class nearlink_sdr.phy.data_link.TransmissionMode[源代码]¶
Bases:
enum.IntEnum传输模式 (6.5.1.4 ~ 6.5.1.7, 6.5.2.6 ~ 6.5.2.10)。
Initialization
Initialize self. See help(type(self)) for accurate signature.
- UNICAST¶
0
- MULTICAST¶
1
- BIDIRECTIONAL_MULTICAST¶
2
- FEEDBACK_MULTICAST¶
3
- BROADCAST_ASYNC¶
4
- BROADCAST_SYNC¶
5