电能表数据管理方法、电能表及计算机可读存储介质
技术领域
本发明涉及数据管理领域,尤其涉及一种电能表数据管理方法、电能表及计算机可读存储介质。
背景技术
在电能表上,数据的掉电安全以及flash设备的磨损均衡特别重要,现有电能管理公司中,在下一代物联网电能表上引入了littlefs作为数据管理的文件系统,该系统采用了COW(Copy On Write,写时复制)机制与日志结合的方式进行掉电安全的保护,但是COW机制的文件系统存储写延时的问题,当文件体积大时,写入延时将非常大,这对资源受限的电能表来说是不可接受的。
发明内容
本发明的主要目的在于提出一种电能表数据管理方法、电能表及计算机可读存储介质,旨在解决现有技术中COW机制的文件系统写入延时大的问题。
为实现上述目的,本发明提供一种电能表数据管理方法,所述方法包括步骤:
建立与系统文件对应的虚拟文件;
当所述虚拟文件被修改时,建立与修改内容对应的替换文件;
将与所述修改内容对应的系统文件替换为所述替换文件。
可选地,所述系统文件的数量为至少一个,所述建立与系统文件对应的虚拟文件的步骤包括:
建立与系统文件一一对应的管理信息。
可选地,所述当所述虚拟文件被修改时,建立与修改内容对应的替换文件的步骤包括:
当管理信息对应的虚拟文件内容被修改时,建立与该管理信息对应的替换文件;
所述将与所述修改内容对应的系统文件替换为所述替换文件的步骤包括:
将与管理信息对应的系统文件替换为所述替换文件。
可选地,所述建立与该管理信息对应的替换文件的步骤包括:
复制与该管理信息对应的系统文件以得到所述系统文件对应的复制文件;
根据所述修改内容对所述复制文件进行修改以得到所述替换文件。
可选地,所述将与所述管理信息对应的系统文件替换为所述替换文件的步骤包括:
解除所述管理信息与所述系统文件的对应关系;
建立所述管理信息与所述替换文件的对应关系,并删除所述替换文件对应的系统文件。
可选地,所述方法还包括:
电能表启动时,判断是否存在未与任一管理信息建立连接关系的系统文件;
若是,则删除所述未与任一管理信息建立连接关系的系统文件。
可选地,所述建立与修改内容对应的替换文件的步骤之前包括:
判断被修改的管理信息的数量是否大于1;
若否,则根据所述修改内容对所述系统文件进行修改;
若是,则执行步骤:建立与修改内容对应的替换文件。
可选地,所述方法还包括:
电能表启动时,判断所述虚拟文件与所述系统文件是否一致;
若否,则将所述虚拟文件还原至与所述系统文件一致。
为实现上述目的,本发明还提供一种电能表,所述电能表包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的电能表数据管理方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的电能表数据管理方法的步骤。
本发明提出的一种电能表数据管理方法、电能表及计算机可读存储介质,建立与系统文件对应的虚拟文件;当所述虚拟文件被修改时,建立与修改内容对应的替换文件;将与所述修改内容对应的系统文件替换为所述替换文件。通过映射出系统文件对应的虚拟文件,用户在对虚拟文件进行修改时,只需对修改部分对应的系统文件进行读写,因此,能够减小读写文件的大小,从而降低写入延时。
附图说明
图1为本发明电能表数据管理方法第一实施例的流程示意图;
图2为本发明电能表数据管理方法第四实施例步骤S22的细化流程图;
图3为本发明电能表的模块结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种电能表数据管理方法,参照图1,图1为本发明电能表数据管理方法第一实施例的流程示意图,所述方法包括步骤:
步骤S10,建立与系统文件对应的虚拟文件;
本实施例引入了虚拟文件层的概念,用户不直接对实际的系统文件进行操作,而是使用虚拟文件层提供的打开open、关闭close、读read以及写write等函数接口来操作与实际的系统文件对应的虚拟文件。需要说明的是,所述虚拟文件可以是与系统文件在数据上完全一样的镜像文件,还可以是仅仅与系统文件存在映射关系的映射文件。
步骤S20,当所述虚拟文件被修改时,建立与修改内容对应的替换文件;
在虚拟文件被修改时,实际用户的意愿是对系统文件进行修改,因此需要根据虚拟文件的修改内容来进一步地对系统文件进行修改;然而在实际使用过程中,若直接对系统文件进行修改,当出现在修改过程中电能表因为掉电等原因导致系统关闭的情况时,由于系统文件未被修改完毕,因此会出现系统文件错误的情况,甚至导致系统出现故障。因此,本实施例中在对系统文件进行修改时,不直接对需要修改的系统文件进行修改操作,而是新创建一个与修改后的系统文件对应的替换文件,这样即便是在创建替换文件的过程中,出现系统关闭的情况,对于系统文件本身也不存在影响,从而避免出现系统文件在未被修改完毕时出现系统关闭导致系统文件错误或是系统故障的情况。
步骤S30,将与所述修改内容对应的系统文件替换为所述替换文件。
在替换文件建立完毕之后,替换文件即为在原系统文件的基础上进行对应修改后的文件,将系统文件替换为替换文件即可完成修改操作。
当在执行建立与系统文件对应的虚拟文件的步骤时,若出现系统关闭的情况,此时并未对系统文件进行任何修改操作,因此不会出现系统关闭导致系统文件错误或是系统故障的情况,同时,在系统启动之后,可以继续执行建立与系统文件对应的虚拟文件的步骤;当在执行建立与修改内容对应的替换文件的步骤时,若出现系统关闭的情况,此时仍然未对系统文件进行任何修改操作,因此不会出现系统关闭导致系统文件错误或是系统故障的情况,同时,在系统启动之后,可以继续执行建立与修改内容对应的替换文件的步骤;当在执行将与所述修改内容对应的系统文件替换为所述替换文件的步骤时,若出现系统关闭的情况,虽然对系统文件进行更换操作,但是,由于并未对系统文件本身进行修改,因此,不会出现系统关闭导致系统文件错误或是系统故障的情况,同时,在系统启动之后,仍然将原系统文件作为系统文件。
本实施例通过映射出系统文件对应的虚拟文件,用户在对虚拟文件进行修改时,只需对修改部分对应的系统文件进行读写,因此,能够减小读写文件的大小,从而降低写入延时。
进一步地,在基于本发明的第一实施例所提出的本发明电能表数据管理方法第二实施例中,所述系统文件的数量为至少一个,所述步骤S20包括步骤:
步骤S21,建立与系统文件一一对应的管理信息。
本实施例中的系统为Littlefs文件系统。Littlefs文件系统中的文件以数据块BLOCK的形式存在,每个数据块的最大存储数据量一定,数据依次存储,当一个数据块中存储的数据达到限值时,增加一个新的数据块,同时新的数据块的指针指向旧的数据块,同时将新的数据块的信息同步更新到元数据中。
所述管理信息与系统文件一一对应,且管理信息的指针指向对应的系统文件。
现有技术中存在将系统文件作为一个文件,同时建立多个虚拟文件对应系统文件的方案,而本实施例的方案则是将系统文件设置为多个,同时建立一个虚拟文件分别对应多个系统文件,用以减少文件的写入;具体地:下面以包含N个M大小的系统文件进行说明:
在系统文件的数据已满的情况下,需要修改开头的系统文件的X字节数据。现有技术中需要擦除M个数据块,并且写入N*M大小的数据,同时更新一次元数据;而在本实施例中,则只需要擦除1个flash块,并且写入N字节的数据,同时更新一次元数据。
在系统文件数据已满的情况下,需要修改系统文件偏移为N-X至N+X的2*X个字节数据。现有技术中需要擦除M个数据块,并且写入N*M大小的数据,同时更新一次元数据;而在本实施例中,则只需要擦除2个数据块,并且写入2*N字节的数据,同时更新四次元数据。
在系统文件数据已满的情况下,需要修改最后一个系统文件的X字节数据。现有技术中需要擦除1个数据块,并且写入N字节大小的数据,更新一次元数据。本实施例中需要擦除1个flash块,并且写入N字节大小的数据,更新一次元数据。
在系统文件已满的情况下,修改系统文件偏移为(M-1)*N-X至(M-1)*N+X的2*X字节数据。现有技术中需要擦除2个数据块,并且写入N*2大小的数据,更新一次元数据;本实施例需要擦除2个flash块,并且写入2*N字节的数据,更新四次元数据。对于littlefs来说,一次元数据的写入为12字节。
本实施例中,littlefs的写入操作最多需要擦除2个数据块的数据,写入2个数据块的数据,最小为1个数据块的数据。
本实施例能够合理地建立与Littlefs文件系统中各系统文件对应的虚拟层。
进一步地,在基于本发明的第二实施例所提出的本发明电能表数据管理方法第三实施例中,所述步骤S20包括步骤:
步骤S22,当管理信息对应的虚拟文件内容被修改时,建立与该管理信息对应的替换文件;
步骤S23,所述将与所述修改内容对应的系统文件替换为所述替换文件的步骤包括:
步骤S24,将与管理信息对应的系统文件替换为所述替换文件。
当虚拟文件被修改时,获取虚拟文件中涉及修改的管理信息,同时建立与该管理信息对应的替换文件,进而将管理信息对应的系统文件替换为替换文件。通过只对涉及修改的管理信息对应的系统文件进行修改,使得能够减少读取次数,以及减少修改的系统文件,从而提高修改速度。本实施例能够使得写入时延比较平均。
进一步地,参见图2,在基于本发明的第三实施例所提出的本发明电能表数据管理方法第四实施例中,所述步骤S22包括步骤:
步骤S221,复制与该管理信息对应的系统文件以得到所述系统文件对应的复制文件;
步骤S222,根据所述修改内容对所述复制文件进行修改以得到所述替换文件。
可以理解的是,除了可以复制与管理信息对应的系统文件,以得到复制文件之外,还可以直接复制管理信息以得到复制文件,进而对复制文件执行对应的修改操作以得到替换文件。
在其它的实施方式中,还可以直接对管理信息进行修改,然后对修改后的管理信息进行复制以得到复制文件。
本实施例能够合理地建立替换文件。
进一步地,在基于本发明的第四实施例所提出的本发明电能表数据管理方法第五实施例中,所述步骤S24包括步骤:
步骤S241,解除所述管理信息与所述系统文件的对应关系;
步骤S242,建立所述管理信息与所述替换文件的对应关系,并删除所述替换文件对应的系统文件。
所述管理信息与所述系统文件的对应关系通过指针的方式进行绑定。具体地,解除所述管理信息与所述系统文件的对应关系以及建立所述管理信息与所述替换文件的对应关系的方式即为将管理信息的指针由值相系统文件更改为指向替换文件。在对应关系更改之后,原替换文件成为新的系统文件,此时系统文件未与任何管理信息绑定,修改操作完毕,将系统文件进行删除。
在此步骤中,若在执行指针更换操作时出现系统关闭的情况,在系统重新启动时,由于管理信息与原系统文件不一致,因此,将管理信息还原成当前的系统文件,同时,此时指针也指向系统文件。
本实施例能够合理地将系统文件替换为替换文件。
进一步地,在基于本发明的第五实施例所提出的本发明电能表数据管理方法第六实施例中,所述方法还包括步骤:
步骤S40,电能表启动时,判断是否存在未与任一管理信息建立连接关系的系统文件;
步骤S50,若是,则删除所述未与任一管理信息建立连接关系的系统文件。
在指针更换操作完成之后,管理信息的指针指向替换文件,原来的系统文件未与任一管理信息绑定,若此时系统关闭,则原来的系统文件未被执行删除操作;因此在电能表启动时,若检测到未与任一管理信息建立连接关系的系统文件,则说明该系统文件已被替换掉,可以对其执行删除操作。
本实施例通过在电能表启动时删除未与任一管理信息建立连接关系的系统文件,从而使得能够避免出现已被修改的系统文件占用存储空间的问题。
进一步地,在基于本发明的第二实施例所提出的本发明电能表数据管理方法第七实施例中,在所述步骤S20之前包括步骤:
步骤S60,判断被修改的管理信息的数量是否大于1;
步骤S70,若否,则根据所述修改内容对所述系统文件进行修改;
步骤S80,若是,则执行步骤:建立与修改内容对应的替换文件。
当涉及修改的管理信息的数量不大于1时,即不存在被修改的管理信息或涉及修改的管理信息只有一个时,不存在被修改的管理信息无需执行修改操作;而当涉及修改的管理信息只有一个时,依据现有的文件修改方法所需要的读写次数本身就较少,而在这种情况下,若采用新建替换文件,再将系统文件替换为替换文件的方法则反而会增加当次操作的写入次数。因此,在涉及修改的管理信息只有一个时,直接在底层的系统文件中进行修改操作,同时对应更新管理信息。
本实施例通过区分涉及修改的管理信息的个数为1个或大于一个,使得避免在涉及修改的管理信息的个数为1个时增加写入次数。
进一步地,在基于本发明的第一实施例所提出的本发明电能表数据管理方法第八实施例中,所述方法还包括步骤:
步骤S90,电能表启动时,判断所述虚拟文件与所述系统文件是否一致;
步骤S100,若否,则将所述虚拟文件还原至与所述系统文件一致。
当电能表启动时出现虚拟文件与所述系统文件不一致的情况时,说明在管理信息被修改的步骤之后,建立所述管理信息与所述替换文件的对应关系,并删除所述替换文件对应的系统文件的步骤之前出现了系统断电的情况,此时,为了保证数据的一致性,对管理信息进行还原操作,以使得管理信息与系统文件一致。
本实施例能够保障管理信息与系统文件的一致性。
参照图3,在硬件结构上所述电能表可以包括通信模块10、存储器20以及处理器30等部件。在所述电能表中,所述处理器30分别与所述存储器20以及所述通信模块10连接,所述存储器20上存储有计算机程序,所述计算机程序同时被处理器30执行,所述计算机程序执行时实现上述方法实施例的步骤。
通信模块10,可通过网络与外部通讯设备连接。通信模块10可以接收外部通讯设备发出的请求,还可以发送请求、指令及信息至所述外部通讯设备,所述外部通讯设备可以是其它电能表、服务器或者物联网设备,例如电视等等。
存储器20,可用于存储软件程序以及各种数据。存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如建立所述管理信息与所述替换文件的对应关系,并删除所述替换文件对应的系统文件)等;存储数据区可包括数据库,存储数据区可存储根据系统的使用所创建的数据或信息等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器30,是电能表的控制中心,利用各种接口和线路连接整个电能表的各个部分,通过运行或执行存储在存储器20内的软件程序和/或模块,以及调用存储在存储器20内的数据,执行电能表的各种功能和处理数据,从而对电能表进行整体监控。处理器30可包括一个或多个处理单元;可选地,处理器30可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器30中。
尽管图3未示出,但上述电能表还可以包括电路控制模块,所述电路控制模块用于与电源连接,保证其他部件的正常工作。本领域技术人员可以理解,图3中示出的电能表结构并不构成对电能表的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序。所述计算机可读存储介质可以是图3的电能表中的存储器20,也可以是如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干指令用以使得一台具有处理器的终端设备(可以是电视,汽车,手机,计算机,服务器,终端,或者网络设备等)执行本发明各个实施例所述的方法。
在本发明中,术语“第一”“第二”“第三”“第四”“第五”仅用于描述的目的,而不能理解为指示或暗示相对重要性,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,本发明保护的范围并不局限于此,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改和替换,这些变化、修改和替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种服务故障动态调控方法与系统