nearlink_sdr.node¶
SLE 节点实体 -- 统一收发接口。
将 MAC/PHY 各模块整合为单一 SLE 节点, 提供完整的链路生命周期管理 和数据收发能力。支持仿真模式和 USRP 硬件模式。
Module Contents¶
Classes¶
节点事件回调, 子类可覆盖。 |
|
SLE 节点配置。 |
|
节点初始角色偏好。 |
|
节点高层状态, 简化自 LinkState。 |
|
接收结果。 |
|
SparkLink SLE 节点实体。 |
|
传输模式。 |
|
发射结果。 |
API¶
- class nearlink_sdr.node.NodeCallback[源代码]¶
节点事件回调, 子类可覆盖。
- on_state_changed(old: nearlink_sdr.node.NodeState, new: nearlink_sdr.node.NodeState) None[源代码]¶
- on_connected(peer_address: bytes, role: nearlink_sdr.mac.link_manager.Role) None[源代码]¶
- on_disconnected(reason: nearlink_sdr.mac.link_manager.DisconnectReason) None[源代码]¶
- on_broadcast_received(frame: nearlink_sdr.mac.broadcast.BroadcastFrame) None[源代码]¶
- class nearlink_sdr.node.NodeConfig[源代码]¶
SLE 节点配置。
- 变量:
address -- 6 字节设备地址。
role -- 角色偏好 (AUTO/G_NODE/T_NODE)。
frame_type -- 帧类型 (1-4)。
mcs_index -- MCS 索引 (0-12)。
bandwidth_mhz -- 信道带宽 (1/2/4 MHz)。
pilot_interval -- 导频插入间隔 (0/4/8/16)。
max_pdu -- 最大 PDU 长度 (字节)。
max_retransmit -- 最大重传次数。
enable_encryption -- 是否启用加密。
transport -- 传输模式。
band -- 频段标识。
hop_param2 -- 跳频参数 2 (0 表示自动从地址派生)。
blocked_channels -- 被阻塞的信道号集合。
tx_power_dbm -- 初始发射功率 (dBm)。
max_power_dbm -- 最大发射功率。
min_power_dbm -- 最小发射功率。
channel_config -- 仿真模式下的信道模型配置 (None 表示理想信道)。
sdr_config -- SDR 硬件配置 (transport=USRP 时使用, 支持 mock/uhd/pluto 后端)。
usrp_config -- (已废弃) USRP 配置, 保留向后兼容; 优先使用 sdr_config。
smf_enabled -- 是否启用系统管理帧调度。
- role: nearlink_sdr.node.NodeRole¶
None
- transport: nearlink_sdr.node.TransportMode¶
None
- channel_config: nearlink_sdr.phy.channel.ChannelConfig | None¶
None
- sdr_config: nearlink_sdr.phy.sdr_backend.SDRConfig | None¶
None
- usrp_config: nearlink_sdr.phy.usrp.USRPConfig | None¶
None
- class nearlink_sdr.node.NodeRole[源代码]¶
Bases:
enum.IntEnum节点初始角色偏好。
Initialization
Initialize self. See help(type(self)) for accurate signature.
- AUTO¶
0
- G_NODE¶
1
- T_NODE¶
2
- class nearlink_sdr.node.NodeState[源代码]¶
Bases:
enum.IntEnum节点高层状态, 简化自 LinkState。
Initialization
Initialize self. See help(type(self)) for accurate signature.
- IDLE¶
0
- ADVERTISING¶
'auto(...)'
- SCANNING¶
'auto(...)'
- CONNECTING¶
'auto(...)'
- PAIRED¶
'auto(...)'
- CONNECTED¶
'auto(...)'
- DISCONNECTED¶
'auto(...)'
- class nearlink_sdr.node.SleNode[源代码]¶
SparkLink SLE 节点实体。
整合链路管理、安全、QoS、PHY 流水线、跳频、功率控制、 时序调度、接入流程、信道模型为统一收发接口。
用法::
node = SleNode(NodeConfig(address=b"\x01\x02\x03\x04\x05\x06")) node.send(b"hello", Priority.NORMAL) tx_result = node.transmit() # ... 通过信道传输 tx_result.iq ... rx_result = node.receive(rx_iq, n_bytes)
- config: nearlink_sdr.node.NodeConfig¶
'field(...)'
- callback: nearlink_sdr.node.NodeCallback¶
'field(...)'
- property state: nearlink_sdr.node.NodeState¶
- property link_state: nearlink_sdr.mac.link_manager.LinkState¶
- property role: nearlink_sdr.mac.link_manager.Role¶
- start_advertising() nearlink_sdr.mac.broadcast.BroadcastFrame | None[源代码]¶
进入广播态, 构建并返回扩展广播帧。
- on_broadcast_received(frame: nearlink_sdr.mac.broadcast.BroadcastFrame) bool[源代码]¶
处理收到的广播帧。
在扫描态时, 通过发现管理器和广播过滤器处理帧。
- 返回:
True 表示该帧包含有效的接入资源配置。
- accept_connection(peer_address: bytes, role: nearlink_sdr.mac.link_manager.Role = Role.G_NODE) None[源代码]¶
接受接入请求, 直接进入链接态。
接入完成后自动注册链路调度资源。
- run_access(peer_address: bytes, is_broadcaster: bool = True) tuple[nearlink_sdr.mac.access.BroadcasterAccessManager, nearlink_sdr.mac.access.InitiatorAccessManager][源代码]¶
执行完整接入编排流程。
- send(data: bytes, priority: nearlink_sdr.mac.qos.Priority = Priority.NORMAL) bool[源代码]¶
提交数据到发送队列。
- transmit() nearlink_sdr.node.TxResult[源代码]¶
从发送队列取出数据, 构建帧并生成 IQ 信号。
自动选择当前跳频信道, 更新发射功率。
- receive(iq_signal: numpy.ndarray, n_mac_bytes: int) nearlink_sdr.node.RxResult[源代码]¶
从 IQ 信号解码数据。
如果配置了信道模型, 会在解码前应用信道效应。
- process_feedback(crc_ok: bool) nearlink_sdr.mac.qos.TxDecision[源代码]¶
处理对端 ACK/NACK 反馈。
- property freq_table: nearlink_sdr.phy.freq_hopping.FreqTable¶
- property power_controller: nearlink_sdr.mac.power_control.PowerController¶
- property scheduler: nearlink_sdr.mac.scheduler.ScheduleManager¶
- property smf_scheduler: nearlink_sdr.mac.smf_scheduler.SMFTransmitScheduler | None¶
- configure_smf(params: nearlink_sdr.mac.smf_scheduler.SMFScheduleParams) None[源代码]¶
配置 SMF 调度参数。
- property whitelist: nearlink_sdr.mac.access.AccessWhitelist¶
- property discovery: nearlink_sdr.mac.access.DiscoveryManager¶
- set_broadcast_filter(broadcast_filter: nearlink_sdr.mac.broadcast.BroadcastFilter) None[源代码]¶
设置广播帧过滤器。
- start_non_connected_broadcast(nc_config: nearlink_sdr.mac.access.NonConnectedBroadcastConfig | None = None) nearlink_sdr.mac.broadcast.BroadcastFrame | None[源代码]¶
发送非链接态广播数据帧。
- property channel_model: nearlink_sdr.phy.channel.ChannelModel | None¶
- set_channel_model(config: nearlink_sdr.phy.channel.ChannelConfig) None[源代码]¶
配置仿真信道模型。
- property sdr_device: nearlink_sdr.phy.sdr_backend.SDRDevice | None¶
- property transceiver: nearlink_sdr.phy.usrp.SLETransceiver | None¶
- receive_iq(num_samps: int) numpy.ndarray | None[源代码]¶
从 SDR/USRP 接收 IQ 采样。
- generate_measurement_signal(n_measur: int = 64, security_type: int = 1) numpy.ndarray[源代码]¶
生成窄带测量信号 (标准 6.2.4)。
- property data_link_params: nearlink_sdr.phy.data_link.AsyncDataLinkParams | nearlink_sdr.phy.data_link.SyncDataLinkParams | None¶
- send_signaling(msg: object) nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶
通过链路管理器发送控制面信令。
- class nearlink_sdr.node.TransportMode[源代码]¶
Bases:
enum.IntEnum传输模式。
Initialization
Initialize self. See help(type(self)) for accurate signature.
- SIMULATION¶
'auto(...)'
- USRP¶
'auto(...)'