# 模块参考:命令

# 更新

资料来源 systemcmds/bl_update (打开新窗口)

从文件闪存启动加载程序的实用程序

# 使用方法

bl_update [arguments...] setopt 设置选项位以解锁 FLASH(仅在锁定状态下需要) <file> 引导加载程序 bin 文件

# 转储文件

资料来源 systemcmds/dumpfile (打开新窗口)

转储文件实用程序。以二进制模式(不要用 CR LF 代替 LF)将文件大小和内容打印到 stdout。

# 使用方法

dumpfile [arguments...] <file> 要转储的文件

# 动态

资料来源 systemcmds/dyn (打开新窗口)

# 说明

加载并运行未编译到 PX4 二进制文件中的动态 PX4 模块。

# 示例

dyn ./hello.px4mod start

# 使用方法

dyn [arguments...] <file> 包含模块的文件 [arguments...] 模块的参数

# 闰年

资料来源 systemcmds/esc_calib (打开新窗口)

电调校准工具

校准程序(运行该命令将引导您完成校准):

  • 拆下道具,关闭电调电源
  • 停止姿态和速率控制器:mc_rate_control stop、fw_att_control stop
  • 确保安全系统关闭
  • 运行此命令

# 使用方法

esc_calib [arguments...] [-d <val>] 选择 PWM 输出设备值:<file:dev>,默认:/dev/pwm_output0 [-l <val>] PWM 低值(以 us 为单位),默认值:1000 [-h <val>] PWM 高值(以 us 为单位),默认值:2000 [-c <val>] 选择通道形式:1234 (每个通道 1 位数字,1=第一位) [-m <val>] 通过位掩码选择通道(例如 0xF,3) [-a] 选择所有通道

# 失败

资料来源 systemcmds/failure (打开新窗口)

# 说明

将故障注入系统。

# 实施情况

该系统指令通过 uORB 发送载具指令以触发故障。

# 实例

通过停止 GPS 测试 GPS 防故障保护:

故障 GPS 关闭

# 使用方法

失败 [参数...] 帮助 显示此帮助文本 gps|...指定组件 ok|off|...指定故障类型 [-i <val>] 传感器实例(0=全部) 默认值:0

# gpio

资料来源 systemcmds/gpio (打开新窗口)

# 说明

该命令用于读写 GPIO

