解码 LUA 绑定描述¶
这并不详尽,也不完整,只是试图帮助用户解码那些尚未在 Lua 脚本 page.
别名¶
大多数方法都定义了一个别名来指定其绑定组。例如,从 AP_AHRS 库绑定的调用,其组中的描述行将其别名定义为 "ahrs":
单身 AP_AHRS 别称 小时
这样就可以使用其调用来检索当前卷:
滚动 = 小时:get_roll()
方法¶
大多数绑定都是用于将信息输入和输出运行中的 ArduPilot 固件的方法。在 bindings.desc 文件列出了这些方法,每个方法都按其与底层 ArduPilot 代码模块的 "*.h "头文件的关联进行分组。方法的形式通常为
单例 <绑定组名称> 方法 <方法名称> <函数类型> <参数类型/范围>;
方法名称<是要调用的函数名称
<函数类型> 被调用的 C++ 函数类型。
<参数类型/范围> 返回的变量类型,或用作被调用 C++ 函数的输入的变量类型和范围。了解这些信息的最佳方法是在被调用的代码中引用 C++ 函数,并将它们与函数的参数关联起来。
实例¶
要描述上述内容,最简单的方法或许就是按照论证的复杂程度依次举出一些例子:
在 AP_Arming 组中:¶
单身 AP_Arming 方法 is_armed 布尔
绑定 AP_Arming.h 中的公有变量:
bool is_armed();
返回 a 布尔 对于 上膛
在 AP_Baro 小组中:¶
单身 AP_Baro 方法 获取温度 浮动
绑定到 AP_Baro.h 中的函数:
浮动 获取温度(空白) 缢 { 返回 获取温度(_主要); }
返回 a 浮动 的 的 巴罗 温度 对于 初级 气压表
在 AP_Relay 组中:¶
单身 AP_Relay 方法 关于 空白 uint8_t 0 ap_relay_num_relays
绑定到 AP_Relay.h 中的函数:
空白 关于(uint8_t 实例) { 设置(实例, 真); }
返回 什么, 但 设置 继电器 实例 关于, 其中 实例
是 一个 无符号 8 马衔 整数 之间 0 和 ap_relay_num_relays (目前 6)
单身 AP_Relay 方法 启用 布尔 uint8_t 0 ap_relay_num_relays
绑定到
bool 启用(uint8_t 实例) { 返回 实例 <; ap_relay_num_relays &&; _针[实例] != -1; }
返回 a 布尔 如果 的 接力 实例 只要 有 一直 设置
在 AP_AHRS 组中:¶
利用 LUA 变量可以有值或为 NULL(无值)的特点,举例说明:
单身 AP_AHRS 方法 get_variances 布尔 float'Null float'Null float'Null
Vector3f'Null float'Null
绑定到
// get_variances - 提供 的 创新 正化 使用 的 创新 差异 其中 a 价值 的 0
// 表明 完美 一致性 之间 的 测量 和 的 EKF 解决方案 和 a 价值 的 1 是 的 最大
// 误区 那 将 是 无争议 由 的 过滤
// 布尔 错误 是 返回 如果 差异 是 不 可用
虚拟 bool get_variances(浮动 及样品;velVar, 浮动 及样品;posVar, 浮动 及样品;hgtVar, 向量3f 及样品;magVar, 浮动 及样品;tasVar) 缢 {
返回 错误;
返回 复式 价值观, 任何 的 其中 会 是 NULL.
在 此 个案 的 C++ 功能 是 布尔, 但 因为 的 回报 有 '指定为空、
的 C++ 返回 的 a 布尔 是 被忽视 和 的 返回 价值观 会 有 NULL 价值.
备注 那 此 致电 回报 很多 价值观 (论点 是 变量 指针) 和 有 没有 输入
变量.
以便了解如何使用:
velVar, posVar,hgtVar,magVar, tasVar = 小时:get_variances()
如果 velVar 则
newVar=2*velVar
最后
请注意,velVar 的值可以是 0,而 如果
语句测试将在 LUA 脚本中为真。