模块参考:通信
frsky_telemetry
资料来源 drivers/telemetry/frsky_telemetry
支持 FrSky 遥测技术。自动检测 D 或 S.PORT 协议。
使用方法
frsky_telemetry <命令> [参数...]
命令
启动
[-d <val>] 选择串行设备
值:<file:dev>,默认值:/dev/ttyS6
[-t <val>] 扫描超时 [s] (默认:无超时)
默认值:0
[-m <val>] 选择协议(默认:自动检测)
值:sport|sport_single|sport_single_invert|dtype,默认值:
汽车
停止
地位
多点连接
资料来源 模块/mavlink
说明
该模块实现了 MAVLink 协议,可用于串行链路或 UDP 网络连接。它通过 uORB 与系统通信:一些信息直接在模块中处理(如任务协议),另一些则通过 uORB 发布(如 vehicle_command)。
数据流用于以特定速率发送周期性信息,例如飞行器姿态。启动 mavlink 实例时,可以指定一种模式,该模式定义了一组启用的流及其速率。对于运行中的实例,可通过以下方式配置流 mavlink 流
指挥。
模块可以有多个独立实例,每个实例连接一个串行设备或网络端口。
实施情况
实现过程使用 2 个线程,一个发送线程和一个接收线程。发送线程以固定速率运行,并在综合带宽高于配置速率时动态降低数据流的速率("......")。-r
) 或物理链路达到饱和。可以使用 mavlink 状态
看看是否 倍率
小于 1。
小心在此情况下,需要注意的是:有些数据是通过两个线程访问和修改的,因此在修改代码或扩展功能时,需要考虑到这一点,以避免出现竞赛条件和数据损坏。
实例
在 ttyS1 串口上启动 mavlink,波特率为 921600,最大发送速率为 80kB/s:
mavlink start -d /dev/ttyS1 -b 921600 -m onboard -r 80000
启动 UDP 端口 14556 上的 mavlink,并启用 50Hz 的 HIGHRES_IMU 信息:
mavlink start -u 14556 -r 1000000
mavlink stream -u 14556 -s HIGHRES_IMU -r 50
使用方法
mavlink <命令> [参数...]
命令
启动新实例
[-d <val>] 选择串行设备
值:<file:dev>,默认值:/dev/ttyS1
[-b <val>] 波特率(也可以是 p:<参数名>)。
默认值:57600
[以 B/s 为单位的最大发送数据速率(如果为 0,则使用波特率 / 20)。
默认值:0
[-p] 启用广播
[-u <val>] 选择 UDP 网络端口(本地)
默认值:14556
[-o <val>] 选择 UDP 网络端口(远程)
默认值:14550
[-t <val>] 合作伙伴 IP(可通过 -p 标志启用广播功能)
默认值:127.0.0.1
[-m <val>] 模式:设置默认数据流和速率
值:自定义|相机|板载|OSD|魔法|配置|铱|最小值
extvision|extvisionmin|gimbal|uavionix,默认:正常
[-n <val>] wifi/以太网接口名称
值: <接口名称>;
[-c <值>] 多播地址(可通过以下方式启用多播功能
MAV_{i}_BROADCAST 参数)
值:多播地址范围
[239.0.0.0,239.255.255.255]
[-F <val>] 设置铱模式的传输频率
默认值:0.0
[-f] 将信息转发至其他 Mavlink 实例
[-w] 等待发送,直到收到第一条信息
[-x] 启用 FTP
[-z] 强制始终开启硬件流量控制
[-Z] 强制始终关闭硬件流量控制
stop-all 停止所有实例
停止正在运行的实例
[-u <val>] 通过本地网络端口选择 Mavlink 实例
[-d <val>]通过串行设备选择 Mavlink 实例
值:<file:dev>;
状态 打印所有实例的状态
[流] 打印所有启用的流
为运行中的实例配置数据流的发送速率
[-u <val>] 通过本地网络端口选择 Mavlink 实例
[-d <val>]通过串行设备选择 Mavlink 实例
值:<file:dev>;
-s <val> 要配置的 Mavlink 数据流
-r <val> 以 Hz 为单位的速率(0 = 关闭,-1 = 设置为默认值)
boot_complete 启用信息发送。(必须)作为
启动脚本。
uorb
资料来源 systemcmds/uorb
说明
uORB 是内部的发布-子消息系统,用于模块之间的通信。
实施情况
其实现是异步和无锁的,即发布者不等待订阅者,反之亦然。这是通过在发布者和订阅者之间设置一个单独的缓冲区来实现的。
代码经过优化,以尽量减少内存占用和信息交换延迟。
信息在 /msg
目录。它们会在构建时转换成 C/C++ 代码。
如果使用 ORB_USE_PUBLISHER_RULES 进行编译,则可使用包含 uORB 发布规则的文件来配置允许哪些模块发布哪些主题。这用于全系统范围的重放。
实例
监测主题输出频率。此外 顶级
,这是检查一般系统的重要命令:
顶部
使用方法
uorb <命令> [参数...]
命令
状态 打印主题统计数据
最高监测主题输出频率
[-a] 打印所有主题,而不是只打印当前发布的主题。
用户
[-1] 只运行一次,然后退出
要匹配的 [<filter1> [<filter2>] 主题(隐含 -a