首页 / 专利库 / 银行与财务事项 / 票据交换所 / 一种对加油量数据统计及加油量数据异常进行过滤的方法

一种对加油量数据统计及加油量数据异常进行过滤的方法

阅读:814发布:2020-05-12

专利汇可以提供一种对加油量数据统计及加油量数据异常进行过滤的方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种对加油量数据统计及加油量数据异常进行过滤的方法,所述方法为将采集到的剩油量数据,结合车辆运行数据进行统计分析,分析在加油或偷油时,车辆的速度为0,以及加油的时长不超过半个小时,来获得出加油量数据,并且自动滤掉由于车辆运行过程中因 波动 而采集到不准确的剩油量信息;本发明提高加油量数据统计的准确性。,下面是一种对加油量数据统计及加油量数据异常进行过滤的方法专利的具体信息内容。

1.一种对加油量数据统计及加油量数据异常进行过滤的方法,其特征在于:所述方法为将采集到的剩油量数据,结合车辆运行数据进行统计分析,分析在加油或偷油时,车辆的速度为0,以及加油的时长不超过半个小时,来获得出加油量数据,并且自动滤掉由于车辆运行过程中因波动而采集到不准确的加油量信息;所述方法具体为:
把油量采集器采集到的剩油量数据结合车载机采集到的车辆行车信息一同上传到一远程服务器
从远程服务器中取出收集到的数据,进行统计分析,获得加油量信息;获得的加油量信息,与录入到远程服务器的加油票据的信息进行判断比对,将相近与相差较大的加油数据进行区分标记;
所述统计分析步骤如下:
步骤1、初始化一比对集合,所述比对集合用来存储比对的过程数据;初始化一加油集合和一异常油耗集合;初始化一时间标记,所述时间标记用来记录加油起始时间;初始化一加油标记、一异常耗油标记、及是否持续异常耗油标记;初始化一异常假标记,所述异常假标记用来记录假的异常耗油;初始化一临时开始时间,所述临时开始时间是用来记录预先开始加油时间,该临时开始时间是一个交换变量;
步骤2、对收集的数据进行循环遍历,将当前收集的一条数据放入比对集合中,然后对比对集合中的数据进行比对判断;
步骤3、判断比对集合中的数据条数是否大于等于两条,如果小于,则跳到步骤2,否则取出比对集合中第一条数据赋值给对象A,取出倒数第二个数据赋值给对象B,取出最后一个数据赋值给对象C,判断对象C中的剩油量数据与B中的剩油量数据的关系来获得加油量数据信息,并对异常耗油的加油量数据信息进行过滤;
所述判断对象C中的剩油量数据与B中的剩油量数据的关系来获得加油量数据信息,并对异常耗油的加油量数据信息进行过滤,具体为:
当C中的剩油量数据大于B中的剩油量数据时:清空临时开始时间,判断加油标记是否为加油,
不是为加油;
则判断异常耗油标记是否为异常,否,把比对集合中的数据加入加油集合,并将加油标记标记为加油,清空比对集合,只保留最后一条数据;是,判断异常耗油集合中的异常油量是否小于比对集合中的油量差的两倍,
是差的两倍,则清空加油集合及加油标记;判断异常耗油集合中的异常油量是否小于比对集合中的油量差的三分之一;是差的三分之一,则把比对集合中的数据存入加油集合,并将加油标记标标记为加油,且清空异常耗油集合及异常耗油标记,清空比对集合只保留最后一条数据;不是差的三分之一,则清空异常耗油集合及异常耗油标记,清空比对集合只保留最后一条数据;
不是差的两倍,则判断比对集合中的第一条数据与最后一条数据的时间间隔是否大于两分钟,不大于两分钟,则把比对集合中的数据添加到加油集合,清空比对集合,只保留最后一条数据;是大于两分钟,则判断异常耗油集合中的异常油量是否超过5L,并且不是假的异常数据;否,则清空加油集合及加油标记,清空异常集合及异常耗油标记,清空异常假标记,清空比对集合,只保留最后一条数据;是,保存异常耗油数据,且清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空异常假标记,清空比对集合,只保留最后一条数据;
是为加油;则判断异常耗油标记是否标记为异常,否,把比对集合中的最后一条数据存入加油集合,清空比对集合,只保留最后一条数据;是,判断是否持续异常耗油标记是否为真,
是否持续异常耗油标记为真,则取出加油集合中的数据计算出加油量,再取出异常集合中的数据计算异常量;判断异常油量是否大于加油量的一半;
是大于加油量的一半,则判断异常油量是否大于加油量1.5倍,否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否
持续异常耗油标记;是,判断异常油量值是否大于5升,否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否持续异常耗油标记;是,则保存异常油量信息,并清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否持续异常耗油标记;
不是大于加油量的一半,清空异常耗油集合及异常耗油标记,判断加油集合中的加油量是否在5L到20L之间;否,则保存加油数据,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则遍历加油集合中的数据,取出相邻两条数据油量变化大于3L的数据及后面的数据,把加油集合清空,把刚取出的数据赋值给加油集合;判断加油集合中的数据是否超过1条,否,则清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则判断加油集合中第一条数据的车速及该条数据的前条数据的车速,是否都为0,否,则清空加油集合及加油标记,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则判断加油集合中最后一条数据的时间与第一条数据的时间差是否超过半个小时,是,则不进行操作,否,则保存加油量信息,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;并清空比对集合,把最后一条数据放入比对集合,清空是否持续异常耗油标记;并进入加油集合添加比对集合中最后一条数据的环节;
是否持续异常耗油标记不为真,则加油集合添加比对集合中最后一条数据;
判断加油集合中的加油量是否大于异常耗油集合中的异常量的一半,
是一半,则判断异常耗油集合中的异常油量的1.5倍是否大于加油集合中的加油量,是,则清空加油集合,清空加油标记,并清空异常耗油集合,清空异常耗油标记,清空比对集合,只保留最后一条数据;否,则清空异常耗油集合,清空异常耗油标记,清空比对集合,只保留最后一条数据;
不是一半,则判断加油集合中的最后一条数据与第一条数据的时间差是否超过2分钟,否,则清空比对集合,只保存最后一条数据;是,则清空异常耗油集合,清空加油集合,清空异常耗油标记,清空加油标记,并清空比对集合,只保存最后一条数据;
当C中的剩油量数据小于B中的剩油量数据时:清空临时开始时间,判断异常耗油标记是否异常,
不为异常,则判断加油标记是否为真,
加油标记不为真,则判断比对集合头尾油差是否超过15L,否,则清空比对集合,其只保留最后一条记录;是,则把比对集合中的数据加入到异常耗油集合、标记为异常;且清空比对集合,其只保留最后一条记录;
加油标记为真,判断异常耗油集合的油量是否大于加油集合的油量的一半,不为一半,则判断比对集合中头尾数据时间间隔是否超过2分钟,否,比对集合数据加入异常集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为真;是,则判断加油集合中的油量是否在3L到20L之间,是,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;否,则保存加油信息,清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
为一半,则判断异常耗油集合的油量是否大于加油集合的油量的3倍,
不为3倍,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,判断比对集合中的最后两条数据的油量差是否大于15L并且之前的加油集合中的油量是否大于3L;
否,则清空比对集合,其只保留最后一条数据;是,则把比对集合中的数据加入异常耗油集合,并标记为异常,异常假标记置为真,并清空比对集合,其只保留最后一条数据;
为3倍,则判断异常耗油集合的油量是否大于15L,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据,是,则把比对集合中的数据加入到异常耗油集合中,标记为异常,是否持续异常耗油标记标记为空,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
是异常,则判断加油标记是否加油,
不为加油,则判断比对集合中最后一条数据的速度是否为0,是,则将该数据加入异常耗油集合,否,则判断异常耗油集合中油量是否大于5L,否,则清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;是,则把异常耗油集合中速度不为0的数据过滤掉,判断异常耗油集合中油量大于5L,且异常假标记为空,否,则清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;是,则保存异常信息,并清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;
为加油,则判断是否持续异常耗油标记是否为真,
不为真,判断加油集合中的油量是否大于异常耗油集合中油量的一半,是,则清空加油集合及加油标记,清空异常耗油集合及异常标记,异常假标记置空,把比对集合数据加入异常耗油集合,清空比对集合,其只保留最后一条数据;否,则清空加油集合及加油标记;判断异常耗油集合中的油量是否大于5L;
是大于5L,则判断是否持续异常耗油标记是否为真,是,则不进行操作,否,则把异常耗油集合中速度不为0的数据过滤掉,判断异常耗油集合数据超过一条且油量大于5L且异常假标记为空;否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,异常假标记置空,将比对集合数据加入异常耗油集合,并标记为异常,清空比对集合,其只保留最后一第数据;是,则保存异常信息,并清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,异常假标记置空,将比对集合数据加入异常耗油集合,并标记为异常,清空比对集合,其只保留最后一条数据;
不是大于5L,则清空异常耗油集合、异常耗油标记、异常假标记,判断比对集合中最后两条数据的油量差是否大于15L,否,则清空比对集合,其只保留最后一条数据,是,则把比对集合中的数据加入到异常耗油集合,标记为异常,并标记为异常假标记,并清空比对集合,其只保留最后一条数据;
为真,把比对集合中最后一条数据加入异常耗油集合,判断异常耗油集合中的异常油量是否大于加油集合中的油量的一半,
是一半,判断异常耗油集合中的异常油量是否大于加油集合中的油量的1.5倍,是,则清空加油集合及加油标记,清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置空;否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,判断比对集合的最后两条数据的油量差是否大于15L,否,则清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为空,是,则把比对集合中的数据加到异常耗油集合中,并设置异常耗油标记为异常,且假异常标记设置为真,并清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为空;进入判断加油标记与异常耗油标记同时为真的环节;
不是一半,判断加油标记与异常耗油标记同时为真,判断异常耗油集合中最后一条与第一条数据的时间差是否大于4分钟,否,不进行操作,是,则清空异常耗油集合及异常耗油标记,设置假异常标记为空,清空比对集合,只保留最后一条数据;判断加油集合中的加油量是否在5L与20L之间;
不在5L与20L之间,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
在5L与20L之间,则遍历加油集合,把相邻两条数据的油量差值小于3L的前一条数据过滤掉,判断加油集合中数据条数是否超过一条,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则判断加油集合中第一条数据的速度是否为0,且该条数据的上一条数据的速度是否也为0;不为0,则清空加油集合及加油标记;判断加油集合中数据条数是否超过一条;为0,则判断加油集合中数据条数是否超过一条;否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则判断加油集合中头尾两条数据的时间差是否小于半小时,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
当C中的剩油量数据等于B中的剩油量数据时:判断临时开始时间是否为空,否,开始时间为临时开始时间,结束时间为比对集合中最后一条数据的时间;是,开始时间设为比对集合中第一条数据时间,结束时间为比对集合中最后一条数据时间;进行判断开始时间和结束时间两者时间差是否超过两分钟;
不超过两分钟,则判断临时开始时间是否为空并且有加油标记或异常耗油标记,是,临时开始时间设置为对比集合中的第一条数据的时间;否,判断是否有加油或者有异常耗油;
否,清空比对集合,比对集合只保留最后一条数据,是,如果既有加油,又有异常耗油,则根据加油集合和异常油耗集合两个集合中最后一条数据的时间哪个更靠后,把比对集合中最后一条数据加到相应的集合中;如果只有加油,没有异常耗油,则把比对集合中的最后一条数据存入加油集合,如果只有异常耗油没有加油,则把数据存入异常耗油集合,且清空比对集合,比对集合只保留最后一条数据;
超过两分钟,则分别判断是否有加油,是否有异常耗油,
判断是否加油,否,则不进行操作,是,则判断加油集合中的油量是否在3L到20L之间;
是在3L到20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记;是在3L到20L之间,则保存加油信息,并清空加油集合及加油标记;
判断是否异常耗油,否,则不进行操作,是,则判断异常耗油集合中油量是否超过5L,没超过5L,则不进行操作,超过5L,把异常耗油集合中车速不为0的数据过滤掉,判断异常油量是否超过5L,并且异常假标记为空,则保存异常信息,清空异常耗油集合及异常耗油标记;
分别判断完是否有加油,是否有异常耗油后,清空比对集合,其比对集合只保留最后一条数据,临时开始时间置空,是否持续异常耗油标记置空;
当循环遍历到最后一条数据时:判断加油标记为真且异常耗油标记为真,
不是,
则判断加油标记为真且异常耗油标记为空,
是为真且为空,则判断加油集合中的油量是否在3L与20L之间;是3L与20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息;并清空加油集合及加油标记;不是3L与20L之间,则保存加油信息,并清空加油集合及加油标记;
是为真且不是为空,则判断异常耗油标记为真且加油标记为空,否,则不进行操作,是,则判断异常假标记是否为真,否,则不进行操作,是,则判断异常集合中油量是否超过5L,否,则不进行操作,是,则把异常集合中车速不为0的数据过滤掉,判断异常油量是否超过
5L,并且异常假标记为空,则保存异常信息,清空异常集合及异常耗油标记;
是,
则取出加油集合中最后一条数据的时间,取出异常耗油集合中最后一条数据的时间;
判断加油时间是否比异常时间早,
是早,则清空异常耗油集合及异常耗油标记,将异常假标记置为空;判断加油集合中的油量是否在3L与20L之间;是3L与20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记;不是在3L与20L之间,保存加油信息,并清空加油集合及加油标记;
不是早,则清空加油集合及加油标记,判断异常耗油集合中油量是否超过5L,否,则不进行操作,是,则把异常耗油集合中车速不为0的数据过滤掉,判断异常油量是否超过5L,并且异常假标记为空,则保存异常信息,清空异常耗油集合及异常耗油标记。

说明书全文

一种对加油量数据统计及加油量数据异常进行过滤的方法

技术领域

[0001] 本发明涉及车联网技术领域,尤其涉及一种对加油量数据统计及加油量数据异常进行过滤的方法。

背景技术

[0002] 目前我国交通运输业得到了迅速发展,车辆运输企业也在不断增加,竞争压也就越大,为了降低成本,就要对车辆的日常损耗进行管控,其中就包含对车辆用油的管理,但是针对普遍的虚开发票、偷油卖油的现象,很难做到自动化管理比对,来达到监管目的。
[0003] 现有技术中公开了“一种加油统计方法及系统”见公开号为:105574485A,公开日为:2014-12-17的中国专利,该发明提供一种加油统计方法,包括:一车载无线数据传输设备接收车辆CAN信息,并传输所述车辆CAN信息至一智能通讯终端;其中,车辆点火时,所述CAN信息包括点火时间,当前总里程和剩余燃油;车辆熄火时,所述CAN信息包括熄火时间、本次里程、本次里程耗油、当前总里程和剩余燃油;所述智能通讯终端在连接网络的情况下,将所述后台服务器历遍所述CAN信息,若后一次剩余燃油大于前一次剩余燃油,则判定发生加油,差值为加油量,该时为加油时间。但在车载领域不适用,车辆在不熄火的情况下,可以进行偷油,导致加油量统计不准确,无法监控偷油现象。只有通过密集的周期性采集行车数据及油量数据,并对采集数据进行分析统计,才能对行车中油量变化进行有效准确监管。与本专利申请的技术方案并不相同,且解决的技术问题也不同。

