ArduPilot开源代码之AP_DAL_Airspeed
1. 源由
AP_DAL_Airspeed
是用于管理和监控多个空速传感器的状态和数据,提供了一系列方法来获取和操作传感器的健康状态、使用状态、空速数据和更新时间。
2. 框架设计
2.1 构造函数和成员变量
- 类中定义了
_RASH
和_RASI
成员变量,分别是log_RASH
和log_RASI
结构体的实例。 //Replay Air Speed Head _RASI
是一个数组,其大小为AIRSPEED_MAX_SENSORS
,用于存储多个传感器的空速数据。//Replay Air Speed Instance
2.2 成员函数
healthy(uint8_t i)
和healthy()
:用于检查指定或主要传感器的健康状态。use(uint8_t i)
和use()
:用于检查指定或主要传感器是否启用。get_airspeed(uint8_t i)
和get_airspeed()
:返回指定或主要传感器的当前空速(单位是米每秒)。last_update_ms(uint8_t i)
和last_update_ms()
:返回指定或主要传感器的最后更新时间(毫秒)。get_num_sensors()
:返回传感器的数量。get_primary()
:返回当前主要传感器的索引。
2.3 其他方法
start_frame()
:可能是一个未提供实现的方法,用于开始一个帧或处理数据的初始操作。handle_message(const log_RASH &msg)
和handle_message(const log_RASI &msg)
:用于处理传感器状态和数据更新的消息。
2.4 结构体 log_RASH
和 log_RASI
- 这些结构体可能定义了传感器状态和数据的存储格式,但在提供的代码中没有具体展示其定义。
3. 重要例程
3.1 应用函数
3.1.1 healthy
获取指定 或 主 空速传感器实例健康状态
bool healthy(uint8_t i) const {
return _RASI[i].healthy;
}
bool healthy() const {
return healthy(get_primary());
}
3.1.2 use
获取指定 或 主 空速传感器实例使能状态
bool use(uint8_t i) const {
return _RASI[i].use;
}
bool use() const {