一种无人机测控数据回放方法

文档序号:10472294阅读:474来源:国知局
一种无人机测控数据回放方法
【专利摘要】本发明提供了一种无人机测控数据回放方法,属于属于计算机应用技术领域。首先得到数据回放的时间,将无人机测控数据划分为若干个数据包逐步读入缓冲区,之后设置多个值用来标识是否拖动时间条、是否暂停回放、是否对读入的数据进行处理,并根据处理与否进行变量的重新赋值,以达到对回放数据的准确定位。本发明利用数据帧内的时间码和实际回放时间比较的方法实现了对数据按照实际记录的时间点回放的功能,提升了大数据量回放的效率,增加了加速、减速、暂停和拖动时间条回放的功能,满足了无人机测控数据回放的要求。
【专利说明】
一种无人机测控数据回放方法
技术领域
[0001]本发明属于计算机应用技术领域,具体涉及一种无人机测控数据回放方法。
【背景技术】
[0002]数据回放技术,作为现代信号检测技术的重要组成部分,是数据采集技术的后续和衍生。其与数据采集技术、信号处理技术相结合,已在雷达、通信、水声遥测、遥感、地震勘测等许多领域有着广泛的应用。随着人们对信号检测技术性能需求的不断提高,如何能够快速、精确地实现大量历史数据的回放,为信号处理技术提供有效的历史数据,已成为信号检测技术的研究重点之一。
[0003]无人机是一种由无线电遥控设备操纵的无人驾驶飞行器,地面监控站是无人机系统的指挥控制中心,负责接收无人机上传输的图像数据信息、任务载荷状态信息、各项指令及遥测数据等,并进行实时处理和显示,同时将这些数据保存在文件中方便用户对数据进行事后分析及处理。现有技术中,常见的无人机测控数据回放方法主要是将所有数据读入一个缓冲区后,按一定速率将数据读取出来进行回放。这种数据回放方法的不足主要包括:对于大数据量回放处理的效率比较低;仅仅是将数据按一定速率回放,无法实现对数据按照实际记录的时间点回放。因此,这种方法无法满足数据回放快速、精准的要求。

【发明内容】