发明内容

[0004] 本发明要解决的技术问题,在于提供一种对加油量数据统计及加油量数据异常进行过滤的方法,提高加油量数据统计的准确性。
[0005] 本发明是这样实现的:一种对加油量数据统计及加油量数据异常进行过滤的方法,所述方法为将采集到的剩油量数据,结合车辆运行数据进行统计分析,分析在加油或偷油时,车辆的速度为0,以及加油的时长不超过半个小时,来获得出加油量数据,并且自动滤掉由于车辆运行过程中因波动而采集到不准确的剩油量信息。
[0006] 进一步的,所述方法具体为:
[0007] 把油量采集器采集到的加油量数据结合车载机采集到的车辆行车信息一同上传到一远程服务器;
[0008] 从远程服务器中取出收集到的数据,进行统计分析,获得加油量信息;
[0009] 所述统计分析步骤如下:
[0010] 步骤1、初始化一比对集合,所述比对集合用来存储比对的过程数据;初始化一加油集合和一异常油耗集合;初始化一时间标记,所述时间标记用来记录加油起始时间;初始化一加油标记、一异常耗油标记、及是否持续异常耗油标记;初始化一异常假标记,所述异常假标记用来记录假的异常耗油;初始化一临时开始时间,所述临时开始时间是用来记录预先开始加油时间,该临时开始时间是一个交换变量;
[0011] 步骤2、对收集的数据进行循环遍历,将当前收集的一条数据放入比对集合中,然后对比对集合中的数据进行比对判断;
[0012] 步骤3、判断比对集合中的数据条数是否大于等于两条,如果小于,则跳到步骤2,否则取出比对集合中第一条数据赋值给对象A,取出倒数第二个数据赋值给对象B,取出最后一个数据赋值给对象C,判断对象C中的剩油量数据与B中的剩油量数据的关系来获得加油量数据信息,并对异常耗油的加油量数据信息进行过滤。
[0013] 进一步的,所述判断对象C中的剩油量数据与B中的剩油量数据的关系来获得加油量数据信息,并对异常耗油的加油量数据信息进行过滤,具体为:
[0014] 当C中的剩油量数据大于B中的剩油量数据时:清空临时开始时间,判断加油标记是否为加油,
[0015] 不是为加油;
[0016] 则判断异常耗油标记是否为异常,否,把比对集合中的数据加入加油集合,并将加油标记标记为加油,清空比对集合,只保留最后一条数据;是,判断异常耗油集合中的异常油量是否小于比对集合中的油量差的两倍,
[0017] 是差的两倍,则清空加油集合及加油标记;判断异常耗油集合中的异常油量是否小于比对集合中的油量差的三分之一;是差的三分之一,则把比对集合中的数据存入加油集合,并将加油标记标标记为加油,且清空异常耗油集合及异常耗油标记,清空比对集合只保留最后一条数据;不是差的三分之一,则清空异常耗油集合及异常耗油标记,清空比对集合只保留最后一条数据;
[0018] 不是差的两倍,则判断比对集合中的第一条数据与最后一条数据的时间间隔是否大于两分钟,不大于两分钟,则把比对集合中的数据添加到加油集合,清空比对集合,只保留最后一条数据;是大于两分钟,则判断异常耗油集合中的异常油量是否超过5L,并且不是假的异常数据;否,则清空加油集合及加油标记,清空异常集合及异常耗油标记,清空异常假标记,清空比对集合,只保留最后一条数据;是,保存异常耗油数据,且清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空异常假标记,清空比对集合,只保留最后一条数据;
[0019] 是为加油;则判断异常耗油标记是否标记为异常,否,把比对集合中的最后一条数据存入加油集合,清空比对集合,只保留最后一条数据;是,判断是否持续异常耗油标记是否为真,
[0020] 是否持续异常耗油标记为真,则取出加油集合中的数据计算出加油量,再取出异常集合中的数据计算异常量;判断异常油量是否大于加油量的一半;
[0021] 是大于加油量的一半,则判断异常油量是否大于加油量1.5倍,否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否持续异常耗油标记;是,判断异常油量值是否大于5升,否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否持续异常耗油标记;是,则保存异常油量信息,并清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否持续异常耗油标记;
[0022] 不是大于加油量的一半,清空异常耗油集合及异常耗油标记,判断加油集合中的加油量是否在5L到20L之间;否,则保存加油数据,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则遍历加油集合中的数据,取出相邻两条数据油量变化大于3L的数据及后面的数据,把加油集合清空,把刚取出的数据赋值给加油集合;判断加油集合中的数据是否超过1条,否,则清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则判断加油集合中第一条数据的车速及该条数据的前条数据的车速,是否都为0,否,则清空加油集合及加油标记,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则判断加油集合中最后一条数据的时间与第一条数据的时间差是否超过半个小时,是,则不进行操作,否,则保存加油量信息,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;并清空比对集合,把最后一条数据放入比对集合,清空是否持续异常耗油标记;并进入加油集合添加比对集合中最后一条数据的环节;
[0023] 是否持续异常耗油标记不为真,则加油集合添加比对集合中最后一条数据;
[0024] 判断加油集合中的加油量是否大于异常耗油集合中的异常量的一半,[0025] 是一半,则判断异常耗油集合中的异常油量的1.5倍是否大于加油集合中的加油量,是,则清空加油集合,清空加油标记,并清空异常耗油集合,清空异常耗油标记,清空比对集合,只保留最后一条数据;否,则清空异常耗油集合,清空异常耗油标记,清空比对集合,只保留最后一条数据;
[0026] 不是一半,则判断加油集合中的最后一条数据与第一条数据的时间差是否超过2分钟,否,则清空比对集合,只保存最后一条数据;是,则清空异常耗油集合,清空加油集合,清空异常耗油标记,清空加油标记,并清空比对集合,只保存最后一条数据;
[0027] 当C中的剩油量数据小于B中的剩油量数据时:清空临时开始时间,判断异常耗油标记是否异常,
[0028] 不为异常,则判断加油标记是否为真,
[0029] 加油标记不为真,则判断比对集合头尾油差是否超过15L,否,则清空比对集合,其只保留最后一条记录;是,则把比对集合中的数据加入到异常耗油集合、标记为异常;且清空比对集合,其只保留最后一条记录;
[0030] 加油标记为真,判断异常耗油集合的油量是否大于加油集合的油量的一半,[0031] 不为一半,则判断比对集合中头尾数据时间间隔是否超过2分钟,否,比对集合数据加入异常集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为真;是,则判断加油集合中的油量是否在3L到20L之间,是,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;否,则保存加油信息,清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
[0032] 为一半,则判断异常耗油集合的油量是否大于加油集合的油量的3倍,[0033] 不为3倍,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,判断比对集合中的最后两条数据的油量差是否大于15L并且之前的加油集合中的油量是否大于3L;否,则清空比对集合,其只保留最后一条数据;是,则把比对集合中的数据加入异常耗油集合,并标记为异常,异常假标记置为真,并清空比对集合,其只保留最后一条数据;
[0034] 为3倍,则判断异常耗油集合的油量是否大于15L,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据,是,则把比对集合中的数据加入到异常耗油集合中,标记为异常,是否持续异常耗油标记标记为空,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
[0035] 是异常,则判断加油标记是否加油,
[0036] 不为加油,则判断比对集合中最后一条数据的速度是否为0,是,则将该数据加入异常耗油集合,否,则判断异常耗油集合中油量是否大于5L,否,则清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;是,则把异常耗油集合中速度不为0的数据过滤掉,判断异常耗油集合中油量大于5L,且异常假标记为空,否,则清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;是,则保存异常信息,并清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;
[0037] 为加油,则判断是否持续异常耗油标记是否为真,
[0038] 不为真,判断加油集合中的油量是否大于异常耗油集合中油量的一半,是,则清空加油集合及加油标记,清空异常耗油集合及异常标记,异常假标记置空,把比对集合数据加入异常耗油集合,清空比对集合,其只保留最后一条数据;否,则清空加油集合及加油标记;判断异常耗油集合中的油量是否大于5L;
[0039] 是大于5L,则判断是否持续异常耗油标记是否为真,是,则不进行操作,否,则把异常耗油集合中速度不为0的数据过滤掉,判断异常耗油集合数据超过一条且油量大于5L且异常假标记为空;否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,异常假标记置空,将比对集合数据加入异常耗油集合,并标记为异常,清空比对集合,其只保留最后一第数据;是,则保存异常信息,并清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,异常假标记置空,将比对集合数据加入异常耗油集合,并标记为异常,清空比对集合,其只保留最后一条数据;
[0040] 不是大于5L,则清空异常耗油集合、异常耗油标记、异常假标记,判断比对集合中最后两条数据的油量差是否大于15L,否,则清空比对集合,其只保留最后一条数据,是,则把比对集合中的数据加入到异常耗油集合,标记为异常,并标记为异常假标记,并清空比对集合,其只保留最后一条数据;
[0041] 为真,把比对集合中最后一条数据加入异常耗油集合,判断异常耗油集合中的异常油量是否大于加油集合中的油量的一半,
[0042] 是一半,判断异常耗油集合中的异常油量是否大于加油集合中的油量的1.5倍,是,则清空加油集合及加油标记,清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置空;否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,判断比对集合的最后两条数据的油量差是否大于15L,否,则清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为空,是,则把比对集合中的数据加到异常耗油集合中,并设置异常耗油标记为异常,且假异常标记设置为真,并清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为空;进入判断加油标记与异常耗油标记同时为真的环节;
[0043] 不是一半,判断加油标记与异常耗油标记同时为真,判断异常耗油集合中最后一条与第一条数据的时间差是否大于4分钟,否,不进行操作,是,则清空异常耗油集合及异常耗油标记,设置假异常标记为空,清空比对集合,只保留最后一条数据;判断加油集合中的加油量是否在5L与20L之间;
[0044] 不在5L与20L之间,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
[0045] 在5L与20L之间,则遍历加油集合,把相邻两条数据的油量差值小于3L的前一条数据过滤掉,判断加油集合中数据条数是否超过一条,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则判断加油集合中第一条数据的速度是否为0,且该条数据的上一条数据的速度是否也为0;不为0,则清空加油集合及加油标记;判断加油集合中数据条数是否超过一条;为0,则判断加油集合中数据条数是否超过一条;否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则判断加油集合中头尾两条数据的时间差是否小于半小时,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
[0046] 当C中的剩油量数据等于B中的剩油量数据时:判断临时开始时间是否为空,否,开始时间为临时开始时间,结束时间为比对集合中最后一条数据的时间;是,开始时间设为比对集合中第一条数据时间,结束时间为比对集合中最后一条数据时间;进行判断开始时间和结束时间两者时间差是否超过两分钟;
[0047] 不超过两分钟,则判断临时开始时间是否为空并且有加油标记或异常耗油标记,是,临时开始时间设置为对比集合中的第一条数据的时间;否,判断是否有加油或者有异常耗油;否,清空比对集合,比对集合只保留最后一条数据,是,如果既有加油,又有异常耗油,则根据加油集合和异常油耗集合两个集合中最后一条数据的时间哪个更靠后,把比对集合中最后一条数据加到相应的集合中;如果只有加油,没有异常耗油,则把比对集合中的最后一条数据存入加油集合,如果只有异常耗油没有加油,则把数据存入异常耗油集合,且清空比对集合,比对集合只保留最后一条数据;
[0048] 超过两分钟,则分别判断是否有加油,是否有异常耗油,
[0049] 判断是否加油,否,则不进行操作,是,则判断加油集合中的油量是否在3L到20L之间;是在3L到20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记;是在3L到20L之间,则保存加油信息,并清空加油集合及加油标记;
[0050] 判断是否异常耗油,否,则不进行操作,是,则判断异常耗油集合中油量是否超过5L,没超过5L,则不进行操作,超过5L,把异常耗油集合中车速不为0的数据过滤掉,判断异常油量是否超过5L,并且异常假标记为空,则保存异常信息,清空异常耗油集合及异常耗油标记;
[0051] 分别判断完是否有加油,是否有异常耗油后,清空比对集合,其比对集合只保留最后一条数据,临时开始时间置空,是否持续异常耗油标记置空;
[0052] 当循环遍历到最后一条数据时:判断加油标记为真且异常耗油标记为真,[0053] 不是,
[0054] 则判断加油标记为真且异常耗油标记为空,
[0055] 是为真且为空,则判断加油集合中的油量是否在3L与20L之间;是3L与20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息;并清空加油集合及加油标记;不是3L与20L之间,则保存加油信息,并清空加油集合及加油标记;
[0056] 是为真且不是为空,则判断异常耗油标记为真且加油标记为空,否,则不进行操作,是,则判断异常假标记是否为真,否,则不进行操作,是,则判断异常集合中油量是否超过5L,否,则不进行操作,是,则把异常集合中车速不为0的数据过滤掉,判断异常油量是否超过5L,并且异常假标记为空,则保存异常信息,清空异常集合及异常耗油标记;
[0057] 是,
[0058] 则取出加油集合中最后一条数据的时间,取出异常耗油集合中最后一条数据的时间;判断加油时间是否比异常时间早,
[0059] 是早,则清空异常耗油集合及异常耗油标记,将异常假标记置为空;判断加油集合中的油量是否在3L与20L之间;是3L与20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记;不是在3L与20L之间,保存加油信息,并清空加油集合及加油标记;
[0060] 不是早,则清空加油集合及加油标记,判断异常耗油集合中油量是否超过5L,否,则不进行操作,是,则把异常耗油集合中车速不为0的数据过滤掉,判断异常油量是否超过5L,并且异常假标记为空,则保存异常信息,清空异常耗油集合及异常耗油标记。
[0061] 本发明具有如下优点:现有技术的做法,只能由人工通过展现的曲线图进行判断并计算加油量,再与收集到的加油票据进行判断,在车辆较多的时候,便会增加工作量,降低效率。通过本发明获得的加油量信息,与录入到平台的加油票据的信息进行判断比对,将相近与相差较大的加油数据进行区分标记,一目了然;提高加油量统计的准确性。附图说明
[0062] 图1为本发明的C中的剩油量数据大于B中的剩油量数据时进行处理的流程示意图。
[0063] 图2为本发明的C中的剩油量数据小于B中的剩油量数据时进行处理的流程示意图。
[0064] 图3为本发明的C中的剩油量数据等于B中的剩油量数据时进行处理的流程示意图。
[0065] 图4为本发明循环遍历到最后一条数据时进行处理的流程示意图。

