CN110851447B - 一种ii型集中器的柔性存储方法 - Google Patents
一种ii型集中器的柔性存储方法 Download PDFInfo
- Publication number
- CN110851447B CN110851447B CN201911085677.9A CN201911085677A CN110851447B CN 110851447 B CN110851447 B CN 110851447B CN 201911085677 A CN201911085677 A CN 201911085677A CN 110851447 B CN110851447 B CN 110851447B
- Authority
- CN
- China
- Prior art keywords
- storage
- meter
- data
- record
- address
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种II型集中器的柔性存储方法,当II型集中器内的表计档案或者采集方案发生变更时,重新动态地为每个表计计算并分配新的记录长度,包括:记录长度计算和数据存储两个步骤;记录长度计算用于计算出每个采集方案配置的各数据项的最大存储长度及表计档案信息、计算出每个表计的存储记录长度值,并把本次新计算出的每个表计的存储记录长度值和本地已存储的每个表计的存储记录长度值进行对比,重新写入到内部数据存储区内;数据存储用于根据存储消息内的数据信息,定位到该时间点所在的具体的存储位置,存储数据至定位的存储位置。本发明在不会过多消耗内存和FLASH空间的情况下,实现当前的业务需求,进而达到节省成本的目的。
Description
技术领域
本发明属于用电信息采集计量技术领域,具体涉及一种II型集中器的柔性存储方法。
背景技术
当前在用电信息采集领域,II型集中器开始采用面向对象通信协议进行数据通信,由于该协议在方案的配置、数据检索的方法等方面非常灵活,以数据采集为例,不同的数据项,比如电压、电流、功率,可以配置在不同的采集方案中,以不同的采集周期、不同的存储时标(电压以“任务开始时间”进行存储、电流以“数据冻结时标”进行存储、功率以“相对当日0点0分”进行存储)分别进行采集,即使是同一个采集方案,对于采集的数据内容、数据项个数、采集的表计数量也可以随时进行调整。
在此情况下,对数据的存储方法提出了新的要求,首先,同一个表计在不同的时间点,所存储的记录总长度是可变的,其次,每个表计在每个时间点内的记录内容是随时可以进行追加的。
针对此种问题,一般的解决方法有两种:
第一种是采用数据库存储技术对存储数据进行统一的管理,但是此种方法会大量增加内存和FLASH(代码存储)的开销,在低压采集II型集中器领域,受制于空间大小以及材料成本的因素,一般都是采用MCU(微处理器)+串行NORFlash(外部数据存储器)的模式,如果在现有的MCU方案的情况下加入数据库,那么会极大的占用内存和代码存储空间,一般的MCU已经无法满足,需要采用高性能、大内存、大存储空间的MCU进行替代,而这样会极大的增加产品成本,降低了产品的市场竞争力。
第二种是采用定长存储。根据当前的业务需求,以及对未来一段时间内可能会扩充的业务需求,预估出II型集中器每一个表计可能会存储的最大数据量,然后按照此最大值给每一个表计进行分配存储记录的长度,这样每一个表计在每个时间点的存储记录长度都是固定不变的。由于是按照最大的情况对每个表计分配存储记录长度,会消耗大量的外部数据存储资源,因此需要大容量的外部数据存储器进行支撑,而且实际运行时许多表计根本不需要分配这么多存储空间,造成了存储器空间的极大浪费,而且一旦后期有更多的业务需求增加,有可能当前预估的存储空间不够,还需要后期再进行代码升级的风险。
发明内容
为解决上述技术问题,本发明提出了一种II型集中器的柔性存储方法,当II型集中器内的表计档案或者采集方案发生变更时,重新动态地为每个表计计算并分配新的记录长度,包括:记录长度计算和数据存储两个步骤;
所述的记录长度计算,用于检索II型集中器参数区内所有的采集方案,计算出每个采集方案配置的各数据项的最大存储长度及表计档案信息、计算出每个表计的存储记录长度值,并把本次新计算出的每个表计的存储记录长度值和本地已存储的每个表计的存储记录长度值进行对比,重新写入到内部数据存储区内;
所述的数据存储,用于根据存储消息内的数据信息,定位到该时间点所在的具体的存储位置,存储数据至定位的存储位置。
本发明的有益效果:
本发明在不会过多消耗内存和FLASH(代码存储)空间的情况下,实现当前的业务需求,进而达到节省成本的目的。
附图说明
为了更清楚地说明本发明的具体实施方式、或者现有技术中的技术方案,下面将对具体实施方式或现有技术的描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图是本发明的一些具体实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的属于本申请保护范围之内的附图。
图1是本发明实施例的数据存储结构示意图;
图2是本发明实施例的头信息存储结构示意图;
图3是本发明实施例的表记录区内的每条记录格式示意图;
图4是本发明实施例的数据存储流程示意图。
具体实施方式
下面结合附图,具体说明本发明的实施方式。
本申请的柔性存储的基本思想是,根据II型集中器内表计档案的数量及采集方案内的所要采集数据项(例如电压、电流等)的数量,为每个表计动态地分配每个记录的总长度。当表计档案或者采集方案发生变更时,重新为每个表计计算并分配新的记录长度,具体实现过程包括:记录长度计算和数据存储两个过程。
1、记录长度计算。
当II型集中器发生表计档案变更或者采集方案变更后(通过II型集中器的外部维护通信口对集中器发送变更指令),需要立刻启动记录长度计算功能,具体流程如下:
1.1)检索II型集中器参数区内所有的采集方案,并计算出每个采集方案配置的各数据项的最大存储长度及表计档案信息。
1.1-1)定义一个第一结构体,结构体成员包括:
其中,
stOADDta[N],该任务所要采集数据项及对应的存储长度,其中N预估为50。
udwMeterInfo[P],该任务所要采集的表计信息,其中P的取值遵循32*P大于等于II型集中器所支持的最大采集的表计个数(例如,II型集中器最大支持采集320块表计数据,则P的取值应当为10),每个比特位代表表计档案参数区内的表计档案,比如:bit0代表,表计档案参数区内第一个表计档案,bit1代表表计档案区内第二个表计档案,依次类推。当bit值为0表示该采集任务不需要采集该表计,若为1表示需要采集该表计。
1.1-2)利用第一结构体ST_COLL_TASK_INFO定义一个数组stTaskInfo[M]用来存储所有采集方案的采集信息,其中M为II型集中器所支持的最大采集方案的数量。
1.1-3)依次解析每个采集方案的数据项内容、该数据项返回的内容大小、所抄的表计档案,具体流程如下:
1.1-3-1)定义一个第二结构体,格式如下:
用于统计所要采集的数据项以及每个数据项返回的最大数据长度。
1.1-3-2)以第二结构体OAD_INFO的格式在II型集中器的参数区里开辟一块存储空间paraTaskInfo,在该储存空间内可以存放S个OAD_INFO格式的数据,其中S为II型集中器所支持采集的最大数据项个数。设计此步骤的目的是,后期可以根据实际的业务需求,通过维护指令,下发各数据项的实际返回值长度,并存储到II型集中器的参数区内。
1.1-3-3)在II型集中器的静态存储区内,以OAD_INFO为结构定义一个包含S个元素的结构体数组stRamTaskInfo[S]、并赋予初始值,初始值要包含各数据项的数据标识,以及各数据项返回的最大长度值。设计此步骤的目的是,若后期经步骤1.1-3-4)的判断、实际未执行步骤1.1-3-2),在集中器内仍然预存留了各数据项的最大返回值长度信息,保证了可靠性。
1.1-3-4)在参数区内查找到第一个采集方案,首先,解析出该方案所要采集的第一个数据项OAD1,然后,在paraTaskInfo参数区内的S个元素里查找是否含有该数据项OAD1,如果有,则把paraTaskInfo内记录的该数据项对应记录的最大长度值OADSize、存入到stTaskInfo中的stOADDta内;如果没有,则在stRamTaskInfo中的S个元素里继续查找是否存在该数据项,如果存在则把stRamTaskInfo内该数据项对应记录的最大长度值OADSize、存入到stTaskInfo中的stOADDta内,如果仍然不存在,则把默认的最大值MAXOADSIZE存入到stTaskInfo中的stOADDta内,MAXOADSIZE是根据当前规约提前计算出的预计最大值,是个常量。最后,重复上述过程解析出该采集方案内剩余的每一个数据项OAD的返回的最大长度值。
1.1-3-5)在1.1-3-4)的基础上继续解析出该方案所存储的要采集的第一个表计信息,首先,在II型集中器的表计档案参数区MeterPara内,该参数区共含有K个表计元素,其中K为II型集中器所支持的最大采集表计数量,查找该表计所在的储存位置a,然后,在stTaskInfo中对udwMeterInfo[P]内的元素进行赋值,即,udwMeterInfo[a/32]|=0x01<<a%32。重复上述过程,直至把该采集方案内的所有表计信息查询完毕。
1.1-3-6)重复上述1.1-3-4)和1.1-3-5)的过程,直至把所有的采集方案解析完毕,最后分析出II型集中器内所有采集档案的采集数据项及对应的返回的最大长度值和表计信息。
1.2)计算出每个表计的存储记录长度值。
1.2-1)定义一个记录长度数组uwRDSize[K],数组个数K为当前II型集中器内所支持的表计总个数。
1.2-2)执行步骤“1)检索II型集中器参数区内所有的采集方案,并计算出每个采集方案配置的各数据项的最大存储长度及表计档案信息”,统计出每一个表计的存储记录长度uwRDSize[i],过程如下:
1.2-2-1)在II型集中器的档案参数区内,查找到第一个有效的表计档案i。
1.2-2-2)在采集方案信息stTaskInfo[M]内,分析第一个采集方案stTaskInfo[0],首先判断udwMeterInfo[i/32]&(0x01<<(i%32))是否等于1,如果是0,则代表在该采集方案内不需要采集表计档案i的表计,则直接查询下一个采集方案stTaskInfo[1],直至所有采集方案查询完毕;如果等于1,则代表,该采集方案需要采集表计档案i,此时需要把stTaskInfo[0]内的stOADDta[]内所有有效数据项(有效的标准是stOADDta[].stOAD不等于0xFFFFFFFF)的长度和进行累加计算,即,Data0=stOADDta[0].OADSize+stOADDta[1].OADSize+…+stOADDta[n].OADSize。
1.2-2-3)继续分析下一个采集方案stTaskInfo[1],重复步骤1.2-2-2)的过程,直至所有的采集方案分析完毕,统计出表计档案i的记录长度uwRDSize[i],即,uwRDSize[i]=Data0+Data1+...+Datam。
1.2-2-4)在表计档案区继续查找下一个有效的表计档案j,重复步骤1.2-2-2)和1.2-2-3),直至表计参数档案区内所有的表计信息统计完毕。
1.3)对计算统计结果进行比对及存储。
把本次新计算出的每个表计的记录长度uwRDSize[i]和本地已存储的每个表计的记录长度uwStoreRDSize[i]进行对比(uwStoreRDSize[i]是存储在内部数据存储区内,掉电不丢失,在初始运行时为空,即数据值为0xFFFF),如果uwStoreRDSize[i]值为空,或者uwRDSize[i]和uwStoreRDSize[i]存在不同,就用uwRDSize[i]的数据值替换uwStoreRDSize[i]的值、然后重新写入到内部数据存储区内,存储格式为:序号(2字节)+地址(6字节)+长度(2字节),共计10字节。
2、数据存储。
2.1)定义数据存储消息,包括:当前要存储的表计地址、要存储的时间点、要存储的数据内容;定义存储数组用来存储头信息值。
根据当前的业务需求,在数据存储时需要周期性存储多个时间点的数据,每个时间点需要存储多个表计数据。比如,集中器里配置了8块电能表档案,需要集中器进行采集,每个小时采集一次,那么一天当中从0点开始到23点,一共需要存储24个时间点的数据,在0点时需要存储8块表在0点时的数据值,存储顺序分别是电表1、电表2,….电表8,然后在1点钟时还是需要存储八块电表在1点钟的数据,存储顺序分别是电表1、电表2,….电表8,依次类推,直至存储完24个点。如图1所示,是本发明实施例的数据存储结构示意图,表记录包括:不同的时间点、该时间点的头信息、该时间点的各表计的记录。图1所示的是集中器内所有时间点的存储模型,比如集中器一共只能存储24个时间点的数据的话,则时间点1存储0点钟的数据,时间点2存储1点钟的数据….,每个时间点内,比如0点钟,表计1记录存储的是电表1的数据值,表计2记录存储的是电表2的数据。图1中头信息的总的存储空间大小是固定不变的,在该存储空间内记录了该时间点内、每个表计的记录总长度。
如图2所示,是本发明实施例的头信息存储结构示意图。头信息包括:表计序号、表计地址、表计存储记录的总长度。
如图3所示,是本发明实施例的表记录区内的每条记录格式示意图。每条记录格式包括:序号、表计地址、该表计地址所要存储的数据。
由于头信息的总存储空间是固定不变的,因此在表计存储区内表计1的起始存储位置AddrRecord1也是固定不变的。
定义数据存储消息格式:
其中,数组ucAddr为当前要存储的表计地址,udwStoreTime为要存储的时间点,ucDataBuf为要存储的数据内容。
定义数组storeHeadInfo[K]用来存储图2中的每个头信息值,数组个数K为当前II型集中器内所支持的表计总个数。
2.2)当收到数据存储指令后,首先,解析数据存储消息,提取出期望的存储时间、表计地址、数据内容,根据存储消息期望的存储时间udwStoreTime,定位到该时间点所在的具体的存储位置。
2.3)在该存储位置处读取出头信息storeHeadInfo[K],判断头信息是否为空(数据值全部为0xFF),若为空,则把第1步“记录长度计算”中存储在本地内部存储区内的所有表计记录长度uwStoreRDSize[K]存储到头信息storeHeadInfo[K]中,然后重新从头信息读取后再次解析头信息storeHeadInfo[K]内的数据(也就是在重新存储记录长度后再次重复执行2.3的过程);若不为空,则对头信息进行解析,获取出每一块表计在该存储点的记录长度len。
2.4)根据存储消息内的储存表计地址ucAddr,在头信息中查找到该地址的记录总长度Lenx,在表记录区内逐条检索,查找到表计地址ucAddr所在的具体位置,具体方法如下:
2.4-1)从表记录区第一个记录位置读取固定字节长度的数据:从表计1的记录存储起始位置AddrRecord1,读取b字节数的数据(b的长度值至少要大于图3中序号+地址的总长度值),若该b字节的数据全部都为0xFF则认为该记录为空,同时该储存时间点内的记录都为空,直接定位表计1的存储位置就是当前存储表计ucAddr的期望存储位置,若不为空进入步骤2.4-2。
2.4-2)提取出该条记录的表地址信息,并与期望的存储表计地址进行比较:根据图3所示的记录存储格式,提取出该记录的地址ucAddr1,与期望的存储表计地址ucAddr进行比较,若地址一致,则直接定位当前记录的存储地址ucAddr1就是期望的存储表计ucAddr的存储位置,若不一致,在头信息storeHeadInfo[]中查找到该地址ucAddr1的记录总长度Len1,过程如下:首先在storeHeadInfo中提取第一个元素storeHeadInfo[0]的地址,然后与ucAddr1进行比对,若不一致,则继续查找storeHeadInfo中的第二个元素中的地址与ucAddr1进行比对;若一致,在storeHeadInfo中提取出该表计的记录长度Len1,通过AddrRecord1+Len1计算出记录2的起始存储地址AddrRecord2。
2.4-3)重复步骤2.4-2)的过程,从存储地址AddrRecord2处,再次读取b字节数的数据,若该b字节的数据全部都为0xFF则认为该记录为空,直接定位当前存储表计ucAddr的存储位置就是表计AddrRecord2的位置,若不为空,则根据图3所示的记录存储格式,提取出该记录的地址ucAddr2,与期望的存储表计地址ucAddr进行比较,若地址一致,则直接定位当前记录的存储地址ucAddr2就是期望的存储表计ucAddr的存储位置,若不一致,在头信息storeHeadInfo中查找到该地址ucAddr2的记录总长度Len2,通过AddrRecord2+Len2计算出记录3的起始存储地址AddrRecord3,重复上述过程,直至所有记录检索完毕。
2.5)根据存储消息内的数据信息,存储数据至定位的存储位置。具体过程如下:根据上一步骤中定位的存储位置AddrRecordx,读取Lenx长度的数据Datax,其中Lenx是根据storeHeadInfo中存储的该表计地址ucAddr的最大记录长度值,若数据值为空(数据值全部为0xFF),直接把存储消息内的数据ucDataBuf写入到该记录区内;若数据值不为空,则在Datax中查找是否包含ucDataBuf中的数据,若包含、则直接丢弃ucDataBuf中的数据,若不包含、则在Datax记录中的最后一个有效数据值后把ucDataBuf中的数据追加进去。如图4所示,是本发明实施例的数据存储流程示意图。
最后需要说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此。本领域技术人员应该理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种II型集中器的柔性存储方法,当II型集中器内的表计档案或者采集方案发生变更时,重新动态地为每个表计计算并分配新的记录长度,其特征在于,包括:记录长度计算和数据存储两个步骤;
所述的记录长度计算,用于检索II型集中器参数区内所有的采集方案,计算出每个采集方案配置的各数据项的最大存储长度及表计档案信息、计算出每个表计的存储记录长度值,并把本次新计算出的每个表计的存储记录长度值和本地已存储的每个表计的存储记录长度值进行对比,重新写入到内部数据存储区内;
所述的数据存储,用于根据存储消息内的数据信息,定位到存储消息内的要存储的时间点所在的具体的存储位置,存储数据至定位的存储位置;
所述的记录长度计算用于计算出每个采集方案配置的各数据项的最大存储长度及表计档案信息,具体包括以下步骤:
1.1-1)定义一个第一结构体ST_COLL_TASK_INFO,成员包括:采集任务所要采集数据项及对应的存储长度stOADDta[N]、N预估为50,采集任务所要采集的表计信息udwMeterInfo[P]、P的取值遵循32*P大于等于II型集中器所支持的最大采集的表计个数,每个比特位代表表计档案参数区内的表计档案,当bit值为0表示采集任务不需要采集该表计、若为1表示需要采集该表计;
1.1-2)利用ST_COLL_TASK_INFO定义一个数组stTaskInfo[M],用来存储所有采集方案的采集信息,M为II型集中器所支持的最大采集方案的数量;
1.1-3)依次解析每个采集方案的数据项内容、该数据项返回的内容大小、所抄的表计档案;
步骤1.1-3的解析过程具体包括以下步骤:
1.1-3-1)定义一个第二结构体OAD_INF,用于统计所要采集的数据项以及每个数据项返回的最大数据长度;
1.1-3-2)以OAD_INF的格式在II型集中器的参数区里开辟一块存储空间paraTaskInfo,用于存放S个OAD_INF格式的数据,S为II型集中器所支持采集的最大数据项个数;
1.1-3-3)在II型集中器的静态存储区内,以OAD_INF为结构定义一个包含S个元素的结构体数组stRamTaskInfo[S]、并赋予初始值,初始值要包含各数据项的数据标识,以及各数据项返回的最大长度值;
1.1-3-4)在参数区内查找到第一个采集方案,解析出该方案所要采集的每一个数据项的返回的最大长度值OADSize;
1.1-3-5)在1.1-3-4)的基础上继续解析出该方案所存储的要采集的每一个表计信息;
1.1-3-6)重复1.1-3-4)和1.1-3-5)的过程,直至把所有的采集方案解析完毕,最后分析出II型集中器内所有采集档案的采集数据项及对应的返回的最大长度值和表计信息;
所述的记录长度计算用于计算出每个表计的存储记录长度值的具体步骤如下:
1.2-1)定义一个记录长度数组uwRDSize[K],数组个数K为当前II型集中器内所支持的表计总个数;
1.2-2)统计出每一个表计的存储记录长度uwRDSize[i],过程如下:
1.2-2-1)在II型集中器的档案参数区内,查找到第一个有效的表计档案i;
1.2-2-2)在采集方案信息stTaskInfo[M]内,分析第一个采集方案stTaskInfo[0],如果该任务所要采集的表计信息等于1,则代表该采集方案需要采集表计档案i,把stTaskInfo[0]内的stOADDta[]内所有有效数据项的长度和进行累加计算;
1.2-2-3)继续分析下一个采集方案stTaskInfo[1],重复步骤1.2-2-2)的过程,直至所有的采集方案分析完毕,统计出表计档案i的记录长度uwRDSize[i];
1.2-2-4)在表计档案区继续查找下一个有效的表计档案j,重复步骤1.2-2-2)和1.2-2-3),直至表计参数档案区内所有的表计信息统计完毕。
2.根据权利要求1所述的柔性存储方法,其特征在于,把本次新计算出的每个表计的记录长度重新写入到内部数据存储区内的具体规则是:
如果本地已存储的记录长度值为空、或者本地已存储的记录长度值与新计算出的表计的记录长度值存在不同,用新计算出的表计的记录长度值替换本地已存储的记录长度值、重新写入到内部数据存储区内。
3.根据权利要求2所述的柔性存储方法,其特征在于,把本次新计算出的每个表计的记录长度重新写入到内部数据存储区内,存储格式为:序号+地址+长度,序号为2字节,地址为6字节,长度为2字节,共计10字节。
4.根据权利要求1-3任一项所述的柔性存储方法,其特征在于,所述的数据存储过程具体包括以下步骤:
2.1)定义数据存储消息,包括:当前要存储的表计地址、要存储的时间点、要存储的数据内容;定义存储数组用来存储头信息值;
2.2)当收到数据存储指令后,首先,解析数据存储消息,提取出期望的存储时间、表计地址、数据内容,根据存储消息期望的存储时间udwStoreTime,定位到该时间点所在的具体的存储位置;
2.3)在该存储位置处读取出头信息,判断头信息是否为空,若为空、把存储在本地内部存储区内的所有表计记录长度存储到头信息中,然后对头信息读取进行解析,获取出每一块表计在该存储位置的记录长度len;
2.4)根据存储消息内的储存表计地址ucAddr,在头信息中查找到该地址的记录总长度Lenx,在表记录区内逐条检索,查找到表计地址ucAddr所在的具体位置;
2.5)根据存储消息内的数据信息,存储数据至定位的存储位置。
5.根据权利要求4所述的柔性存储方法,其特征在于,步骤2.4具体包括以下步骤:
2.4-1)从表记录区第一个记录位置读取固定字节长度的数据:从表计1的记录存储起始位置AddrRecord1,读取b字节数的数据、b的长度值至少要大于序号+地址的总长度值,若该b字节的数据全部都为0xFF则认为该记录为空,同时该储存时间点内的记录都为空,直接定位表计1的存储位置就是当前存储表计ucAddr的期望存储位置,若不为空进入步骤2.4-2;
2.4-2)提取出该条记录的表地址信息,并与期望的存储表计地址进行比较:根据记录存储格式,提取出该记录的地址ucAddr1,与期望的存储表计地址ucAddr进行比较,若地址一致、则直接定位当前记录的存储地址ucAddr1就是期望的存储表计ucAddr的存储位置,若不一致、在头信息storeHeadInfo[]中查找到该地址ucAddr1的记录总长度Len1;
2.4-3)重复步骤2.4-2)的过程,从存储地址AddrRecord2处,再次读取b字节数的数据,若该b字节的数据全部都为0xFF则认为该记录为空,直接定位当前存储表计ucAddr的存储位置就是表计AddrRecord2的位置,若不为空,则根据记录存储格式,提取出该记录的地址ucAddr2,与期望的存储表计地址ucAddr进行比较,若地址一致、则直接定位当前记录的存储地址ucAddr2就是期望的存储表计ucAddr的存储位置,若不一致、在头信息storeHeadInfo中查找到该地址ucAddr2的记录总长度Len2,通过AddrRecord2+Len2计算出记录3的起始存储地址AddrRecord3,重复上述过程,直至所有记录检索完毕。
6.根据权利要求5所述的柔性存储方法,其特征在于,步骤2.5的具体过程如下:根据上一步骤中定位的存储位置AddrRecordx,读取Lenx长度的数据Datax,其中Lenx是根据storeHeadInfo中存储的该表计地址ucAddr的最大记录长度值,若数据值为空,直接把存储消息内的数据ucDataBuf写入到该记录区内;若数据值不为空,则在Datax中查找是否包含ucDataBuf中的数据,若包含、则直接丢弃ucDataBuf中的数据,若不包含、则在Datax记录中的最后一个有效数据值后把ucDataBuf中的数据追加进去。
7.根据权利要求6所述的柔性存储方法,其特征在于,头信息包括:表计序号、表计地址、表计存储记录的总长度;每条记录格式包括:序号、表计地址、该表计地址所要存储的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085677.9A CN110851447B (zh) | 2019-11-07 | 2019-11-07 | 一种ii型集中器的柔性存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085677.9A CN110851447B (zh) | 2019-11-07 | 2019-11-07 | 一种ii型集中器的柔性存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851447A CN110851447A (zh) | 2020-02-28 |
CN110851447B true CN110851447B (zh) | 2022-04-15 |
Family
ID=69599138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911085677.9A Active CN110851447B (zh) | 2019-11-07 | 2019-11-07 | 一种ii型集中器的柔性存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851447B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113591027A (zh) * | 2021-07-05 | 2021-11-02 | 宁波三星医疗电气股份有限公司 | 一种实现集中器与本地通信模块之间档案同步的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016086025A1 (en) * | 2014-11-24 | 2016-06-02 | The United States Of America, As Represented By The Secretary Department Of Health And Human Services | Determination of a joint probability distribution of radius and length of anisotropic pores from double pulsed field gradient mri data |
CN107844720A (zh) * | 2017-08-29 | 2018-03-27 | 南京理工大学 | 用于高频rfid密集档案管理系统的精确定位指示系统 |
CN110022226A (zh) * | 2019-01-04 | 2019-07-16 | 国网浙江省电力有限公司 | 一种基于面向对象的数据采集系统及采集方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10133491B4 (de) * | 2001-07-10 | 2004-06-03 | Universitätsklinikum Freiburg | Bildgebendes Mehrschicht-Verfahren der Magnetresonanz mit unabhängiger Wahl von TR(TRIM) |
CN103908259B (zh) * | 2014-04-03 | 2016-01-13 | 深圳市德凯瑞科技有限公司 | 一种智能穿戴设备及人体运动的监测与识别方法 |
CN104217566A (zh) * | 2014-09-16 | 2014-12-17 | 北京天公瑞丰科技有限公司 | Ii型采集器的智能搜表方法与系统 |
CN204615824U (zh) * | 2015-05-26 | 2015-09-02 | 贵州电力试验研究院 | 一种远程高速电力线信号采集还原装置 |
JP6972714B2 (ja) * | 2017-07-04 | 2021-11-24 | 富士通株式会社 | データ取得プログラム、装置、及び方法 |
-
2019
- 2019-11-07 CN CN201911085677.9A patent/CN110851447B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016086025A1 (en) * | 2014-11-24 | 2016-06-02 | The United States Of America, As Represented By The Secretary Department Of Health And Human Services | Determination of a joint probability distribution of radius and length of anisotropic pores from double pulsed field gradient mri data |
CN107844720A (zh) * | 2017-08-29 | 2018-03-27 | 南京理工大学 | 用于高频rfid密集档案管理系统的精确定位指示系统 |
CN110022226A (zh) * | 2019-01-04 | 2019-07-16 | 国网浙江省电力有限公司 | 一种基于面向对象的数据采集系统及采集方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110851447A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103412889B (zh) | 智能电表的数据存储和查询方法及其系统 | |
CN103003803B (zh) | 时序数据处理装置及其方法 | |
CN108563711A (zh) | 一种基于时间节点的时序数据存储方法 | |
CN107943831B (zh) | 一种基于HBase的电网历史数据集中存储方法 | |
CN107328968A (zh) | 用于电能表的冻结和事件记录数据存储方法 | |
CN102893265A (zh) | 管理可独立访问的数据单元的存储 | |
CN110851447B (zh) | 一种ii型集中器的柔性存储方法 | |
CN109470918B (zh) | Ir46电能表的电量数据处理方法和ir46电能表 | |
CN106126384A (zh) | 一种采集性能监视单元pmu事件的方法及装置 | |
CN103198157B (zh) | 一种大地电场数据的压缩存储处理方法 | |
CN112328556A (zh) | 电能量曲线数据存储方法、电能表及计算机可读存储介质 | |
CN1282108C (zh) | 消除指针存储以减少ram大小的散列技术 | |
CN112133080B (zh) | 电力采集终端计量数据的存储方法、电力采集终端及电力系统 | |
CN111124313A (zh) | 电力采集终端数据读写方法、装置和电子设备 | |
CN103853772B (zh) | 一种高效倒排索引组织方法 | |
CN115270992B (zh) | 新型的材料物理数据分类方法及系统 | |
CN104750743A (zh) | 一种交易文件勾对系统和方法 | |
CN115686362A (zh) | 一种智能电表的数据冻结方法 | |
CN112269549B (zh) | 一种轻型嵌入式系统的闪存管理方法 | |
CN107238764B (zh) | 电力系统的电能质量监测方法和装置 | |
CN113505943A (zh) | 一种电网短期负荷的预测方法、系统、设备和介质 | |
CN110427396A (zh) | 电能表数据检索方法、装置、设备及计算机可读存储介质 | |
WO1996000399A1 (en) | Metering systems | |
CN113065599A (zh) | 一种用于数据中心的能耗数据采集方法 | |
CN113220234B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |