CN113157625B - 数据传输方法、装置、终端设备及计算机可读存储介质 - Google Patents

数据传输方法、装置、终端设备及计算机可读存储介质 Download PDF

Info

Publication number
CN113157625B
CN113157625B CN202110459035.1A CN202110459035A CN113157625B CN 113157625 B CN113157625 B CN 113157625B CN 202110459035 A CN202110459035 A CN 202110459035A CN 113157625 B CN113157625 B CN 113157625B
Authority
CN
China
Prior art keywords
data
terminal
transmission
amount
transmission time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110459035.1A
Other languages
English (en)
Other versions
CN113157625A (zh
Inventor
汤增宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PAX Computer Technology Shenzhen Co Ltd
Original Assignee
PAX Computer Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PAX Computer Technology Shenzhen Co Ltd filed Critical PAX Computer Technology Shenzhen Co Ltd
Priority to CN202110459035.1A priority Critical patent/CN113157625B/zh
Publication of CN113157625A publication Critical patent/CN113157625A/zh
Priority to PCT/CN2022/080801 priority patent/WO2022227895A1/zh
Application granted granted Critical
Publication of CN113157625B publication Critical patent/CN113157625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请适用于数据处理技术领域,提供了一种数据传输方法、装置、终端设备及计算机可读存储介质,应用于第一终端,第一终端用于将从第二终端接收到的数据存储到第一终端的缓存空间内、并将缓存空间内存储的数据发送到第三终端,方法包括:当监测到第一指令时,获取目标传输量;若目标传输量大于缓存数据量,则根据目标传输量和缓存数据量确定理论传输时间;在理论传输时间的范围内,根据目标传输量和缓存数据量向第三终端发送数据。通过上述方法,可以减少串口通讯过程中的数据丢失率、提高通讯可靠性和数据传输的灵敏度。

Description

数据传输方法、装置、终端设备及计算机可读存储介质
技术领域
本申请属于数据处理技术领域,尤其涉及一种数据传输方法、装置、终端设备及计算机可读存储介质。
背景技术
串口通讯是一种终端设备间常用的串行通讯方式,在该通讯方式中,数据按位顺序传输。其特点是通信线路简单,只要一对传输线即可实现双向通信,从而降低了通讯成本,也因此使其在通讯领域中得到了广泛的应用。
现有的串口通讯方法存在以下问题:第一,由于串口是一种异步通讯接口,在数据接收端容易产生因负载过重而导致通讯数据丢失的情况;第二,若数据发送端因负载过重而导致发送数据不及时,数据接收端则会一直处于等待接收数据的状态,而无法进行后续数据处理任务,数据传输灵敏度较差。因此,减少数据丢失率、提高通讯可靠性和数据传输的灵敏度,是串口通讯方法亟需解决的问题。
发明内容
本申请实施例提供了数据传输方法、装置、终端设备及计算机可读存储介质,可以减少串口通讯过程中的数据丢失率、提高通讯可靠性和数据传输的灵敏度。
第一方面,本申请实施例提供了一种数据传输方法,应用于第一终端,所述第一终端用于将从第二终端接收到的数据存储到所述第一终端的缓存空间内、并将所述缓存空间内存储的数据发送到第三终端,所述方法包括:
当监测到第一指令时,获取目标传输量,所述目标传输量表示所述第三终端向所述第一终端请求获取数据的大小;
若所述目标传输量大于缓存数据量,则根据所述目标传输量和所述缓存数据量确定理论传输时间,其中,所述缓存数据量为所述第一终端的缓存空间内已存储数据的大小,所述理论传输时间表示向所述第三终端发送所述目标传输量的数据所需的理论时长;
在所述理论传输时间的范围内,根据所述目标传输量和所述缓存数据量向所述第三终端发送数据。
在本申请实施例中,第一终端作为第二终端与第三终端的数据传输媒介,利用其缓存空间实现数据传输中的流量控制,能够有效避免数据传输过程中因负载过重导致的通讯数据丢失的情况;另外,在数据传输过程中,根据目标传输量和缓存数据量为数据传输确定理论传输时间,将数据传输的时间控制在该理论传输时间内,从而有效避免了数据传输过程中由于发送端发送数据不及时而导致接收端一直处于等待状态的情况。通过上述方法,有效减少了数据传输过程中的数据丢失率,提高了数据传输的可靠性,同时提高了数据传输的灵敏度。
在第一方面的一种可能的实现方式中,所述根据所述目标传输量和所述缓存数据量确定理论传输时间,包括:
获取所述第一终端与所述第二终端之间的通讯参数;
计算所述目标传输量和所述缓存数据量之间的数据量差值;
根据所述通讯参数和所述数据量差值确定所述理论传输时间。
在第一方面的一种可能的实现方式中,所述通讯参数包括波特率和每帧数据包含的数据位数;
所述根据所述通讯参数和所述数据量差值确定所述理论传输时间,包括:
根据所述波特率和所述每帧数据包含的数据位数计算所述第一终端与所述第二终端之间的单位传输时间,所述单位传输时间表示传输每帧数据所需的时间;
根据所述单位传输时间和所述数据量差值确定所述理论传输时间。
在第一方面的一种可能的实现方式中,所述通讯参数还包括容差时间;
所述根据所述单位传输时间和所述数据量差值确定所述理论传输时间,包括:
根据所述数据量差值和所述单位传输时间计算第一传输时间;
根据所述第一传输时间和所述容差时间计算所述理论传输时间。
在第一方面的一种可能的实现方式中,所述在所述理论传输时间的范围内,根据所述目标传输量和所述缓存数据量向所述第三终端发送数据,包括:
在所述理论传输时间的范围内,当监测到第二指令时,获取当前的实际传输量和所述缓存数据量,所述实际传输量表示所述第一终端向所述第三终端已传输的数据的大小;
根据所述目标传输量和所述实际传输量计算剩余传输量;
若所述剩余传输量小于或等于所述缓存数据量,则将所述缓存空间中前M帧数据发送给所述第三终端,更新所述缓存数据量,并停止数据传输,所述M为所述剩余传输量;
若所述剩余传输量大于所述缓存数据量,则将所述缓存空间中的Q帧数据发送给所述第三终端,更新所述缓存数据量,并继续监测所述第二指令,所述Q为所述缓存数据量。
在第一方面的一种可能的实现方式中,在根据所述目标传输量和所述缓存数据量计算理论传输时间之后,所述方法还包括:
当超出所述理论传输时间的范围时,判断当前的实际传输量是否达到所述目标传输量,其中,所述实际传输量表示所述第一终端向所述第三终端已传输的数据的大小;
若所述实际传输量未达到所述目标传输量,则向所述第三终端发送预设超时信息,并重新监测所述第一指令。
在第一方面的一种可能的实现方式中,在获取目标传输量之后,所述方法还包括:
若所述目标传输量小于或等于所述缓存数据量,则将所述缓存空间中前N帧数据发送给所述第三终端,其中,所述N为所述目标传输量。
在第一方面的一种可能的实现方式中,所述方法还包括:
当监测到第三指令时,获取待传输数据量,所述待传输数据量为所述第二终端向所述第一终端请求发送数据的大小;
若所述待传输数据量与所述缓存数据量之和大于所述缓存空间的容量,则从所述第二终端接收C1帧数据,其中,所述C1为所述缓存空间的容量与所述缓存数据量之差;
将所述C1帧数据存储于所述缓存空间,并更新所述缓存数据量。
第二方面,本申请实施例提供了一种数据传输装置,包括:
第一监测单元,用于当监测到第一指令时,获取目标传输量,所述目标传输量表示所述第三终端向所述第一终端请求获取数据的大小;
时间确定单元,用于若所述目标传输量大于缓存数据量,则根据所述目标传输量和所述缓存数据量确定理论传输时间,其中,所述缓存数据量为所述第一终端的缓存空间内已存储数据的大小,所述理论传输时间表示向所述第三终端发送所述目标传输量的数据所需的理论时长;
第一数据发送单元,用于在所述理论传输时间的范围内,根据所述目标传输量和所述缓存数据量向所述第三终端发送数据。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的数据传输方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的数据传输方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的数据传输方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据传输系统的示意图;
图2是本申请实施例提供的数据传输方法的流程示意图;
图3是本申请实施例提供的数据信号的示意图;
图4是本申请实施例提供的数据传输装置的结构框图;
图5是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“若”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
首先介绍本申请实施例提供的数据传输方法的一个应用场景。参见图1,是本申请实施例提供的数据传输系统的示意图。如图1所示,数据传输系统中包括第一终端11、第二终端12和第三终端13。第一终端中包括缓存空间,缓存空间可以指第一终端中具有数据存储功能的物理存储装置(如内存、硬盘等),也可以指第一终端中某个物理存储装置上的一个存储区域(如将硬盘分区后的分区盘等);也可以指运行于第一终端中某个物理存储装置上的软件存储进程,还可以指存储于第一终端中某个物理存储装置上的文件(如数据包等);当然,缓存空间也可以是与第一终端通信连接的第三方物理存储装置(如外接硬盘等)。
第一终端用于将从第二终端接收到的数据存储到第一终端的缓存空间内、并将缓存空间内存储的数据发送到第三终端。示例性的,在数据传输过程中,第二终端向第一终端发送数据发送请求;第一终端接收到数据发送请求后,从第二终端接收数据,并将接收到的数据缓存到第一终端的缓存空间中;当第三终端需要从第一终端中获取数据时,第三终端向第一终端发送数据读取请求;第一终端接收到数据读取请求后,将缓存空间中的数据发送给第三终端。
在本申请实施例中,第一终端、第二终端和第三终端可以是处理器、笔记本电脑、台式电脑、手机等具有数据处理功能的终端设备。当第二终端向第一终端发送数据时,第二终端为数据发送端,第一终端为数据接收端;当第一终端向第三终端发送数据时,第一终端为数据发送端,第三终端为数据接收端。
需要说明的是,第二终端和第三终端可以为不同的终端设备,也可以为相同的终端。在一个应用场景中,第一终端和第三终端为相同的终端设备,此时,第一终端和第三终端之间的数据传输过程可以为,第一终端中的某个应用程序从第一终端中的缓存空间中读取数据的过程。示例性的:第二终端为应用程序app1的服务器a,第一终端为安装有应用程序app1的终端设备b中的处理器c。当应用程序app1需要从服务器a中获取数据时,处理器c先通过串口通讯的方式从服务器a中获取数据,将从服务器a中获取到的数据存储于终端设备b的缓存空间中;然后处理器c将缓存空间中的数据通过软件传输的方式(如进程)传输给应用程序所占的内存空间。
参见图2,是本申请实施例提供的数据传输方法的流程示意图。在本申请实施例中,数据传输方法包括数据接收缓存流程I和数据读取流程II两个部分。其中,数据接收缓存流程指第二终端向第一终端发送数据,第一终端将接收到的数据存储于第一终端的缓存空间中的过程。数据读取流程指第一终端将缓存空间内存储的数据发送给第三终端的过程。本申请实施例中的步骤以第一终端作为执行主体进行描述。
首先介绍数据接收缓存流程。作为示例而非限定,数据接收缓存流程可以包括以下步骤:
S21,第一终端监测第三指令。
本申请实施例中的第三指令可以表示,第二终端向第一终端发送的数据发送请求。当然,也可以是在第一终端主动向第二终端发送数据获取请求后,由第二终端反馈给第一终端的同意请求信息。
可选的,当监测到第三指令时,第一终端可以先从第二终端获取全部的待传输数据,然后计算已接收数据的数据量,得到待传输数据量;然后再根据第一终端的缓存空间的剩余容量存储已接收数据。
示例性的,假设第一终端中的缓存空间为第一终端中的硬盘。当第二终端请求向第一终端发送数据时,第一终端先从第二终端获取全部的待传输数据、并存储于第一终端的内存中,然后计算出已接收数据的数据量为70帧(即待传输数据量);假设此时第一终端的缓存空间的剩余容量为40帧,那么将第一终端的内存中已接收数据中的前40帧数据存储到缓存空间中,并删除剩余的30帧数据。
上述数据传输方式,第一终端需要从第二终端获取全部的待传输数据,然后再根据缓存空间的剩余容量选择性地存储数据,这种方式将会增加数据传输时间。
为了减少数据传输时间,提高数据传输效率,可选的,第一终端可以先确定出缓存空间的剩余容量,再根据剩余容量选择性地从第二终端接收数据。具体如下步骤所示。
S22,当第一终端监测到第三指令时,第一终端获取待传输数据量。
待传输数据量为第二终端向第一终端请求发送数据的大小。
第三指令中可以包含待传输数据量,也可以在第一终端监测到第三指令之后,从第二终端获取待传输数据量。
S23,若待传输数据量与缓存数据量之和大于缓存空间的容量,则从第二终端接收C1帧数据。
其中,C1为缓存空间的容量与缓存数据量之差。
S231,将C1帧数据存储于缓存空间,并更新缓存数据量。
执行S21和S25。
示例性的,假设第一终端获取到的待传输数据量为70帧,缓存数据量为40帧,缓存空间的容量为100帧,即待传输数据量与缓存数据量之和大于缓存空间的容量。此时计算缓存空间的剩余容量为C1=100-40=60帧,从第二终端接收60帧数据、并按照接收顺序将60帧数据存储于缓存空间中。将缓存数据量更新为100(40+60)帧。然后继续监测第三指令、同时监测数据读取事件。
S24,若待传输数据量与缓存数据量之和小于或等于缓存空间的容量,则从第二终端接收C2帧数据。
其中,C2为待传输数据量。
S241,将C2帧数据存储于缓存空间,并更新缓存数据量。
执行S21,继续监测第三指令,并执行S25。
示例性的,假设第一终端获取到的待传输数据量为70帧,缓存数据量为20帧,缓存空间的容量为100帧,即待传输数据量与缓存数据量之和小于缓存空间的容量。此时从第二终端接收70帧数据、并按照接收顺序将70帧数据存储于缓存空间中。将缓存数据量更新为90(20+70)帧。然后继续监测第三指令、同时监测数据读取事件。
S25,第一终端监测第一指令。
监测第一指令相当于监测数据读取事件。实际应用中,监测数据读取事件的前提是,缓存空间中存储有用于向第三终端发送的数据。例如,当缓存空间中存储有数据、且监测到数据读取事件时,第一终端启动数据读取流程。若缓存空间中无数据、却监测到数据读取事件,或者缓存空间中有数据、但未监测到数据读取事件,则第一终端不启动数据读取流程。
可选的,第一指令可以指第三终端向第一终端发送的数据读取请求。在一个应用场景中,第一终端的缓存空间中存储有用于向第三终端发送的数据,当第三终端向第一终端发送数据读取请求时,表示第一终端监测到第一指令(即数据读取请求)。
可选的,可以设置用于表示数据读取事件的标志位。示例性的,当标志位为1时,表示缓存空间中存储有数据、且监测到数据读取事件;标志位为0时,表示缓存空间中无数据、却监测到数据读取事件,或者缓存空间中有数据、但未监测到数据读取事件。
基于上述标志位的设置,第一指令也可以指上述的标志位。在另一个应用场景中,第一终端的缓存空间中存储有用于向第三终端发送的数据,当第三终端向第一终端发送数据读取请求时,第一终端中的监测进程将标志位设置为1;第一终端中的数据传输进程获取标志位,并判断标志位是否为1;若标志位1(即监测到第一指令),数据传输进程则获取目标传输量。
下面介绍数据读取流程。作为示例而非限定,数据读取流程可以包括以下步骤:
S26,当监测到第一指令时,获取目标传输量。
目标传输量表示第三终端向第一终端请求获取数据的大小。第一指令中可以包括目标传输量,也可以在监测到第一指令后、第一终端从第三终端获取目标传输量。
S27,若目标传输量大于缓存数据量,则根据目标传输量和缓存数据量确定理论传输时间。
其中,缓存数据量为第一终端的缓存空间内已存储数据的大小,理论传输时间表示向第三终端发送目标传输量的数据所需的理论时长。
需要说明的是,缓存数据量为实时更新的,S27中的缓存数据量是指,在计算理论传输时间的时刻,第一终端的缓存空间内已存储数据的大小。
在一个实施例中,可以预先设定理论传输时间。例如,根据历史数据传输时间、或者实际的数据传输需求,设置一个理论传输时间。但是这种方式,无法准确地预估数据传输所需的时间,导致数据传输的失败率较高。
为了提高数据传输的成功率,在一个实施例中,理论传输时间的计算方式可以包括以下步骤:
获取第一终端与第二终端之间的通讯参数;计算目标传输量和缓存数据量之间的数据量差值;根据通讯参数和数据量差值确定理论传输时间。
由于目标传输量大于缓存数据量,即第三终端需要获取的数据量大于第一终端的缓存空间中已存储的数据量,因此,第一终端还需要继续从第二终端获取数据。理论传输时间中包含了第一终端继续从第二终端获取数据的时间。
根据通讯参数计算出的理论传输时间较为准确,能够有效避免数据传输失败的情况。
可选的,通讯参数包括波特率和每帧数据包含的数据位数。
串口通讯为异步通讯,通讯双方的数据帧格式和波特率需一致,才能保证正常传输数据。其中,波特率是指,串口通讯过程中,通讯设备之间每秒传输的码元符号的长度。一帧数据中通常包括起始位、数据位、校验位和停止位,一帧数据中所有数据的位数相加即为每帧数据包含的数据位数。参见图3,是本申请实施例提供的数据信号的示意图。如图3所示的一帧数据中,起始位有1位,数据位有8位,校验位有1位,停止位有1位,因此,该帧数据包含的数据位数为1+8+1+1=11位。
相应的,根据通讯参数和数据量差值确定理论传输时间的方式可以包括:
根据波特率和每帧数据包含的数据位数计算第一终端与第二终端之间的单位传输时间,根据单位传输时间和数据量差值确定理论传输时间。
单位传输时间表示传输每帧数据所需的时间。具体的,可以通过公式计算单位传输时间,然后根据公式T=D×Tc计算理论传输时间。其中,Tc为单位传输时间,BC为每帧数据波包含的数据位数,DU为波特率,D为数据量差值。
数据传输过程中,不仅第一终端和第二终端之间传输数据需要时间,第一终端向第三终端发送数据也需要时间。而上述计算方式中,未考虑第一终端和第三终端之间传输数据的时间、以及数据传输过程中的延时时间,导致计算出的理论传输时间较短,增加了数据传输失败的几率。
为了解决上述问题,进一步的,通讯参数还包括容差时间。本申请实施例中的容差时间可以根据第一终端和第三终端之间传输数据的时间、负载过重导致的延时时间、系统调用延时时间和/或网络延迟时间进行设定。
相应的,根据单位传输时间和数据量差值确定理论传输时间的方式可以包括:根据数据量差值和单位传输时间计算第一传输时间;根据第一传输时间和容差时间计算理论传输时间。
具体的,根据公式T=D×Tc+Ts计算理论传输时间,其中,Ts为容差时间。
在计算理论传输时间时,考虑了容差时间,有效提高了数据传输成功的几率,提高了数据传输的可靠性。
S271,在理论传输时间的范围内,根据目标传输量和缓存数据量向第三终端发送数据。
实际应用中,在开始向第三终端设备发送数据时,可以开启定时器。在理论传输时间的范围内是指,定时器记录的时间小于理论传输时间。反之,超出理论传输时间的范围是指,定时器记录的时间达到理论传输时间。
在一个实施例中,S271还可以包括:
1)第一终端监测第二指令。
本申请实施例中,数据接收缓存流程和数据读取流程可以并行处理,即第一终端在执行数据读取流程时,可以同时执行数据缓存流程。换言之,第一终端在将缓存空间中的数据发送给第三终端的同时,还可以继续从第二终端获取数据、并存储于缓存空间中未占用的位置。因此,第二指令表示第一终端的缓存空间中加入了新的数据。这时就需要判断缓存空间中新存储的数据是否为需要向第三终端发送的数据。具体如下步骤所示。
2)当监测到第二指令时,获取当前的实际传输量和缓存数据量。
实际传输量表示第一终端向第三终端已传输的数据的大小。这里的缓存数据量是指监测到第二指令时缓存空间中已存储的数据的大小。
3)根据目标传输量和实际传输量计算剩余传输量。
4)若剩余传输量小于或等于缓存数据量,则将缓存空间中前M帧数据发送给第三终端,更新缓存数据量,并停止数据传输。
M为剩余传输量。
返回1),继续监测第二指令。
示例性的,假设目标传输量为80帧,当前的实际传输量为30帧,当前的缓存数据量为90帧,则剩余传输量为80-30=50帧,即还需要向第三终端发送50帧数据。而缓存空间中存储有90帧数据,说明这90帧数据中只有前50帧数据是需要向第三终端发送的。
5)若剩余传输量大于缓存数据量,则将缓存空间中的Q帧数据发送给第三终端,更新缓存数据量,并继续监测第二指令。
Q为缓存数据量。
返回1),继续监测第二指令。
示例性的,假设目标传输量为80帧,当前的实际传输量为30帧,当前的缓存数据量为40帧,则剩余传输量为80-30=50帧,即还需要向第三终端发送50帧数据。但是当前缓存空间中仅存储有40帧数据,那么将这40帧数据全部发送给第三终端后,第一终端还需继续从第二终端获取数据,因此,需要继续监测第二指令。
需要说明的是,本申请实施例中,缓存空间中数据的存储/读取的方式可以遵循先进先出的方式。具体的,存储数据时,数据进入缓存空间的顺序为第1帧数据->第2帧数据->第3帧数据;读取数据时,数据从缓存空间中流出的顺序仍为第1帧数据->第2帧数据->第3帧数据。当然,也可以遵循先进后出的方式,这时需要先存储后面的数据、再存储前面的数据。具体的,存储数据时,数据进入缓存空间的顺序为第3帧数据->第2帧数据->第1帧数据;读取数据时,数据从缓存空间中流出的顺序为第1帧数据->第2帧数据->第3帧数据。
S272,当超出理论传输时间的范围时,判断当前的实际传输量是否达到目标传输量。
其中,实际传输量表示第一终端向第三终端已传输的数据的大小。
S2721,若实际传输量未达到目标传输量,则向第三终端发送预设超时信息,并重新监测第一指令。
第三终端接收到预设超时信息后,无需继续等待接收数据,可以执行其他任务。有效提高了数据传输的灵活性。
S2722,若实际传输量达到目标传输量,则执行S29。
S28,若目标传输量小于或等于缓存数据量,则将缓存空间中前N帧数据发送给第三终端。
其中,N为目标传输量。
这种情况下,表示缓存空间中已存储的数据量满足第三终端读取数据量的需求,第一终端无需继续从第二终端获取新的数据。
S29,结束数据读取流程。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的数据传输方法,图4是本申请实施例提供的数据传输装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,该装置包括:
第一监测单元41,用于当监测到第一指令时,获取目标传输量,所述目标传输量表示所述第三终端向所述第一终端请求获取数据的大小。
时间确定单元42,用于若所述目标传输量大于缓存数据量,则根据所述目标传输量和所述缓存数据量确定理论传输时间,其中,所述缓存数据量为所述第一终端的缓存空间内已存储数据的大小,所述理论传输时间表示向所述第三终端发送所述目标传输量的数据所需的理论时长。
第一数据发送单元43,用于在所述理论传输时间的范围内,根据所述目标传输量和所述缓存数据量向所述第三终端发送数据。
可选的,时间确定单元42还用于:
获取所述第一终端与所述第二终端之间的通讯参数;计算所述目标传输量和所述缓存数据量之间的数据量差值;根据所述通讯参数和所述数据量差值确定所述理论传输时间。
可选的,通讯参数包括波特率、每帧数据包含的数据位数和容差时间。
可选的,时间确定单元42还用于:
根据所述波特率和所述每帧数据包含的数据位数计算所述第一终端与所述第二终端之间的单位传输时间,所述单位传输时间表示传输每帧数据所需的时间;根据所述单位传输时间和所述数据量差值确定所述理论传输时间。
可选的,时间确定单元42还用于:
根据所述数据量差值和所述单位传输时间计算第一传输时间;根据所述第一传输时间和所述容差时间计算所述理论传输时间。
可选的,数据发送单元43还用于:
在所述理论传输时间的范围内,当监测到第二指令时,获取当前的实际传输量和所述缓存数据量,所述实际传输量表示所述第一终端向所述第三终端已传输的数据的大小;根据所述目标传输量和所述实际传输量计算剩余传输量;若所述剩余传输量小于或等于所述缓存数据量,则将所述缓存空间中前M帧数据发送给所述第三终端,更新所述缓存数据量,并停止数据传输,所述M为所述剩余传输量;若所述剩余传输量大于所述缓存数据量,则将所述缓存空间中的Q帧数据发送给所述第三终端,更新所述缓存数据量,并继续监测所述第二指令,所述Q为所述缓存数据量。
可选的,装置4还包括:
超时提醒单元44,用于在根据所述目标传输量和所述缓存数据量计算理论传输时间之后,当超出所述理论传输时间的范围时,判断当前的实际传输量是否达到所述目标传输量,其中,所述实际传输量表示所述第一终端向所述第三终端已传输的数据的大小;若所述实际传输量未达到所述目标传输量,则向所述第三终端发送预设超时信息,并重新监测所述第一指令。
可选的,装置4还包括:
第二数据发送单元45,用于在获取目标传输量之后,若所述目标传输量小于或等于所述缓存数据量,则将所述缓存空间中前N帧数据发送给所述第三终端,其中,所述N为所述目标传输量。
可选的,装置4还包括:
数据接收单元46,用于当监测到第三指令时,获取待传输数据量,所述待传输数据量为所述第二终端向所述第一终端请求发送数据的大小;若所述待传输数据量与所述缓存数据量之和大于所述缓存空间的容量,则从所述第二终端接收C1帧数据,其中,所述C1为所述缓存空间的容量与所述缓存数据量之差;将所述C1帧数据存储于所述缓存空间,并更新所述缓存数据量。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
另外,图4所示的数据传输装置可以是内置于现有的终端设备内的软件单元、硬件单元、或软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中,还可以作为独立的终端设备存在。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图5是本申请实施例提供的终端设备的结构示意图。如图5所示,该实施例的终端设备5包括:至少一个处理器50(图5中仅示出一个)处理器、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个数据处理方法实施例中的步骤。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图5仅仅是终端设备5的举例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),该处理器50还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51在一些实施例中可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51在另一些实施例中也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据传输方法,其特征在于,应用于第一终端,所述第一终端用于将从第二终端接收到的数据存储到所述第一终端的缓存空间内、并将所述缓存空间内存储的数据发送到第三终端,所述方法包括:
当监测到第一指令时,获取目标传输量,所述目标传输量表示所述第三终端向所述第一终端请求获取数据的大小;
若所述目标传输量大于缓存数据量,则根据所述目标传输量和所述缓存数据量确定理论传输时间,其中,所述缓存数据量为所述第一终端的缓存空间内已存储数据的大小,所述理论传输时间表示向所述第三终端发送所述目标传输量的数据所需的理论时长;
在所述理论传输时间的范围内,根据所述目标传输量和所述缓存数据量向所述第三终端发送数据。
2.如权利要求1所述的数据传输方法,其特征在于,所述根据所述目标传输量和所述缓存数据量确定理论传输时间,包括:
获取所述第一终端与所述第二终端之间的通讯参数;
计算所述目标传输量和所述缓存数据量之间的数据量差值;
根据所述通讯参数和所述数据量差值确定所述理论传输时间。
3.如权利要求2所述的数据传输方法,其特征在于,所述通讯参数包括波特率和每帧数据包含的数据位数;
所述根据所述通讯参数和所述数据量差值确定所述理论传输时间,包括:
根据所述波特率和所述每帧数据包含的数据位数计算所述第一终端与所述第二终端之间的单位传输时间,所述单位传输时间表示传输每帧数据所需的时间;
根据所述单位传输时间和所述数据量差值确定所述理论传输时间。
4.如权利要求3所述的数据传输方法,其特征在于,所述通讯参数还包括容差时间;
所述根据所述单位传输时间和所述数据量差值确定所述理论传输时间,包括:
根据所述数据量差值和所述单位传输时间计算第一传输时间;
根据所述第一传输时间和所述容差时间计算所述理论传输时间。
5.如权利要求1至4任一项所述的数据传输方法,其特征在于,所述在所述理论传输时间的范围内,根据所述目标传输量和所述缓存数据量向所述第三终端发送数据,包括:
在所述理论传输时间的范围内,当监测到第二指令时,获取当前的实际传输量和所述缓存数据量,所述实际传输量表示所述第一终端向所述第三终端已传输的数据的大小;
根据所述目标传输量和所述实际传输量计算剩余传输量;
若所述剩余传输量小于或等于所述缓存数据量,则将所述缓存空间中前M帧数据发送给所述第三终端,更新所述缓存数据量,并停止数据传输,所述M为所述剩余传输量;
若所述剩余传输量大于所述缓存数据量,则将所述缓存空间中的Q帧数据发送给所述第三终端,更新所述缓存数据量,并继续监测所述第二指令,所述Q为所述缓存数据量。
6.如权利要求1所述的数据传输方法,其特征在于,在根据所述目标传输量和所述缓存数据量计算理论传输时间之后,所述方法还包括:
当超出所述理论传输时间的范围时,判断当前的实际传输量是否达到所述目标传输量,其中,所述实际传输量表示所述第一终端向所述第三终端已传输的数据的大小;
若所述实际传输量未达到所述目标传输量,则向所述第三终端发送预设超时信息,并重新监测所述第一指令。
7.如权利要求1所述的数据传输方法,其特征在于,在获取目标传输量之后,所述方法还包括:
若所述目标传输量小于或等于所述缓存数据量,则将所述缓存空间中前N帧数据发送给所述第三终端,其中,所述N为所述目标传输量。
8.如权利要求1所述的数据传输方法,其特征在于,所述方法还包括:
当监测到第三指令时,获取待传输数据量,所述待传输数据量为所述第二终端向所述第一终端请求发送数据的大小;
若所述待传输数据量与所述缓存数据量之和大于所述缓存空间的容量,则从所述第二终端接收C1帧数据,其中,所述C1为所述缓存空间的容量与所述缓存数据量之差;
将所述C1帧数据存储于所述缓存空间,并更新所述缓存数据量。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的方法。
CN202110459035.1A 2021-04-27 2021-04-27 数据传输方法、装置、终端设备及计算机可读存储介质 Active CN113157625B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110459035.1A CN113157625B (zh) 2021-04-27 2021-04-27 数据传输方法、装置、终端设备及计算机可读存储介质
PCT/CN2022/080801 WO2022227895A1 (zh) 2021-04-27 2022-03-15 数据传输方法、装置、终端设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110459035.1A CN113157625B (zh) 2021-04-27 2021-04-27 数据传输方法、装置、终端设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113157625A CN113157625A (zh) 2021-07-23
CN113157625B true CN113157625B (zh) 2023-12-19

