一种数字化变电站网络报文的解码方法及装置的制造方法

文档序号:8301363阅读:400来源:国知局
一种数字化变电站网络报文的解码方法及装置的制造方法
【技术领域】
[0001 ] 本发明涉及变电站报文领域,特别涉及一种数字化变电站网络报文的解码方法及
目.0
【背景技术】
[0002]目前,goose报文和smv报文均采用ASN.1编码方式。ASN.1是一种IS0/ITU-T标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序,在任何需要以数字方式发送信息的地方,ASN.1都可以发送各种形式的信息(例如声频、视频、数据等等)。ASN.1和特定的ASN.1编码规则推进了结构化数据的传输,尤其是网络中应用程序之间的结构化数据传输,它以一种独立于计算机架构和语言的方式来描述数据结构。因此ASN.1是一种较为复杂的编码格式,同样,在解码的时候,也是一个极其复杂的过程。但是在数字化变电站中,由于报文流量较大,对于网络报文处理性能有极高的要求,需要实时处理每一条报文并给出业务逻辑判断。因此,需要采用高效的解码算法,提高处理性能。
[0003]然而,目前报文的解码主要是针对ASN.1结构逐层的进行解析。由于ASN.1编码适应各种数据结构,组合方式非常灵活,被称为“自描述”报文格式。因此其编码方式复杂,解码的时候,按照其编码进行逐层的解析,其解码效率低下,处理性能较差。

【发明内容】

