GCS类
- chan_parameters 定义了针对每一个接口的接口参数。
- _chan,是一个 GCS_MAVLINK 类生成的指针数组对象,
MAVLINK_COMM_NUM_BUFFERS
定义为5个,指示 Mavlink 最多只能有 5 个接口。
void AP_Vehicle::setup()
Sub::init_ardupilot()
Setup 中的 setup_console()
find_serial()功能概述:在可用的串行端口搜索允许给定协议的第一个实例(instance),如果搜索的是协议的第一个实例,那么实例(instance)应该为0,第二个为1,以此类推。成功则返回串口设备。
init_ardupilot 中 setup_uarts
前面解释的setup_console()函数类似,这边实现的是对剩下4个类接口的注册及初始化工作。
mavlink_delay_cb()
hal.scheduler->register_delay_callback(mavlink_delay_cb_static, 5)
注册mavlink服务回调。 这将在对hal.scheduler-> delay
的调用中剩余超过5毫秒的任何时间运行。这个函数将调用sub.mavlink_delay_cb();
对于这个函数,官方的解释是处理MAVLink数据包的delay()回调。 我们在长时间运行的库初始化例程中将其设置为回调,以允许MAVLink在等待初始化完成的同时处理数据包。函数实现如下:
注意到每次以ms为单位获取tnow时间,并且以1Hz频率(1s时间)通过APM固件中的“地面站”向实际电脑地面站发送心跳包和系统状态包,MSG_HEARTBEAT和MSG_SYS_STATUS表示id号,分别为1和3。按50hz频率进行发送和接收的更新。每5s发送一次信息。这里面调用的函数内容有点多,后面找机会另写一篇研究一下,这次就先到这吧。