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

一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法及系統(tǒng)與流程

文檔序號(hào):40448148發(fā)布日期:2024-12-24 16:05閱讀:60122來(lái)源:國(guó)知局
一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法及系統(tǒng)與流程

本發(fā)明涉及工業(yè)通信和嵌入式系統(tǒng)領(lǐng)域,尤其涉及一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法及系統(tǒng)。


背景技術(shù):

1、在現(xiàn)代工業(yè)通信和嵌入式系統(tǒng)中,報(bào)文解析是通信協(xié)議中非常關(guān)鍵的一環(huán)。常見的通信協(xié)議,例如iec101、iec104、modbus、dlt/645、mqtt以及自定義通訊協(xié)議等,都是基于幀結(jié)構(gòu)進(jìn)行數(shù)據(jù)傳輸?shù)摹Y(jié)構(gòu)通常包含幀頭、長(zhǎng)度、幀類型、數(shù)據(jù)和校驗(yàn)等字段,因此準(zhǔn)確解析每一幀數(shù)據(jù)對(duì)于確保通信的穩(wěn)定性和可靠性至關(guān)重要。

2、然而,在傳統(tǒng)的報(bào)文解析方法中,設(shè)備通常通過(guò)串口、以太網(wǎng)等通信方式接收數(shù)據(jù),接收到的數(shù)據(jù)會(huì)被暫存到緩存或循環(huán)隊(duì)列中。當(dāng)解析開始時(shí),通常會(huì)一次性將緩存或隊(duì)列中的所有數(shù)據(jù)全部取出,然后對(duì)這些數(shù)據(jù)進(jìn)行解析。這種方法的解析步驟通常如下:

3、1.接收數(shù)據(jù):設(shè)備通過(guò)串口或以太網(wǎng)將所有接收到的數(shù)據(jù)保存到一個(gè)臨時(shí)緩存或循環(huán)隊(duì)列中。

4、2.一次性讀?。航馕鰰r(shí),一次性從緩存或隊(duì)列中讀取所有的數(shù)據(jù),作為一個(gè)整體數(shù)據(jù)塊進(jìn)行處理。

5、3.解析流程:從這個(gè)數(shù)據(jù)塊中逐步解析出幀頭、長(zhǎng)度、幀類型和數(shù)據(jù)內(nèi)容等字段。

6、這種傳統(tǒng)的解析方法雖然看似簡(jiǎn)單,但在處理實(shí)際通信時(shí)會(huì)暴露出許多不足,尤其是在實(shí)時(shí)通信或處理不定長(zhǎng)數(shù)據(jù)幀時(shí),問(wèn)題尤為突出。具體問(wèn)題包括:

7、1.數(shù)據(jù)不完整或多幀情況:在實(shí)時(shí)通信過(guò)程中,接收到的數(shù)據(jù)可能是部分幀或多幀的組合,數(shù)據(jù)并不是按幀整齊到達(dá)。傳統(tǒng)解析方法是一次性取出所有數(shù)據(jù)進(jìn)行解析,可能取到的只是一個(gè)不完整的幀,這會(huì)導(dǎo)致解析出錯(cuò)或出現(xiàn)漏幀的情況。同樣,如果一次取出的數(shù)據(jù)包含了多幀數(shù)據(jù),傳統(tǒng)解析方法可能難以正確區(qū)分和解析出多幀,導(dǎo)致多幀重疊或者幀邊界被破壞。

8、2.無(wú)幀邊界的解析問(wèn)題:很多協(xié)議中的幀并不是固定長(zhǎng)度的,幀的邊界需要通過(guò)幀頭和長(zhǎng)度字段來(lái)確定。傳統(tǒng)方法在沒有找到明確幀邊界的情況下,可能會(huì)直接讀取整個(gè)緩存,導(dǎo)致幀結(jié)構(gòu)被破壞。如果幀頭或長(zhǎng)度字段在接收到的數(shù)據(jù)中沒有正確解析出來(lái),整個(gè)幀的解析就會(huì)失敗。

9、3.丟幀或漏幀問(wèn)題:在數(shù)據(jù)高頻傳輸?shù)那闆r下,由于緩存可能會(huì)出現(xiàn)數(shù)據(jù)溢出或覆蓋,傳統(tǒng)方法有時(shí)未能及時(shí)解析出數(shù)據(jù)幀,導(dǎo)致漏幀情況。尤其在數(shù)據(jù)量大、傳輸速度快的場(chǎng)景中,解析速度與數(shù)據(jù)接收速率之間的不匹配極易導(dǎo)致數(shù)據(jù)丟失。

