会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 修改 / 一种在集中器中进行参数修改的方法

一种在集中器中进行参数修改的方法

阅读:130发布:2021-03-03

IPRDB可以提供一种在集中器中进行参数修改的方法专利检索,专利查询,专利分析的服务。并且本发明属于电信息采集系统的技术领域,涉及集中器,尤其涉及一种在集中器中进行参数修改的方法。包括以下有效步骤:a、首先在内存中创建变量;b、解析指令确定所变更的参数的相对偏移量及该参数所占用的总字节数;c、创建链表节点,同时把该节点插入到参数存储链表,根据参数占用的字节数量申请一块同样大小的内存空间;d、把参数变更后的新参数写入到申请的内存空间内;e、将参数存储链表中的数据与申请的内存空间内的新参数的数据同步,即完成集中器参数的修改。本发明通过提供一种在集中器中进行参数修改的方法,相对于传统的修改方法,本发明既节省了内存同时也提高了传递效率。,下面是一种在集中器中进行参数修改的方法专利的具体信息内容。

1.一种在集中器中进行参数修改的方法,其特征在于,包括以下有效步骤:

a、首先在内存中创建变量:参数存储结构体、参数存储结构体指针、节点结构体、参数存储链表,其中,所述参数存储结构体为集中器所要存储的所有参数;所述参数存储结构体指针为参数存储结构体定义的指针变量;所述节点结构体用于定义链表中每个节点所包含的成员元素;所述参数存储链表用来传递需要存储的参数;

b、解析指令确定所变更的参数的相对偏移量及该参数所占用的总字节数;

c、创建链表节点,同时把该节点插入到参数存储链表,根据参数占用的字节数量申请一块同样大小的内存空间;

d、把参数变更后的新参数写入到申请的内存空间内;

e、将参数存储链表中的数据与申请的内存空间内的新参数的数据同步,即完成集中器参数的修改。

2.根据权利要求1所述的一种在集中器中进行参数修改的方法,其特征在于,所述a步骤中,所述节点结构体包括序列值、自身控制块,其中,所述序列值用于各节点在链表中排序所用,所述自身控制块用于当前节点所指向的控制块地址。

3.根据权利要求2所述的一种在集中器中进行参数修改的方法,其特征在于,所述a步骤中,所述参数存储链表包括节点数量、链表起始指针以及链表节点指针,其中,所述节点数量用于统计链表中节点的总数量;所述链表起始指针用于指向链表开始节点的地址,在链表查找时方便找到第一个节点位置;所述链表节点指针用于指向链表节点的地址。

4.根据权利要求3所述的一种在集中器中进行参数修改的方法,其特征在于,所述b步骤中,具体操作如下:当集中器收到参数变更的指令后,首先解析出当前需要变更的具体参数x,然后通过步骤a中定义的参数存储结构体指针确定出参数x在结构体内的相对偏移量,偏移量=参数x地址-参数1地址;其次确定出参数x在参数存储结构体中所占用的字节总数量m。

5.根据权利要求4所述的一种在集中器中进行参数修改的方法,其特征在于,所述c步骤中,具体操作如下:c1、根据步骤a中节点结构体创建节点变量指针,同时该指针指向一块新申请的内存,把步骤b中确定的偏移量赋值给序列值,即,节点变量指针->序列值=偏移量;

c2、根据步骤b中计算的参数x所占用的字节数量m,申请一块同样大小的内存空间,同时令节点变量指针->自身控制块指向此内存空间;

c3、把新创建的节点插入到参数存储链表中,由于步骤b中有可能会一次变更多个参数,因此参数存储链表中有可能是多个节点的连接,当一个新的节点插入到已有的结构链中时,可以根据新增节点的序列值和已有节点的序列值通过升序进行各节点之间的连接,同时参数存储链表中的节点数量加一。

6.根据权利要求5所述的一种在集中器中进行参数修改的方法,其特征在于,所述e步骤中,具体操作如下:e1、确定参数存储链表中是否存在需要更新的参数,即,判断参数存储链表->节点数量是否大于零,若大于零则进入e2;

e2、对参数存储空间内的参数备份,把当前的参数存储空间内的参数按照既有的顺序全部读取出来,临时存储到一块安全的存储空间内;

e3、擦除当前的参数存储空间;

e4、参数存储空间内的参数再写入,由于在上一步中把参数存储空间内的所有数据都进行了擦除操作,在此需要把参数存储链表和步骤e2临时存储空间内的参数从新写入到参数存储空间内,来实现新参数的变更。

7.根据权利要求6所述的一种在集中器中进行参数修改的方法,其特征在于,所述e4步骤的具体操作如下:e4a、从参数存储链表中取出第一个节点的序列值,由步骤c1可知序列值是每个需要变更的参数在参数存储结构体中相对于参数1的偏移量,因此通过该值可知第一个节点所存储的参数值在参数存储空间内的存储位置;

e4b、把临时存储空间内偏移量为0到参数1的偏移量之间的所有参数写入到参数存储空间内;

e4c、把参数1的偏移量的参数由参数存储链表中第一个节点取出后写入到参数存储空间内,同时记录该参数在存储空间内存储的截止位置相对于参数1起始地址的相对偏移量;

e4d、从参数存储链表中取出下一个节点的序列值,即,参数的相对偏移量,把临时存储空间内偏移量为相对偏移量到参数1的偏移量之间的所有参数写入到参数存储空间内;

e4e、把参数1的偏移量的参数由参数存储链表中的节点取出后写入到参数存储空间内,同时记录该参数在存储空间内存储的截止位置相对于参数1起始地址的相对偏移量;

e4f、重复执行步骤e4d、e4e直至把所有的参数同步完毕。

说明书全文

一种在集中器中进行参数修改的方法

技术领域

[0001] 本发明属于电信息采集系统的技术领域,涉及集中器,尤其涉及一种在集中器中进行参数修改的方法。

背景技术

[0002] 随着电力系统信息化改造的不断推进,集中器在集抄系统中的使用量在不断的增长。在集中器内存在着多达几十种的各类配置参数,正是这些各类参数共同控制着集中器,使其按照设计的固有方案长期稳定的运行。
[0003] 但是集中器内的所有参数都不是一成不变的,而是根据实际的外部使用环境,对其内部的相关参数值进行着动态的修改。因此如何正确、有效的修改管理这些参数变的至关重要。
[0004] 目前一般的处理的方案是通过文件系统在外部存储单元中创建参数文件,同时在内存中做一个参数备份。当需要对参数进行修改时,先对内存中的备份参数进行修改,当所有要修改的参数在内存中修改完成后,在把内存中的备份参数整体同步到外部存储中的参数文件中。此种方案的优点是充分利用了内存的特性,修改方便、效率高,同时带来的弊端就是内存开销比较大,随着参数种类的增加,内存的开销也随着增加,对于嵌入式系统的产品来讲,硬件资源,尤其是内存容量的增加,意味着产品成本的升高,不利于提升产品的市场竞争力。

发明内容

