一种窨井排水监测设备中存储器的管理方法及装置与流程
未命名
09-03
阅读:104
评论:0

1.本公开涉及数据处理技术领域,尤其涉及一种窨井排水监测设备中存储器的管理方法及装置。
背景技术:
2.存储器经常会出现部分区域损坏从而无法进行正常读写的情况,目前,一般都使用一个区域作为损坏记录区,当发现出现损坏区域时,就将该损坏区域的地址记录在损坏记录区中,在使用时就可以规避损坏区域。但是当损坏记录区出现损坏时,该方法将不再适用。
3.明内容
4.本公开提供了一种窨井排水监测设备中存储器的管理方法及装置,以至少解决现有技术中存在的以上技术问题。
5.根据本公开的第一方面,提供了一种窨井排水监测设备中存储器的管理方法,所述方法包括:
6.从所述存储器的扇区中查找管理记录区,所述管理记录区的类型包括损坏记录区和信息记录区,每一类型的管理记录区至少为两个且记录的数据相同;
7.确定所述管理记录区是否损坏;
8.若同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区,则选取与该类型中损坏的管理记录区数量相同的空白扇区;
9.根据该类型中未损坏的管理记录区中记录的数据,对所述空白扇区进行复刻,得到该类型对应的新的管理记录区。
10.在一可实施方式中,所述方法还包括:获取预先配置的管理记录区的类型;相应地,从所述存储器的扇区中查找管理记录区时,若所述预先配置的管理记录区的类型中任一类型的管理记录区未查找到,则选择至少两个读写特性正常的空白扇区作为该类型对应的新的管理记录区。
11.在一可实施方式中,在确定所述管理记录区是否损坏之前,该方法还包括:确定所述管理记录区中记录的数据是否不完整;
12.若同一类型的管理记录区中存在数据不完整的管理记录区且还存在至少一个数据完整的管理记录区,相应地,确定所述管理记录区是否损坏为:确定该类型中所述数据不完整的管理记录区是否损坏;
13.相应地,所述该类型中未损坏的管理记录区为:该类型中数据完整的管理记录区。
14.在一可实施方式中,所述确定所述管理记录区中记录的数据是否不完整,包括:读取所述管理记录区记录的数据,通过循环冗余校核crc验证所述数据是否完整。
15.在一可实施方式中,所述确定该类型中所述数据不完整的管理记录区是否损坏,包括:将所述数据完整的管理记录区记录的数据作为模板,对所述数据不完整的管理记录区进行重刻,若重刻失败,则确定所述数据不完整的管理记录区发生损坏。
16.在一可实施方式中,所述扇区还包括数据存储区,相应地,所述确定所述管理记录区是否损坏,包括:
17.响应于向所述数据存储区写入数据成功的事件,对所述信息记录区中记录的所述数据写入地址进行更新;或者,响应于向所述数据存储区写入数据失败的事件,对所述损坏记录区中记录的所述数据存储区的写入失败地址进行更新;
18.若存在至少一个信息记录区的更新失败,或者,若存在至少一个损坏记录区的更新失败,则确定更新失败的信息记录区或损坏记录区损坏;
19.相应地,所述该类型中未损坏的管理记录区为:更新成功的信息记录区。
20.在一可实施方式中,对所述信息记录区中记录的数据写入地址进行更新,包括:根据所述数据存储区写入数据成功的起始地址和数据的字节数,对所述信息记录区中记录的所述数据写入地址进行更新;
21.对所述损坏记录区中记录的所述数据存储区的写入失败地址进行更新,包括:根据所述数据存储区写入数据失败的起始地址和数据的字节数,对所述损坏记录区中记录的所述数据存储区的写入失败地址进行更新。
22.根据本公开的第二方面,提供了一种窨井排水监测设备中存储器的管理装置,所述装置包括:
23.查找模块,用于从所述存储器的扇区中查找管理记录区,所述管理记录区的类型包括损坏记录区和信息记录区,每一类型的管理记录区至少为两个且记录的数据相同;
24.确定模块,用于确定所述管理记录区是否损坏;
25.选取模块,用于若同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区,则选取与该类型中损坏的管理记录区数量相同的空白扇区;
26.复刻模块,用于根据该类型中未损坏的管理记录区中记录的数据,对所述空白扇区进行复刻,得到该类型对应的新的管理记录区。
27.根据本公开的第三方面,提供了一种电子设备,包括:
28.至少一个处理器;以及
29.与所述至少一个处理器通信连接的存储器;其中,
30.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。
31.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
32.本公开的一种窨井排水监测设备中存储器的管理方法及装置,将每种类型的管理记录区建立至少两个且记录的数据相同,在同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区的情况下,可以将未损坏的管理记录区记录的数据写入空白扇区,获取该类型对应的新的管理记录区,可以使存储器在管理记录区出现损坏的情况下仍然可以正常工作。
33.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
34.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
35.在附图中,相同或对应的标号表示相同或对应的部分。
36.图1示出了本公开实施例一种窨井排水监测设备中存储器的管理方法的实现流程示意图;
37.图2示出了本公开实施例一种窨井排水监测设备中存储器的管理方法的实现场景示意图;
38.图3示出了本公开实施例一种窨井排水监测设备中存储器的管理装置的组成结构示意图;
39.图4示出了本公开实施例一种电子设备的组成结构示意图。
具体实施方式
40.为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
41.图1示出了本公开实施例一种窨井排水监测设备中存储器的管理方法的实现流程示意图,如图1所示,根据本公开实施例的第一方面,提供了一种窨井排水监测设备中存储器的管理方法,本方法包括:
42.步骤101:从存储器的扇区中查找管理记录区,管理记录区的类型包括损坏记录区和信息记录区,每一类型的管理记录区至少为两个且记录的数据相同;
43.存储器可以为flash存储器、固态硬盘等,扇区是指存储器磁盘上划分的区域,磁盘上的每个磁道被等分为若干个弧段,这些弧段便是存储器的扇区。
44.管理记录区为用于管理存储器中的扇区的区域,管理记录区的类型包括损坏记录区和信息记录区,其中,损坏记录区为记录存储器中损坏的扇区的区域,损坏记录区中记录着存储器中已损坏的扇区的地址,存储器在存储数据时可根据损坏记录区中记录的数据规避已损坏的扇区;信息记录区为管理存储器写入数据的地址的区域,信息记录区中记录着存储器写入数据的起始地址和终止地址,存储器可以根据信息记录区中记录的数据得知下一次存储数据应该从什么地址开始写入。
45.每一个类型的管理记录区至少为两个,且每一个类型的管理记录区记录的数据相同,为了节约存储器中的存储空间,每一个类型的管理记录区的数量优选为两个。
46.可以通过扇区的特征标记头在存储器中的扇区中查找管理记录区,具体的,存储器开始工作时,按照扇区的序号对存储器中的扇区依次进行搜索,查看每个扇区起始10个字节记录的内容是否为管理记录区对应的特征标记头,管理记录区对应的特征标记头的具体内容可根据实际情况进行自定义。
47.步骤102:确定管理记录区是否损坏;
48.由于磁盘表面出现划痕、校验码的算法差异等原因,可能会导致存储器中的扇区
存在损坏、无法正常读写的情况,可以根据管理记录区的读写特性确定当前管理记录区是否已发生损坏。
49.步骤103:若同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区,则选取与该类型中损坏的管理记录区数量相同的空白扇区;
50.步骤104:根据该类型中未损坏的管理记录区中记录的数据,对空白扇区进行复刻,得到该类型对应的新的管理记录区。
51.例如,损坏记录区和信息记录区的数量均为两个,以损坏记录区为例,如果两个损坏记录区中存在一个已损坏的损坏记录区和一个未损坏的损坏记录区,则在存储器的其余扇区中,选取一个空白扇区。然后将未损坏的损坏记录区中记录的所有数据,写入到空白扇区中,得到新的损坏记录区,如此,保持损坏记录区的数量仍为两个。
52.通过本实施例的一种窨井排水监测设备中存储器的管理方法,通过将每种类型的管理记录区建立至少两个且记录的数据相同,在同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区的情况下,可以将未损坏的管理记录区记录的数据写入空白扇区,获取该类型对应的新的管理记录区,可以使存储器在管理记录区出现损坏的情况下仍然可以正常工作,且提高了管理记录区记录的数据的可靠性。
53.在本公开的一个实施例中,该方法还包括:获取预先配置的管理记录区的类型;相应地,从存储器的扇区中查找管理记录区时,若预先配置的管理记录区的类型中任一类型的管理记录区未查找到,则选择至少两个读写特性正常的空白扇区作为该类型对应的新的管理记录区。
54.首先预先配置管理记录区的类型,例如配置管理记录区的类型包括损坏记录区和信息记录区,并定义每一个类型的管理记录区对应的特征标记头,然后根据特征标记头在存储器的扇区中查找每个类型的管理记录区,若任一类型的管理记录区未查找到,例如,在存储器的所有扇区中未查找到损坏记录区,需要选择至少两个读写特征正常的空白扇区作为损坏记录区。
55.上述在确定管理记录区是否损坏之前,该方法还包括:确定管理记录区中记录的数据是否不完整;
56.若同一类型的管理记录区中存在数据不完整的管理记录区且还存在至少一个数据完整的管理记录区,相应地,确定管理记录区是否损坏为:确定该类型中数据不完整的管理记录区是否损坏;
57.相应地,该类型中未损坏的管理记录区为:该类型中数据完整的管理记录区。
58.在查找到管理记录区后,首先需要验证管理记录区中记录的数据是否是不完整的,若同一类型的管理记录区中存在数据不完整的管理记录区且还存在至少一个数据完整的管理记录区,此时可以确定数据完整的管理记录区未发生损坏,但只能确定数据不完整的管理记录区中记录的数据是不完整的,此时还不能确定是否是因为该区域发生损坏造成的数据不完整,需要进一步验证数据不完整的管理记录区是否发生损坏。
59.以管理记录区为损坏记录区为例进行说明,如果多个损坏记录区中存在数据不完整的损坏记录区和至少一个数据完整的损坏记录区,则确定数据完整的损坏记录区未发生损坏,可以继续使用;然后需要进一步验证数据不完整的损坏记录区是否发生损坏,如果未发生损坏,只需根据数据完整的损坏记录区中记录的数据对该区域记录的数据进行重刻即
可,如果已发生损坏,该区域则无法再继续使用,需要选取新的空白扇区作为新的损坏记录区。
60.承接上述实施例中,若所有的损坏记录区中记录的数据均是不完整的,需要确定至少两个空白扇区作为新的损坏记录区,可以根据原来的损坏记录区中剩余的数据,对新的损坏记录区进行刻录。
61.上述确定管理记录区中记录的数据是否不完整,包括:读取管理记录区记录的数据,通过循环冗余校核(cyclic redundancy check,crc)验证数据是否完整。
62.在本实施例中,可以通过crc验证管理记录区中记录的数据的完整性,具体的,在管理记录区中写数据的同时,会根据这些数据经过一定的算法运算生成一个校验码,并将该校验码记录在该管理记录区内,从管理记录区中读取数据时,会同时读取其校验码,并对读出的数据重新进行运算并判断运算结果是否与校验码一致,若一致,则认为该管理记录区记录的数据是完整的,若不一致,则认为该管理记录区记录的数据是不完整的。
63.在本公开的一个实施例中,若确定某一类型的管理记录区中同时存在数据不完整和数据完整的管理记录区,需要确定数据不完整的管理记录区是否发生损坏;确定该类型中数据不完整的管理记录区是否损坏,包括:将数据完整的管理记录区记录的数据作为模板,对数据不完整的管理记录区进行重刻,若重刻失败,则确定数据不完整的管理记录区发生损坏。
64.具体为,将数据完整的管理记录区中记录的数据作为模板,对数据不完整的管理记录区进行重刻,若重刻失败,则说明数据不完整的管理记录区已经发生损坏,无法继续使用;若重刻成功,说明数据不完整的管理记录区未发生损坏,重刻后的管理记录区可继续使用。
65.在本公开中,扇区的类型除了上述的管理记录区,还可以包括数据存储区,数据存储区为存储器中存储数据的区域,数据写入地址为存储器写入某数据时,该数据对应的写入地址,数据存储区的写入失败地址为数据存储区中未能成功写入数据,可能存在损坏的区域的地址。
66.相应地,步骤102确定管理记录区是否损坏的另一种方式包括:
67.响应于向数据存储区写入数据成功的事件,对信息记录区中记录的数据写入地址进行更新;或者,响应于向数据存储区写入数据失败的事件,对损坏记录区中记录的数据存储区的写入失败地址进行更新;
68.若存在至少一个信息记录区的更新失败,或者,若存在至少一个损坏记录区的更新失败,则确定更新失败的信息记录区或损坏记录区为损坏的管理记录区,更新成功的信息记录区或损坏记录区为未损坏的管理记录区。
69.在搭建好管理记录区后,存储器开始向数据存储区中存储数据,若该数据成功存储到数据存储区中,需要对信息记录区中记录的数据写入地址进行更新;若该数据未能成功存储到数据存储区中,需要对损坏记录区中记录的数据存储区的写入失败地址进行更新。若存在至少一个信息记录区或损坏记录区更新失败,将更新失败的信息记录区或损坏记录区确定为损坏的管理记录区,此时需要选取与更新失败的信息记录区或损坏记录区数量相同的空白扇区,然后将更新成功的信息记录区或损坏记录区中记录的数据写入到空白扇区,得到新的信息记录区或损坏记录区。
70.在本公开的一个实施例中,对信息记录区中记录的数据写入地址进行更新,包括:根据数据存储区写入数据成功的起始地址和数据的字节数,对信息记录区中记录的数据写入地址进行更新。
71.例如有3个数据存储区此时还未存入数据,分别为数据存储区0-3,其中,数据存储区0的地址为0000h-3fffh、数据存储区1的地址为4000h-7fffh、数据存储区2的地址为8000h-bfffh;例如要将一个8kb(千字节)的数据存入到数据存储区,由于此时还未存储过任何数据,所以起始地址为0000h,再根据该数据的字节数可确定该数据对应的写入地址为0000h-1fffh,并将其记录到信息记录区中;由于磁盘写入数据和读取数据是以扇区为最小单位,一个数据存储区最多只能存储一个文件,所以下一次写入数据时的起始地址为4000h,例如下一次写入24kb的数据,根据该数据的起始地址4000h和字节数,可确定该数据对应的写入地址为4000h-9fffh并将其记录到信息记录区中。
72.字节数在本公开的一个实施例中,对损坏记录区中记录的数据存储区的写入失败地址进行更新,包括:根据数据存储区写入数据失败的起始地址和数据的字节数,对损坏记录区中记录的数据存储区的写入失败地址进行更新。
73.继续以上述实施例中的例子进行说明,若8kb的数据未能成功存入到数据存储区中,由其起始地址0000h和字节数可知其未超过数据存储区0的存储容量,则认为数据存储区0已经发生损坏,将数据存储区0对应的地址0000h-3fffh确定为写入失败地址,记录在损坏记录区中,存储器在下一次存储数据时,需要规避数据存储区0,即地址为0000h-3fffh的区域。若24kb的数据未能成功写入到数据存储区中,由其起始地址4000h和字节数可知其对应的数据存储区为数据存储区1和2,则认为数据存储区1和2已经发生损坏,将数据存储区1和2对应的地址4000h-bfffh确定为写入失败地址,记录在损坏记录区中。
74.为更好的对上述实施例进行说明,以下提供一种具体的实施场景进行说明:
75.该实施场景中损坏记录区和信息记录区的数量均为两个,如图2所示,存储器所在设备启动后,按顺序执行以下步骤:
76.步骤201:查找两个损坏记录区;
77.步骤202,判断是否找到两个损坏记录区;若找到两个损坏记录区,则执行步骤203,若未找到两个损坏记录区,则执行步骤204;
78.步骤203,对两个损坏记录区进行crc验证;
79.步骤204,查找两个空白区域作为两个新的损坏记录区;
80.步骤205,判断两个损坏记录区是否都通过crc验证;若存在一个未通过crc验证,一个通过crc验证,则执行步骤206,若两个都未通过crc验证,则执行步骤204,若都通过crc验证,则执行步骤207;
81.步骤206,选取一个空白的扇区,将通过crc验证的损坏记录区记录的数据重刻到空白扇区中,得到一个新的损坏记录区;
82.建立信息记录区与建立损坏记录区的步骤相同,建立信息标记区的步骤未在图中示出,在此不再赘述;
83.将信息记录区和损坏记录区建立完善后,执行以下步骤:
84.步骤207,向数据存储区写入数据;
85.步骤208,判断数据是否成功写入数据存储区;若成功写入数据存储区,执行步骤
209,若未成功写入数据存储区,执行步骤212;
86.步骤209,根据写入的数据的起始地址和字节数,对两个信息记录区中的写入地址进行更新;
87.步骤210,判断信息记录区中的写入地址是否更新成功;若未成功,执行步骤211,若更新成功,结束本次存储任务;
88.步骤211,选取空白扇区替换更新失败的信息记录区作为新的信息记录区;然后将更新成功的信息记录区中记录的数据写入空白扇区,结束本次存储任务;
89.步骤212,根据写入的数据的起始地址和字节数,对两个损坏记录区中的记录的写入失败地址进行更新;
90.步骤213,判断损坏记录区中的记录的写入失败地址是否更新成功;若未成功,执行步骤214,若更新成功,再重新执行步骤207,将本次存储的数据写入其他数据存储区,直至数据成功写入数据存储区,且信息记录区中的写入地址更新成功,结束本次存储任务;
91.步骤214,选取空白扇区替换更新失败的损坏记录区作为新的损坏记录区;然后将更新成功的损坏记录区中记录的数据写入空白扇区,再重新执行步骤207,将本次存储的数据写入其他数据存储区,直至数据成功写入数据存储区,且信息记录区中的写入地址更新成功,结束本次存储任务。
92.如图3所示,本公开实施例提供了一种窨井排水监测设备中存储器的管理装置,本装置包括:
93.查找模块301,用于从存储器的扇区中查找管理记录区,管理记录区的类型包括损坏记录区和信息记录区,每一类型的管理记录区至少为两个且记录的数据相同;
94.确定模块302,用于确定管理记录区是否损坏;
95.选取模块303,用于若同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区,则选取与该类型中损坏的管理记录区数量相同的空白扇区;
96.复刻模块304,用于根据该类型中未损坏的管理记录区中记录的数据,对空白扇区进行复刻,得到该类型对应的新的管理记录区。
97.在本公开的一个实施例中,该装置还包括:
98.获取模块305,用于获取预先配置的管理记录区的类型;
99.选取模块303,还用于从存储器的扇区中查找管理记录区时,若预先配置的管理记录区的类型中任一类型的管理记录区未查找到,则选择至少两个读写特性正常的空白扇区作为该类型对应的新的管理记录区。
100.在本公开的一个实施例中,确定模块302还用于确定管理记录区中记录的数据是否不完整;若同一类型的管理记录区中存在数据不完整的管理记录区且还存在至少一个数据完整的管理记录区,确定该类型中数据不完整的管理记录区是否损坏。
101.在本公开的一个实施例中,确定模块302还用于读取管理记录区记录的数据,通过循环冗余校核crc验证数据是否完整。
102.在本公开的一个实施例中,确定模块302还用于将数据完整的管理记录区记录的数据作为模板,对数据不完整的管理记录区进行重刻,若重刻失败,则确定数据不完整的管理记录区发生损坏。
103.在本公开的一个实施例中,确定模块302包括:数据更新子模块3021,用于响应于向数据存储区写入数据成功的事件,对信息记录区中记录的数据写入地址进行更新;或者,响应于向数据存储区写入数据失败的事件,对损坏记录区中记录的数据存储区的写入失败地址进行更新;确定子模块3022,用于若存在至少一个信息记录区的更新失败,或者,若存在至少一个损坏记录区的更新失败,则确定更新失败的信息记录区或损坏记录区损坏。
104.在本公开的一个实施例中,数据更新子模块3021,还用于根据数据存储区写入数据成功的起始地址和数据的字节数,对信息记录区中记录的数据写入地址进行更新;或者,根据数据存储区写入数据失败的起始地址和数据的字节数,对损坏记录区中记录的数据存储区的写入失败地址进行更新。
105.根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
106.图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
107.如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(rom)402中的计算机程序或者从存储单元408加载到随机访问存储器(ram)403中的计算机程序,来执行各种适当的动作和处理。在ram 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、rom 402以及ram 403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
108.设备400中的多个部件连接至i/o接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
109.计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如一种窨井排水监测设备中存储器的管理方法。例如,在一些实施例中,一种窨井排水监测设备中存储器的管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由rom 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到ram 403并由计算单元401执行时,可以执行上文描述的一种窨井排水监测设备中存储器的管理方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行一种窨井排水监测设备中存储器的管理方法。
110.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这
些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
111.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
112.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
113.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
114.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
115.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
116.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
117.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性
或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
118.以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种窨井排水监测设备中存储器的管理方法,其特征在于,所述方法包括:从所述存储器的扇区中查找管理记录区,所述管理记录区的类型包括损坏记录区和信息记录区,每一类型的管理记录区至少为两个且记录的数据相同;确定所述管理记录区是否损坏;若同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区,则选取与该类型中损坏的管理记录区数量相同的空白扇区;根据该类型中未损坏的管理记录区中记录的数据,对所述空白扇区进行复刻,得到该类型对应的新的管理记录区。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取预先配置的管理记录区的类型;相应地,从所述存储器的扇区中查找管理记录区时,若所述预先配置的管理记录区的类型中任一类型的管理记录区未查找到,则选择至少两个读写特性正常的空白扇区作为该类型对应的新的管理记录区。3.根据权利要求1或2所述的方法,其特征在于,在确定所述管理记录区是否损坏之前,该方法还包括:确定所述管理记录区中记录的数据是否不完整;若同一类型的管理记录区中存在数据不完整的管理记录区且还存在至少一个数据完整的管理记录区,相应地,确定所述管理记录区是否损坏为:确定该类型中所述数据不完整的管理记录区是否损坏;相应地,所述该类型中未损坏的管理记录区为:该类型中数据完整的管理记录区。4.根据权利要求3所述的方法,其特征在于,所述确定所述管理记录区中记录的数据是否不完整,包括:读取所述管理记录区记录的数据,通过循环冗余校核crc验证所述数据是否完整。5.根据权利要求3所述的方法,其特征在于,所述确定该类型中所述数据不完整的管理记录区是否损坏,包括:将所述数据完整的管理记录区记录的数据作为模板,对所述数据不完整的管理记录区进行重刻,若重刻失败,则确定所述数据不完整的管理记录区发生损坏。6.根据权利要求1或2所述的方法,其特征在于,所述扇区还包括数据存储区,相应地,所述确定所述管理记录区是否损坏,包括:响应于向所述数据存储区写入数据成功的事件,对所述信息记录区中记录的数据写入地址进行更新;或者,响应于向所述数据存储区写入数据失败的事件,对所述损坏记录区中记录的所述数据存储区的写入失败地址进行更新;若存在至少一个信息记录区的更新失败,或者,若存在至少一个损坏记录区的更新失败,则确定更新失败的信息记录区或损坏记录区损坏;相应地,所述该类型中未损坏的管理记录区为:更新成功的信息记录区。7.根据权利要求6所述的方法,其特征在于,对所述信息记录区中记录的数据写入地址进行更新,包括:根据所述数据存储区写入数据成功的起始地址和数据的字节数,对所述信息记录区中记录的所述数据写入地址进行更新;对所述损坏记录区中记录的所述数据存储区的写入失败地址进行更新,包括:根据所
述数据存储区写入数据失败的起始地址和数据的字节数,对所述损坏记录区中记录的所述数据存储区的写入失败地址进行更新。8.一种窨井排水监测设备中存储器的管理装置,其特征在于,所述装置包括:查找模块,用于从所述存储器的扇区中查找管理记录区,所述管理记录区的类型包括损坏记录区和信息记录区,每一类型的管理记录区至少为两个且记录的数据相同;确定模块,用于确定所述管理记录区是否损坏;选取模块,用于若同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区,则选取与该类型中损坏的管理记录区数量相同的空白扇区;复刻模块,用于根据该类型中未损坏的管理记录区中记录的数据,对所述空白扇区进行复刻,得到该类型对应的新的管理记录区。9.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行根据权利要求1-7中任一项所述的方法。
技术总结
本公开提供了一种窨井排水监测设备中存储器的管理方法及装置,属于数据处理技术领域,所述方法包括:从所述存储器的扇区中查找管理记录区,所述管理记录区的类型包括损坏记录区和信息记录区,每一类型的管理记录区至少为两个且记录的数据相同;确定所述管理记录区是否损坏;若同一类型的管理记录区中存在损坏的管理记录区且还存在至少一个未损坏的管理记录区,则选取与该类型中损坏的管理记录区数量相同的空白扇区;根据该类型中未损坏的管理记录区中记录的数据,对所述空白扇区进行复刻,得到该类型对应的新的管理记录区。应用本方法可以使存储器在管理记录区出现损坏的情况下仍然可以正常工作。况下仍然可以正常工作。况下仍然可以正常工作。
技术研发人员:李磊 方伟 赵冬泉
受保护的技术使用者:北京清环智慧水务科技有限公司
技术研发日:2023.06.16
技术公布日:2023/8/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/