System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其涉及一种通用串行总线串口数据读取方法、装置及存储介质。
技术介绍
1、在linux操作系统上的应用程序读取通用串行总线(usb)串口数据时,实际上是从usb串口驱动程序的输入队列中读取数据。一般采用的方法是写一个死循环,并定期调用读取函数read()来读取数据,并在没有更多数据可用或出现读取错误时退出死循环。
2、但是,由于每次调用read()读取的数据大小并不确定,频繁的调用read()系统具有实际的i/o开销(需要等待linux内核的文件i/o子系统处理操作),因此对read()的调用越频繁,引入的开销就越多。在读取诸如几百兆字节或甚至超过千兆字节的大量数据时,上述问题更明显,比如,当在蜂窝无线通信模块上读取随机存取存储器转储(ramdump)文件时,一些5g无线通信模块的文件大小通常大于1gb,这显著增加了读取ramump文件所需的时间,导致读取数据效率低、耗时较长,用户体验较差。
技术实现思路
1、本申请提供了一种通用串行总线串口数据读取方法、装置及存储介质,用以解决如何提高usb串口的读取效率的技术问题。
2、第一方面,本申请实施例提供了一种通用串行总线串口读取数据方法,所述方法包括:
3、在应用程序与通用串行总线串口的驱动程序连接的情况下,确定读取函数的读取参数;其中,所述读取参数中至少包括缓冲区地址和表征缓冲区大小的第一参数信息;
4、为所述读取函数配置内部循环函数;其中,所述内部循环函数用于在所述缓
5、调用所述读取函数基于所述内部循环函数从所述通用串行总线串口读取数据。
6、可选地,在应用程序与通用串行总线串口的驱动程序连接的情况下,确定读取函数的读取参数,包括:
7、获取所述通用串行总线串口的设备文件;其中,所述设备文件作为所述应用程序与所述驱动程序之间的接口;
8、调用打开函数打开所述设备文件,创建文件描述符;其中,所述文件描述符表征所述应用程序与所述驱动程序连接;
9、确定所述读取函数的所述读取参数。
10、可选地,确定所述读取函数的所述读取参数,包括:
11、获取表征通用串行总线串口待读取数据大小的第二参数信息;
12、根据所述第二参数信息和预设的配置规则,确定所述第一参数信息和所述缓冲区地址;其中,所述配置规则中,所述第一参数信息与所述第二参数信息正相关。
13、可选地,调用打开函数打开所述设备文件,创建文件描述符之后,所述方法还包括:
14、配置结构端设置参数;其中,所述结构端设置参数包括输入最小字节数和返回前等待输入时间;
15、相应地,调用所述读取函数基于所述内部循环函数从所述通用串行总线串口读取数据之后,所述方法还包括:
16、根据所述输入最小字节数和所述返回前等待输入时间保存从所述通用串行总线串口读取的数据。
17、可选地,为所述读取函数配置内部循环函数,包括:
18、为所述读取函数配置do-while循环函数,以及所述do-while循环函数的结束条件。
19、可选地,所述do-while循环函数的结束条件包括:当次循环的读取数据为空,并且,读取数据总量等于所述第一参数信息;其中,所述读取数据总量为所述读取函数在根据所述do-while循环函数在所有循环中读取数据的总和。
20、可选地,调用所述读取函数基于所述内部循环函数从所述通用串行总线串口读取数据之后,所述方法还包括:
21、确定所述通用串行总线串口的所述待读取数据读取完成;
22、断开所述应用程序与所述驱动程序的连接,以关闭所述通用串行总线串口。
23、第二方面,本申请实施例提供了一种通用串行总线串口读取数据装置,所述装置包括:
24、确定模块,用于在应用程序与通用串行总线串口的驱动程序连接的情况下,确定读取函数的读取参数;其中,所述读取参数中至少包括缓冲区地址和表征缓冲区大小的第一参数信息;
25、配置模块,用于为所述读取函数配置内部循环函数;其中,所述内部循环函数用于在所述缓冲区地址对应的缓冲区按照所述第一参数信息填满之后返回所述读取函数;
26、读取模块,用于调用所述读取函数基于所述内部循环函数从所述通用串行总线串口读取数据。
27、第三方面,本申请实施例提供了一种电子装置,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
28、所述存储器,用于存储计算机程序;
29、所述处理器,用于执行所述存储器中所存储的程序,实现第一方面任一所述的通用串行总线串口读取数据方法。
30、第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的通用串行总线串口读取数据方法。
31、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,在应用程序与通用串行总线串口的驱动程序连接的情况下,确定读取函数的读取参数;其中,所述读取参数中至少包括缓冲区地址和表征缓冲区大小的第一参数信息;为所述读取函数配置内部循环函数;其中,所述内部循环函数用于在所述缓冲区地址对应的缓冲区按照所述第一参数信息填满之后返回所述读取函数;调用所述读取函数基于所述内部循环函数从所述通用串行总线串口读取数据。该方法,在从usb串口读取数据时,能保证调用的读取函数按照第一参数信息填满缓冲区之后返回,提高读取函数读取数据的效率,降低读取数据的时间,提高了用户体验。
本文档来自技高网...【技术保护点】
1.一种通用串行总线串口读取数据方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在应用程序与通用串行总线串口的驱动程序连接的情况下,确定读取函数的读取参数,包括:
3.根据权利要求2所述的方法,其特征在于,确定所述读取函数的所述读取参数,包括:
4.根据权利要求2所述的方法,其特征在于,调用打开函数打开所述设备文件,创建文件描述符之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,为所述读取函数配置内部循环函数,包括:
6.根据权利要求5所述的方法,其特征在于,所述do-while循环函数的结束条件包括:当次循环的读取数据为空,并且,读取数据总量等于所述第一参数信息;其中,所述读取数据总量为所述读取函数在根据所述do-while循环函数在所有循环中读取数据的总和。
7.根据权利要求3所述的方法,其特征在于,调用所述读取函数基于所述内部循环函数从所述通用串行总线串口读取数据之后,所述方法还包括:
8.一种通用串行总线串口读取数据装置,其特征在于,所述装置包括
9.一种电子装置,其特征在于,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一所述的通用串行总线串口读取数据方法。
...【技术特征摘要】
1.一种通用串行总线串口读取数据方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在应用程序与通用串行总线串口的驱动程序连接的情况下,确定读取函数的读取参数,包括:
3.根据权利要求2所述的方法,其特征在于,确定所述读取函数的所述读取参数,包括:
4.根据权利要求2所述的方法,其特征在于,调用打开函数打开所述设备文件,创建文件描述符之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,为所述读取函数配置内部循环函数,包括:
6.根据权利要求5所述的方法,其特征在于,所述do-while循环函数的结束条件包括:当次循环的读取数据为空,并且,...
【专利技术属性】
技术研发人员:刘捷威,
申请(专利权)人:锐凌无线有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。