Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
nearlink-sdr 1.0.9 文档
nearlink-sdr 1.0.9 文档
  • 快速入门
  • 操作指南
    • 运行链路仿真
    • 添加新的调制方式
    • QoS 服务质量管理
    • 使用 SLE 节点实体
    • Rust 加速模块
    • SDR E310 部署规划
    • 构建文档
  • 技术参考
    • nearlink_sdr
      • nearlink_sdr.mac
        • nearlink_sdr.mac.access
        • nearlink_sdr.mac.broadcast
        • nearlink_sdr.mac.crypto
        • nearlink_sdr.mac.frame
        • nearlink_sdr.mac.link_control
        • nearlink_sdr.mac.link_manager
        • nearlink_sdr.mac.power_control
        • nearlink_sdr.mac.qos
        • nearlink_sdr.mac.scheduler
        • nearlink_sdr.mac.security
        • nearlink_sdr.mac.security_manager
        • nearlink_sdr.mac.signaling
        • nearlink_sdr.mac.smf
        • nearlink_sdr.mac.smf_scheduler
      • nearlink_sdr.sim
        • nearlink_sdr.sim.link_sim
        • nearlink_sdr.sim.usrp_sim
      • nearlink_sdr.common
        • nearlink_sdr.common.bch
        • nearlink_sdr.common.code_block_seg
        • nearlink_sdr.common.crc
        • nearlink_sdr.common.m_sequence
        • nearlink_sdr.common.mcs
        • nearlink_sdr.common.polar
        • nearlink_sdr.common.prbs
        • nearlink_sdr.common.scrambler
      • nearlink_sdr.phy
        • nearlink_sdr.phy.channel
        • nearlink_sdr.phy.control_info
        • nearlink_sdr.phy.data_link
        • nearlink_sdr.phy.equalizer
        • nearlink_sdr.phy.frame
        • nearlink_sdr.phy.freq_hopping
        • nearlink_sdr.phy.gfsk
        • nearlink_sdr.phy.mac_interface
        • nearlink_sdr.phy.measurement
        • nearlink_sdr.phy.measurement_frame
        • nearlink_sdr.phy.measurement_tx
        • nearlink_sdr.phy.mock_backend
        • nearlink_sdr.phy.multitone
        • nearlink_sdr.phy.pilot
        • nearlink_sdr.phy.pluto_backend
        • nearlink_sdr.phy.preamble
        • nearlink_sdr.phy.psk
        • nearlink_sdr.phy.rf_compliance
        • nearlink_sdr.phy.rx_pipeline
        • nearlink_sdr.phy.sdr_backend
        • nearlink_sdr.phy.sync_sequence
        • nearlink_sdr.phy.tx_pipeline
        • nearlink_sdr.phy.uhd_backend
        • nearlink_sdr.phy.usrp
        • nearlink_sdr.phy.uwb_measurement_security
        • nearlink_sdr.phy.uwb_pulse
      • nearlink_sdr.node
  • 设计说明
    • SparkLink SLE 协议总览
    • 物理层原理
    • 物理层详解
    • MAC 层详解
    • 安全子系统详解
    • 端到端数据流
    • 系统架构
    • 标准条款映射
  • 更新日志
  • API Reference
    • nearlink_sdr
      • nearlink_sdr.mac
        • nearlink_sdr.mac.access
        • nearlink_sdr.mac.broadcast
        • nearlink_sdr.mac.crypto
        • nearlink_sdr.mac.frame
        • nearlink_sdr.mac.link_control
        • nearlink_sdr.mac.link_manager
        • nearlink_sdr.mac.power_control
        • nearlink_sdr.mac.qos
        • nearlink_sdr.mac.scheduler
        • nearlink_sdr.mac.security
        • nearlink_sdr.mac.security_manager
        • nearlink_sdr.mac.signaling
        • nearlink_sdr.mac.smf
        • nearlink_sdr.mac.smf_scheduler
      • nearlink_sdr.sim
        • nearlink_sdr.sim.link_sim
        • nearlink_sdr.sim.usrp_sim
      • nearlink_sdr.common
        • nearlink_sdr.common.bch
        • nearlink_sdr.common.code_block_seg
        • nearlink_sdr.common.crc
        • nearlink_sdr.common.m_sequence
        • nearlink_sdr.common.mcs
        • nearlink_sdr.common.polar
        • nearlink_sdr.common.prbs
        • nearlink_sdr.common.scrambler
      • nearlink_sdr.phy
        • nearlink_sdr.phy.channel
        • nearlink_sdr.phy.control_info
        • nearlink_sdr.phy.data_link
        • nearlink_sdr.phy.equalizer
        • nearlink_sdr.phy.frame
        • nearlink_sdr.phy.freq_hopping
        • nearlink_sdr.phy.gfsk
        • nearlink_sdr.phy.mac_interface
        • nearlink_sdr.phy.measurement
        • nearlink_sdr.phy.measurement_frame
        • nearlink_sdr.phy.measurement_tx
        • nearlink_sdr.phy.mock_backend
        • nearlink_sdr.phy.multitone
        • nearlink_sdr.phy.pilot
        • nearlink_sdr.phy.pluto_backend
        • nearlink_sdr.phy.preamble
        • nearlink_sdr.phy.psk
        • nearlink_sdr.phy.rf_compliance
        • nearlink_sdr.phy.rx_pipeline
        • nearlink_sdr.phy.sdr_backend
        • nearlink_sdr.phy.sync_sequence
        • nearlink_sdr.phy.tx_pipeline
        • nearlink_sdr.phy.uhd_backend
        • nearlink_sdr.phy.usrp
        • nearlink_sdr.phy.uwb_measurement_security
        • nearlink_sdr.phy.uwb_pulse
      • nearlink_sdr.node
