请选择 进入手机版 | 继续访问电脑版
正在上传图片(0/1)

获取point的index错乱问题

 0
手机看帖 5 3523
先设置了两个point点执行到达指定高度命令后go home,之前用oneKeyFly启动飞机的,到达第一个point显示index为0,第二个为1,这是正常的;接着再执行第二遍同样的操作,结果在oneKeyFly执行后就显示index为1(不应该显示的,因为这里不是point),然后接着是0,再1,;再执行一次同样操作,就获取不到index值了,0个1都没有。我是用DJIGroundStation的setGroundStationMissionPushInfoCallBack方法获取index值的。
因为功能需要,要重复执行同样的操作(到达指定高度)后拍照,获取不到正确的index值就没在正确的point执行拍照了。
评论
上传
你需要登录之后才能回帖    登录 | 注册
iCanFly  Spark认证用户 2015-8-25 2#
如果你想获取到达航点的INDEX,建议参考官方DEMO中的这段代码(红色部分):

mGroundStationExecutionPushInfoCallBack = new DJIGroundStationExecutionPushInfoCallBack() {

                        @Override
                        public void onResult(DJIGroundStationExecutionPushInfo info) {
                                // TODO Auto-generated method stub
                                StringBuffer sb = new StringBuffer();
                                switch(info.eventType.value()) {
                                    case EXECUTION_STATUS_UPLOAD_FINISH : {
                                        sb.append("Execution Type : " + info.eventType.toString()).append("\n");
                                        sb.append("Validation : " + (info.isMissionValid ? "true" : "false")).append("\n");
                                        sb.append("Estimated run time : " + info.estimateRunTime).append("\n");
                                        break;
                                    }
                                    
                                    case EXECUTION_STATUS_FINISH : {
                                        sb.append("Execution Type : " + info.eventType.toString()).append("\n");
                                        sb.append("Repeat : " + Integer.toString(info.isRepeat)).append("\n");
//                                        sb.append("Reserve: " + GroundStationWayPointExecutionState.find(info.reserved).toString()).append("\n");
                        break;
                    }
                                    
                                    case EXECUTION_STATUS_REACH_POINT : {
                                        sb.append("Execution Type : " + info.eventType.toString()).append("\n");
                        sb.append("WayPoint index : " + info.wayPointIndex).append("\n");
                        sb.append("Current State : " + GroundStationWayPointExecutionState.find(info.currentState).toString()).append("\n");
                        sb.append("Reserve : " + info.reserved).append("\n");
                        break;
                    }
                                }
                               
                            GsInfoString1 = sb.toString();
                               
                                GsProtocolDemoActivity.this.runOnUiThread(new Runnable() {

                                        @Override
                                        public void run() {
                                                // TODO Auto-generated method stub
                                                mGroundStationTextView1.setText(GsInfoString1);
                                        }
                                       
                                });
                        }
               
        };
        
        DJIDrone.getDjiGroundStation().setGroundStationExecutionPushInfoCallBack(mGroundStationExecutionPushInfoCallBack);
楼主   2015-8-26 3#
iCanFly 发表于 2015-8-25 11:34
如果你想获取到达航点的INDEX,建议参考官方DEMO中的这段代码(红色部分):

mGroundStationExecutionPushI ...
谢谢,这个方法我也用过 ,只适合执行一次飞行任务,返航后再重复执行,index值就获取不到了。
lanyusea  Inspire 1认证用户 2015-8-28 4#
wdcswd 发表于 2015-8-26 09:26
谢谢,这个方法我也用过 ,只适合执行一次飞行任务,返航后再重复执行,index值就获取不到了。
...
是这样,飞机返回的信息没有update过就保持不变。
也就是说你飞到第三个航点,返航了,直到再次飞到下一个航点之前返回值永远是第三个航点。

我的做法是存储航点index的那个变量,
在每次takeoff的时候手动赋值成-1
SDK板块日常维护志愿者。
我没有QQ,我也不接受私信提问。有问题请去论坛发帖,利人利己。

我没有QQ,我没有QQ,我没有QQ。
重要的事情说三遍。
楼主   2015-8-28 5#
lanyusea 发表于 2015-8-28 10:59
是这样,飞机返回的信息没有update过就保持不变。
也就是说你飞到第三个航点,返航了,直到再次飞到下一 ...
请问你是说的update是自带的哪个callback ?还是在哪个地方将index值重新赋值。
lanyusea  Inspire 1认证用户 2015-8-28 6#
wdcswd 发表于 2015-8-28 14:23
请问你是说的update是自带的哪个callback ?还是在哪个地方将index值重新赋值。
...
我是单独用一个变量存了index,
然后update这个变量,同时读取这个变量。

但是在takeoff函数里面将它手动初始化,因为update的过程不含初始化什么的。
SDK板块日常维护志愿者。
我没有QQ,我也不接受私信提问。有问题请去论坛发帖,利人利己。

我没有QQ,我没有QQ,我没有QQ。
重要的事情说三遍。
收藏 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表