[0004]针对现有无人机测控数据回放技术的不足,本发明提出了一种数据回放的方法,用于无人机测控数据回放,实现了对数据按照实际记录的时间点回放的功能,提升了大数据量回放的效率,增加了加速、减速、暂停和拖动时间条回放的功能,满足了无人机测控数据回放的要求。
[0005]本发明无人机测控数据回放方法,主要包括以下步骤:
[0006]S1、根据待回放的无人机测控数据的第一帧数据和最后一帧数据,得到回放数据的开始时间11和结束时间t2,并计算出总的回放时间t = (t2-tI);
[0007]S2、将待回放的无人机测控数据分成若干个数据包,并将第一个数据包读入缓冲区,同时获取所述第一个数据包的第一帧数据,其中,所述数据包内包含有若干数据帧;
[0008]S3、当用户进行开始回放操作时,记录当前时间t3,同时将当前回放位置R设置为回放数据的开始时间,即R = tl,然后将所述第一帧数据发送给处理端;
[0009]S4、设置一个值M标识用户是否拖动回放时间条,如果用户未拖动回放时间条,则执行步骤S5,如果用户拖动了回放时间条,则根据用户拖动到的时间t4,通过二分法找到接近t4时间点的数据帧位置将其设置为当前回放位置R1,将当前回放位置的数据包读入缓冲区并清空已读取的数据帧,将t3设置为当前时间,然后将值M标识为用户未拖放回放时间条,执行步骤S5;
[0010]S5、设置一个值N标识用户是否暂停回放,如果用户未暂停回放,则执行步骤S6,如果用户暂停回放,则将t3设置为当前时间,之后执行步骤S6;
[0011]S6、设置一个值P标识是否有一帧已读取数据但未发送给处理端,如果这个值标识有一帧已读取数据未发送给处理端,则执行步骤S7,否则,首先读取当前回放位置的下一帧数据并得到下一帧数据的时间t5,如果当前缓冲区内的数据包读取完,则将下一个数据包读入缓冲区,之后执行步骤S7,直至所有数据读取完毕;
[0012]S7、获取当前时间t6,同时根据用户是否进行加速或减速操作设置缩放因子设置为R+(t6-t3)*X。比较R和t5,如果R> = t5,则将当前读取帧数据发送给处理端,更新回放时间条的值为(R-tl)/(t2-tl),将标识是否有一帧已读取数据未发送给处理端的值P设为否,然后继续执行步骤S4,如果当R〈t5,则直接更新回放时间条的值为(R-tl)/(t2-tl),续执行步骤S4。
[0013]优选的是,在所述步骤S2中,所述将待回放的无人机测控数据平均分成若干个数据包,所述数据包大小为IM?5M。
[0014]在上述方案中优选的是,所述缩放因子X为数据回放的速度。
[0015]在上述方案中优选的是,在所述步骤S4中,通过二分法找到回放数据文件中数据帧的时间码值在rp±Lt之间的第一个数据帧并读入该数据帧所在的数据包到缓冲区内。
[0016]在上述方案中优选的是,所述Lt不少于1000。
[0017]本发明的关键技术在于:
[0018]I)采用了将回放数据分批读入缓冲区的方式,提高了大数据文件的回放速率。
[0019]2)通过对回放时间和数据帧时间的比较,实现了对数据按照实际记录的时间点回放的要求。
[0020]3)增加了加速、减速、暂停和拖动时间条回放的功能,满足了用户对数据回放的要求。
[0021]本发明利用数据帧内的时间码和实际回放时间比较的方法实现了对数据按照实际记录的时间点回放的功能,提升了大数据量回放的效率,增加了加速、减速、暂停和拖动时间条回放的功能,满足了无人机测控数据回放的要求。
【附图说明】
[0022]图1为本发明无人机测控数据回放方法的一优选实施例的流程图。
【具体实施方式】
[0023]为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的实施例进行详细说明。
[0024]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
[0025]下面通过实施例对本发明做进一步详细说明。
[0026]本发明无人机测控数据回放方法主要的实施步骤如图1所示:
[0027]I)用户选择一个需要回放的大小1000M的数据文件,该数据文件的帧格式为包头+时间码+数据类型+数据长度+回放数据+包尾,示例如下:
[0028]55AAAA55+11323336+long+100+abc……mnp+AA5555AA;
[0029]需要说明的是,“+”为示意性表示,实际应用中没有此符号,其中时间码为八个比特位的long值,精度为I毫秒,如上例中时间为11时32分钟33秒36毫秒。
[0030]2)根据所选数据文件的第一帧数据和最后一帧数据,得到回放数据的开始时间(如上的11323336)和结束时间(假设最后一帧数据的时间码为12323336),将开始时间赋给全局变量st,类型为long,S卩St = 11323336;将结束时间赋给全局变量et,类型为long,SPet= 12323336;计算总的回放时间tt = et-st,类型为long,该实施例中tt = 01000000。使用名称为tbReplay的windows窗体应用程序控件TrackBar表示回放时间条,设置tbReplay = O。
[0031]3)本实施例中,将回放数据分成每个大小为IM小数据包,共计1000个数据包,将第一个数据包读入缓冲区,同时获取第一个数据包的第一帧数据,即帧55AAAA55+11323336+long+100+abc......mnp+AA5555AA0
[0032]4)当用户进行开始回放操作时,使用全局变量pre记录当前时间的tick值,类型为long,同时使用全局变量rp表示当前回放位置,类型为long,将rp设置为回放数据的开始时间,初始播放时,rp = St = 11323336,并将第一帧数据55AAAA55+11323336+long+100+abc……mnp+AA5555AA发送给处理端,然后开启一个线程处理第5)到第9)步操作。
[0033]5)使用全局变量pc标识用户是否拖动回放时间条,类型为bool。如果pc的值为true,即用户拖动了回放时间条,则设置rp = st+tbReplay.Value*tt/100,并通过二分法找到回放数据文件中数据帧的时间码值在rp-10000和rp+10000之间的第一个数据帧并读入该数据帧所在的数据包到缓冲区内,将pre设置为当前时间的tick值,将pc和wp的值设为false,然后执行第6)步;如果pc的值为false,即用户未拖动回放时间条,贝Ij直接执行第6)步。
[0034]6)使用全局变量rs标识用户是否暂停回放,类型为bool。如果rs的值为true,SP用户暂停了回放,则将pre设置为当前时间的tick值,然后执行第5)步;否则执行第7)步。
[0035]7)使用全局变量wp标识是否有一帧已读取数据未发送给处理端,如果wp的值为true,则执行第8)步;否则读取时间码值为rp位置的下一帧数据并得到这帧数据的时间码ft,类型为long。如果当前缓冲区内的数据包读取完,则将下一个数据包读入缓冲区,并执行第8)步;如果所有数据读取完毕,则执行第9)步。
[0036]8)获取当前时间rn的tick值,类型为long。同时根据用户是否进行加速或减速操作设置缩放因子rs,正常回放时,rs的值为I;用户以2、4、8倍速度加速回放时,rs的值分别为2、4、8;用户以2、4、8倍速度减速回放时,rs的值分别为l/2、l/4、l/8。将rp设置为rp+(rn-pre )*r s。比较rp和f t的值,如果rp> = f t,则将当前读取帧数据发送给处理端,更新回放时间条tbReplay的值为(rp-st)/tt,同时将wp设置为€&186,然后继续执行第5)步;如果印〈f t,更新回放时间条tbRep lay的值为(rp-st) /tt,然后执行第5)步。
[0037]9)所有数据读取完毕,结束流程。
[0038]再以一个50M的数据文件为例进行说明
[0039]I)用户选择一个需要回放的大小50M的数据文件,该数据文件的帧格式为包头+时间码+数据类型+数据长度+回放数据+包尾,示例如下:
[0040]0x7B5A6887+0x08D2E2B31CC4CB46 + 0x0010+0x0050 + 0x7B8A.....0978 +
0x09087A5B;
[0041 ]需要说明的是,为示意性表示,实际应用中没有此符号,“Ox”表示十六进制数据,其中时间码为八个比特位的long值,精度为100纳秒,如上例中时间大概为2015年11月I日11点53分52秒234毫秒。
[0042]2)根据所选数据文件的第一帧数据和最后一帧数据,得到回放数据的开始时间(如上的0x08D2E2B3 1CC4CB46)和结束时间(假设最后一帧数据的时间码为0x08D2E2B4D7D147CE),将开始时间赋给全局变量st,类型为long,g卩st =0x08D2E2B31CC4CB46;将结束时间赋给全局变量et,类型为long,SPet =0x08D2E2B4D7D147CE ;计算总的回放时间tt = et_st,类型为long,该实施例中tt =0x01BB0C7C88。使用名称为tbReplay的windows窗体应用程序控件TrackBar表示回放时间条,设置 tbReplay = 0。
[0043]3)本实施例中,将回放数据分成每个大小为IM的小数据包,共计50个数据包,将第一个数据包读入缓冲区,同时获取第一个数据包的第一帧数据,即帧:
[0044]0x7B5A6887+0x08D2E2B31CC4CB46 + 0x0010+0x0050 + 0x7B8A.....0978 +
0x09087A5Bo
[0045]4)当用户进行开始回放操作时,使用全局变量pre记录当前时间的tick值(此属性的值表示自0001年I月I日午夜12:00:00以来已经过的时间的以100毫微秒为间隔的间隔数,假设pre = 0x08D2E2BA9BB19644),类型为long,同时使用全局变量rp表示当前回放位置,类型为long,将rp设置为回放数据的开始时间,S卩rp = st = 0x08D2E2B31CC4CB46,开始回放时,将第一帧数据:
[0046]0x7B5A6887+0x08D2E2B31CC4CB46 + 0x0010+0x0050 + 0x7B8A.....0978 +
0x09087A5B发送给处理端,然后开启一个线程处理第5)到第9)步操作。
[0047]5)使用全局变量pc标识用户是否拖动回放时间条,类型为bool。如果pc的值为true,即用户拖动了回放时间条,贝Ij设置rp = st + tbReplay.value*tt/100(假设tbReplay.value = OxlE,则rp = 0x08D2E2B31CC4CB46+0xlE*0x01BB0C7C88/0x64 =0x0x08D2E2B3AlAEF0A2),并通过二分法找到回放数据文件中的数据帧的时间码值在rp-0x989680和rp+0x989680之间(即和rp误差在一秒之内)的第一个数据帧并读入该数据帧所在的数据包到缓冲区内,将P r e设置为当前时间的t i c k值(假设P r e =0x08D2E2BA9BB19644),将pc和wp的值设为false,然后执行第6)步;如果pc的值为false,即用户未拖动回放时间条,则直接执行第6)步。
[0048]6)使用全局变量rs标识用户是否暂停回放,类型为bool。如果rs的值为true,SP用户暂停了回放,则将pre设置为当前时间的tick值(假设pre = 0x08D2E2BA9BB19644),然后执行第5)步;否则执行第7)步。
[0049]7)使用全局变量wp标识是否有一帧已读取数据未发送给处理端,如果wp的值为true,则执行第8)步;否则读取时间码值为rp位置的下一帧数据并得到这帧数据的时间码ft (假设ft = 0x08D2E2B31D5D61C6),类型为long。如果当前缓冲区内的数据帧读取完,则将下一个数据包读入缓冲区,并执行第8)步;如果所有数据读取完毕,则执行第9)步。
[0050]8)获取当前时间rn的tick值(假设rn = 0x08D2E2BA9BB39644),类型为long。同时根据用户是否进行加速或减速操作设置缩放因子rs,正常回访时,rs的值为I;用户以2、4、8倍速度加速回放时,r s的值分别为2、4、8,用户以2、4、8倍速度减速回放时,r s的值分别为I /2、l/4、l/8。将rp设置为人rp+(rn-pre)*rs,假设rs = 2,则rp = 0x08D2E2B31CC4CB46+(0x08D2E2BA9BB39644-0x08D2E2BA9BB19644)*2 = 0x08D2E2B31CC8CB46。比较 rp 和 ft 的值,如果rp> = ft,则将当前读取帧数据发送给处理端,更新回放数据条tbReplay的值为(rp-st)/tt,即tbReplay.Value=(0x08D2E2B31CC8CB46_0x08D2E2B3ICC4CB46)/0x01BB0C7C88=0,同时将wp设置为false,然后继续执行第5)步;如果rp〈ft,更新回放时间条tbReplay的值为(rp-st)/tt,然后执行第5)步。
[0051]9)所有数据读取完毕,结束流程。
[0052]最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种无人机测控数据回放方法,其特征在于,包括: 51、根据待回放的无人机测控数据的第一帧数据和最后一帧数据,得到回放数据的开始时间11和结束时间t2,并计算出总的回放时间t = (t2-tI); 52、将待回放的无人机测控数据分成若干个数据包,并将第一个数据包读入缓冲区,同时获取所述第一个数据包的第一帧数据,其中,所述数据包内包含有若干数据帧; 53、当用户进行开始回放操作时,记录当前时间t3,同时将当前回放位置R设置为回放数据的开始时间,即R = tl,然后将所述第一帧数据发送给处理端; 54、设置一个值M标识用户是否拖动回放时间条,如果用户未拖动回放时间条,则执行步骤S5,如果用户拖动了回放时间条,则根据用户拖动到的时间t4,通过二分法找到接近t4时间点的数据帧位置将其设置为当前回放位置R1,将当前回放位置的数据包读入缓冲区并清空已读取的数据帧,将t3设置为当前时间,然后将值M标识为用户未拖放回放时间条,执行步骤S5 ; 55、设置一个值N标识用户是否暂停回放,如果用户未暂停回放,则执行步骤S6,如果用户暂停回放,则将t3设置为当前时间,之后执行步骤S6; 56、设置一个值P标识是否有一帧已读取数据但未发送给处理端,如果这个值标识有一帧已读取数据未发送给处理端,则执行步骤S7,否则,首先读取当前回放位置的下一帧数据并得到下一帧数据的时间t5,如果当前缓冲区内的数据包读取完,则将下一个数据包读入缓冲区,之后执行步骤S7,直至所有数据读取完毕; 57、获取当前时间t6,同时根据用户是否进行加速或减速操作设置缩放因子X,将R设置为R+(t6-t3)*X。比较R和t5,如果R> = t5,则将当前读取帧数据发送给处理端,更新回放时间条的值为(R-tl)/(t2-tl),将标识是否有一帧已读取数据未发送给处理端的值P设为否,然后继续执行步骤S4,如果当R〈t5,则直接更新回放时间条的值为(R-tl)/(t2-tl),续执行步骤S4。2.如权利要求1所述的无人机测控数据回放方法,其特征在于:在所述步骤S2中,所述将待回放的无人机测控数据平均分成若干个数据包,所述数据包大小为IM?5M。3.如权利要求1所述的无人机测控数据回放方法,其特征在于:所述缩放因子X为数据回放的速度。4.如权利要求1所述的无人机测控数据回放方法,其特征在于:在所述步骤S4中,通过二分法找到回放数据文件中数据帧的时间码值在rp 土 Lt之间的第一个数据帧并读入该数据帧所在的数据包到缓冲区内。5.如权利要求4所述的无人机测控数据回放方法,其特征在于:所述Lt不少于1000。
【文档编号】G11B27/10GK105825876SQ201610149430
【公开日】2016年8月3日
【申请日】2016年3月16日
【发明人】胡敏, 田学稳, 孙鑫欣, 罗琼, 张明, 张大高, 肖光华
【申请人】中国直升机设计研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1