Back to top
View this page

nearlink_sdr.mac.link_manager¶

链路管理状态机 -- TXS-10002-2025 标准 7.1 / 7.2。

实现 SparkLink SLE 的链路生命周期管理,包括广播、发现、接入、 链接态控制面流程和链路断开。

Module Contents¶

Classes¶

DisconnectReason

断开原因。

Event

状态机事件。

EventType

状态机输入事件类型。

LinkManager

SparkLink SLE 链路管理状态机。

LinkManagerCallback

链路管理回调接口。子类可覆盖需要的方法。

LinkParams

链路运行参数集合。

LinkState

链路状态。

Role

G/T 节点角色(标准 7.1.3 / 7.1.7.1)。

API¶

class nearlink_sdr.mac.link_manager.DisconnectReason[源代码]¶

Bases: enum.Enum

断开原因。

LOCAL_REQUEST¶

0

REMOTE_REQUEST¶

1

TIMEOUT¶

2

ACCESS_REJECTED¶

3

class nearlink_sdr.mac.link_manager.Event[源代码]¶

状态机事件。

type: nearlink_sdr.mac.link_manager.EventType¶

None

data: Any¶

None

class nearlink_sdr.mac.link_manager.EventType[源代码]¶

Bases: enum.Enum

状态机输入事件类型。

START_BROADCAST¶

'auto(...)'

STOP_BROADCAST¶

'auto(...)'

START_SCAN¶

'auto(...)'

STOP_SCAN¶

'auto(...)'

BROADCAST_RECEIVED¶

'auto(...)'

SEND_ACCESS_REQUEST¶

'auto(...)'

ACCESS_RESPONSE_RECEIVED¶

'auto(...)'

ACCESS_REQUEST_RECEIVED¶

'auto(...)'

SIGNALING_RECEIVED¶

'auto(...)'

SIGNALING_SEND¶

'auto(...)'

START_PAIRING¶

'auto(...)'

PAIRING_COMPLETE¶

'auto(...)'

PAIRING_FAILED¶

'auto(...)'

DISCONNECT_REQUEST¶

'auto(...)'

DISCONNECT_RECEIVED¶

'auto(...)'

SUPERVISION_TIMEOUT¶

'auto(...)'

SLEEP_REQUEST¶

'auto(...)'

WAKE_REQUEST¶

'auto(...)'

WAKE_RECEIVED¶

'auto(...)'

exception nearlink_sdr.mac.link_manager.InvalidState[源代码]¶

Bases: Exception

当前状态不允许此操作。

Initialization

Initialize self. See help(type(self)) for accurate signature.

exception nearlink_sdr.mac.link_manager.InvalidTransition[源代码]¶

Bases: Exception

非法状态转换。

Initialization

