概述
这次是开关状态任务Swtich_State_Task(1)
首先,仍然不知道这是啥
然后,开始看程序。。。
switchs.baro_on = 1;
命名带baro,通常是气压的意思,这里是气压开关打开?表示一个状态应该是
然后一个超大的if括号:
if(sens_hd_check.of_ok || sens_hd_check.of_df_ok)
{
of是光流、of_df可能是光流解耦合?如果两个有一个好了,那么进入if的执行程序。
if(sens_hd_check.of_ok)
{
of_qua_condition = OF_QUALITY;
of_alt_condition = (u16)OF_ALT;
}
else //sens_hd_check.of_df_ok
{
of_qua_condition = of_rdf.quality;
of_alt_condition = Laser_height_cm;
}
of_qua_condition (光流质量)和of_alt_condition(光流高度)是啥,没看懂。。。。
如果of好了,那么把这两个变量赋值,如果of没好,那肯定of_df好了,就赋其他值,没看懂。。
if(of_qua_condition>50 )
{
if(of_quality_delay<1000)
{
of_quality_delay += dT_ms;
}
else
{
of_quality_ok = 1;
}
}
else
{
of_quality_delay =0;
of_quality_ok = 0;
}
如果光流质量大于50,那么等待,1000ms后,认为可用,of_quality_ok 。否则不可用,of_quality_ok =0;
if(of_alt_condition<600)
{
of_tof_on_tmp = 1;
if(of_alt_delay<2000)
{
of_alt_delay += dT_ms;
of_alt_ok = 1;
}
}
else
{
of_tof_on_tmp = 0;
if(of_alt_delay>0)
{
of_alt_delay -= dT_ms;
of_alt_ok = 0;
}
}
如果光流高度小于600cm,认为可用,持续2000ms,具体跟上面有点不一样,不知道为啥,反正就of_alt_ok 有效就完了。。。
if(flag.flight_mode == LOC_HOLD)
{
if(of_alt_ok && of_quality_ok)
{
switchs.of_flow_on = 1;
}
else
{
switchs.of_flow_on = 0;
}
}
else
{
of_tof_on_tmp = 0;
switchs.of_flow_on = 0;
}
如果flag.flight_mode等于loc_hold,也就是位置固定,那么两个都ok,开关switchs.of_flow_on就会打开,如果有不ok的,就不打开。
如果flag.flight_mode不等于loc_hold,即此时不是定位状态,那么全0就完了。。
switchs.of_tof_on = of_tof_on_tmp;
这个of_tof_是啥模块没看懂。。再说
}
else
{
switchs.of_flow_on = switchs.of_tof_on = 0;
}
接最开始的大if,如果都不ok,直接置零
if(sens_hd_check.tof_ok)
{
if(0)//(Laser_height_mm<1900)
{
switchs.tof_on = 1;
}
else
{
switchs.tof_on = 0;
}
}
else
{
switchs.tof_on = 0;
}
激光模块,看样子是阉割了。。。
gps也没了,开心
if(uwb_data.online && flag.flight_mode == LOC_HOLD)
{
switchs.uwb_on = 1;
}
else
{
switchs.uwb_on = 0;
}
uwb,查了查是定位的,估计用不上。。。
//OPMV
if(opmv.offline==0 && flag.flight_mode == LOC_HOLD)
{
switchs.opmv_on = 1;
}
else
{
switchs.opmv_on = 0;
}
openmv,一样,没了。。
总结一下,这段代码应该是通过检测硬件情况来设置硬件开关,如果成功检测到并符合要求,开关打开,否则断开。。。
最后
以上就是坚定紫菜为你收集整理的匿名无人机飞控代码整理2的全部内容,希望文章能够帮你解决匿名无人机飞控代码整理2所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复