[0005] 本发明针对上述集中器参数修改内存开销比较大、成本高导致市场竞争力差的技术问题,提出一种方法简单、修改方便、效率高且内存消耗少的一种在集中器中进行参数修改的方法。
[0006] 为了达到上述目的,本发明采用的技术方案为,本发明提供一种在集中器中进行参数修改的方法,包括以下有效步骤:
[0007] a、首先在内存中创建变量:参数存储结构体、参数存储结构体指针、节点结构体、参数存储链表,其中,所述参数存储结构体为集中器所要存储的所有参数;所述参数存储结构体指针为参数存储结构体定义的指针变量;所述节点结构体用于定义链表中每个节点所包含的成员元素;所述参数存储链表用来传递需要存储的参数;
[0008] b、解析指令确定所变更的参数的相对偏移量及该参数所占用的总字节数;
[0009] c、创建链表节点,同时把该节点插入到参数存储链表,根据参数占用的字节数量申请一块同样大小的内存空间;
[0010] d、把参数变更后的新参数写入到申请的内存空间内;
[0011] e、将参数存储链表中的数据与申请的内存空间内的新参数的数据同步,即完成集中器参数的修改。
[0012] 作为优选,所述a步骤中,所述节点结构体包括序列值、自身控制块,其中,所述序列值用于各节点在链表中排序所用,所述自身控制块用于当前节点所指向的控制块地址。
[0013] 作为优选,所述a步骤中,所述参数存储链表包括节点数量、链表起始指针以及链表节点指针,其中,所述节点数量用于统计链表中节点的总数量;所述链表起始指针用于指向链表开始节点的地址,在链表查找时方便找到第一个节点位置;所述链表节点指针用于指向链表节点的地址。
[0014] 作为优选,所述b步骤中,具体操作如下:当集中器收到参数变更的指令后,首先解析出当前需要变更的具体参数x,然后通过步骤a中定义的参数存储结构体指针确定出参数x在结构体内的相对偏移量,偏移量=参数x地址-参数1地址;其次确定出参数x在参数存储结构体中所占用的字节总数量m。
[0015] 作为优选,所述c步骤中,具体操作如下:
[0016] c1、根据步骤a中节点结构体创建节点变量指针,同时该指针指向一块新申请的内存,把步骤b中确定的偏移量赋值给序列值,即,节点变量指针->序列值=偏移量;
[0017] c2、根据步骤b中计算的参数x所占用的字节数量m,申请一块同样大小的内存空间,同时令节点变量指针->自身控制块指向此内存空间;
[0018] c3、把新创建的节点插入到参数存储链表中,由于步骤b中有可能会一次变更多个参数,因此参数存储链表中有可能是多个节点的连接,当一个新的节点插入到已有的结构链中时,可以根据新增节点的序列值和已有节点的序列值通过升序进行各节点之间的连接,同时参数存储链表中的节点数量加一。
[0019] 作为优选,所述e步骤中,具体操作如下:
[0020] e1、确定参数存储链表中是否存在需要更新的参数,即,判断参数存储链表->节点数量是否大于零,若大于零则进入e2;
[0021] e2、对参数存储空间内的参数备份,把当前的参数存储空间内的参数按照既有的顺序全部读取出来,临时存储到一块安全的存储空间内;
[0022] e3、擦除当前的参数存储空间;
[0023] e4、参数存储空间内的参数再写入,由于在上一步中把参数存储空间内的所有数据都进行了擦除操作,在此需要把参数存储链表和步骤e2临时存储空间内的参数从新写入到参数存储空间内,来实现新参数的变更。
[0024] 作为优选,所述e4步骤的具体操作如下:
[0025] e4a、从参数存储链表中取出第一个节点的序列值,由步骤c1可知序列值是每个需要变更的参数在参数存储结构体中相对于参数1的偏移量,因此通过该值可知第一个节点所存储的参数值在参数存储空间内的存储位置;
[0026] e4b、把临时存储空间内偏移量为0到参数1的偏移量之间的所有参数写入到参数存储空间内;
[0027] e4c、把参数1的偏移量的参数由参数存储链表中第一个节点取出后写入到参数存储空间内,同时记录该参数在存储空间内存储的截止位置相对于参数1起始地址的相对偏移量;
[0028] e4d、从参数存储链表中取出下一个节点的序列值,即,参数的相对偏移量,把临时存储空间内偏移量为相对偏移量到参数1的偏移量之间的所有参数写入到参数存储空间内;
[0029] e4e、把参数1的偏移量的参数由参数存储链表中的节点取出后写入到参数存储空间内,同时记录该参数在存储空间内存储的截止位置相对于参数1起始地址的相对偏移量;
[0030] e4f、重复执行步骤e4d、e4e直至把所有的参数同步完毕。
[0031] 与现有技术相比,本发明的优点和积极效果在于,
[0032] 本发明通过提供一种在集中器中进行参数修改的方法,相对于传统的修改方法,本发明取消了参数区在内存中的备份,节省了大量的内存资源、采用链表的形式一次传递多个要变更的参数,既节省了内存同时也提高了传递效率、在参数存储空间进行数据更新时,先进行参数备份,在一次性的从备份区或者链表中提取参数数据进行数据更新,既提高了效率也保证了数据的安全。