具体实施方式

[0066] 请参阅图1至图4所示,本发明的一种对加油量数据统计及加油量数据异常进行过滤的方法,所述方法为将采集到的加油量数据,结合车辆运行数据进行统计分析,分析在加油或偷油时,车辆的速度为0,以及加油的时长不超过半个小时,来获得出加油量数据,并且自动滤掉由于车辆运行过程中因波动而采集到不准确的加油量信息。
[0067] 其中,所述方法具体为:
[0068] 把油量采集器采集到的加油量数据结合车载机采集到的车辆行车信息一同上传到一远程服务器;
[0069] 从远程服务器中取出收集到的数据,进行统计分析,获得加油量信息;
[0070] 所述统计分析步骤如下:
[0071] 步骤1、初始化一比对集合,所述比对集合用来存储比对的过程数据;初始化一加油集合和一异常油耗集合;初始化一时间标记,所述时间标记用来记录加油起始时间;初始化一加油标记、一异常耗油标记、及是否持续异常耗油标记;初始化一异常假标记,所述异常假标记用来记录假的异常耗油;初始化一临时开始时间,所述临时开始时间是用来记录预先开始加油时间,该临时开始时间是一个交换变量;
[0072] 步骤2、对收集的数据进行循环遍历,将当前收集的一条数据放入比对集合中,然后对比对集合中的数据进行比对判断;
[0073] 步骤3、判断比对集合中的数据条数是否大于等于两条,如果小于,则跳到步骤2,否则取出比对集合中第一条数据赋值给对象A,取出倒数第二个数据赋值给对象B,取出最后一个数据赋值给对象C,判断对象C中的剩油量数据与B中的剩油量数据的关系来获得加油量数据信息,并对异常耗油的加油量数据信息进行过滤。
[0074] 所述判断对象C中的剩油量数据与B中的剩油量数据的关系来获得加油量数据信息,并对异常耗油的加油量数据信息进行过滤,具体为:
[0075] 如图1所示,当C中的剩油量数据大于B中的剩油量数据时:清空临时开始时间,判断加油标记是否为加油,
[0076] 不是为加油;
[0077] 则判断异常耗油标记是否为异常,否,把比对集合中的数据加入加油集合,并将加油标记标记为加油,清空比对集合,只保留最后一条数据;是,判断异常耗油集合中的异常油量是否小于比对集合中的油量差的两倍,
[0078] 是差的两倍,则清空加油集合及加油标记;判断异常耗油集合中的异常油量是否小于比对集合中的油量差的三分之一;是差的三分之一,则把比对集合中的数据存入加油集合,并将加油标记标标记为加油,且清空异常耗油集合及异常耗油标记,清空比对集合只保留最后一条数据;不是差的三分之一,则清空异常耗油集合及异常耗油标记,清空比对集合只保留最后一条数据;
[0079] 不是差的两倍,则判断比对集合中的第一条数据与最后一条数据的时间间隔是否大于两分钟,不大于两分钟,则把比对集合中的数据添加到加油集合,清空比对集合,只保留最后一条数据;是大于两分钟,则判断异常耗油集合中的异常油量是否超过5L,并且不是假的异常数据;否,则清空加油集合及加油标记,清空异常集合及异常耗油标记,清空异常假标记,清空比对集合,只保留最后一条数据;是,保存异常耗油数据,且清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空异常假标记,清空比对集合,只保留最后一条数据;
[0080] 是为加油;则判断异常耗油标记是否标记为异常,否,把比对集合中的最后一条数据存入加油集合,清空比对集合,只保留最后一条数据;是,判断是否持续异常耗油标记是否为真,
[0081] 是否持续异常耗油标记为真,则取出加油集合中的数据计算出加油量,再取出异常集合中的数据计算异常量;判断异常油量是否大于加油量的一半;
[0082] 是大于加油量的一半,则判断异常油量是否大于加油量1.5倍,否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否持续异常耗油标记;是,判断异常油量值是否大于5升,否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否持续异常耗油标记;是,则保存异常油量信息,并清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,清空是否持续异常耗油标记;
[0083] 不是大于加油量的一半,清空异常耗油集合及异常耗油标记,判断加油集合中的加油量是否在5L到20L之间;否,则保存加油数据,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则遍历加油集合中的数据,取出相邻两条数据油量变化大于3L的数据及后面的数据,把加油集合清空,把刚取出的数据赋值给加油集合;判断加油集合中的数据是否超过1条,否,则清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则判断加油集合中第一条数据的车速及该条数据的前条数据的车速,是否都为0,否,则清空加油集合及加油标记,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;是,则判断加油集合中最后一条数据的时间与第一条数据的时间差是否超过半个小时,是,则不进行操作,否,则保存加油量信息,并清空加油集合,清空加油标记,把加油的最后两条数据保存到加油集合中,加油集合标记为加油;并清空比对集合,把最后一条数据放入比对集合,清空是否持续异常耗油标记;并进入加油集合添加比对集合中最后一条数据的环节;
[0084] 是否持续异常耗油标记不为真,则加油集合添加比对集合中最后一条数据;
[0085] 判断加油集合中的加油量是否大于异常耗油集合中的异常量的一半,[0086] 是一半,则判断异常耗油集合中的异常油量的1.5倍是否大于加油集合中的加油量,是,则清空加油集合,清空加油标记,并清空异常耗油集合,清空异常耗油标记,清空比对集合,只保留最后一条数据;否,则清空异常耗油集合,清空异常耗油标记,清空比对集合,只保留最后一条数据;
[0087] 不是一半,则判断加油集合中的最后一条数据与第一条数据的时间差是否超过2分钟,否,则清空比对集合,只保存最后一条数据;是,则清空异常耗油集合,清空加油集合,清空异常耗油标记,清空加油标记,并清空比对集合,只保存最后一条数据;
[0088] 如图2所示,当C中的剩油量数据小于B中的剩油量数据时:清空临时开始时间,判断异常耗油标记是否异常,
[0089] 不为异常,则判断加油标记是否为真,
[0090] 加油标记不为真,则判断比对集合头尾油差是否超过15L,否,则清空比对集合,其只保留最后一条记录;是,则把比对集合中的数据加入到异常耗油集合、标记为异常;且清空比对集合,其只保留最后一条记录;
[0091] 加油标记为真,判断异常耗油集合的油量是否大于加油集合的油量的一半,[0092] 不为一半,则判断比对集合中头尾数据时间间隔是否超过2分钟,否,比对集合数据加入异常集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为真;是,则判断加油集合中的油量是否在3L到20L之间,是,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;否,则保存加油信息,清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
[0093] 为一半,则判断异常耗油集合的油量是否大于加油集合的油量的3倍,[0094] 不为3倍,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,判断比对集合中的最后两条数据的油量差是否大于15L并且之前的加油集合中的油量是否大于3L;否,则清空比对集合,其只保留最后一条数据;是,则把比对集合中的数据加入异常耗油集合,并标记为异常,异常假标记置为真,并清空比对集合,其只保留最后一条数据;
[0095] 为3倍,则判断异常耗油集合的油量是否大于15L,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据,是,则把比对集合中的数据加入到异常耗油集合中,标记为异常,是否持续异常耗油标记标记为空,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
[0096] 是异常,则判断加油标记是否加油,
[0097] 不为加油,则判断比对集合中最后一条数据的速度是否为0,是,则将该数据加入异常耗油集合,否,则判断异常耗油集合中油量是否大于5L,否,则清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;是,则把异常耗油集合中速度不为0的数据过滤掉,判断异常耗油集合中油量大于5L,且异常假标记为空,否,则清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;是,则保存异常信息,并清空异常耗油集合、异常耗油标记、异常假标记,比对集合只保留最后一条数据;
[0098] 为加油,则判断是否持续异常耗油标记是否为真,
[0099] 不为真,判断加油集合中的油量是否大于异常耗油集合中油量的一半,是,则清空加油集合及加油标记,清空异常耗油集合及异常标记,异常假标记置空,把比对集合数据加入异常耗油集合,清空比对集合,其只保留最后一条数据;否,则清空加油集合及加油标记;判断异常耗油集合中的油量是否大于5L;
[0100] 是大于5L,则判断是否持续异常耗油标记是否为真,是,则不进行操作,否,则把异常耗油集合中速度不为0的数据过滤掉,判断异常耗油集合数据超过一条且油量大于5L且异常假标记为空;否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,异常假标记置空,将比对集合数据加入异常耗油集合,并标记为异常,清空比对集合,其只保留最后一第数据;是,则保存异常信息,并清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,异常假标记置空,将比对集合数据加入异常耗油集合,并标记为异常,清空比对集合,其只保留最后一条数据;
[0101] 不是大于5L,则清空异常耗油集合、异常耗油标记、异常假标记,判断比对集合中最后两条数据的油量差是否大于15L,否,则清空比对集合,其只保留最后一条数据,是,则把比对集合中的数据加入到异常耗油集合,标记为异常,并标记为异常假标记,并清空比对集合,其只保留最后一条数据;
[0102] 为真,把比对集合中最后一条数据加入异常耗油集合,判断异常耗油集合中的异常油量是否大于加油集合中的油量的一半,
[0103] 是一半,判断异常耗油集合中的异常油量是否大于加油集合中的油量的1.5倍,是,则清空加油集合及加油标记,清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置空;否,则清空加油集合及加油标记,清空异常耗油集合及异常耗油标记,判断比对集合的最后两条数据的油量差是否大于15L,否,则清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为空,是,则把比对集合中的数据加到异常耗油集合中,并设置异常耗油标记为异常,且假异常标记设置为真,并清空比对集合,比对集合只保留最后一条数据,是否持续异常耗油标记置为空;进入判断加油标记与异常耗油标记同时为真的环节;
[0104] 不是一半,判断加油标记与异常耗油标记同时为真,判断异常耗油集合中最后一条与第一条数据的时间差是否大于4分钟,否,不进行操作,是,则清空异常耗油集合及异常耗油标记,设置假异常标记为空,清空比对集合,只保留最后一条数据;判断加油集合中的加油量是否在5L与20L之间;
[0105] 不在5L与20L之间,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
[0106] 在5L与20L之间,则遍历加油集合,把相邻两条数据的油量差值小于3L的前一条数据过滤掉,判断加油集合中数据条数是否超过一条,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则判断加油集合中第一条数据的速度是否为0,且该条数据的上一条数据的速度是否也为0;不为0,则清空加油集合及加油标记;判断加油集合中数据条数是否超过一条;为0,则判断加油集合中数据条数是否超过一条;否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则判断加油集合中头尾两条数据的时间差是否小于半小时,否,则清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;是,则保存加油信息,并清空加油集合及加油标记,清空比对集合,其只保留最后一条数据;
[0107] 如图3所示,当C中的剩油量数据等于B中的剩油量数据时:判断临时开始时间是否为空,否,开始时间为临时开始时间,结束时间为比对集合中最后一条数据的时间;是,开始时间设为比对集合中第一条数据时间,结束时间为比对集合中最后一条数据时间;进行判断开始时间和结束时间两者时间差是否超过两分钟;
[0108] 不超过两分钟,则判断临时开始时间是否为空并且有加油标记或异常耗油标记,是,临时开始时间设置为对比集合中的第一条数据的时间;否,判断是否有加油或者有异常耗油;否,清空比对集合,比对集合只保留最后一条数据,是,如果既有加油,又有异常耗油,则根据加油集合和异常油耗集合两个集合中最后一条数据的时间哪个更靠后,把比对集合中最后一条数据加到相应的集合中;如果只有加油,没有异常耗油,则把比对集合中的最后一条数据存入加油集合,如果只有异常耗油没有加油,则把数据存入异常耗油集合,且清空比对集合,比对集合只保留最后一条数据;
[0109] 超过两分钟,则分别判断是否有加油,是否有异常耗油,
[0110] 判断是否加油,否,则不进行操作,是,则判断加油集合中的油量是否在3L到20L之间;是在3L到20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记;是在3L到20L之间,则保存加油信息,并清空加油集合及加油标记;
[0111] 判断是否异常耗油,否,则不进行操作,是,则判断异常耗油集合中油量是否超过5L,没超过5L,则不进行操作,超过5L,把异常耗油集合中车速不为0的数据过滤掉,判断异常油量是否超过5L,并且异常假标记为空,则保存异常信息,清空异常耗油集合及异常耗油标记;
[0112] 分别判断完是否有加油,是否有异常耗油后,清空比对集合,其比对集合只保留最后一条数据,临时开始时间置空,是否持续异常耗油标记置空;
[0113] 如图4所示,当循环遍历到最后一条数据时:判断加油标记为真且异常耗油标记为真,
[0114] 不是,
[0115] 则判断加油标记为真且异常耗油标记为空,
[0116] 是为真且为空,则判断加油集合中的油量是否在3L与20L之间;是3L与20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息;并清空加油集合及加油标记;不是3L与20L之间,则保存加油信息,并清空加油集合及加油标记;
[0117] 是为真且不是为空,则判断异常耗油标记为真且加油标记为空,否,则不进行操作,是,则判断异常假标记是否为真,否,则不进行操作,是,则判断异常集合中油量是否超过5L,否,则不进行操作,是,则把异常集合中车速不为0的数据过滤掉,判断异常油量是否超过5L,并且异常假标记为空,则保存异常信息,清空异常集合及异常耗油标记;
[0118] 是,
[0119] 则取出加油集合中最后一条数据的时间,取出异常耗油集合中最后一条数据的时间;判断加油时间是否比异常时间早,
[0120] 是早,则清空异常耗油集合及异常耗油标记,将异常假标记置为空;判断加油集合中的油量是否在3L与20L之间;是3L与20L之间,则过滤掉加油集合中相邻数据油量差低于3L的数据,判断如果加油集合中第一条数据的速度不为零,或者第一条数据的上一条数据不为零,则清空加油集合及加油标记,如果加油集合数据小于半小时,则保存加油信息,并清空加油集合及加油标记;不是在3L与20L之间,保存加油信息,并清空加油集合及加油标记;
[0121] 不是早,则清空加油集合及加油标记,判断异常耗油集合中油量是否超过5L,否,则不进行操作,是,则把异常耗油集合中车速不为0的数据过滤掉,判断异常油量是否超过5L,并且异常假标记为空,则保存异常信息,清空异常耗油集合及异常耗油标记。
[0122] 总之,通过本发明获得的加油量信息,与录入到平台的加油票据的信息进行判断比对,将相近与相差较大的加油数据进行区分标记,一目了然;提高加油量统计的准确性。
[0123] 以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