10、綜上所述,傳統(tǒng)的報(bào)文解析方法存在著處理不定長(zhǎng)數(shù)據(jù)幀的局限性,無(wú)法準(zhǔn)確區(qū)分幀邊界,容易發(fā)生漏幀或丟幀的情況,且處理效率較低,無(wú)法滿足高頻實(shí)時(shí)通信的需求。這些問(wèn)題能夠直接影響通信協(xié)議的可靠性和穩(wěn)定性。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明的目的在于提供一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法及系統(tǒng),解決傳統(tǒng)解析方法中因一次性讀取所有數(shù)據(jù)而引發(fā)的漏幀、多幀、無(wú)法確定幀邊界等問(wèn)題。

2、為實(shí)現(xiàn)上述目的,一方面,本發(fā)明提供一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法,其特征在于,所述方法包括以下步驟:

3、創(chuàng)建并初始化循環(huán)隊(duì)列以存儲(chǔ)接收到的報(bào)文數(shù)據(jù),并根據(jù)協(xié)議類型初始化狀態(tài)機(jī);

4、判斷循環(huán)隊(duì)列中是否有數(shù)據(jù),用所述狀態(tài)機(jī)對(duì)循環(huán)隊(duì)列中的數(shù)據(jù)進(jìn)行逐字節(jié)解析;

5、根據(jù)解析出的幀頭信息確定報(bào)文類型;

6、根據(jù)報(bào)文類型動(dòng)態(tài)調(diào)整解析流程,直至解析出完整的報(bào)文。

7、優(yōu)選的,在所述基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法中,所述狀態(tài)機(jī)包括多個(gè)解析狀態(tài),每個(gè)所述解析狀態(tài)對(duì)應(yīng)報(bào)文的一個(gè)特定字段,并且狀態(tài)機(jī)根據(jù)當(dāng)前解析字段自動(dòng)切換到下一個(gè)解析狀態(tài)。

8、優(yōu)選的,在所述基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法中,所述方法還包括在解析過(guò)程中,當(dāng)接收到的數(shù)據(jù)不足以組成一個(gè)完整的幀時(shí),系統(tǒng)暫時(shí)中斷解析,并將已解析到的數(shù)據(jù)保存到內(nèi)存中;當(dāng)新的數(shù)據(jù)到達(dá)后,系統(tǒng)繼續(xù)從上一次中斷的位置進(jìn)行解析。

9、優(yōu)選的,在所述基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法中,所述方法還包括在解析過(guò)程中,如果檢測(cè)到幀錯(cuò)誤或幀邊界不明確,系統(tǒng)將丟棄當(dāng)前數(shù)據(jù)并重新開始解析。

10、優(yōu)選的,在所述基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法中,所述協(xié)議類型包括iec101、iec104、modbus、dlt/645、mqtt以及自定義通訊協(xié)議。

11、優(yōu)選的,在所述基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法中,所述方法還包括:

12、根據(jù)協(xié)議的幀結(jié)構(gòu),按步驟解析的字段包括幀頭、長(zhǎng)度、幀類型和數(shù)據(jù)內(nèi)容,且在任何時(shí)刻只處理當(dāng)前可用的數(shù)據(jù)段。

13、此外,在本發(fā)明的另一方面,還提出了一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析系統(tǒng),其特征在于,所述系統(tǒng)包括:

14、循環(huán)隊(duì)列模塊,用于存儲(chǔ)接收到的報(bào)文數(shù)據(jù);

15、狀態(tài)機(jī)模塊,用于對(duì)循環(huán)隊(duì)列中的數(shù)據(jù)進(jìn)行逐字節(jié)解析;

16、幀頭解析單元,用于根據(jù)解析出的幀頭信息確定報(bào)文類型;

17、流程控制單元,用于根據(jù)報(bào)文類型動(dòng)態(tài)調(diào)整解析流程。

18、優(yōu)選的,在所述基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析系統(tǒng)中,所述狀態(tài)機(jī)模塊包括多個(gè)解析狀態(tài),每個(gè)狀態(tài)對(duì)應(yīng)于報(bào)文的一個(gè)特定字段,并且狀態(tài)機(jī)根據(jù)當(dāng)前解析字段自動(dòng)切換到下一個(gè)解析狀態(tài)。

19、優(yōu)選的,在所述基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析系統(tǒng)中,所述系統(tǒng)還包括暫存模塊,用于在解析過(guò)程中,當(dāng)接收到的數(shù)據(jù)不足以組成一個(gè)完整的幀時(shí),暫存已解析的數(shù)據(jù),并在接收到更多數(shù)據(jù)后繼續(xù)解析。

20、相比于現(xiàn)有技術(shù),本發(fā)明至少具有以下技術(shù)效果:

