技术新讯 > 电子通信装置的制造及其应用技术 > 数据处理方法、装置、设备、存储介质及车辆与流程  >  正文

数据处理方法、装置、设备、存储介质及车辆与流程

  • 国知局
  • 2024-10-15 09:53:44

本技术属于通信,尤其涉及一种数据处理方法、装置、设备、存储介质及车辆。

背景技术:

1、在通信技术领域,通常使用以太网和传输控制协议/网际协议(transmissioncontrol protocol/internet protocol,tcp/ip)协议栈进行数据传输。汽车开放系统架构(automotive open system architecture,autosar)的上层应用可以对tcp/ip协议栈传输的数据进行处理,以实现相应的功能。通常,套接字适配层(socket adaptor,soad)可以位于tcp/ip协议栈与autosar的上层应用之间,用于缓存tcp/ip协议栈发送的数据,以及在上层应用需要对数据进行处理的情况下,向上层应用传输数据。为了缓存数据,可以在soad中创建环形缓存队列。在传输数据时,soad需要向上层应用提供环形缓存队列中待发送数据的地址sendptr和大小length。若待发送的数据跨越环形缓存队列的队尾,则上层应用不能根据sendptr和length获取到需要的数据。

2、为了使上层应用能够成功获取到需要的数据,现有技术中通常通过两次拷贝将待发送的数据全部拷贝至临时缓存区,以确保sendptr和length的有效性。但是,上述数据处理的方式会降低数据的传输效率。

技术实现思路

1、本技术实施例提供了一种数据处理方法、装置、设备、存储介质及车辆,能够提高数据的传输效率。

2、第一方面,本技术实施例提供了一种数据处理方法,该方法包括:

3、在目标环形缓存队列中确定待发送数据的缓存区域,所述目标环形缓存队列为多个首尾相连的环形缓存队列中的任意一个;

4、在所述待发送数据跨越所述目标环形缓存队列的队尾的情况下,在所述缓存区域中确定与所述待发送数据对应的缓存子区域,所述缓存子区域包括所述目标环形缓存队列的队首缓存区域和队尾缓存区域中的任意一个;

5、查询邻居环形缓存队列中是否存在与所述缓存子区域对应的空闲缓存区域,所述邻居环形缓存队列为所述多个首尾相连的环形缓存队列中与所述目标环形缓存队列相邻的环形缓存队列;

6、在存在所述空闲缓存区域,且所述空闲缓存区域对应的数据量不小于所述缓存子区域对应的数据量的情况下,将所述缓存子区域中的所述待发送数据拷贝至所述空闲缓存区域。

7、在一种可能的实现方式中,所述查询邻居环形缓存队列中是否存在与所述缓存子区域对应的空闲缓存区域之前,所述方法还包括:

8、确定所述队首缓存区域对应的数据量与所述队尾缓存区域对应的数据量之间的大小关系;

9、所述查询邻居环形缓存队列中是否存在与所述缓存子区域对应的空闲缓存区域,包括:

10、在所述队首缓存区域对应的数据量小于所述队尾缓存区域对应的数据量的情况下,查询第一邻居环形缓存队列中是否存在与所述队首缓存区域对应的队首空闲缓存区域,所述第一邻居环形缓存队列的队首与所述目标环形缓存队列的队尾相连;

11、在所述队首缓存区域对应的数据量不小于所述队尾缓存区域对应的数据量的情况下,查询第二邻居环形缓存队列中是否存在与所述队尾缓存区域对应的队尾空闲缓存区域,所述第二邻居环形缓存队列的队尾与所述目标环形缓存队列的队首相连。

12、在一种可能的实现方式中,所述查询第一邻居环形缓存队列中是否存在与所述队首缓存区域对应的队首空闲缓存区域之后,所述方法还包括:

13、在不存在所述队首空闲缓存区域,或,存在所述队首空闲缓存区域且所述队首空闲缓存区域对应的数据量小于所述队首缓存区域对应的数据量的情况下,查询所述第二邻居环形缓存队列中是否存在所述队尾空闲缓存区域;

14、所述在存在所述空闲缓存区域,且所述空闲缓存区域对应的数据量不小于所述缓存子区域对应的数据量的情况下,将所述缓存子区域中的所述待发送数据拷贝至所述空闲缓存区域,包括:

15、在存在所述队尾空闲缓存区域,且所述队尾空闲缓存区域对应的数据量不小于所述队尾缓存区域对应的数据量的情况下,将所述队尾缓存区域中的所述待发送数据拷贝至所述队尾空闲缓存区域。

16、在一种可能的实现方式中,所述查询第二邻居环形缓存队列中是否存在与所述队尾缓存区域对应的队尾空闲缓存区域之后,所述方法还包括:

17、在不存在所述队尾空闲缓存区域,或,存在所述队尾空闲缓存区域且所述队尾空闲缓存区域对应的数据量小于所述队尾缓存区域对应的数据量的情况下,查询所述第一邻居环形缓存队列中是否存在所述队首空闲缓存区域;

