[发明专利]基于延续的无人机编队飞控系统的动态调试方法在审
申请号: | 201910510606.2 | 申请日: | 2019-06-13 |
公开(公告)号: | CN110275830A | 公开(公告)日: | 2019-09-24 |
发明(设计)人: | 张迎周;黄秋月;傅建清;陈宏建;肖雁冰 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G05D1/10 |
代理公司: | 南京苏科专利代理有限责任公司 32102 | 代理人: | 姚姣阳;徐振兴 |
地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 断点 飞控系统 保存状态 动态调试 状态机 飞行控制系统 函数式编程 代码转变 读取状态 技术概念 检查程序 任务执行 手动控制 完成状态 重要参数 原程序 编译 恢复 转换 检查 | ||
1.一种基于延续的无人机编队飞控系统的动态调试方法,其特征在于:包括以下步骤:
步骤1:完成状态机转换步骤:将无人机飞控系统中执行编队任务部分的代码编译成状态机,即用switch-case语句结构来改写这部分代码,无人机编队组成的部分就成了我们可以控制的结构;
步骤2:设置实时断点步骤:将原程序代码行的位置对应到状态机中特定case语句中,即每一个case语句都包含原程序的一行代码,这些位置就是设置断点的位置;人工手动点击设置断点的位置,然后程序开始检查每一步的执行,判断是否存在一个实时断点;
步骤3:停止无人机执行任务并保存状态步骤:检测到步骤2中的实时断点,找出断点所在的行位置,接着利用抛出异常的技术在此处停止程序运行、停止任务的执行,然后,通过捕获调用栈来保存此处的状态机和局部变量,以便以后恢复他们;
步骤4:读取状态并恢复无人机任务执行步骤:检查暂停这一步是否出现问题,如果没有就恢复步骤3中的调用栈,程序从断点处开始恢复执行;
步骤5:重复步骤3和步骤4对原程序代码每一行进行单步调试,直到整个程序执行完毕。
2.如权利要求1所述的基于延续的无人机编队飞控系统的动态调试方法,其特征在于:所述步骤2中设置实时断点具体步骤为:
步骤2.1:将步骤1中原程序中分解的单步操作对应到状态机中特定case语句中,每一个case语句对应原程序的一行代码;
步骤2.2:设置一个或多个断点,即在原程序中添加一行debugger语句,然后在状态机的case语句中将这行语句编译成throw new Conterror()语句;
步骤2.3:开始检查每一步的执行,判断是否存在一个最新断点;如果没有检测到断点的位置,跳出单步调试器,直接输出结果。
3.如权利要求1所述的基于延续的无人机编队飞控系统的动态调试方法,其特征在于:所述步骤3中停止无人机执行任务并保存状态具体步骤为:
步骤3.1:如果检测到步骤2.3中的断点,利用抛出异常的方法来暂停无人机在这一步的任务执行;
步骤3.2:然后捕获这一步这一时刻的调用栈,利用一个列表来保存状态机和飞行任务中的重要参数。
4.如权利要求1所述的基于延续的无人机编队飞控系统的动态调试方法,其特征在于:所述步骤4中读取状态并恢复无人机任务执行具体步骤为:
步骤4.1:暂停之后开始检测无人机执行到这一步是够出现异常,是够按照预期来执行任务,如果没有出现异常就恢复调用栈,如果发现bug就记录下来,方便后期处理;
步骤4.2:读取步骤3.2中列表的参数,让程序从此处重新开始执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910510606.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件分层测试方法
- 下一篇:协议接口的mock数据校验方法和装置