21、通過(guò)引入循環(huán)隊(duì)列和狀態(tài)機(jī),能夠?qū)崿F(xiàn)逐字節(jié)精確解析報(bào)文,避免傳統(tǒng)解析中多幀混淆和漏幀的問(wèn)題,確保在不定長(zhǎng)數(shù)據(jù)傳輸環(huán)境下的準(zhǔn)確性與穩(wěn)定性。另外,狀態(tài)機(jī)對(duì)每個(gè)協(xié)議字段進(jìn)行分步驟解析,系統(tǒng)能夠順序正確地處理每個(gè)協(xié)議字段,同時(shí)根據(jù)幀類型動(dòng)態(tài)調(diào)整解析流程,能夠提升解析的準(zhǔn)確性和靈活性。而且逐字節(jié)處理能夠減少延時(shí)本發(fā)明具有良好的擴(kuò)展性,能夠適應(yīng)多種協(xié)議類型。



技術(shù)特征:

1.一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法,其特征在于,所述方法包括以下步驟:

2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述狀態(tài)機(jī)包括多個(gè)解析狀態(tài),每個(gè)所述解析狀態(tài)對(duì)應(yīng)報(bào)文的一個(gè)特定字段,并且所述狀態(tài)機(jī)根據(jù)當(dāng)前解析字段自動(dòng)切換到下一個(gè)解析狀態(tài)。

3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括在解析過(guò)程中,當(dāng)接收到的數(shù)據(jù)不足以組成一個(gè)完整的幀時(shí),系統(tǒng)暫時(shí)中斷解析,并將已解析到的數(shù)據(jù)保存到內(nèi)存中;當(dāng)新的數(shù)據(jù)到達(dá)后,系統(tǒng)繼續(xù)從上一次中斷的位置進(jìn)行解析。

4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括在解析過(guò)程中,如果檢測(cè)到幀錯(cuò)誤或幀邊界不明確,系統(tǒng)將丟棄當(dāng)前數(shù)據(jù)并重新開始解析。

5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述協(xié)議類型包括iec101、iec104、modbus、dlt/645、mqtt以及自定義通訊協(xié)議。

6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括根據(jù)協(xié)議的幀結(jié)構(gòu),按步驟解析的字段包括幀頭、長(zhǎng)度、幀類型和數(shù)據(jù)內(nèi)容,且在任何時(shí)刻只處理當(dāng)前可用的數(shù)據(jù)段。

7.一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析系統(tǒng),其特征在于,所述系統(tǒng)包括:

8.根據(jù)權(quán)利要求7所述的報(bào)文解析系統(tǒng),其特征在于,所述狀態(tài)機(jī)模塊包括多個(gè)解析狀態(tài),每個(gè)狀態(tài)對(duì)應(yīng)于報(bào)文的一個(gè)特定字段,并且狀態(tài)機(jī)根據(jù)當(dāng)前解析字段自動(dòng)切換到下一個(gè)解析狀態(tài)。

9.根據(jù)權(quán)利要求7所述的報(bào)文解析系統(tǒng),其特征在于,所述系統(tǒng)還包括暫存模塊,用于在解析過(guò)程中,當(dāng)接收到的數(shù)據(jù)不足以組成一個(gè)完整的幀時(shí),暫存已解析的數(shù)據(jù),并在接收到更多數(shù)據(jù)后繼續(xù)解析。


技術(shù)總結(jié)
本發(fā)明涉及工業(yè)通信和嵌入式系統(tǒng)領(lǐng)域,尤其涉及一種基于循環(huán)隊(duì)列和狀態(tài)機(jī)的報(bào)文解析方法及系統(tǒng)。該方法包括以下步驟:創(chuàng)建并初始化循環(huán)隊(duì)列以存儲(chǔ)接收到的報(bào)文數(shù)據(jù),并根據(jù)協(xié)議類型初始化狀態(tài)機(jī);判斷循環(huán)隊(duì)列中是否有數(shù)據(jù),用所述狀態(tài)機(jī)對(duì)循環(huán)隊(duì)列中的數(shù)據(jù)進(jìn)行逐字節(jié)解析;根據(jù)解析出的幀頭信息確定報(bào)文類型;根據(jù)報(bào)文類型動(dòng)態(tài)調(diào)整解析流程,直至解析出完整的報(bào)文。通過(guò)使用循環(huán)隊(duì)列和狀態(tài)機(jī)來(lái)逐字節(jié)解析報(bào)文,確保在不定長(zhǎng)數(shù)據(jù)傳輸環(huán)境下的準(zhǔn)確性與穩(wěn)定性,從而提升影響通信協(xié)議的可靠性和穩(wěn)定性。

技術(shù)研發(fā)人員:王晶,劉景龍,趙海雷,林天祝,于義廣,俞輝
受保護(hù)的技術(shù)使用者:上海宏力達(dá)信息技術(shù)股份有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2024/12/23
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1