本发明涉及数据传输技术领域,尤其涉及一种避免因数据丢失而影响统计准确性的数据传输方法和系统。
背景技术:
目前,模块间数据通讯和无线通讯等涉及到2个设备通讯的产品,因通讯频率、通讯数据量、通讯模块故障及通讯信号弱(无线通讯)等问题,均会出现不等量的数据丢失,这样会导致我们数据接收方在对数据进行累计、计算时会因数据丢失导致统计出来的结果跟发送方统计出来的结果存在误差甚至出现接收方数据根本无法处理的问题。并且在数据传输通讯中,实际的数据发送方到数据接收方之间可能存在2-n级的数据通讯转发模块或系统,由此导致的数据丢失将会更加严重。
但是,目前的处理方法均是在防止数据丢失的方面上进行解决。或者涉及到不重要的数据,或者只要丢失率在接收范围内就会容忍数据丢失造成的误差。
技术实现要素:
针对上述问题,本发明旨在提供一种避免因数据丢失而影响统计准确性的数据传输方法和系统,以避免因数据间通讯异常而导致数据丢失,从而引起的数据统计正确性下降的问题。
具体方案如下:
一种避免因数据丢失而影响统计准确性的数据传输方法,其特征在于,具体为:设定发送模块当前时刻待发送的数据为:当前时刻采集的数据t与当前时刻之前采集的数据和t(n-1)之和t(n),接收模块接收发送模块发送的数据t(n),并根据接收到的数据计算当前时刻采集的数据为:当前时刻接收的数据与上一时刻接收的数据之差,即t=t(n)-t(n-1)。
一种避免因数据丢失而影响统计准确性的数据传输系统,包括数据采集模块、数据发送模块、通讯介质和数据接收模块,其中,数据采集模块用于采集数据,数据发送模块接收和处理数据采集模块采集的数据后根据本发明上述实施例的方法发送出去,通讯介质为数据发送模块至数据接收模块过程中经过的介质,数据接收模块根据本发明上述实施例的方法进行数据接收。
进一步的,所述通讯介质为有线通讯介质和/或无线通讯介质。
进一步的,所述通讯介质为串口uart、i2c、usb、can、tcp、udp、ftp中的一种或多种组合。
本发明采用如上技术方案,可以完全避免因数据间通讯异常而导致数据丢失,从而引起的数据统计正确性下降的问题。
附图说明
图1所示为本发明实施例中传统的数据发送结构示意图。
图2所示为本发明实施例的数据发送结构示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
本发明实施例提供了一种避免因数据丢失而影响统计准确性的数据传输方法,具体为:
设定发送模块当前时刻待发送的数据为:当前时刻采集的数据t与当前时刻之前采集的数据和t(n-1)之和t(n),接收模块接收发送模块发送的数据,并根据接收到的数据计算当前时刻采集的数据为:当前时刻接收的数据与上一时刻接收的数据之差,即t=t(n)-t(n-1)。
上述方法可以通过下述的系统来实现:
该系统包括:数据采集模块、数据发送模块、通讯介质和数据接收模块,各模块的功能和作用如下:
(1)数据采集模块:数据来源,用于进行数据采集。
(2)数据发送模块:将数据采集模块采集的数据进行相关处理后发送出去。
(3)通讯介质:上一级模块到下一级模块间数据传输经过的介质,如串口uart、i2c、usb、can等有线通讯介质;或者如tcp、udp、ftp等无线通讯介质。所述通讯介质可以为1级,也可以为多级,当为多级时,可以为多种通讯介质搭配使用。
(4)数据接收模块:接收数据。
传统的数据发送结构如图1所示;本实施例方法中数据发送结构如图2所示。
数据发送模块所采用的算法为:差额累加法,具体为:设定当前采集的数据为data,上一时刻发送的数据为totaldata,则当前时刻待发送数据为:senddata=data totaldata。
下面进行举例说明:
车辆的瞬时油耗数据算法为:
其中:fconta:统计油耗(l);
a:某一时刻从总线采集的数值;
t:从上一次清零开始的时间(ms);
该油耗发送速率为200ms一条;
那么按照传统的数据发送逻辑,接收模块接收到的每一条数据都是当前时间片(200ms)内燃烧掉的油耗量,如果需要计算从发送第一条瞬时油耗量到当前时间点的总油耗,那么只需直接用累加方法计算,则总油耗为:
total_oil=t0 t1 t2 t3 ... t(n-500) ... t(n-300) ... t(n-2) t(n-1) t(n);
但是,在数据传输过程中,如果某些数据由于通讯异常而丢失,即:t(n-500) ... t(n-300)之间的数据已经丢失。那么计算出来的总油耗为:
total_oil=t0 t1 t2 t3 ... t(n-501) t(n-299) ... t(n-2) t(n-1) t(n)<tn
那么接收模块接收到的总油耗将小于实际油耗消耗总和。
但是,如果使用本实施例中的数据传输方法来传输数据。那么每一时刻发送模块发送的油耗数据为:
t0=t0;
t1=t0 t1;
t2=t0 t1 t2;
tn=t0 ... tn;
那么总油耗应为:
total_oil=t0 (t1-t0) (t2-t1) (t3-t2) ... [tn-t(n-1)]
=t0 t1 t2 t3 ... t(n-500) ... t(n-300) ... t(n-2) t(n-1)
t(n)=tn
如果在数据传输过程中,t(n-500) ... t(n-300)之间的数据已丢失。
那么按照本实施例中的算法,实际总油耗应为:
total_oil=t0 (t1-t0) (t2-t1) ... [t(n-501)-t(n-502)] [t(n-500)-t(n-501)]
... [t(n-299)-t(n-300)] [t(n-298)-t(n-299)] ... [tn-t(n-1)]
=t0 t1-t0 t2-t1 ... t(n-501)-t(n-502) t(n-500)-t(n-501) ... t(n
-299)-t(n-300) (t(n-298)-t(n-299)) ... [tn-t(n-1)]
=tn
=t0 t1 t2 t3 ... t(n-2) t(n-1) t(n)
从此计算结果可看出,总油耗量并没有因为数据丢失而失去其准确性。
本发明实施例所述的方法可以完全避免因数据间通讯异常而导致数据丢失,从而引起的数据统计正确性下降的问题。在统计车辆总油耗时完全避免了因数据丢失导致设备统计的总油耗与实际油耗误差过大的问题。另外,不仅仅适用于硬件设备上的油耗统计方面,也包括:手机app与后台服务器关于统计步数的应用、银行atm存储金额入账与后台服务器数据统计等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出的各种变化,均为本发明的保护范围。
1.一种避免因数据丢失而影响统计准确性的数据传输方法,其特征在于,具体为:
设定发送模块当前时刻待发送的数据为:当前时刻采集的数据t与当前时刻之前采集的数据和t(n-1)之和t(n),接收模块接收发送模块发送的数据t(n),并根据接收到的数据计算当前时刻采集的数据为:当前时刻的接收数据与上一时刻的接收数据之差,即t=t(n)-t(n-1)。
2.一种避免因数据丢失而影响统计准确性的数据传输系统,其特征在于:包括数据采集模块、数据发送模块、通讯介质和数据接收模块,其中,数据采集模块用于采集数据,数据发送模块接收数据采集模块采集的数据后根据权利要求1所述的方法发送出去,通讯介质为数据发送模块至数据接收模块过程中经过的介质,数据接收模块根据权利要求1所述的方法进行数据接收。
3.根据权利要求2所述的系统,其特征在于:所述通讯介质为有线通讯介质和/或无线通讯介质。
4.根据权利要求3所述的系统,其特征在于:所述通讯介质为串口uart、i2c、usb、can、tcp、udp、ftp中的一种或多种组合。
技术总结