Initialize self. See help(type(self)) for accurate signature.

class nearlink_sdr.mac.link_manager.LinkManager[源代码]¶

SparkLink SLE 链路管理状态机。

以事件驱动方式管理链路生命周期: IDLE → BROADCASTING / SCANNING → ACCESSING → CONNECTED → DISCONNECTED。

state: nearlink_sdr.mac.link_manager.LinkState¶

None

role: nearlink_sdr.mac.link_manager.Role¶

None

params: nearlink_sdr.mac.link_manager.LinkParams¶

'field(...)'

callback: nearlink_sdr.mac.link_manager.LinkManagerCallback¶

'field(...)'

peer_address: bytes¶

b''

local_address: bytes¶

b''

process_event(event: nearlink_sdr.mac.link_manager.Event) → None[源代码]¶

处理一个事件,驱动状态转换。

reset() → None[源代码]¶

重置到 IDLE 状态。

property is_connected: bool¶
property is_dormant: bool¶
property event_log: list[tuple[float, nearlink_sdr.mac.link_manager.EventType, nearlink_sdr.mac.link_manager.LinkState, nearlink_sdr.mac.link_manager.LinkState]]¶
send_signaling(msg: Any) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

在链接态发送一条控制面信令,返回编码后的 ControlFrame。

update_params(**kwargs: Any) → None[源代码]¶

更新链路参数。

switch_role() → None[源代码]¶

角色切换(7.2.15),仅交换本地角色标记。

check_supervision_timeout() → bool[源代码]¶

检查监督定时器是否超时。返回 True 表示已超时并触发断开。

request_feature_exchange(feature_set: int) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起特性交互 (7.2.4)

参数:

feature_set -- 本端支持特性集 (80-bit 位图)

respond_feature_exchange(feature_set: int) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

回复特性交互 (7.2.4)

