[發(fā)明專利]數(shù)據的緩沖方法、裝置、計算機和可讀存儲介質有效
| 申請?zhí)枺?/td> | 201911412972.0 | 申請日: | 2019-12-31 |
| 公開(公告)號: | CN111245742B | 公開(公告)日: | 2022-03-08 |
| 發(fā)明(設計)人: | 茅張煜;翁九星 | 申請(專利權)人: | 寧波舜宇智能科技有限公司 |
| 主分類號: | H04L49/90 | 分類號: | H04L49/90;H04L49/901 |
| 代理公司: | 杭州華進聯(lián)浙知識產權代理有限公司 33250 | 代理人: | 金無量 |
| 地址: | 315400 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數(shù)據 緩沖 方法 裝置 計算機 可讀 存儲 介質 | ||
本發(fā)明公開了一種數(shù)據的緩沖方法、裝置、計算機和可讀存儲介質,該方法包括:獲取寫入數(shù)據,將該寫入數(shù)據寫入環(huán)形緩沖隊列的寫入空間,其中,獲取單向隊列的頭數(shù)據,復制該頭數(shù)據到該單向隊列的結尾組成該環(huán)形緩沖隊列;獲取讀取指令,根據該讀取指令讀取該環(huán)形緩沖隊列的有效幀數(shù)據,解決了數(shù)據流格式的數(shù)據緩沖分包粘包和處理效率低的問題,防止了數(shù)據緩沖分包粘包,提高了處理效率。
技術領域
本發(fā)明涉及數(shù)據處理領域,具體而言,涉及數(shù)據的緩沖方法、裝置、計算機和可讀存儲介質。
背景技術
數(shù)據通信協(xié)議中分為兩種格式:數(shù)據幀格式和數(shù)據流格式。如傳輸控制協(xié)議(Transmission Control Protocol,簡稱為TCP)和RS232協(xié)議都是屬于典型的數(shù)據流格式,數(shù)據流格式需要定義數(shù)據的幀頭幀尾,并放置在足夠大緩沖(Buffer)中,通過分析緩沖中的幀頭和幀尾來提取數(shù)據幀。
在相關技術中,緩存數(shù)據流的結構一般是先進先出的環(huán)形緩沖隊列,目前一般的環(huán)形緩沖隊列的實現(xiàn)方式為:環(huán)形緩沖區(qū)有一個讀指針和一個寫指針,讀指針指向環(huán)形緩沖區(qū)中可讀的數(shù)據,寫指針指向環(huán)形緩沖區(qū)中可寫的緩沖區(qū),通過移動移動讀指針和寫指針就可以實現(xiàn)緩沖區(qū)的數(shù)據讀取和寫入。
然而,基于相關技術的環(huán)形緩沖的基本實現(xiàn)原理和模型,在實際應用中存在問題:單向隊列首尾相銜時,會出現(xiàn)幀頭幀尾數(shù)據被截斷,導致分包粘包、程序復雜,處理效率低,甚至存在處理錯誤的情況發(fā)生,例如,幀頭數(shù)據被截斷的情況:幀頭的標志位信息在緩沖隊列尾部,但是幀頭的長度信息在緩沖隊列頭部,由于內存地址不連續(xù),無法用一個結構指針去判斷幀頭的信息正確性,只能用內存地址偏移再拼接的方式去重新拷貝數(shù)據構建一個新幀頭,再對幀頭的信息進行正確性判斷,這樣在搜尋幀頭時不可避免的導致緩沖隊列的性能下降。
另外,在相關技術中的產品線上,機器人和PLC設備很多都是嵌入式設備,工作性能差,直接在局域網內用TCP中的套字節(jié)(socket)協(xié)議做通訊協(xié)議,并沒有考慮分包粘包的問題。
針對相關技術中,數(shù)據流格式的數(shù)據緩沖分包粘包和處理效率低的問題,目前尚未提出有效的解決方案。
發(fā)明內容
針對相關技術中,數(shù)據流格式的數(shù)據緩沖分包粘包和處理效率低的問題,目前尚未提出有效的解決方案,以至少解決上述問題。
根據本發(fā)明的一個方面,提供了一種數(shù)據的緩沖方法,該方法包括:
獲取寫入數(shù)據,將所述寫入數(shù)據寫入環(huán)形緩沖隊列的寫入空間,其中,獲取單向隊列的頭數(shù)據,復制所述頭數(shù)據到所述單向隊列的結尾組成所述環(huán)形緩沖隊列;
獲取讀取指令,根據所述讀取指令讀取所述環(huán)形緩沖隊列的有效幀數(shù)據。
在其中一個實施例,所述根據所述讀取指令讀取所述環(huán)形緩沖隊列的有效幀數(shù)據包括:
在所述環(huán)形緩沖隊列中,通過幀頭指針搜尋幀數(shù)據的幀頭標志;
根據所述幀頭標志獲取幀長度,幀尾指針偏移所述幀長度獲取幀尾標志和校驗碼;
判斷所述幀尾標志是否正確和驗證所述校驗碼是否通過;
在所述判斷正確和所述驗證通過的情況下,判斷所述幀數(shù)據為有效幀數(shù)據;
在所述判斷錯誤或者所述驗證不通過的情況下,丟棄所述幀數(shù)據。
在其中一個實施例,所述寫入空間包括第一寫入空間和第二寫入空間,將所述寫入數(shù)據寫入環(huán)形緩沖隊列的寫入空間包括:
在所述寫入數(shù)據的大小大于所述第一寫入空間的情況下,將所述寫入數(shù)據的第一部分數(shù)據寫入所述第一寫入空間,將所述寫入數(shù)據的第二部分數(shù)據寫入所述第二寫入空間;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于寧波舜宇智能科技有限公司,未經寧波舜宇智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911412972.0/2.html,轉載請聲明來源鉆瓜專利網。
- 數(shù)據顯示系統(tǒng)、數(shù)據中繼設備、數(shù)據中繼方法、數(shù)據系統(tǒng)、接收設備和數(shù)據讀取方法
- 數(shù)據記錄方法、數(shù)據記錄裝置、數(shù)據記錄媒體、數(shù)據重播方法和數(shù)據重播裝置
- 數(shù)據發(fā)送方法、數(shù)據發(fā)送系統(tǒng)、數(shù)據發(fā)送裝置以及數(shù)據結構
- 數(shù)據顯示系統(tǒng)、數(shù)據中繼設備、數(shù)據中繼方法及數(shù)據系統(tǒng)
- 數(shù)據嵌入裝置、數(shù)據嵌入方法、數(shù)據提取裝置及數(shù)據提取方法
- 數(shù)據管理裝置、數(shù)據編輯裝置、數(shù)據閱覽裝置、數(shù)據管理方法、數(shù)據編輯方法以及數(shù)據閱覽方法
- 數(shù)據發(fā)送和數(shù)據接收設備、數(shù)據發(fā)送和數(shù)據接收方法
- 數(shù)據發(fā)送裝置、數(shù)據接收裝置、數(shù)據收發(fā)系統(tǒng)、數(shù)據發(fā)送方法、數(shù)據接收方法和數(shù)據收發(fā)方法
- 數(shù)據發(fā)送方法、數(shù)據再現(xiàn)方法、數(shù)據發(fā)送裝置及數(shù)據再現(xiàn)裝置
- 數(shù)據發(fā)送方法、數(shù)據再現(xiàn)方法、數(shù)據發(fā)送裝置及數(shù)據再現(xiàn)裝置