Family

ID=76871350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110459035.1A Active CN113157625B (zh) 2021-04-27 2021-04-27 数据传输方法、装置、终端设备及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN113157625B (zh)
WO (1) WO2022227895A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157625B (zh) * 2021-04-27 2023-12-19 百富计算机技术(深圳)有限公司 数据传输方法、装置、终端设备及计算机可读存储介质
CN114785452A (zh) * 2022-03-16 2022-07-22 浙江万胜智能科技股份有限公司 一种融合终端usb多通道数据传输方法
CN114691392A (zh) * 2022-03-28 2022-07-01 声呐天空资讯顾问有限公司 终端的信息传输方法及装置、存储介质及终端
CN115242350B (zh) * 2022-06-30 2024-01-02 科华数据股份有限公司 电力装置的通信方法、电力装置及存储介质
CN115426318B (zh) * 2022-11-04 2023-03-24 深圳市湘凡科技有限公司 优化数据传输方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107529065A (zh) * 2017-08-31 2017-12-29 广州酷狗计算机科技有限公司 多媒体数据缓存方法、装置及计算机可读存储介质
WO2019095416A1 (zh) * 2017-11-16 2019-05-23 平安科技(深圳)有限公司 信息推送方法、装置、终端设备及存储介质
CN111722940A (zh) * 2020-05-22 2020-09-29 百富计算机技术(深圳)有限公司 基于异步串口的消息传输方法、终端设备及传输系统
CN112199052A (zh) * 2020-11-04 2021-01-08 江苏特思达电子科技股份有限公司 一种文件下载方法、装置及计算机设备
CN112532592A (zh) * 2020-11-12 2021-03-19 湖南强智科技发展有限公司 一种数据传输方法、装置及计算机存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7017112B2 (ja) * 2018-03-29 2022-02-08 富士通株式会社 誤差補正方法、分散処理システムおよび情報処理装置
CN110831061B (zh) * 2018-08-10 2023-01-20 中兴通讯股份有限公司 调度吞吐量的获取方法及装置、基站、存储介质
CN113157625B (zh) * 2021-04-27 2023-12-19 百富计算机技术(深圳)有限公司 数据传输方法、装置、终端设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107529065A (zh) * 2017-08-31 2017-12-29 广州酷狗计算机科技有限公司 多媒体数据缓存方法、装置及计算机可读存储介质
WO2019095416A1 (zh) * 2017-11-16 2019-05-23 平安科技(深圳)有限公司 信息推送方法、装置、终端设备及存储介质
CN111722940A (zh) * 2020-05-22 2020-09-29 百富计算机技术(深圳)有限公司 基于异步串口的消息传输方法、终端设备及传输系统
CN112199052A (zh) * 2020-11-04 2021-01-08 江苏特思达电子科技股份有限公司 一种文件下载方法、装置及计算机设备
CN112532592A (zh) * 2020-11-12 2021-03-19 湖南强智科技发展有限公司 一种数据传输方法、装置及计算机存储介质

