首页 > 其他 > 详细

Mission Planner地面站中坐标是如何实时更新的

时间:2017-10-10 21:37:13      阅读:597      评论:0      收藏:0      [点我收藏+]

在 MainV2.comPort.MAV.cs. 中存放着飞控当前信息。把鼠标放到 cs 上会出现一个CurrentState类的简释。

在CurrentState.cs中有部分代码揭示了答案。

public float alt
        {
            get { return (_alt - altoffsethome)*multiplierdist; }
            set
            {
                // check update rate, and ensure time hasnt gone backwards                
                _alt = value;

                if ((datetime - lastalt).TotalSeconds >= 0.2 && oldalt != alt || lastalt > datetime)
                {
                    climbrate = (alt - oldalt)/(float) (datetime - lastalt).TotalSeconds;
                    verticalspeed = (alt - oldalt)/(float) (datetime - lastalt).TotalSeconds;
                    if (float.IsInfinity(_verticalspeed))
                        _verticalspeed = 0;
                    lastalt = datetime;
                    oldalt = alt;
                }
            }
        }

更直观的

 public void UpdateCurrentSettings(System.Windows.Forms.BindingSource bs, bool updatenow,
            MAVLinkInterface mavinterface, MAVState MAV)
        {
            lock (this)
            {
                if (DateTime.Now > lastupdate.AddMilliseconds(50) || updatenow) // 20 hz
                {
                    lastupdate = DateTime.Now;

……

也就是说,Mission Planner 是以时间偏差作为更新的标准的。

 

Mission Planner地面站中坐标是如何实时更新的

原文:http://www.cnblogs.com/-Yrqm/p/7647592.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!