gpio 读 <PORT><PIN>/<DEVICE> [PULLDOWN|PULLUP] [--force] gpio 写 <PORT><PIN>/<DEVICE> <VALUE> [PUSHPULL|OPENDRAIN] [--force] gpio 读 <PORT><PIN>/<DEVICE> <VALUE> [PUSHPULL|OPENDRAIN] [--force

# 实例

读取配置为上拉的端口 H 引脚 4 的值,该值为高电平

gpio 读 H4 PULLUP

1 OK

将端口 E 第 7 针的输出值设置为高电平

gpio write E7 1 --force

将设备 /dev/gpin1 上的输出值设置为高电平

gpio 写 /dev/gpin1 1

# 使用方法

gpio [arguments...读 <PORT><PIN>/<DEVICE> GPIO 端口和引脚或设备 [PULLDOWN|PULLUP] 下拉/上拉 [--force] 强制(忽略板上的 gpio 列表) 写 <PORT><PIN> GPIO 端口和引脚 <VALUE> 要写入的值 [PUSHPULL|OPENDRAIN] 下拉/上拉 [--force] 强制(忽略板上的 gpio 列表)

# 硬故障日志

资料来源 systemcmds/hardfault_log (打开新窗口)

硬故障实用程序

在启动脚本中用于处理硬故障

# 使用方法

hardfault_log <command> [arguments...] 命令: check 检查是否有未提交的硬故障 rearm 删除未提交的硬故障 fault 生成硬故障(此命令会导致系统崩溃:) [0|1] 硬故障类型:0= 除以 0,1= 断言(默认值=0) commit 将未提交的硬故障写入 /fs/microsd/fault_%i.txt(并重新上膛,但不重置) count 读取重启计数器,计算未提交的硬故障的重启次数(作为程序的退出代码返回) reset 重置重启计数器

# i2cdetect

资料来源 systemcmds/i2cdetect (打开新窗口)

扫描特定总线上 I2C 设备的实用程序。

# 使用方法

i2cdetect [arguments...] [-b <val>] I2C 总线默认值:1

# led_control

资料来源 systemcmds/led_control (打开新窗口)

# 说明

控制 & 的命令行工具;测试(外部)LED。

要使用它,必须确保有一个处理 led_control uorb 主题的驱动程序在运行。

LED 有不同的优先级,例如,一个模块可以低优先级设置一种颜色,另一个模块可以高优先级闪烁 N 次,闪烁后 LED 自动回到低优先级状态。优先级 重置 命令也可用于返回较低的优先级。

# 实例

第一个 LED 蓝色闪烁 5 次:

led_control 闪烁 -c 蓝色 -l 0 -n 5

# 使用方法

led_control <command> [arguments...命令: test 运行测试模式 on 打开 LED off 关闭 LED reset 重置 LED 优先级 blink 闪烁 LED N 次 [-n <val>] 闪烁次数默认值:3 [-s <val>] 设置闪烁速度值:快速|正常|慢速,默认值:正常 breathe 持续淡入淡出闪烁两次快速闪烁,然后熄灭,频率为 1Hz 除 "test "外,以下参数适用于上述所有命令:[-c <val>] 颜色值:红色|蓝色|绿色|黄色|紫色|琥珀色|青色|白色,默认值:白色 [-l <val>] 控制哪个 LED:0、1、2......(默认值=全部) [-p <val>] 优先级 默认值:2

# 听众

资料来源 systemcmds/topic_listener (打开新窗口)

监听 uORB 主题并将数据打印到控制台的实用程序。

可随时按 Ctrl+C、Esc 或 Q 键退出监听器。

# 使用方法

listener <command> [arguments...] 命令: <topic_name> uORB 主题名称 [-i <val>] 主题实例 默认值: 0 [-n <val>] 消息数量 默认值: 1 [-r <val>] 订阅率(如果为 0 则无限制) 默认值: 0

# mfd

资料来源 systemcmds/mft (打开新窗口)

实用程序与清单互动

# 使用方法

mfd <command> [arguments...] 命令: 查询 如果不存在,则返回 true

# 混频器

资料来源 systemcmds/mixer (打开新窗口)

# 说明

向 ESC 驱动程序加载或添加混音器文件。

请注意,驱动程序必须支持所使用的 ioctl,NuttX 就是这种情况,但例如 RPi 就不支持。

# 使用方法

mixer <command> [arguments...] 命令: load <file:dev> <file> 输出设备(例如 /dev/pwm_output0)和混音器文件 append <file:dev> <file> 输出设备(例如 /dev/pwm_output0)和混音器文件

# 坡道

资料来源 systemcmds/motor_ramp (打开新窗口)

# 说明

应用于测试电机升速。

启动前,确保停止任何正在运行的姿态控制器:

mc_rate_control 停止 fw_att_control 停止

启动时,会启动一个后台任务,运行几秒钟(按指定时间),然后退出。

# 示例

motor_ramp sine -a 1100 -r 0.5

# 使用方法

motor_ramp [arguments...] ramp|sine|square mode [-d <val>] Pwm 输出设备默认值:/dev/pwm_output0 -a <val> 以 usec 为单位选择最小 pwm 占空比 [-b <val>] 以 usec 为单位选择最大 pwm 占空比,默认值: 2000 [-r <val>] 以秒为单位选择电机斜坡持续时间,默认值: 1.0 警告:电机将斜坡上升到全速!

# 电机测试

资料来源 systemcmds/motor_test (打开新窗口)

测试电机的实用程序。

警告:使用此命令前请移除所有道具。

# 使用方法

motor_test <command> [arguments...] 命令: test 将电机设置为特定输出值 [-m <val>] 要测试的电机(1...8,未指定时为全部) [-p <val>] 功率(0...100) 默认值: 0 [-t <val>] 超时,以秒为单位(默认值=无超时) 默认值: 0 [-i <val>] 驱动器实例 默认值: 0 stop 停止所有电机 iterate 迭代所有电机,逐个启动和停止

# mtd

资料来源 systemcmds/mtd (打开新窗口)

安装和测试分区的实用程序(基于电路板定义的 FRAM/EEPROM 存储空间)

# 使用方法

mtd <命令> [参数...] 命令: status 打印状态信息 readtest 执行读取测试 rwtest 执行读写测试 erase 擦除分区 命令 "readtest "和 "rwtest "有一个可选的实例索引:-i<val>]存储索引(如果电路板有多个存储空间) 默认值:0 "readtest"、"rwtest "和 "erase "命令有一个可选参数: [<partition_name1> [<partition_name2> ...]] 分区名称(例如//partition_name1> [<partition_name2> ...])。分区名称(如 /fs/mtd_params),如果未提供,则使用系统默认值

# nshterm

资料来源 systemcmds/nshterm (打开新窗口)

在指定端口上启动 NSH shell。

以前,它用于在 USB 串口上启动 shell。现在有了 mavlink,就可以在 mavlink 上使用 shell 了。

# 使用方法

nshterm [arguments...] <file:dev> 启动 shell 的设备(例如 /dev/ttyACM0)

# 停止

资料来源 systemcmds/param (打开新窗口)

# 说明

通过 shell 或脚本访问和操作参数的命令。

例如在启动脚本中用于设置机身特定参数。

参数更改后会自动保存,例如使用 参数集.它们通常存储在 FRAM 或 SD 卡中。 参数选择 可用于更改后续保存的存储位置(每次启动时都需要(重新)配置)。

如果启用了基于 FLASH 的后端(在编译时启用,如 Intel Aero 或 Omnibus)、 参数选择 不起作用,默认情况下始终使用 FLASH 后端。但是 参数 save/load <file>; 仍可用于写入/读取文件。

每个参数都有一个 "已用 "标志,在启动过程中读取时会设置该标志。它只用于向地面控制站显示相关参数。

# 实例

更改机身并确保已加载机身的默认参数:

参数设置 SYS_AUTOSTART 4001 参数设置 SYS_AUTOCONFIG 1 重新启动

# 使用方法

param <command> [arguments...] 命令:load 从文件加载参数(覆盖所有参数) [<file>] 文件名(如果未给出,则使用默认值) import 从文件导入参数 [<file>] 文件名(如果未给出,则使用默认值) save 将参数保存到文件 [<file>] 文件名(如果未给出,则使用默认值) select 选择默认文件 [<file>;显示参数值 [-a] 显示所有参数(不仅仅是使用过的参数) [-c] 仅显示更改过的参数(也包括未使用过的参数) [-q] 静音模式,仅打印参数值(名称必须准确) [<filter>] 根据参数名称进行过滤(允许在末尾使用通配符,例如sys_*) show-for-airframe 显示已更改的机身参数 config status 打印参数状态 system set 将参数设置为一个值 <param_name> <value> 参数名称和要设置的值 [fail] 如果提供,如果找不到参数,则命令失败 set-default 将参数默认设置为一个值 <param_name> <value> 参数名称和要设置的值 [fail] 如果提供,如果找不到参数,则命令失败 compare 比较一个参数和一个值。如果相等,则命令成功 [-s] 如果提供,则在参数不存在时无声出错 <param_name> <value> 要比较的参数名和值 greater 比较参数和值。如果参数大于值,命令将成功执行 [-s] 如果提供,如果参数不存在,将出现无声错误 <param_name> <value> 要比较的参数名和值 <param_name> <value> 要比较的参数名和值 touch 将参数标记为已使用 [<param_name1> [<param_name2>]] 参数名(一个或多个参数名称(一个或多个) reset 仅将指定的参数重置为默认值 [<param1> [<param2>]] 重置的参数名称(一个或多个要重置的参数名(允许在末尾使用通配符) reset_all 将所有参数重置为默认值 [<exclude1> [<exclude2>]] 不重置匹配的参数(允许在末尾使用通配符)。不重置匹配的参数(允许使用末尾的通配符 index 显示给定索引的参数 <index> 索引:整数 >= 0 index_used 显示给定索引的已用参数 <index> 索引:整数 >= 0 find 显示参数的索引 <param> 参数名

# 敷衍

资料来源 systemcmds/perf (打开新窗口)

打印性能计数器的工具

# 使用方法

reset 重置所有计数器 latency 打印 HRT 定时器延迟直方图 如果未给出参数,则打印所有性能计数器

# pwm

资料来源 systemcmds/pwm (打开新窗口)

# 说明

该命令用于配置用于伺服和电调控制的 PWM 输出。

默认设备 /dev/pwm_output0 是主通道,辅助通道在 /dev/pwm_output1 (-d 参数)。

它用于启动脚本,以确保 PWM 参数 (PWM_*)(或机身配置提供的参数(如有指定))。 pwm 状态 显示当前设置(微调值是一个偏移量,用 PWM_MAIN_TRIMxPWM_AUX_TRIMx).

解除值应设置为电机不转(也用于熄火开关),最小值为电机应转。

通道被分配到一个组中。由于硬件限制,更新率只能按组设置。使用方法 pwm 状态 来显示组。如果 -c 参数,则必须包含任何包含组的所有通道。

参数 -p-r 可以设置为一个参数,而不是指定一个整数:例如使用 -p p:PWM_MIN。

请注意,在 OneShot 模式下,PWM 范围 [1000, 2000] 会自动映射为 [125, 250]。

# 实例

将所有通道的 PWM 频率设为 400 Hz:

pwm 速率 -a -r 400

测试通道 1 和 3 的输出,并将 PWM 值设置为 1200 us:

pwm arm pwm test -c 13 -p 1200

# 使用方法

pwm <命令> [参数...] 命令: arm Arm 输出 解除警报 Disarm 输出状态 打印所有通道的当前配置 forcefail 强制故障安全模式。将 PWM 输出设置为故障安全值。 on|off 打开或关闭 terminatefail 启用终止故障安全模式。尽管如此,发生的任何故障安全都将无法恢复(即使满足恢复条件)。on|off 打开或关闭速率 配置 PWM 速率 -r <val>;以 Hz 为单位的 PWM 速率(0 = Oneshot,否则为 50 至 400Hz) oneshot 配置 Oneshot125(速率设为 0) failsafe 设置 Failsafe PWM 值 disarmed 设置 Disarmed PWM 值 min 设置最小 PWM 值 max 设置最大 PWM 值 test 设置输出为特定值,直到按下 'q' 或 'c' 或 'ctrl-c' 步骤 从 0 到 100% 运行 5 个步骤 'failsafe'、'disarmed'、'min'、'max' 和 'test' 命令需要一个 PWM 值:-p <val> PWM 值(例如: 11001100)此外,"rate"、"oneshot"、"failsafe"、"disarmed"、"min"、"max"、"test "和 "steps "命令还需要使用以下命令之一指定通道:[-c <val>]以下列形式选择通道:1234 (每个通道 1 位数字,1=第一位) [-m <val>] 通过位掩码选择通道(例如 0xF,3) [-g <val>] 通过组选择通道(例如 0、1、2,使用 "pwm status "显示组) [-a] 选择所有通道 这些参数适用于所有命令:[-d <val>] 选择 PWM 输出设备值:<file:dev>,默认值:/dev/pwm_output0 [-v] 冗余输出 [-e] 出错时以 1 而不是 0 退出

# 重新启动

资料来源 systemcmds/reboot (打开新窗口)

重启系统

# 使用方法

重启 [参数...] [-b] 重启到引导加载程序 [lock|unlock] 获取/释放关机锁(用于测试)

# sd_bench

资料来源 systemcmds/sd_bench (打开新窗口)

测试 SD 卡的速度

# 使用方法

sd_bench [arguments...] [-b <val>] 每次读/写的块大小 默认值:4096 [-r <val>] 运行次数 默认值:5 [-d <val>] 以毫秒为单位的运行时间 默认值:2000 [-s] 在每个块后调用 fsync(默认值=每次运行结束时) [-u] 测试未对齐数据的性能) [-s] 在每个块后调用 fsync(默认值=每次运行结束时

# 系统时间

资料来源 systemcmds/system_time (打开新窗口)

# 说明

命令行工具,用于设置和获取系统时间。

# 实例

设置系统时间并回读

system_time set 1600775044 system_time get

# 使用方法

system_time <命令> [参数...] 命令: set 设置系统时间,以 unix epoch 时间格式提供时间 get 获取系统时间

# 顶级

资料来源 systemcmds/top (打开新窗口)

监控运行中的进程及其 CPU、堆栈使用率、优先级和状态

# 使用方法

置顶 [参数...] 一次 仅打印加载一次

# usb_connected

资料来源 systemcmds/usb_connected (打开新窗口)

用于检查 USB 是否已连接的实用程序。以前用于启动脚本。返回值为 0 表示 USB 已连接,否则为 1。

# 使用方法

usb_connected [参数...]

# ......验证

资料来源 systemcmds/ver (打开新窗口)

打印各种版本信息的工具

# 使用方法

ver <command> [arguments...] 命令: hw 硬件架构 mcu MCU 信息 git git 版本信息 bdate 生成日期和时间 gcc 编译器信息 bdate 生成日期和时间 px4guid PX4 GUID uri 生成 URI all 打印所有版本 hwcmp 比较硬件版本(匹配时返回 0) <hw> [<hw2>] 要与之比较的硬件(例如 PX4_FMU_V4)。如果指定多个,则使用 OR 比较 hwtypecmp 比较硬件类型(匹配时返回 0) <hwtype> [<hwtype2>] 要与之比较的硬件类型(例如 V2)。如果指定多个,则使用 OR 比较