request_version_exchange(spec_version: int = 0, company_id: int = 0, sub_version: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起版本交互 (7.2.5)

request_data_length_update(max_rx_bytes: int = 251, max_rx_time: int = 2120, max_tx_bytes: int = 251, max_tx_time: int = 2120) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起数据长度更新 (7.2.6)

respond_data_length_update(max_rx_bytes: int = 251, max_rx_time: int = 2120, max_tx_bytes: int = 251, max_tx_time: int = 2120) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

回复数据长度更新 (7.2.6)

configure_channel_report(enable: int = 1, min_interval: int = 5, max_delay: int = 5) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

配置信道质量上报 (7.2.7), 由 G 节点发送

update_hop_table(effective_slot: int = 0, channel_count: int = 0, channel_table: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

更新跳频频点表 (7.2.8), 由 G 节点发送

update_hop_map(effective_slot: int = 0, hop_map: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

更新跳频地图 (7.2.9), 由 G 节点发送

request_min_channels(frame_type: int = 0, bandwidth: int = 0, pilot_density: int = 0, min_channels: int = 2) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

最少可用信道请求 (7.2.10), 由 T 节点发送

request_crc_switch(link_id: int = 0, tx_crc_type: int = 0, rx_crc_type: int = 0, tx_crc_init: int = 0, rx_crc_init: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

请求 CRC 切换 (7.2.11)

indicate_crc_switch(link_id: int = 0, tx_crc_type: int = 0, rx_crc_type: int = 0, tx_crc_init: int = 0, rx_crc_init: int = 0, effective_slot: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

指示 CRC 切换 (7.2.11), 由 G 节点直接切换

request_phy_update(tx_frame_type: int = 0, rx_frame_type: int = 0, tx_bandwidth: int = 0, rx_bandwidth: int = 0, tx_pilot_density: int = 0, rx_pilot_density: int = 0, tx_feedback_type: int = 0, rx_feedback_type: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

请求物理层类型更新 (7.2.12)

indicate_phy_update(tx_frame_type: int = 0, rx_frame_type: int = 0, tx_bandwidth: int = 0, rx_bandwidth: int = 0, tx_pilot_density: int = 0, rx_pilot_density: int = 0, tx_feedback_type: int = 0, rx_feedback_type: int = 0, effective_slot: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

指示物理层类型更新 (7.2.12), 由 G 节点直接更新

request_role_switch(effective_slot: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起角色切换请求 (7.2.15), 发送 RoleSwitchRequest 信令

execute_role_switch(effective_slot: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

执行角色切换: 发送信令并交换本地角色标记

send_ping() → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起 PING 请求 (7.2.16)

respond_ping() → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

回复 PING 响应 (7.2.16)

request_disconnect() → None[源代码]¶

发起链路断开 (7.2.17)

驱动状态机进入 DISCONNECTED 状态。

request_async_param_update(event_group_period_min: int = 0, event_group_period_max: int = 0, delay_period: int = 0, timeout: int = 0, expected_period_unit: int = 0, effective_ref_slot: int = 0, offsets: tuple[int, ...] = (), time_slot_length: int = 0, time_slot_count: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起异步链路参数更新请求 (7.2.18)

respond_async_param_update(event_group_period_min: int = 0, event_group_period_max: int = 0, delay_period: int = 0, timeout: int = 0, expected_period_unit: int = 0, effective_ref_slot: int = 0, offsets: tuple[int, ...] = (), time_slot_length: int = 0, time_slot_count: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

回复异步链路参数更新 (7.2.18)

request_isochronous_link_setup(event_group_set_id: int = 0, event_group_id: int = 0, effective_slot: int = 0, event_group_period: int = 0, event_period: int = 0, intra_event_interval: int = 0, inter_event_interval: int = 0, event_count: int = 1, sync_anchor_delay: int = 0, sync_ref_delay: int = 0, scheduling_slot: int = 0, tx_rx_indication: int = 0, tx_adapt_mode: int = 0, rx_adapt_mode: int = 0, tx_link_id: int = 0, rx_link_id: int = 0, tx_frame_type: int = 0, rx_frame_type: int = 0, tx_bandwidth: int = 0, rx_bandwidth: int = 0, tx_pilot_density: int = 0, rx_pilot_density: int = 0, tx_sdu_max: int = 0, rx_sdu_max: int = 0, tx_sdu_period: int = 0, rx_sdu_period: 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_new_pkt_count: int = 1, rx_new_pkt_count: int = 1, tx_crc_init: int = 0, rx_crc_init: int = 0, tx_discard_period: int = 3, rx_discard_period: int = 3, tx_crc_type: int = 0, rx_crc_type: int = 0, tx_feedback_type: int = 0, rx_feedback_type: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起同步等时链路建链 (7.2.19.1)

request_isochronous_param_exchange(event_group_set_id: int = 0, event_group_id: int = 0, event_group_period: int = 0, event_period: int = 0, intra_event_interval: int = 0, inter_event_interval: int = 0, event_count: int = 1, sync_anchor_delay: int = 0, sync_ref_delay: int = 0, param_tag_id: int = 0, tx_rx_indication: int = 0, tx_adapt_mode: int = 0, rx_adapt_mode: int = 0, tx_link_id: int = 0, rx_link_id: int = 0, tx_frame_type: int = 0, rx_frame_type: int = 0, tx_bandwidth: int = 0, rx_bandwidth: int = 0, tx_pilot_density: int = 0, rx_pilot_density: int = 0, tx_sdu_max: int = 0, rx_sdu_max: int = 0, tx_sdu_period: int = 0, rx_sdu_period: 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_new_pkt_count: int = 1, rx_new_pkt_count: int = 1, tx_crc_init: int = 0, rx_crc_init: int = 0, tx_discard_period: int = 3, rx_discard_period: int = 3, tx_crc_type: int = 0, rx_crc_type: int = 0, tx_feedback_type: int = 0, rx_feedback_type: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起同步等时参数交互请求 (7.2.19.2)

respond_isochronous_param_exchange(**kwargs: int) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

回复同步等时参数交互 (7.2.19.2)

request_isochronous_param_update(param_tag_id: int = 0, event_group_set_id: int = 0, event_group_id: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发起同步等时参数更新请求 (7.2.19.3)

indicate_isochronous_param_update(param_tag_id: int = 0, event_group_set_id: int = 0, event_group_id: int = 0, effective_ref_slot: int = 0, event_group_offset: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送同步等时参数更新指示 (7.2.19.3)

indicate_broadcast_link_setup(**kwargs) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送链接态广播链路建立指示 (7.2.20)

indicate_broadcast_link_param_update(**kwargs) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送广播链路参数更新指示 (7.2.20)

update_broadcast_hop_map(hop_map: bytes = b'\xff' * 10, effective_slot: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送广播链路跳频地图更新指示 (7.2.20)

indicate_broadcast_link_disconnect(link_id: int = 0, error_reason: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送广播链路断开指示 (7.2.20)

request_smf_param_update(smf_period: int = 100, smf_start_offset: int = 0, link_id: int = 0, frame_type: int = 0, bandwidth: int = 0, pilot_density: int = 0, crc_type: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送系统管理帧参数更新请求 (7.2.21)

indicate_smf_param_update(smf_period: int = 100, smf_start_offset: int = 0, link_id: int = 0, frame_type: int = 0, bandwidth: int = 0, pilot_density: int = 0, crc_type: int = 0, crc_init: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送系统管理帧参数更新指示 (7.2.21)

request_smf_timeslot_update(link_id: int = 0, current_offset: int = 0, offsets: tuple[int, ...] = (0, 0, 0, 0)) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送系统管理帧时间片更新请求 (7.2.21)

respond_smf_timeslot_update(link_id: int = 0, offset: int = 0, effective_slot: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送系统管理帧时间片更新响应 (7.2.21)

terminate_smf_signaling(terminate_type: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送系统管理帧信令传输终止 (7.2.21)

indicate_async_multicast_link_setup(**kwargs) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送异步组播链路建链指示 (7.2.22)

request_async_multicast_param_exchange(payload: bytes = b'\x00' * 41) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送异步组播链路参数交互请求 (7.2.22)

respond_async_multicast_param_exchange(payload: bytes = b'\x00' * 41) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送异步组播链路参数交互响应 (7.2.22)

request_async_multicast_param_update(param_tag_id: int = 0, event_group_set_id: int = 0, event_group_id: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送异步组播链路参数更新请求 (7.2.22)

indicate_async_multicast_param_update(param_tag_id: int = 0, event_group_set_id: int = 0, event_group_id: int = 0, effective_ref_slot: int = 0, event_group_offset: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送异步组播链路参数更新指示 (7.2.22)

indicate_async_multicast_reconfig(**kwargs) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送异步组播链路参数重配置指示 (7.2.22)

disconnect_multicast(link_id: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送组播链路断开指示 (7.2.22)

request_narrowband_meas_cap() → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量能力请求 (7.2.23)

respond_narrowband_meas_cap(payload: bytes = b'\x00' * 32) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量能力响应 (7.2.23)

config_narrowband_meas(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量信号配置 (7.2.23)

report_narrowband_meas(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量信息上报 (7.2.23)

action_narrowband_meas(config_index: int = 0, start_slot: int = 0, action_config: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量行为指示 (7.2.23)

request_coordinate() → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送坐标信息请求 (7.2.23)

report_coordinate(rel_x: int = 0, rel_y: int = 0, rel_z: int = 0, abs_lon: int = 0, abs_lat: int = 0, abs_alt: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送坐标信息上报 (7.2.23)

config_coordinate(rel_x: int = 0, rel_y: int = 0, rel_z: int = 0, abs_lon: int = 0, abs_lat: int = 0, abs_alt: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送坐标信息配置 (7.2.23)

request_narrowband_delay() → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量时延信息请求 (7.2.23)

respond_narrowband_delay(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量时延信息响应 (7.2.23)

request_uwb_meas_cap() → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲测量能力请求 (7.2.24)

respond_uwb_meas_cap(payload: bytes = b'\x00' * 50) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲测量能力响应 (7.2.24)

config_uwb_meas(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲测量配置 (7.2.24)

feedback_uwb_meas_config(config_index: int = 0, status: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲测量配置反馈 (7.2.24)

report_uwb_meas(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲测量信息上报 (7.2.24)

action_uwb_meas(config_index: int = 0, start_slot: int = 0, action_config: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲测量行为指示 (7.2.24)

request_uwb_sensing_cap() → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲感知能力请求 (7.2.24)

respond_uwb_sensing_cap(payload: bytes = b'\x00' * 51) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲感知能力响应 (7.2.24)

config_uwb_sensing(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲感知配置 (7.2.24)

feedback_uwb_sensing_config(config_index: int = 0, status: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲感知配置反馈 (7.2.24)

report_uwb_sensing(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲感知信息上报 (7.2.24)

action_uwb_sensing(config_index: int = 0, start_slot: int = 0, action_config: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲感知行为指示 (7.2.24)

request_uwb_sensing_process(payload: bytes = b'\x00' * 16) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲感知流程请求 (7.2.24)

feedback_uwb_sensing_process(process_index: int = 0, status: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲感知流程反馈 (7.2.24)

request_uwb_proxy_sensing(proxy_index: int = 0, sensing_index: int = 0, meas_quantity: int = 0, report_period: int = 0, bandwidth: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲代理感知请求 (7.2.24)

feedback_uwb_proxy_sensing(proxy_index: int = 0, sensing_index: int = 0, status: int = 0, meas_quantity1: int = 0, meas_quantity2: int = 0, bandwidth1: int = 0, bandwidth2: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送超宽带脉冲代理感知反馈 (7.2.24)

request_narrowband_sensing(payload: bytes = b'\x00' * 16) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频感知流程请求 (7.2.25)

feedback_narrowband_sensing(process_index: int = 0, status: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频感知流程反馈 (7.2.25)

request_narrowband_sensing_cap() → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频感知能力请求 (7.2.25)

respond_narrowband_sensing_cap(payload: bytes = b'\x00' * 50) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频感知能力响应 (7.2.25)

config_narrowband_sensing(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频感知配置 (7.2.25)

feedback_narrowband_sensing_config(config_index: int = 0, status: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频感知配置反馈 (7.2.25)

report_narrowband_sensing(payload: bytes = b'') → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频感知信息上报 (7.2.25)

action_narrowband_sensing(config_index: int = 0, start_slot: int = 0, action_config: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频感知行为指示 (7.2.25)

request_narrowband_proxy_sensing(proxy_index: int = 0, sensing_index: int = 0, meas_quantity: int = 0, report_period: int = 0, bandwidth: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频代理感知请求 (7.2.25)

feedback_narrowband_proxy_sensing(proxy_index: int = 0, sensing_index: int = 0, status: int = 0, meas_quantity1: int = 0, meas_quantity2: int = 0, bandwidth1: int = 0, bandwidth2: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频代理感知反馈 (7.2.25)

request_narrowband_meas_config_update(payload: bytes = b'\x00' * 32) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量信号配置更新请求 (7.2.25)

indicate_narrowband_meas_config_update(payload: bytes = b'\x00' * 32) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送窄带跳频测量信号配置更新指示 (7.2.25)

reserve_resource(config_index: int = 0, effective_slot: int = 0, event_group_period: int = 100, event_period: int = 10, event_length: int = 1, event_count: int = 1, scheduling_slot: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送资源预留指示 (7.3.2.91)

terminate_resource_reservation(config_index: int = 0, reason: int = 0) → nearlink_sdr.mac.frame.ControlFrame | None[源代码]¶

发送资源预留终止 (7.3.2.92)

class nearlink_sdr.mac.link_manager.LinkManagerCallback[源代码]¶

链路管理回调接口。子类可覆盖需要的方法。

on_state_changed(old: nearlink_sdr.mac.link_manager.LinkState, new: nearlink_sdr.mac.link_manager.LinkState) → None[源代码]¶

状态变迁通知。

on_broadcast_frame(frame: nearlink_sdr.mac.broadcast.BroadcastFrame) → None[源代码]¶

接收到广播帧。

on_access_accepted(role: nearlink_sdr.mac.link_manager.Role) → None[源代码]¶

接入成功,角色已确定。

on_access_rejected() → None[源代码]¶

接入被拒绝。

on_signaling(msg: Any) → None[源代码]¶

收到控制面信令。

on_disconnected(reason: nearlink_sdr.mac.link_manager.DisconnectReason) → None[源代码]¶

链路断开。

on_dormant() → None[源代码]¶

进入休眠态(7.2.14)。

on_wakeup() → None[源代码]¶

从休眠态唤醒(7.2.14)。

class nearlink_sdr.mac.link_manager.LinkParams[源代码]¶

链路运行参数集合。

tx_rx_interval: int¶

20

tx_max_octets: int¶

27

rx_max_octets: int¶

27

channel_table: bytes¶

b''

frame_type: int¶

2

bandwidth: int¶

0

crc_type: int¶

0

supervision_timeout: int¶

5000

class nearlink_sdr.mac.link_manager.LinkState[源代码]¶

Bases: enum.Enum

链路状态。

IDLE -- 初始待机 BROADCASTING -- 广播态,周期发送基础/扩展广播帧(7.1.1) SCANNING -- 发现态,接收广播帧(7.1.2) ACCESSING -- 接入态,发送接入请求/等待响应(7.1.3) CONNECTED -- 链接态,异步数据链路已建立 PAIRING -- 配对态,执行安全流程(9.2) DORMANT -- 休眠态,保持链路但停止数据传输(7.2.14) DISCONNECTED -- 链路已断开

IDLE¶

'auto(...)'

BROADCASTING¶

'auto(...)'

SCANNING¶

'auto(...)'

ACCESSING¶

'auto(...)'

CONNECTED¶

'auto(...)'

PAIRING¶

'auto(...)'

DORMANT¶

'auto(...)'

DISCONNECTED¶

'auto(...)'

class nearlink_sdr.mac.link_manager.Role[源代码]¶

Bases: enum.Enum

G/T 节点角色(标准 7.1.3 / 7.1.7.1)。

NONE¶

'auto(...)'

G_NODE¶

'auto(...)'

T_NODE¶

'auto(...)'

Next
nearlink_sdr.mac.power_control
Previous
nearlink_sdr.mac.link_control
Copyright ©
Made with Sphinx and @pradyunsg's Furo
On this page
  • nearlink_sdr.mac.link_manager
    • Module Contents
      • Classes
      • API
        • DisconnectReason
          • DisconnectReason.LOCAL_REQUEST
          • DisconnectReason.REMOTE_REQUEST
          • DisconnectReason.TIMEOUT
          • DisconnectReason.ACCESS_REJECTED
        • Event
          • Event.type
          • Event.data
        • EventType
          • EventType.START_BROADCAST
          • EventType.STOP_BROADCAST
          • EventType.START_SCAN
          • EventType.STOP_SCAN
          • EventType.BROADCAST_RECEIVED
          • EventType.SEND_ACCESS_REQUEST
          • EventType.ACCESS_RESPONSE_RECEIVED
          • EventType.ACCESS_REQUEST_RECEIVED
          • EventType.SIGNALING_RECEIVED
          • EventType.SIGNALING_SEND
          • EventType.START_PAIRING
          • EventType.PAIRING_COMPLETE
          • EventType.PAIRING_FAILED
          • EventType.DISCONNECT_REQUEST
          • EventType.DISCONNECT_RECEIVED
          • EventType.SUPERVISION_TIMEOUT
          • EventType.SLEEP_REQUEST
          • EventType.WAKE_REQUEST
          • EventType.WAKE_RECEIVED
        • InvalidState
        • InvalidTransition
        • LinkManager
          • LinkManager.state
          • LinkManager.role
          • LinkManager.params
          • LinkManager.callback
          • LinkManager.peer_address
          • LinkManager.local_address
          • LinkManager.process_event()
          • LinkManager.reset()
          • LinkManager.is_connected
          • LinkManager.is_dormant
          • LinkManager.event_log
          • LinkManager.send_signaling()
          • LinkManager.update_params()
          • LinkManager.switch_role()
          • LinkManager.check_supervision_timeout()
          • LinkManager.request_feature_exchange()
          • LinkManager.respond_feature_exchange()
          • LinkManager.request_version_exchange()
          • LinkManager.request_data_length_update()
          • LinkManager.respond_data_length_update()
          • LinkManager.configure_channel_report()
          • LinkManager.update_hop_table()
          • LinkManager.update_hop_map()
          • LinkManager.request_min_channels()
          • LinkManager.request_crc_switch()
          • LinkManager.indicate_crc_switch()
          • LinkManager.request_phy_update()
          • LinkManager.indicate_phy_update()
          • LinkManager.request_role_switch()
          • LinkManager.execute_role_switch()
          • LinkManager.send_ping()
          • LinkManager.respond_ping()
          • LinkManager.request_disconnect()
          • LinkManager.request_async_param_update()
          • LinkManager.respond_async_param_update()
          • LinkManager.request_isochronous_link_setup()
          • LinkManager.request_isochronous_param_exchange()
          • LinkManager.respond_isochronous_param_exchange()
          • LinkManager.request_isochronous_param_update()
          • LinkManager.indicate_isochronous_param_update()
          • LinkManager.indicate_broadcast_link_setup()
          • LinkManager.indicate_broadcast_link_param_update()
          • LinkManager.update_broadcast_hop_map()
          • LinkManager.indicate_broadcast_link_disconnect()
          • LinkManager.request_smf_param_update()
          • LinkManager.indicate_smf_param_update()
          • LinkManager.request_smf_timeslot_update()
          • LinkManager.respond_smf_timeslot_update()
          • LinkManager.terminate_smf_signaling()
          • LinkManager.indicate_async_multicast_link_setup()
          • LinkManager.request_async_multicast_param_exchange()
          • LinkManager.respond_async_multicast_param_exchange()
          • LinkManager.request_async_multicast_param_update()
          • LinkManager.indicate_async_multicast_param_update()
          • LinkManager.indicate_async_multicast_reconfig()
          • LinkManager.disconnect_multicast()
          • LinkManager.request_narrowband_meas_cap()
          • LinkManager.respond_narrowband_meas_cap()
          • LinkManager.config_narrowband_meas()
          • LinkManager.report_narrowband_meas()
          • LinkManager.action_narrowband_meas()
          • LinkManager.request_coordinate()
          • LinkManager.report_coordinate()
          • LinkManager.config_coordinate()
          • LinkManager.request_narrowband_delay()
          • LinkManager.respond_narrowband_delay()
          • LinkManager.request_uwb_meas_cap()
          • LinkManager.respond_uwb_meas_cap()
          • LinkManager.config_uwb_meas()
          • LinkManager.feedback_uwb_meas_config()
          • LinkManager.report_uwb_meas()
          • LinkManager.action_uwb_meas()
          • LinkManager.request_uwb_sensing_cap()
          • LinkManager.respond_uwb_sensing_cap()
          • LinkManager.config_uwb_sensing()
          • LinkManager.feedback_uwb_sensing_config()
          • LinkManager.report_uwb_sensing()
          • LinkManager.action_uwb_sensing()
          • LinkManager.request_uwb_sensing_process()
          • LinkManager.feedback_uwb_sensing_process()
          • LinkManager.request_uwb_proxy_sensing()
          • LinkManager.feedback_uwb_proxy_sensing()
          • LinkManager.request_narrowband_sensing()
          • LinkManager.feedback_narrowband_sensing()
          • LinkManager.request_narrowband_sensing_cap()
          • LinkManager.respond_narrowband_sensing_cap()
          • LinkManager.config_narrowband_sensing()
          • LinkManager.feedback_narrowband_sensing_config()
          • LinkManager.report_narrowband_sensing()
          • LinkManager.action_narrowband_sensing()
          • LinkManager.request_narrowband_proxy_sensing()
          • LinkManager.feedback_narrowband_proxy_sensing()
          • LinkManager.request_narrowband_meas_config_update()
          • LinkManager.indicate_narrowband_meas_config_update()
          • LinkManager.reserve_resource()
          • LinkManager.terminate_resource_reservation()
        • LinkManagerCallback
          • LinkManagerCallback.on_state_changed()
          • LinkManagerCallback.on_broadcast_frame()
          • LinkManagerCallback.on_access_accepted()
          • LinkManagerCallback.on_access_rejected()
          • LinkManagerCallback.on_signaling()
          • LinkManagerCallback.on_disconnected()
          • LinkManagerCallback.on_dormant()
          • LinkManagerCallback.on_wakeup()
        • LinkParams
          • LinkParams.tx_rx_interval
          • LinkParams.tx_max_octets
          • LinkParams.rx_max_octets
          • LinkParams.channel_table
          • LinkParams.frame_type
          • LinkParams.bandwidth
          • LinkParams.crc_type
          • LinkParams.supervision_timeout
        • LinkState
          • LinkState.IDLE
          • LinkState.BROADCASTING
          • LinkState.SCANNING
          • LinkState.ACCESSING
          • LinkState.CONNECTED
          • LinkState.PAIRING
          • LinkState.DORMANT
          • LinkState.DISCONNECTED
        • Role
          • Role.NONE
          • Role.G_NODE
          • Role.T_NODE