[0004]本发明要解决的技术问题在于,针对现有技术的上述解码效率低下、处理性能较差的缺陷,提供一种解码效率较高、提高处理性能的数字化变电站网络报文的解码方法及
目.ο
[0005]本发明解决其技术问题所采用的技术方案是:构造一种数字化变电站网络报文的解码方法,包括如下步骤:
[0006]A)接收数据报文,并对其进行解析获取报文类型;
[0007]B)判断所述数据报文是否是smv报文,如是,获取所述smv报文的长度,执行步骤C);否则,执行步骤D);
[0008]C)判断所述smv报文的数据头类型并依据其数据头类型的内容解析数据内容,执行步骤F);
[0009]D)判断所述数据报文是否是goose报文,如是,获取所述goose报文的长度,执行步骤E);否则,不执行任何操作;
[0010]E)判断所述goose报文的数据头类型并依据其数据头类型的内容解析数据内容,执行步骤F);
[0011]F)判断所述数据内容是否解析完毕,如是,结束;否则,返回所述步骤C)或步骤E)。
[0012]在本发明所述的数字化变电站网络报文的解码方法中,所述步骤C)进一步包括:
[0013]Cl)判断smv报文的标识是否为0x80,如是,获取所述smv报文中结构体的个数,执行步骤C3);否则,执行步骤C2);
[0014]C2)出现错误提示并跳出程序;
[0015]C3)判断所述smv报文的标识是否为0x81,如是,获取所述smv报文的安全等级数据,执行步骤C4);否则,返回步骤C2);
[0016]C4)判断所述smv报文的标识是否为0xa2,如是,获取所述smv报文中结构体的数据内容,执行步骤C5);否则,返回步骤C2);
[0017]C5)依次解析采样值ID、数据集字符串、采样计数、配置版本、刷新时间、采样同步和米样率。
[0018]在本发明所述的数字化变电站网络报文的解码方法中,所述步骤E)进一步包括:
[0019]El)判断goose报文的标识是否为0x80,如是,获取所述goose报文中结构体的个数,执行步骤E3);否则,执行步骤E2);
[0020]E2)出现错误提示并跳出程序;
[0021]E3)依次解析控制块引用、生成时间、数据集引用、goose应用标识、事件时间、状态计数、序列计数、测试、版本、需要重新配置和数据集条目数,执行步骤E4);
[0022]E4)判断所述goose报文的标识是否为0x82,如是,将其解析为bool (布尔)类型,执行步骤E5);否则,返回步骤E2);
[0023]E5)判断所述goose报文的标识是否为0x84,如是,将其解析为bit_string(位串)类型,执行步骤E6);否则,返回步骤E2);
[0024]E6)判断所述goose报文的标识是否为0x85,如是,将其解析为int (整型)类型,执行步骤E7);否则,返回步骤E2);
[0025]E7)判断所述goose报文的标识是否为0x86,如是,将其解析为unsigned (无符号整型)类型,执行步骤ES);否则,返回步骤E2);
[0026]E8)判断所述goose报文的标识是否为0x87,如是,将其解析为float (浮点)类型,执行步骤E9);否则,返回步骤E2);
[0027]E9)判断所述goose报文的标识是否为0x91,如是,将其解析为UTC类型,执行步骤E10);否则,返回步骤E2);
[0028]E10)判断所述goose报文的标识是否为0xa2,如是,将其解析为数据结构体类型;否则,返回步骤E2)。
[0029]在本发明所述的数字化变电站网络报文的解码方法中,在所述步骤B)中,获取所述smv报文的长度后,还根据所述smv报文的长度进行数据的有效性验证。
[0030]在本发明所述的数字化变电站网络报文的解码方法中,在所述步骤D)中,获取所述goose报文的长度后,还根据所述goose报文的长度进行数据的有效性验证。
[0031]本发明还涉及一种实现上述数字化变电站网络报文的解码方法的装置,包括:
[0032]报文接收解析单元:用于接收数据报文,并对其进行解析获取报文类型;
[0033]smv报文判断单元:用于判断所述数据报文是否是smv报文,如是,获取所述smv报文的长度;否则,继续判断是否为goose报文;
[0034]smv报文数据头类型判断单元:用于判断所述smv报文的数据头类型并依据其数据头类型的内容解析数据内容;
[0035]goose报文判断单元:用于判断所述数据报文是否是goose报文,如是,获取所述goose报文的长度;否则,不执行任何操作;
[0036]goose报文数据头类型判断单元:用于判断所述goose报文的数据头类型并依据其数据头类型的内容解析数据内容;
[0037]解析判断单元:用于判断所述数据内容是否解析完毕,如是,结束;否则,返回。
[0038]在本发明所述的装置中,所述smv报文数据头类型判断单元进一步包括:
[0039]第一 smv报文标识判断模块:用于判断smv报文的标识是否为0x80,如是,获取所述smv报文中结构体的个数;否则,出现错误提示并跳出程序;
[0040]第一错误提示模块:用于出现错误提示并跳出程序;
[0041]第二 smv报文标识判断模块:用于判断所述smv报文的标识是否为0x81,如是,获取所述smv报文的安全等级数据;否则,返回;
[0042]第三smv报文标识判断模块:用于判断所述smv报文的标识是否为0xa2,如是,获取所述smv报文中结构体的数据内容;否则,返回;
[0043]smv报文解析模块:用于依次解析采样值ID、数据集字符串、采样计数、配置版本、刷新时间、采样同步和采样率。
[0044]在本发明所述的装置中,所述goose报文数据头类型判断单元进一步包括:
[0045]第一 goose报文标识判断模块:用于判断goose报文的标识是否为0x80,如是,获取所述goose报文中结构体的个数;否则,出现错误提示并跳出程序;
[0046]第二错误提示模块:用于出现错误提示并跳出程序;
[0047]goose报文解析模块:用于依次解析控制块引用、生成时间、数据集引用、goose应用标识、事件时间、状态计数、序列计数、测试、版本、需要重新配置和数据集条目数;
[0048]第二 goose报文标识判断模块:用于判断所述goose报文的标识是否为0x82,如是,将其解析为bool类型;否则,返回;
[0049]第三goose报文标识判断模块:用于判断所述goose报文的标识是否为0x84,如是,将其解析为bit-string类型;否则,返回;
[0050]第四goose报文标识判断模块:用于判断所述goose报文的标识是否为0x85,如是,将其解析为int类型;否则,返回;
[0051]第五goose报文标识判断模块:用于判断所述goose报文的标识是否为0x86,如是,将其解析为unsigne
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1