18、所述在存在所述空闲缓存区域,且所述空闲缓存区域对应的数据量不小于所述缓存子区域对应的数据量的情况下,将所述缓存子区域中的所述待发送数据拷贝至所述空闲缓存区域,还包括:

19、在所述队首空闲缓存区域对应的数据量不小于所述队首缓存区域对应的数据量的情况下,将所述队首缓存区域中的所述待发送数据拷贝至所述队首空闲缓存区域。

20、在一种可能的实现方式中,所述在目标环形缓存队列中确定待发送数据的缓存区域之前,所述方法还包括:

21、以数组的形式保存与所述多个环形缓存队列分别对应的缓存控制结构,所述缓存控制结构中包括所述缓存控制结构在所述数组中的索引位置;

22、所述查询邻居环形缓存队列中是否存在与所述缓存子区域对应的空闲缓存区域之前,所述方法还包括:

23、在与所述目标环形缓存队列对应的目标缓存控制结构的索引位置为index的情况下,获取所述数组中索引位置为index-1和/或index+1的邻居缓存控制结构;

24、确定与所述邻居缓存控制结构对应的环形缓存队列为所述邻居环形缓存队列。

25、在一种可能的实现方式中,所述缓存控制结构还包括队首位置和所述环形缓存队列的长度,所述查询邻居环形缓存队列中是否存在与所述缓存子区域对应的空闲缓存区域之前,所述方法还包括:

26、获取与所述目标环形缓存队列对应的目标队首位置和目标长度;

27、将所述目标队首位置向后移动所述目标长度,确定与所述目标环形缓存队列对应的第一邻居环形缓存队列的队首位置,所述第一邻居环形缓存队列的队首与所述目标环形缓存队列的队尾相连;

28、将所述目标队首位置向前移动所述目标长度,确定与所述目标环形缓存队列对应的第二邻居环形缓存队列的队首位置,所述第二邻居环形缓存队列的队尾与所述目标环形缓存队列的队首相连。

29、在一种可能的实现方式中,所述缓存控制结构还包括空闲缓存起始位置和缓存数据起始位置,所述查询邻居环形缓存队列中是否存在与所述缓存子区域对应的空闲缓存区域,包括:

30、获取与所述邻居缓存队列对应的所述空闲缓存起始位置和所述缓存数据起始位置;

31、在所述空闲缓存起始位置对应的数值不小于所述缓存数据起始位置对应的数值的情况下,确定所述邻居环形缓存队列中存在与所述缓存子区域对应的空闲缓存区域。

32、第二方面,本技术实施例提供了一种数据处理装置,该装置包括:

33、第一确定模块,用于在目标环形缓存队列中确定待发送数据的缓存区域,所述目标环形缓存队列为多个首尾相连的环形缓存队列中的任意一个;

34、第二确定模块,用于在所述待发送数据跨越所述目标环形缓存队列的队尾的情况下,在所述缓存区域中确定与所述待发送数据对应的缓存子区域,所述缓存子区域包括所述目标环形缓存队列的队首缓存区域和队尾缓存区域中的任意一个;

35、查询模块,用于查询邻居环形缓存队列中是否存在与所述缓存子区域对应的空闲缓存区域,所述邻居环形缓存队列为所述多个首尾相连的环形缓存队列中与所述目标环形缓存队列相邻的环形缓存队列;

36、拷贝模块,用于在存在所述空闲缓存区域,且所述空闲缓存区域对应的数据量不小于所述缓存子区域对应的数据量的情况下,将所述缓存子区域中的所述待发送数据拷贝至所述空闲缓存区域。

37、第三方面,本技术实施例提供了一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;

38、所述处理器执行所述计算机程序指令时实现上述第一方面中任一种可能的实现方法中的方法。

39、第四方面,本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第一方面中任一种可能的实现方法中的方法。

40、第五方面,本技术实施例提供了一种车辆,该车辆包括以下至少一项:

41、如第二方面的任一项实施例中的数据处理装置;

42、如第三方面的任一项实施例中的电子设备;

43、如第四方面的任一项实施例中的计算机可读存储介质。

44、在本技术实施例的数据处理方法、装置、设备、存储介质及车辆中,由于邻居环形缓存队列与目标环形缓存队列相邻,因此,通过在邻居环形缓存队列中存在与缓存子区域对应的空闲缓存区域,且空闲缓存区域对应的数据量不小于缓存子区域对应的数据量的情况下,将缓存子区域中的待发送数据拷贝至与缓存子区域对应的空闲缓存区域,能够确保sendptr和length的有效性。由于缓存子区域包括目标环形缓存队列的队首缓存区域和队尾缓存区域中的任意一个,也即,拷贝的只是队首缓存区域中的待发送数据或队尾缓存区域中的待发送数据,因此,能够减少拷贝次数和数据拷贝量,从而能够提高数据的传输效率。

本文地址:https://www.jishuxx.com/zhuanli/20241015/315699.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。