具体实施方式

[0033] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合实施例对本发明做进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0034] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开说明书的具体实施例的限制。
[0035] 实施例1,本实施例提供一种在集中器中进行参数修改的方法,
[0036] 具体操作如下:
[0037] 1)在内存中创建如下变量:
[0038] “参数存储结构体”DLT_PARA、
[0039] “参数存储结构体指针”pstDltPara、
[0040] “节点结构体”ListItem_t、
[0041] “参数存储链表”xParaStoreList、
[0042] 其中“参数存储结构体”包含了集中器所要存储的所有参数,具体格式如下:
[0043]
[0044]
[0045] 对于结构体内的每个具体的参数y,根据各自的实际情况会分别定义出不同的结构体格式,即不同的参数数据构建不同的结构体格式。
[0046] “参数存储结构体指针”pstDltPara是由“参数存储结构体”DLT_PARA定义的指针变量,根据参数区在参数存储单元里实际分配的绝对物理地址对该变量进行赋值。
[0047] “节点结构体”定义了链表中每个节点所包含的成员元素,具体如下:
[0048] ①“序列值”xItemValue,主要用来各节点在链表中排序所用。
[0049] ②“自身控制块”pvOwner,当前节点所指向的控制块地址
[0050] “参数存储链表”是创建的链表变量,主要用来传递需要存储的参数包含成员如下:
[0051] “节点数量”uxNumberOfItems,用于统计链表中节点的总数量。
[0052] “链表起始指针”pxIndex,用于指向链表开始节点的地址,在链表查找时方便找到第一个节点位置。
[0053] “链表节点指针”xListEnd,用于指向链表节点的地址
[0054] 例如:“参数存储结构体”DLT_PARA元素如表1所示,存在五类参数,分别为参数A、参数B、参数C、参数D、参数E,其中参数A中包括三个元素A1、A2、A3,每个元素占一个字节,则参数A共计占用三个字节地址空间,参数B中包括六个元素B1、B2、B3、B4、B5、B6,每个元素占一个字节,则参数B共计占用六个字节地址空间,参数C中包括四个元素C1、C2、C3、C4,每个元素占一个字节,则参数C共计占用四个字节地址空间,参数D中包括五个元素D1、D2、D3、D4、D5,每个元素占一个字节,则参数D共计占用五个字节地址空间,参数E中包括六个元素E1、E2、E3、E4、E5、E6,每个元素占一个字节,则参数E共计占用六个字节地址空间,共计占用24个字节,假设,参数A1在物理存储空间的地址为0x80001000,则该终端的实际物理存储空间范围为0x80001000-0x80001018。
[0055] 表1“参数存储结构体”DLT_PARA元素表
[0056]
[0057] 2)解析指令确定所变更的参数的相对偏移量及该参数所占用的总字节数。
[0058] 例如,当集中器收到参数变更的指令后,解析出当前需要变更的参数是参数B和参数D,然后通过步骤1)中定义的“参数存储结构体指针”pstDltPara确定出参数B在结构体内的相对偏移量,偏移量=参数B1地址-参数A1地址,0x80001003-0x80001000=3,偏移量addr=3,参数B所占用的字节总数量为6;同理,参数D的相对偏移量偏移量addr=13,参数D所占用的字节总数量为5
[0059] 3)创建链表节点xItem,同时把该节点插入到“参数存储链表”xParaStoreList中。
[0060] 3-1)根据步骤1)中“节点结构体”创建节点变量指针xItem,在本例中创建两个节点变量指针xItemB和xItemD。把步骤2)中确定的偏移量addr赋值给“序列值”xItemValue,即,xItemB->xItemValue=3,xItemD->xItemValue=13。
[0061] 3-2)根据步骤2)中计算出的参数B和参数D所占用的字节数量是6和5,因此申请两块内存空间,字节数量分别为6字节和5字节,同时令xItemB->pvOwner指向6字节的内存空间,xItemD->pvOwner指向5字节的内存空间。
[0062] 3-3)把新创建的节点xItemB和xItemD分别插入到“参数存储链表”
[0063] xParaStoreList中。在往链表xParaStoreList插入节点的过程中根据“序列[0064] 值”xItemValue的值进行升序排列,即,节点xItemB在节点xItemD的前面,同时“参数存储链表”xParaStoreList中的“节点数量”uxNumberOfItems加二。
[0065] 4)把参数B和参数D变更后的新参数,即B1、B2、B3、B4、B5、B6和D1、D2、D3、D4、D5的新内容分别写入到步骤3-2)中所申请的xItemB->pvOwner和xItemD->pvOwner空间内。
[0066] 5)“参数存储链表”xParaStoreList中的数据与参数存储空间内数据同步。
[0067] 5-1)确定“参数存储链表”xParaStoreList中是否存在需要更新的参数,即,判断“节点数量”xParaStoreList->uxNumberOfItems是大于零。若大于零则进入5-2)。
[0068] 5-2)对参数存储空间内的参数备份。把当前的参数存储空间内的参数按照既有的顺序全部读取出来,临时存储到一块安全的存储空间内。
[0069] 5-3)擦除当前的参数存储空间。
[0070] 5-4)参数存储空间内的参数再写入。由于在上一步5-3)中把参数存储空间内的所有数据都进行了擦除操作,在此需要把“参数存储链表”xParaStoreList和步骤5-2)临时存储空间内的参数从新写入到参数存储空间内,来实现新参数的变更。具体流程如下:
[0071] ①从“参数存储链表”xParaStoreList中取出节点的“序列值”xItemValue,由步骤3-1)可知第一个节点是xItemB,其xItemB->xItemValue值为3,第二个节点是xItemD,其xItemD->xItemValue值是13。由于“序列值”xItemValue是每个需要变更的参数在“参数存储结构体”中相对于参数1的偏移量,因此可以获知参数B和参数D的实际存储位置。
[0072] ②把临时存储空间内偏移量为0到2(xItemB->xItemValue的值减一后所得)之间的所有参数写入到参数存储空间内。
[0073] ③把节点xItemB->pvOwner所存储的数据内容由“参数存储链表”
[0074] xParaStoreList中取出,即B1、B2、B3、B4、B5、B6的数据内容,由xItemB->xItemValue值3的位置开始写入到参数存储空间内,总计写入6个地址空间(参数B的元素个数为6),同时记录该参数B在存储空间内存储的截止位置相对于参数A起始地址的相对偏移量addr’=xItemB->xItemValue+6(参数B的字节总个数),即addr’=9。
[0075] ④由于第二个节点xItemD->xItemValue值是13,则把临时存储空间内偏移量为9(由上一步③最后计算出的偏移地址值)到13之间的所有参数写入到参数存储空间内。
[0076] ⑤重复步骤③的过程把节点xItemD->pvOwner所存储的数据内容由“参数存储链表”xParaStoreList中取出,即D1、D2、D3、D4、D5的数据内容,由xItemD->xItemValue值13位置开始写入到参数存储空间内,同时记录该参数D在存储空间内存储的截止位置相对于参数A起始地址的相对偏移量addr’=
[0077] xItemD->xItemValue+5(参数D的字节总个数),即addr’=18。
[0078] ⑥重复执行步骤④临时空间存储空间内剩余的全部参数写入到参数存储空间内。
[0079] 以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用