亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)字化變電站網(wǎng)絡(luò)報文的解碼方法及裝置的制造方法_3

文檔序號:8301363閱讀:來源:國知局
2。
[0087]步驟S802出現(xiàn)錯誤提示并跳出程序:如果上述步驟S801的判斷結(jié)果為否,則執(zhí)行本步驟。本步驟中,出現(xiàn)錯誤提示并跳出程序。
[0088]步驟S803獲取goose報文中結(jié)構(gòu)體的個數(shù):如果上述步驟S801的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,獲取goose報文中結(jié)構(gòu)體(asdu)的個數(shù)。執(zhí)行完本步驟,執(zhí)行步驟S804。
[0089]步驟S804依次解析控制塊引用、生成時間、數(shù)據(jù)集引用、goose應(yīng)用標(biāo)識、事件時間、狀態(tài)計數(shù)、序列計數(shù)、測試、版本、需要重新配置和數(shù)據(jù)集條目數(shù):本步驟中,依次解析控制塊引用、生成時間、數(shù)據(jù)集引用、goose應(yīng)用標(biāo)識、事件時間、狀態(tài)計數(shù)、序列計數(shù)、測試、版本、需要重新配置(ndscom)和數(shù)據(jù)集條目數(shù)。執(zhí)行完本步驟,執(zhí)行步驟S805。
[0090]步驟S805判斷goose報文的標(biāo)識是否為0x82:本步驟中,判斷goose報文的標(biāo)識是否為0x82,則執(zhí)行步驟S806 ;否則,返回步驟S802。
[0091]步驟S806將其解析為bool類型:如果上述步驟S805的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,將其解析為bool類型。執(zhí)行完步驟,執(zhí)行步驟S807。
[0092]步驟S807判斷goose報文的標(biāo)識是否為0x84:本步驟中,判斷goose報文的標(biāo)識是否為0x84,如果判斷的結(jié)果為是,則執(zhí)行步驟S808 ;否則,返回步驟S802。
[0093]步驟S808將其解析為bit-string類型:如果上述步驟S807的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,將其解析為bit-string類型。執(zhí)行完步驟,執(zhí)行步驟S809。
[0094]步驟S809判斷goose報文的標(biāo)識是否為0x85:本步驟中,判斷goose報文的標(biāo)識是否為0x85,如果判斷的結(jié)果為是,則執(zhí)行步驟S810 ;否則,返回步驟S802。
[0095]步驟S810將其解析為int類型:如果上述步驟S809的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,將其解析為int類型。執(zhí)行完步驟,執(zhí)行步驟S811。
[0096]步驟S811判斷goose報文的標(biāo)識是否為0x86:本步驟中,判斷goose報文的標(biāo)識是否為0x86,如果判斷的結(jié)果為是,則執(zhí)行步驟S812 ;否則,返回步驟S802。
[0097]步驟S812將其解析為unsigned類型:如果上述步驟S811的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,將其解析為unsigned類型。執(zhí)行完步驟,執(zhí)行步驟S813。
[0098]步驟S813判斷goose報文的標(biāo)識是否為0x87:本步驟中,判斷goose報文的標(biāo)識是否為0x87,如果判斷的結(jié)果為是,則執(zhí)行步驟S814 ;否則,返回步驟S802。
[0099]步驟S814將其解析為float類型:如果上述步驟S813的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,將其解析為float類型。執(zhí)行完步驟,執(zhí)行步驟S815。
[0100]步驟S815判斷goose報文的標(biāo)識是否為0x91:本步驟中,判斷goose報文的標(biāo)識是否為0x91,如果判斷的結(jié)果為是,則執(zhí)行步驟S816 ;否則,返回步驟S802。
[0101]步驟S816將其解析為UTC類型:如果上述步驟S815的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,將其解析為UTC類型。執(zhí)行完本步驟,執(zhí)行步驟S817。
[0102]步驟S817判斷goose報文的標(biāo)識是否為0xa2:本步驟中,判斷goose報文的標(biāo)識是否為0xa2,如果判斷的結(jié)果為是,則執(zhí)行步驟S818 ;否則,返回步驟S812。
[0103]步驟S818將其解析為數(shù)據(jù)結(jié)構(gòu)體類型:如果上述步驟S817的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,將其解析為數(shù)據(jù)結(jié)構(gòu)體類型。值得一提的是,上述0x80、0x82、0x84、0x85、0x86、0x87、0x91和0xa2均為十六進(jìn)制數(shù)值,這樣就實(shí)現(xiàn)了對goose報文的解碼。
[0104]本實(shí)施例還涉及一種實(shí)現(xiàn)上述數(shù)字化變電站網(wǎng)絡(luò)報文的解碼方法的裝置,其結(jié)構(gòu)示意圖如圖4所示。圖4中,該裝置包括報文接收解析單元1、smv報文判斷單元2、smv報文數(shù)據(jù)頭類型判斷單元3、goose報文判斷單元4、goose報文數(shù)據(jù)頭類型判斷單元5和解析判斷單元6 ;其中,報文接收解析單元I用于接收數(shù)據(jù)報文,并對其進(jìn)行解析獲取報文類型;smv報文判斷單元2用于判斷數(shù)據(jù)報文是否是smv報文,如是,獲取smv報文的長度;否則,繼續(xù)判斷是否為goose報文;smv報文數(shù)據(jù)頭類型判斷單元3用于判斷smv報文的數(shù)據(jù)頭類型并依據(jù)其數(shù)據(jù)頭類型的內(nèi)容解析數(shù)據(jù)內(nèi)容;g00Se報文判斷單元4用于判斷數(shù)據(jù)報文是否是goose報文,如是,獲取goose報文的長度;否則,不執(zhí)行任何操作;goose報文數(shù)據(jù)頭類型判斷單元5用于判斷goose報文的數(shù)據(jù)頭類型并依據(jù)其數(shù)據(jù)頭類型的內(nèi)容解析數(shù)據(jù)內(nèi)容;解析判斷單元6用于判斷數(shù)據(jù)內(nèi)容是否解析完畢,如是,結(jié)束;否則,返回。由于其根據(jù)數(shù)據(jù)結(jié)構(gòu)直接進(jìn)行數(shù)據(jù)解析,其無需根據(jù)ASN.1的自描述特性,逐層對數(shù)據(jù)進(jìn)行剖析,所以其解碼效率較高、提高處理性能。值得一提的是,在smv報文判斷單元2中,獲取smv報文的長度后,還根據(jù)smv報文的長度進(jìn)行數(shù)據(jù)的有效性驗(yàn)證。在goose報文判斷單元4中,獲取goose報文的長度后,還根據(jù)goose報文的長度進(jìn)行數(shù)據(jù)的有效性驗(yàn)證。
[0105]本實(shí)施例中,smv報文數(shù)據(jù)頭類型判斷單元3進(jìn)一步包括第一 smv報文標(biāo)識判斷模塊31、第一錯誤提示模塊32、第二 smv報文標(biāo)識判斷模塊33、第三smv報文標(biāo)識判斷模塊34和smv報文解析模塊35 ;其中,第一 smv報文標(biāo)識判斷模塊31用于判斷smv報文的標(biāo)識是否為0x80,如是,獲取smv報文中結(jié)構(gòu)體的個數(shù);否則,出現(xiàn)錯誤提示并跳出程序;第一錯誤提示模塊32用于出現(xiàn)錯誤提示并跳出程序;第二 smv報文標(biāo)識判斷模塊33用于判斷smv報文的標(biāo)識是否為0x81,如是,獲取smv報文的安全等級數(shù)據(jù);否則,返回;第三smv報文標(biāo)識判斷模塊34用于判斷smv報文的標(biāo)識是否為0xa2,如是,獲取smv報文中結(jié)構(gòu)體的數(shù)據(jù)內(nèi)容;否則,返回;smv報文解析模塊35用于依次解析采樣值ID、數(shù)據(jù)集字符串、采樣計數(shù)、配置版本、刷新時間、采樣同步和采樣率。這樣就實(shí)現(xiàn)了對smv報文的解碼。
[0106]本實(shí)施例中,goose報文數(shù)據(jù)頭類型判斷單元5進(jìn)一步包括第一 goose報文標(biāo)識判斷模塊50、第二錯誤提示模塊51、goose報文解析模塊52、第二 goose報文標(biāo)識判斷模塊53、第三goose報文標(biāo)識判斷模塊54、第四goose報文標(biāo)識判斷模塊55、第五goose報文標(biāo)識判斷模塊56、第六goose報文標(biāo)識判斷模塊57、第七goose報文標(biāo)識判斷模塊58和第八goose報文標(biāo)識判斷模塊59 ;其中,第一 goose報文標(biāo)識判斷模塊50用于判斷goose報文的標(biāo)識是否為0x80,如是,獲取goose報文中結(jié)構(gòu)體的個數(shù);否則,出現(xiàn)錯誤提示并跳出程序;第二錯誤提示模塊51用于出現(xiàn)錯誤提示并跳出程序;g00Se報文解析模塊52用于依次解析控制塊引用、生成時間、數(shù)據(jù)集引用、goose應(yīng)用標(biāo)識、事件時間、狀態(tài)計數(shù)、序列計數(shù)、測試、版本、需要重新配置和數(shù)據(jù)集條目數(shù);第二 goose報文標(biāo)識判斷模塊53用于判斷goose報文的標(biāo)識是否為0x82,如是,將其解析為bool類型;否則,返回;第三goose報文標(biāo)識判斷模塊54用于判斷goose報文的標(biāo)識是否為0x84,如是,將其解析為bit_string類型;否貝1J,返回;第四goose報文標(biāo)識判斷模塊55用于判斷goose報文的標(biāo)識是否為0x85,如是,將其解析為int類型;否則,返回;第五goose報文標(biāo)識判斷模塊56用于判斷goose報文的標(biāo)識是否為0x86,如是,將其解析為unsigned類型;否則,返回;第六goose報文標(biāo)識判斷模塊57用于判斷goose報文的標(biāo)識是否為0x87,如是,將其解析為float類型;否則,返回;第七goose報文標(biāo)識判斷模塊58判斷goose報文的標(biāo)識是否為0x91,如是,將其解析為UTC類型;否則,返回;第八goose報文標(biāo)識判斷模塊59用于判斷goose報文的標(biāo)識是否為0xa2,如是,將其解析為數(shù)據(jù)結(jié)構(gòu)體類型;否則,返回。這樣就實(shí)現(xiàn)了對斷goose報文的解碼。
[0107]總之,ASN.1是一種自描述語言,因此傳統(tǒng)的ASN.1解碼是根據(jù)自描述類型逐層的解析。傳統(tǒng)解碼方法,是將數(shù)據(jù)逐個字符的讀取出來,然后根據(jù)結(jié)構(gòu),將數(shù)據(jù)逐一獲取。對于復(fù)雜的編碼方式,傳統(tǒng)解碼可以準(zhǔn)確有效的將數(shù)據(jù)解析出來。然而變電站中g(shù)oose報文和smv報文中使用的數(shù)據(jù)類型是可以窮舉的有限類型,數(shù)據(jù)格式基本固定,所以不需要逐一的進(jìn)行數(shù)據(jù)解碼,因此,在本實(shí)施例中,在解碼的過程中,可以直接根據(jù)固有類型進(jìn)行匹配,然后進(jìn)行解析。
當(dāng)前第3頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1