CN117421750A - 数据访问方法、装置、智能电表和计算机可读存储介质 - Google Patents
数据访问方法、装置、智能电表和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117421750A CN117421750A CN202311389317.4A CN202311389317A CN117421750A CN 117421750 A CN117421750 A CN 117421750A CN 202311389317 A CN202311389317 A CN 202311389317A CN 117421750 A CN117421750 A CN 117421750A
- Authority
- CN
- China
- Prior art keywords
- data
- accessed
- target
- access
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000006870 function Effects 0.000 claims description 62
- 238000012795 verification Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 11
- 238000005259 measurement Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R22/00—Arrangements for measuring time integral of electric power or current, e.g. electricity meters
- G01R22/06—Arrangements for measuring time integral of electric power or current, e.g. electricity meters by electronic methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
本申请实施例提出一种数据访问方法、装置、智能电表和计算机可读存储介质,涉及数据访问技术领域。智能电表中存储有关系表,关系表中存储有数据的ID信息与属性信息之间的对应关系,智能电表可获取访问请求;访问请求包括待访问数据的待访问ID信息、待访问属性信息以及访问参数;根据待访问ID信息和关系表,获取待访问数据对应的目标属性信息,并根据目标属性信息以及待访问属性信息,确定访问请求是否为合法访问请求;若访问请求为合法访问请求,则根据目标属性信息和访问参数对待访问数据进行数据访问。通过该方法可避免非法数据访问。
Description
技术领域
本申请涉及数据访问技术领域,具体而言,涉及一种数据访问方法、装置、智能电表和计算机可读存储介质。
背景技术
智能电表中包括多个功能模块,例如瞬时量测量模块、电能计量模块、结算模块等,当电能表工作时,不同功能模块之间往往存在一定的数据访问需求。
目前一般可通过编译include头文件共享数据的外部内存地址,因此智能电表中的各功能模块可以通过该include头文件直接访问数据项所在的外部内存地址以实现数据访问,但这种方式存在数据项被非法访问的风险。
发明内容
有鉴于此,本申请的目的在于提供一种数据访问方法、装置、智能电表和计算机可读存储介质,以解决现有技术中通过include头文件实现数据访问导致存在数据项被非法访问的风险的问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本发明提供一种数据访问方法,应用于智能电表,所述智能电表中存储有关系表,所述关系表中存储有数据的ID信息与属性信息之间的对应关系,所述方法包括:
获取访问请求;所述访问请求包括待访问数据的待访问ID信息、待访问属性信息以及访问参数;
根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,并根据所述目标属性信息以及所述待访问属性信息,确定所述访问请求是否为合法访问请求;
若所述访问请求为合法访问请求,则根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问。
在可选的实施方式中,所述待访问数据包括实时数据,所述ID信息包括文件ID以及实时数据ID,所述关系表包括文件表、数据表、特殊操作表以及数据ID表;
所述文件表中存储有多个文件ID与多个数据表属性之间的对应关系,其中,一个所述文件ID对应一个数据表属性;所述数据表属性包括数据表项数以及数据表地址、特殊操作表项数以及特殊操作表地址;
所述数据表中存储有多个实时数据ID与多个数据ID属性之间的对应关系,其中,多个所述实时数据ID对应一个所述数据ID属性;所述数据ID属性包括前置函数、后置函数、数据ID个数、数据ID表地址、内存类型以及备份信息;
所述数据ID表中存储有多个实时数据ID与多个实时数据属性之间的对应关系,其中,一个所述实时数据ID对应一个所述实时数据属性;所述实时数据属性包括同类项个数、数据长度、数据类型、数据量纲以及内存地址;
所述特殊操作表中存储有多个实时数据ID与多个访问操作函数之间的对应关系,其中,多个所述实时数据ID对应一个所述访问操作函数。
在可选的实施方式中,所述目标属性信息包括目标数据ID属性以及目标实时数据属性,所述待访问ID信息包括待访问文件ID以及待访问实时数据ID;
所述根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,包括:
在所述文件表中确定所述待访问文件ID对应的目标数据表属性,并根据所述目标数据表属性中的数据表地址获取目标数据表;
在所述目标数据表中确定所述待访问实时数据ID对应的目标数据ID属性,并根据所述目标数据ID属性中的数据ID表地址获取目标数据ID表;
根据所述待访问实时数据ID在所述目标数据ID表中确定所述目标实时数据属性。
在可选的实施方式中,所述根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问,包括:
若所述目标数据ID属性中的目标内存类型为RAM存储类型且所述目标实时数据属性中的目标内存地址为指定值,则根据所述特殊操作表地址获取目标特殊操作表,以及根据所述待访问实时数据ID在所述目标特殊操作表中确定目标访问操作函数,并根据所述目标访问操作函数和所述访问参数进行数据访问;
若所述目标内存类型为RAM存储类型且所述目标内存地址不为指定值,或者所述目标内存类型为除RAM存储类型之外的其他存储类型,则根据所述目标内存地址和所述访问参数进行数据访问。
在可选的实施方式中,在根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问之前,所述方法还包括:
在所述目标数据表中确定所述待访问实时数据ID对应的前置函数,并在所述前置函数不为空的情况下根据所述前置函数、所述待访问属性信息以及所述访问参数对所述访问请求进行前置验证;
所述根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问,包括:
在所述访问请求通过前置验证的情况下,根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问;
在根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问之后,所述方法还包括:
在所述目标数据表中确定所述待访问实时数据ID对应的后置函数,并在所述后置函数不为空的情况下根据所述后置函数、所述待访问属性信息以及所述访问参数对所述访问请求进行后置验证。
在可选的实施方式中,所述待访问数据包括日历数据,所述ID信息包括日历数据ID,所述关系表包括日历数据ID表;
所述日历数据ID表中存储有多个所述日历数据ID与多个日历属性之间的对应关系,且一个所述日历数据ID对应一个所述日历属性;所述目标属性信息包括目标日历属性,所述待访问ID信息包括待访问日历数据ID;
所述根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,包括:
根据所述待访问日历数据ID在所述日历数据ID表中确定所述目标日历属性。
在可选的实施方式中,一个所述日历数据ID对应多个日历数据,所述日历属性包括多个所述日历数据的起始地址和终止地址、记录管理ID以及数据对象ID,其中,所述记录管理ID表征当前指针位置,所述数据对象ID表征所述日历数据的个数以及多个日历数据ID;
所述根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问,包括:
根据所述目标日历属性中的记录管理ID、数据对象ID以及所述访问参数,对所述待访问数据进行数据访问。
第二方面,本发明提供一种数据访问装置,应用于智能电表,所述智能电表中存储有关系表,所述关系表中存储有数据的ID信息与属性信息之间的对应关系,所述装置包括:
获取模块,用于获取访问请求;所述访问请求包括待访问数据的待访问ID信息、待访问属性信息以及访问参数;
确定模块,用于根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,并根据所述目标属性信息以及所述待访问属性信息,确定所述访问请求是否为合法访问请求;
访问模块,用于若所述访问请求为合法访问请求,则根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问。
第三方面,本发明提供一种智能电表,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序以实现前述实施方式任一所述的方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式任一项所述的方法。
本申请实施例提供的数据访问方法、装置、智能电表和计算机可读存储介质,智能电表中存储有表征数据的ID信息与属性信息之间的对应关系的关系表,则智能电表可以根据访问请求中的待访问ID信息和该关系表,获取待访问数据对应的目标属性信息,并根据该目标属性信息以及访问请求中的待访问属性信息,确定该访问请求是否为合法请求,从而在该访问请求为合法请求的情况下,根据目标属性信息和访问参数对待访问数据进行数据访问,因此可避免非法数据访问。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的智能电表的一种方框示意图;
图2示出了本申请实施例提供的数据访问方法的一种流程示意图;
图3示出了一种关系表示意图;
图4示出了另一种关系表示意图;
图5示出了本申请实施例提供的一种数据访问装置的功能模块图。
图标:10-智能电表;100-存储器;110-处理器;120-通信模块;200-获取模块;210-确定模块;220-访问模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
智能电表中包括多个功能模块,例如瞬时量测量模块、电能计量模块、结算模块等,且各个模块间存在大量的RAM及外部内存数据访问。
目前一般可通过编译include头文件共享数据的外部内存地址,但该方式主要存在以下问题。
1.在功能模块的开发阶段,一些功能模块也可能需要获取其他功能模块的参数,但通过include头文件进行数据访问时,若其他功能模块还未开发完,并未生成相应参数,则进行数据访问的功能模块会报错,因此无法顺利进行开发。
也即是说,由于通过include头文件进行数据访问时,在不存在相应参数会出现访问报错,无法返回数据,因此若其他功能模块还未开发完,则依赖该其他功能模块的参数的功能模块无法顺利进行开发,在此情况下,各个功能模块开发的独立性较差。
2.智能电表运行时,各功能模块可通过该include头文件直接访问数据项所在的外部内存地址以实现数据访问,但由于直接访问数据项所在的外部内存地址,因此会存在数据项被非法访问的风险。
基于此,本申请实施例提供一种数据访问方法、装置、智能电表和计算机可读存储介质,以解决以上问题。
具体地,图1为本申请实施例提供的智能电表10的一种方框示意图,请参照图1,该智能电表10包括存储器100、处理器110及通信模块120。存储器100、处理器110以及通信模块120各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器100用于存储程序或者数据。存储器100可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器110用于读/写存储器中存储的数据或程序,并执行相应地功能。
通信模块120用于通过网络建立智能电表10与其它通信终端之间的通信连接,并用于通过网络收发数据。
可选地,该存储器中存储有能够被处理器执行的计算机程序,该处理器可以通过执行该计算机程序以实现本申请实施例提供的数据访问方法。
可选地,该智能电表10中可以事先存储有关系表,而该关系表中存储有数据的ID信息与属性信息之间的对应关系。
应当理解的是,图1所示的结构仅为智能电表的结构示意图,智能电表还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
接下来以上述图1中的智能电表为执行主体,结合流程示意图对本申请实施例提供的数据访问方法进行示例性介绍。
具体地,图2为本申请实施例提供的数据访问方法的一种流程示意图,请参见图2,该方法包括:
步骤S20,获取访问请求。
可选地,该访问请求包括待访问数据的待访问ID信息、待访问属性信息以及访问参数。
可选地,该访问请求由需要进行数据访问的功能模块生成。
步骤S21,根据待访问ID信息和关系表,获取待访问数据对应的目标属性信息,并根据目标属性信息以及待访问属性信息,确定访问请求是否为合法访问请求。
可选地,智能电表可以根据目标属性信息确定待访问属性信息是否满足预设的合法访问条件,并在满足预设的合法访问条件的情况下确定该访问请求为合法访问请求。
可选地,该合法访问条件可以由开发人员根据实际应用需求确定。
在一种可能实现的方式中,若目标属性信息与待访问属性信息匹配,则确定该访问请求为合法访问请求。
在另一种可能实现的方式中,智能电表可以根据目标属性信息确定待访问属性信息的格式是否正确,并在格式正确的情况下确定该访问请求为合法访问请求。
例如,若目标属性信息为数组,则智能电表可以根据该目标属性信息对应的待访问属性信息是否为数组,确定访问请求是否为合法访问请求。
步骤S22,若访问请求为合法访问请求,则根据目标属性信息和访问参数对待访问数据进行数据访问。
可选地,该访问参数可以表征数据访问方式。
在一种可能实现的方式中,该访问参数可以包括访问辅助指针以及访问形式,其中,该访问辅助指针可用于指示如何进行数据访问,例如,按行访问、按列访问、按照一定范围访问、按照对象访问、按照类别访问等等,该访问形式可以表征读数据或者写数据。
本申请实施例提供的数据访问方法,智能电表中存储有表征数据的ID信息与属性信息之间的对应关系的关系表,则智能电表可以根据访问请求中的待访问ID信息和该关系表,获取待访问数据对应的目标属性信息,并根据该目标属性信息以及访问请求中的待访问属性信息,确定该访问请求是否为合法请求,从而在该访问请求为合法请求的情况下,根据目标属性信息和访问参数对待访问数据进行数据访问,因此可避免非法数据访问。
可选地,智能电表中的功能模块可以采集实时数据进行保存,例如,瞬时量测量模块可实现电压、电流、频率等瞬时量测量,电能计量模块可实现有功电能、无功电能等数据的计量,且将实时数据保存到内存。
可以理解的,该待访问数据可以包括实时数据。
可选地,智能电表中可以通过一定数据结构形成关系表,以存储实时数据的相关信息。在一种可能实现的方式中,该关系表可以包括文件表、数据表、特殊操作表以及数据ID表,上述ID信息可以包括文件ID以及实时数据ID。
可选地,该文件表中可以存储有多个文件ID与多个数据表属性之间的对应关系,其中,一个文件ID对应一个数据表属性。
可选地,智能电表中的每个功能模块均对应有一个文件ID。在一种可能实现的方式中,智能电表可以根据0-255分别为每个功能模块分配对应的文件ID,以便在进行查找时快速根据文件ID定位到相应的数据表属性。
可选地,该数据表属性可以包括数据表项数以及数据表地址、特殊操作表项数以及特殊操作表地址。
可选地,该数据表地址可以是数据表的起始地址,该特殊操作表地址可以是特殊操作表的起始地址。
可选地,该数据表项数指的是数据表有多少条记录,即数据表中记录有多少条对应关系,该特殊操作表项数指的是特殊操作表有多少条记录,即特殊操作表中记录有多少条对应关系。
可选地,该数据表中可以存储有多个实时数据ID与多个数据ID属性之间的对应关系,其中,多个实时数据ID对应一个数据ID属性。
可选地,该多个实时数据ID可以表征为一个ID区间,包括开始数据ID和结束数据ID,即,一个ID区间对应一个数据ID属性。
可选地,该数据ID属性可以包括前置函数、后置函数、数据ID个数、数据ID表地址、内存类型以及备份信息。
可选地,该前置函数用于在数据访问前进行前置处理或前置判断,例如判断写入数据是否超范围等;该后置函数用于在数据访问后进行后置处理或后置判断,例如对一些处理生效等。
可选地,该前置函数和后置函数也可能被缺省掉,视具体需求而定。
可选地,该数据表中存储的前置函数可以是前置函数指针,该后置函数可以是后置函数指针。
可选地,该数据ID表地址指的是数据ID表的起始地址;该内存类型指的是存储方式。
可选地,该备份信息指的是E2双备份信息,包括主区地址、备份区地址以及数据长度。可以理解的,该E2双备份信息仅在内存类型为E2双备份带校验时需要配置。
可选地,该数据ID表中存储有多个实时数据ID与多个实时数据属性之间的对应关系,其中,一个实时数据ID对应一个实时数据属性。
可选地,该实时数据属性可以包括该实时数据的同类项个数、数据长度、数据类型、数据量纲以及内存地址。
可选地,该同类项个数指的是与该实时数据地址连续且数据结构完全一致的数据项个数。在一种可能实现的方式中,0表示无同类项,N(≥1)表示有N个同类项。
可选地,该数据长度指的是数据字节的长度,若该实时数据可变长,则该数据长度可以是最大长度。
可选地,该数据类型可以包括U32、U16、ASCII、数组、结构等。
可选地,该数据量纲可以用于表征该实时数据的精度。例如,若数据为123,量纲为-1,则此数据项为即为123*10-1。
可选地,该内存地址指的是该实时数据所在的地址。
可选地,该特殊操作表中存储有多个实时数据ID与多个访问操作函数之间的对应关系,其中,多个实时数据ID对应一个访问操作函数。
可选地,该多个实时数据ID可以表征为一个ID区间,即,一个ID区间对应一个访问操作函数。
可选地,该访问操作函数用于指示访问操作方式。在一种可能实现的方式中,该访问操作函数可以包括读操作函数和写操作函数。
可选地,该特殊操作表中存储的访问操作函数可以是访问操作函数指针。
在本实施例中,智能电表根据待访问ID信息和所述关系表所要获取的目标属性信息可以包括目标数据ID属性以及目标实时数据属性,访问请求中的待访问ID信息可以包括待访问文件ID以及待访问实时数据ID。
在此基础上,智能电表可以通过待访问文件ID和待访问实时数据ID,并根据文件表、数据表以及数据ID表获取目标数据ID属性以及目标实时数据属性。
在一种可能实现的方式中,图3为一种关系表示意图,请参见图3,智能电表可以首先在文件表中确定待访问文件ID对应的目标数据表属性,从而根据目标数据表属性中的数据表地址获取目标数据表。
之后,智能电表可以在目标数据表中,根据开始数据ID和结束数据ID,确定待访问实时数据ID对应的目标数据ID属性,并根据目标数据ID属性中的数据ID表地址获取目标数据ID表。
进一步的,智能电表可以根据待访问实时数据ID在该目标数据ID表中确定目标实时数据属性。
在本实施例中,该访问请求中的待访问属性信息可以包括待访问数据类型、待访问数据量纲、待访问数据长度的长度存放地址以及待访问数据内容的内容存放地址。
在此基础上,智能电表可以根据上述待访问属性信息和目标实时数据属性,确定访问请求是否为合法访问请求。
在一种可能实现的方式中,可以通过确定待访问属性信息和目标实时数据属性是否匹配的方式,确定访问请求是否为合法访问请求。即确定待访问数据类型与目标实时数据属性中的数据类型是否匹配、待访问数据量纲和目标实时数据属性中的数据量纲是否匹配、待访问数据长度和目标实时数据属性中的数据长度是否匹配。
可以理解的,可以在上述参数均匹配的情况下确定访问请求为合法访问请求,也可以在上述参数部分匹配的情况下确定该访问请求为合法访问请求,具体可由开发人员根据实际应用需求进行设置,本申请对此不做限定。
可选地,考虑到内存地址有时也可能存在一些特殊情况,例如RAM内存地址为0,因此智能电表还可以在出现相应特殊情况时,通过特殊操作表进行数据访问。
具体地,智能电表可在目标数据ID属性中的目标内存类型为RAM存储类型且目标实时数据属性中的目标内存地址为指定值的情况下,根据特殊操作表地址获取目标特殊操作表,以及根据待访问实时数据ID在目标特殊操作表中确定目标访问操作函数。
可选地,该指定值为0,也即是说,智能电表可以在目标内存类型为RAM存储类型,且目标内存地址为0的情况下,通过特殊操作表进行数据访问。
可选地,请继续参照图3,智能电表可以根据目标数据表属性中的特殊操作表地址获取目标特殊操作表,从而根据待访问实时数据ID在目标特殊操作表中确定目标访问操作函数。
可以理解的,此时确定的目标访问操作函数包括读操作函数和写操作函数。
在此基础上,智能电表可以根据目标访问操作函数和访问参数进行数据访问。即,先根据访问参数确定选择读操作函数还是写操作函数,之后再根据确定的操作函数进行数据访问。
此外,该智能电表还可以在目标内存类型为RAM存储类型且目标实时数据内存地址不为指定值,或者目标内存类型为除RAM存储类型之外的其他存储类型的情况下,直接根据目标内存地址和访问参数进行数据访问。
可选地,该除RAM存储类型之外的其他存储类型可以包括E2单备份、E2双备份带校验或dataflash。
可以理解的,智能电表可以在目标内存类型为RAM存储类型且目标内存地址不为0,或者目标内存类型为其他存储类型的情况下,不采用特殊操作表,直接根据目标内存地址以及该访问参数进行数据访问。
在本实施例中,由于智能电表中提前设置了相应的数据结构,因此智能电表可以在进行数据访问时,按序地根据地址进行查找,最终获取到待访问数据的内存地址从而进行数据访问。
在此基础上,若在功能模块的开发阶段时,某个功能模块需要读取另一功能模块的参数,而该另一功能模块并未开发完成因此还未生成相应参数,则智能电表仍然可以通过上述数据访问方式在相应内存地址,或通过访问操作函数进行数据访问,此时仅会获得读取数据为空的反馈,而不会报错,因此即使未读取到有效数据,该功能模块仍然可以继续进行开发,从而提高了开发阶段各个功能模块的独立性。
可选地,为了保证数据访问成功,在对待访问数据进行数据访问之前,智能电表还可以在目标数据表中确定待访问实时数据ID对应的前置函数,并在前置函数不为空的情况下根据前置函数、待访问属性信息以及访问参数对访问请求进行前置验证。
可选地,智能电表可以将前述的待访问属性信息以及访问参数输入该前置函数进行前置验证。
在此情况下,智能电表可在访问请求通过前置验证的情况下,根据目标属性信息和访问参数对待访问数据进行数据访问。
此外,智能电表还可以在进行了数据访问之后,在目标数据表中确定待访问实时数据ID对应的后置函数,并在后置函数不为空的情况下根据后置函数、待访问属性信息以及访问参数对访问请求进行后置验证。
可选地,智能电表可以将前述的待访问属性信息以及访问参数输入该后置函数进行后置验证。
可选地,该智能电表中的一些功能模块还会根据实时数据生成日历数据进行保存,例如,结算、负荷曲线可根据配置参数按周期从其他模块获取实时数据并保存这些实时数据到内存,且保持最近一段时间的周期数据可通信(即日历数据);事件记录模块可根据各模块运行情况、瞬时量数值与标称值差异,根据配置参数从其他模块获取实时数据并保存这些实时数据到外部内存,且保持最近多次事件可通信读取(即日历数据)。
因此,可以理解的,该待访问数据还可以是日历数据,在此基础上,该智能电表中还可以存储日历数据ID表以存储日历数据ID与日历数据属性之间的对应关系。
具体地,上述ID信息可以包括日历数据ID,该关系表可以包括日历数据ID表,且日历数据ID表中存储有多个日历数据ID与多个日历属性之间的对应关系,其中,一个日历数据ID对应一个日历属性。
可选地,该目标属性信息可以包括目标日历属性,该待访问ID信息可以包括待访问日历数据ID。
在此基础上,智能电表可以根据待访问日历数据ID在日历数据ID表中确定目标日历属性。
可选地,一个日历数据ID可以对应多个日历数据,该日历数据即为之前存储的实时数据。
可选地,该日历属性可以包括多个日历数据的起始地址和终止地址、数据对象ID、周期ID、有效记录条数ID、最大记录条数ID以及记录管理ID。
可选地,该起始地址指的是日历数据外部内存存放的起始地址,该终止地址指的是日历数据外部内存存放的结束地址。
可选地,该数据对象ID可以表征日历数据的个数以及多个日历数据ID。
可选地,该周期ID可以表征日历数据的记录周期,例如一个小时。
可选地,该有效记录条数ID指的是当前记录的有效日历数据的条数,该最大记录条数ID指的是最大能够记录的日历数据的条数。
可选地,该记录管理ID可以表征当前指针位置(当前记录地址)以及单条记录长度。可以理解的,该单条记录长度可随着数据对象ID表征的日历数据的个数以及多个日历数据ID的变化而变化。
可选地,图4为另一种关系表示意图,请参见图4,可以理解的,数据对象ID、周期ID、有效记录条数ID、最大记录条数ID以及记录管理ID均与实时数据的数据ID表相关。
可选地,该智能电表可以在获取到目标日历属性后,根据访问请求中的待访问属性信息和该目标日历属性,确定该访问请求是否为合法访问请求。
在本实施例中,该待访问属性信息可以包括待访问数据类型、待访问数据长度的长度存放地址以及待访问数据内容的内容存放地址。
在一种可能实现的方式中,可以通过确定待访问属性信息和目标实时数据属性是否匹配的方式,确定访问请求是否为合法访问请求。此时智能电表需要先通过记录管理区ID确定单条记录的长度,之后通过确定待访问数据长度与该单条记录的长度是否匹配,确定该访问请求是否为合法访问请求。
可选地该智能电表还可以根据目标日历属性中的记录管理ID、数据对象ID以及访问参数,对待访问数据进行数据访问。
可以理解的,智能电表可以结合当前指针位置、实时数据ID集以及该访问参数,对待访问数据进行数据访问。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种数据访问装置的实现方式。进一步地,请参阅图5,图5为本申请实施例提供的一种数据访问装置的功能模块图。需要说明的是,本实施例所提供的数据访问装置,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该数据访问装置包括:获取模块200、确定模块210以及访问模块220。
该获取模块200,用于获取访问请求;访问请求包括待访问数据的待访问ID信息、待访问属性信息以及访问参数。
可选地,该获取模块200还可以用于执行上述步骤S20。
该确定模块210,用于根据待访问ID信息和关系表,获取待访问数据对应的目标属性信息,并根据目标属性信息以及待访问属性信息,确定访问请求是否为合法访问请求。
可选地,该确定模块210还可以用于执行上述步骤S21。
该访问模块220,用于若访问请求为合法访问请求,则根据目标属性信息和访问参数对待访问数据进行数据访问。
可选地,该访问模块220还可以用于执行上述步骤S22。
可选地,该确定模块210,还用于在文件表中确定待访问文件ID对应的目标数据表属性,并根据目标数据表属性中的数据表地址获取目标数据表;在目标数据表中确定待访问实时数据ID对应的目标数据ID属性,并根据目标数据ID属性中的数据ID表地址获取目标数据ID表;根据待访问实时数据ID在目标数据ID表中确定目标实时数据属性。
可选地,该访问模块220,还用于若目标数据ID属性中的目标内存类型为RAM存储类型且目标实时数据属性中的目标内存地址为指定值,则根据特殊操作表地址获取目标特殊操作表,以及根据待访问实时数据ID在目标特殊操作表中确定目标访问操作函数,并根据目标访问操作函数和访问参数进行数据访问;若目标内存类型为RAM存储类型且目标内存地址不为指定值,或者目标内存类型为除RAM存储类型之外的其他存储类型,则根据目标内存地址和访问参数进行数据访问。
可选地,该访问模块220,还用于在目标数据表中确定待访问实时数据ID对应的前置函数,并在前置函数不为空的情况下根据前置函数、待访问属性信息以及访问参数对访问请求进行前置验证;在访问请求通过前置验证的情况下,根据目标属性信息和访问参数对待访问数据进行数据访问;在目标数据表中确定待访问实时数据ID对应的后置函数,并在后置函数不为空的情况下根据后置函数、待访问属性信息以及访问参数对访问请求进行后置验证。
可选地,该确定模块210,还用于根据待访问日历数据ID在日历数据ID表中确定目标日历属性。
可选地,该访问模块220,还用于根据目标日历属性中的记录管理ID、数据对象ID以及访问参数,对待访问数据进行数据访问。
本申请实施例提供的数据访问装置,通过获取模块获取访问请求;所述访问请求包括待访问数据的待访问ID信息、待访问属性信息以及访问参数;通过确定模块根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,并根据所述目标属性信息以及所述待访问属性信息,确定所述访问请求是否为合法访问请求;通过访问模块在所述访问请求为合法访问请求的情况下,根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问,因此可避免非法数据访问。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图1所示的存储器中或固化于该智能电表的操作系统(Operating System,OS)中,并可由图1中的处理器执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器中。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现本申请实施例提供的数据访问方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据访问方法,其特征在于,应用于智能电表,所述智能电表中存储有关系表,所述关系表中存储有数据的ID信息与属性信息之间的对应关系,所述方法包括:
获取访问请求;所述访问请求包括待访问数据的待访问ID信息、待访问属性信息以及访问参数;
根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,并根据所述目标属性信息以及所述待访问属性信息,确定所述访问请求是否为合法访问请求;
若所述访问请求为合法访问请求,则根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问。
2.根据权利要求1所述的方法,其特征在于,所述待访问数据包括实时数据,所述ID信息包括文件ID以及实时数据ID,所述关系表包括文件表、数据表、特殊操作表以及数据ID表;
所述文件表中存储有多个文件ID与多个数据表属性之间的对应关系,其中,一个所述文件ID对应一个数据表属性;所述数据表属性包括数据表项数以及数据表地址、特殊操作表项数以及特殊操作表地址;
所述数据表中存储有多个实时数据ID与多个数据ID属性之间的对应关系,其中,多个所述实时数据ID对应一个所述数据ID属性;所述数据ID属性包括前置函数、后置函数、数据ID个数、数据ID表地址、内存类型以及备份信息;
所述数据ID表中存储有多个实时数据ID与多个实时数据属性之间的对应关系,其中,一个所述实时数据ID对应一个所述实时数据属性;所述实时数据属性包括同类项个数、数据长度、数据类型、数据量纲以及内存地址;
所述特殊操作表中存储有多个实时数据ID与多个访问操作函数之间的对应关系,其中,多个所述实时数据ID对应一个所述访问操作函数。
3.根据权利要求2所述的方法,其特征在于,所述目标属性信息包括目标数据ID属性以及目标实时数据属性,所述待访问ID信息包括待访问文件ID以及待访问实时数据ID;
所述根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,包括:
在所述文件表中确定所述待访问文件ID对应的目标数据表属性,并根据所述目标数据表属性中的数据表地址获取目标数据表;
在所述目标数据表中确定所述待访问实时数据ID对应的目标数据ID属性,并根据所述目标数据ID属性中的数据ID表地址获取目标数据ID表;
根据所述待访问实时数据ID在所述目标数据ID表中确定所述目标实时数据属性。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问,包括:
若所述目标数据ID属性中的目标内存类型为RAM存储类型且所述目标实时数据属性中的目标内存地址为指定值,则根据所述特殊操作表地址获取目标特殊操作表,以及根据所述待访问实时数据ID在所述目标特殊操作表中确定目标访问操作函数,并根据所述目标访问操作函数和所述访问参数进行数据访问;
若所述目标内存类型为RAM存储类型且所述目标内存地址不为指定值,或者所述目标内存类型为除RAM存储类型之外的其他存储类型,则根据所述目标内存地址和所述访问参数进行数据访问。
5.根据权利要求3所述的方法,其特征在于,在根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问之前,所述方法还包括:
在所述目标数据表中确定所述待访问实时数据ID对应的前置函数,并在所述前置函数不为空的情况下根据所述前置函数、所述待访问属性信息以及所述访问参数对所述访问请求进行前置验证;
所述根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问,包括:
在所述访问请求通过前置验证的情况下,根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问;
在根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问之后,所述方法还包括:
在所述目标数据表中确定所述待访问实时数据ID对应的后置函数,并在所述后置函数不为空的情况下根据所述后置函数、所述待访问属性信息以及所述访问参数对所述访问请求进行后置验证。
6.根据权利要求1所述的方法,其特征在于,所述待访问数据包括日历数据,所述ID信息包括日历数据ID,所述关系表包括日历数据ID表;所述日历数据ID表中存储有多个所述日历数据ID与多个日历属性之间的对应关系,且一个所述日历数据ID对应一个所述日历属性;所述目标属性信息包括目标日历属性,所述待访问ID信息包括待访问日历数据ID;
所述根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,包括:
根据所述待访问日历数据ID在所述日历数据ID表中确定所述目标日历属性。
7.根据权利要求6所述的方法,其特征在于,一个所述日历数据ID对应多个日历数据,所述日历属性包括多个所述日历数据的起始地址和终止地址、记录管理ID以及数据对象ID,其中,所述记录管理ID表征当前指针位置,所述数据对象ID表征所述日历数据的个数以及多个日历数据ID;
所述根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问,包括:
根据所述目标日历属性中的记录管理ID、数据对象ID以及所述访问参数,对所述待访问数据进行数据访问。
8.一种数据访问装置,其特征在于,应用于智能电表,所述智能电表中存储有关系表,所述关系表中存储有数据的ID信息与属性信息之间的对应关系,所述装置包括:
获取模块,用于获取访问请求;所述访问请求包括待访问数据的待访问ID信息、待访问属性信息以及访问参数;
确定模块,用于根据所述待访问ID信息和所述关系表,获取所述待访问数据对应的目标属性信息,并根据所述目标属性信息以及所述待访问属性信息,确定所述访问请求是否为合法访问请求;
访问模块,用于若所述访问请求为合法访问请求,则根据所述目标属性信息和所述访问参数对所述待访问数据进行数据访问。
9.一种智能电表,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序以实现权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311389317.4A CN117421750A (zh) | 2023-10-24 | 2023-10-24 | 数据访问方法、装置、智能电表和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311389317.4A CN117421750A (zh) | 2023-10-24 | 2023-10-24 | 数据访问方法、装置、智能电表和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117421750A true CN117421750A (zh) | 2024-01-19 |
Family
ID=89525979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311389317.4A Pending CN117421750A (zh) | 2023-10-24 | 2023-10-24 | 数据访问方法、装置、智能电表和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117421750A (zh) |
-
2023
- 2023-10-24 CN CN202311389317.4A patent/CN117421750A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446407B (zh) | 基于区块链的数据库审计方法和装置 | |
US8311794B2 (en) | Testing executable logic | |
CN110727597B (zh) | 一种基于日志排查无效代码补全用例的方法 | |
CN110059068B (zh) | 一种分布式存储系统中的数据校验方法及数据校验系统 | |
US7761432B2 (en) | Inheritable file system properties | |
CN110750434A (zh) | 接口测试方法、装置、电子设备和计算机可读存储介质 | |
CN110262948B (zh) | 页面数据的监听方法、装置及设备 | |
CN110647507B (zh) | 一种文件系统写状态确定方法、装置、电子设备及介质 | |
CN117421750A (zh) | 数据访问方法、装置、智能电表和计算机可读存储介质 | |
CN110059087B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN111930363A (zh) | 区块接口代码生成方法、及装置 | |
US20120317158A1 (en) | File system location verification using a sentinel | |
CN115828225A (zh) | 基于可信计算的白名单度量方法、系统及介质、客户端 | |
CN113986592A (zh) | 日志记录方法、装置、终端设备及可读存储介质 | |
CN112416417A (zh) | 一种代码量统计方法、装置、电子设备及存储介质 | |
CN108459930B (zh) | 数据备份方法、装置和存储介质 | |
CN112231232A (zh) | 确定测试数据模型及生成测试数据的方法、装置及设备 | |
CN109117083B (zh) | 移动终端、内置存储容量检测方法及计算机可读存储介质 | |
CN112434287A (zh) | 一种检测Hook的方法、装置、设备及存储介质 | |
CN115577355A (zh) | 检测外挂的方法、装置、设备及存储介质 | |
CN115203300B (zh) | 一种数据验证方法及装置 | |
CN116166205B (zh) | 文件系统存储和挂载方法、装置、设备及存储介质 | |
US11768819B2 (en) | Data unblocking in application platforms | |
CN116860646A (zh) | 一种审核系统策略的方法、装置、存储介质及电子设备 | |
CN117348945A (zh) | 一种应用程序客户端瘦身方法、装置和应用程序客户端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |