基于位图的电能表冻结数据查询方法和装置与流程

    专利2026-07-13  4


    本申请涉及电能表,特别是涉及一种基于位图的电能表冻结数据查询方法和装置。


    背景技术:

    1、当前电能表的冻结数据量增加,使得flash存储的是大量冻结数据,其存储结构为序号+时间+关联对象数据,因此在搜索数据时需要通过时间去匹配数据,也就是就需要计算出当前时间对应的序号。

    2、假设第一条存储的时间为2023.1.1/0:15,最后一条数据为2023.10.1/0:15,通常的做法是计算出两个时间的间隔分钟,除以冻结的周期时间,算出一共有多少条冻结数据,然后进行二分查询,算法复杂度为o(log2 n),其中o表示的是算法运行时间的增速,即算法的运行时间以不同的速度增加,也叫渐进时间复杂度,o(log2 n)表示对数时间复杂度,算法执行时间和n是一种对数关系。该方法由于需要知道第一条存储的位置和最后一条存储的位置,在进行时间的查询时就需要去读取flash内存储的时间数据,从而会极大地消耗时间并且消耗flash的读取寿命。

    3、因此,现有技术在查找flash存储的冻结数据的时候,查找的性能不足,从而会造成读取查询结果的时候卡顿,影响程序的运行效率,甚至阻塞其他功能的运行,进而影响程序运行性能和器件寿命。


    技术实现思路

    1、基于此,有必要针对上述技术问题,提供一种能够减少对flash的读取操作、并提高数据查询效率的基于位图的电能表冻结数据查询方法和装置。

    2、第一方面,本申请提供了一种基于位图的电能表冻结数据查询方法。

    3、方法包括:

    4、建立冻结数据位图;

    5、判断起始点对应的位图bit位是否为1,若为0则用2分法搜索右侧第一个为1的bit位并返回其对应的int数组下标位置,若为1则直接返回起始点对应的int数组下标位置;

    6、判断结束点对应的位图bit位是否为1,若为0则用2分法从末尾开始向前搜索第一个为1的bit位并返回其对应的int数组下标位置,若为1直接返回结束点对应的int数组下标位置;

    7、根据冻结周期计算起始点和结束点之间的冻结点数量,若冻结点对应的位图bit位为1,则将冻结点对应的冻结数据返回并读取。

    8、其进一步的技术方案为,建立冻结数据位图包括:

    9、根据最小冻结周期确定int数组下标,并建立相应的冻结数据位图,将冻结存储时间对应的bit位置为1;

    10、在到达冻结点时,更新冻结数据位图,将冻结点对应的bit位置为1。

    11、其进一步的技术方案为,根据最小冻结周期确定int数组下标,并建立相应的位图,包括:

    12、根据最小冻结周期确定一年的冻结数据量;

    13、根据冻结数据量确定int数组的长度;

    14、根据int数组的长度确定int数组下标,并建立相应的位图。

    15、其进一步的技术方案为,最小冻结周期为1min。

    16、其进一步的技术方案为,冻结周期为1~15min。

    17、第二方面,本申请还提供了一种基于位图的电能表冻结数据查询装置,该装置实现上述任一项的方法的步骤。装置包括:

    18、位图建立模块,用于建立冻结数据位图;

    19、第一判断模块,用于判断起始点对应的位图bit位是否为1,若为0则用2分法搜索右侧第一个为1的bit位并返回其对应的数组下标位置,若为1则直接返回起始点对应的数组下标位置;

    20、第二判断模块,用于判断结束点对应的位图bit位是否为1,若为0则用2分法从末尾开始向前搜索第一个为1的bit位并返回其对应的数组下标位置,若为1直接返回结束点对应的数组下标位置;

    21、冻结数据确认模块,用于根据冻结周期计算起始点和结束点之间的冻结点数量,若冻结点对应的位图bit位为1,则将冻结点对应的冻结数据返回并读取。

    22、其进一步的技术方案为,位图建立模块包括:

    23、位图确认单元,用于根据最小冻结周期确定int数组下标,并建立相应的位图,将冻结存储时间对应的bit位置为1;

    24、位图更新单元,用于在到达冻结点时,更新位图,将冻结点对应的bit位置为1。

    25、其进一步的技术方案为,位图确认单元还包括:

    26、冻结数据量确认单元,用于根据最小冻结周期确定一年的冻结数据量;

    27、数组长度确认单元,用于根据冻结数据量确定int数组的长度;

    28、数组下标确认单元,用于根据int数组的长度确定int数组下标,并建立相应的位图。

    29、本发明的有益技术效果是:

    30、本发明通过建立冻结数据位图,利用位图避免原始数据查询,简化了算法复杂度,减少了对flash的读取操作,提高了冻结数据的查询效率。



    技术特征:

    1.一种基于位图的电能表冻结数据查询方法,其特征在于,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,所述建立冻结数据位图包括:

    3.根据权利要求2所述的方法,其特征在于,所述根据最小冻结周期确定int数组下标,并建立相应的位图,包括:

    4.根据权利要求2或3所述的方法,其特征在于,所述最小冻结周期为1min。

    5.根据权利要求1所述的方法,其特征在于,所述冻结周期为1~15min。

    6.一种基于位图的电能表冻结数据查询装置,其特征在于,所述装置实现权利要求1至5中任一项所述的方法的步骤,所述装置包括:

    7.根据权利要求6所述的装置,其特征在于,所述位图建立模块包括:

    8.根据权利要求7所述的装置,其特征在于,所述位图确认单元还包括:


    技术总结
    本申请涉及基于位图的电能表冻结数据查询方法和装置。方法包括:建立冻结数据位图;判断起始点对应的位图bit位是否为1,若为0则用2分法搜索右侧第一个为1的bit位并返回其对应的int数组下标位置,若为1则直接返回起始点对应的int数组下标位置;判断结束点对应的位图bit位是否为1,若为0则用2分法从末尾开始向前搜索第一个为1的bit位并返回其对应的int数组下标位置,若为1直接返回结束点对应的int数组下标位置;根据冻结周期计算所述起始点和结束点之间的冻结点数量,若冻结点对应的位图bit位为1,则将冻结点对应的冻结数据返回并读取。采用本方法能够有效减少对FLASH的读取操作,提高数据查询效率。

    技术研发人员:黄之健,陈文藻,胡恩炜,金炀,姜枫,杨玉勇,缪炜,钱林江,黄金涛,王宁
    受保护的技术使用者:江阴长仪集团有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-99129.html

    最新回复(0)