Also Published As

Publication number Publication date
CN113157625A (zh) 2021-07-23
WO2022227895A1 (zh) 2022-11-03

Similar Documents

Publication Publication Date Title
CN113157625B (zh) 数据传输方法、装置、终端设备及计算机可读存储介质
CN112214166B (zh) 用于传输数据处理请求的方法和装置
CN113852563B (zh) 报文数据传输方法、装置、终端设备及可读存储介质
CN107135088B (zh) 云计算系统中处理日志的方法和装置
WO2001040960A1 (en) Fifo-based network interface supporting out-of-order processing
CN111641566B (zh) 数据处理的方法、网卡和服务器
US20170289066A1 (en) Facilitating communication of data packets using credit-based flow control
CN115934625B (zh) 一种用于远程直接内存访问的敲门铃方法、设备及介质
CN111352888A (zh) 异步收发器的中断信号产生方法及装置
US10305772B2 (en) Using a single work item to send multiple messages
US20100312924A1 (en) Network processor, reception controller and data reception processing method performing direct memory access transfer
WO2011059574A2 (en) Directly providing data messages to a protocol layer
WO2021057068A1 (zh) Rdma数据流控方法、系统、电子设备及可读存储介质
CN116303173A (zh) 减少rdma引擎片上缓存的方法、装置、系统及芯片
CN111404842A (zh) 数据传输方法、装置及计算机存储介质
CN113490154B (zh) 广播数据传输方法、装置、终端设备及存储介质
CN114338270A (zh) 数据通信方法、装置、电子设备及存储介质
CN114553776A (zh) 一种信号乱序控制与速率自适应的传输装置及其传输方法
CN113300967A (zh) Rdma网络传输方法、装置以及rdma网络通信系统
US20190236857A1 (en) On-vehicle relay device, relay device, relaying method, information processing device, information processing system, and vehicle
CN115599574B (zh) 图形处理系统、电子组件、电子设备及信息处理方法
CN113055350A (zh) 数据传输方法、装置、设备及可读存储介质
CN112566082B (zh) 数据传输方法、装置、设备及介质
CN115002527B (zh) 数据传输优化方法、装置、设备及存储介质
CN111083063B (zh) 一种动态调整下发压力的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant