两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

消息組包方法、終端設(shè)備及存儲(chǔ)介質(zhì)與流程

文檔序號(hào):40611881發(fā)布日期:2025-01-07 20:56閱讀:6來源:國知局
消息組包方法、終端設(shè)備及存儲(chǔ)介質(zhì)與流程

本技術(shù)涉及通信,具體涉及一種消息組包方法、終端設(shè)備及存儲(chǔ)介質(zhì)。


背景技術(shù):

1、集成穿戴設(shè)備軟件開發(fā)工具包(wear?software?development?kit,wearsdk)的設(shè)備(下稱wearsdk設(shè)備)可以同時(shí)和多個(gè)設(shè)備(如手機(jī)等)或一個(gè)設(shè)備的多個(gè)應(yīng)用(application,app)建立通信連接。例如一個(gè)app發(fā)送的長協(xié)議包可能會(huì)分成多個(gè)協(xié)議包。每一個(gè)協(xié)議包在通過藍(lán)牙模塊發(fā)送時(shí),會(huì)被分成多幀藍(lán)牙消息進(jìn)行發(fā)送。然而,多個(gè)app的藍(lán)牙消息可能會(huì)被交替發(fā)送給wearsdk設(shè)備,wearsdk設(shè)備在對(duì)多個(gè)app發(fā)送的藍(lán)牙消息進(jìn)行組包時(shí),會(huì)將多個(gè)連續(xù)接收的藍(lán)牙消息進(jìn)行組包,并不會(huì)對(duì)來自不同的app的藍(lán)牙消息進(jìn)行區(qū)分,導(dǎo)致wearsdk設(shè)備在將多個(gè)app的藍(lán)牙消息組包后,會(huì)因校驗(yàn)錯(cuò)誤進(jìn)行丟包處理,從而導(dǎo)致組包失敗,影響數(shù)據(jù)的準(zhǔn)確傳輸。


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

1、鑒于以上內(nèi)容,有必要提供一種消息組包方法、終端設(shè)備及存儲(chǔ)介質(zhì),以解決wearsdk設(shè)備在將多個(gè)app的藍(lán)牙消息組包后出現(xiàn)組包失敗的問題。

2、第一方面,本技術(shù)實(shí)施例提供一種消息組包方法,應(yīng)用于終端設(shè)備,所述方法包括:接收用戶設(shè)備發(fā)送的藍(lán)牙消息;識(shí)別所述藍(lán)牙消息的來源信息,將所述來源信息添加到所述藍(lán)牙消息中,并將藍(lán)牙消息存儲(chǔ)在第一預(yù)設(shè)緩存中;從所述第一預(yù)設(shè)緩存中讀取所述藍(lán)牙消息,獲取所述藍(lán)牙消息的數(shù)據(jù)及所述來源信息,并根據(jù)所述來源信息分配對(duì)應(yīng)的第二預(yù)設(shè)緩存;將讀取的所述藍(lán)牙消息的數(shù)據(jù)按照協(xié)議包結(jié)構(gòu)存儲(chǔ)在與所述來源信息對(duì)應(yīng)的第二預(yù)設(shè)緩存中,得到對(duì)應(yīng)的協(xié)議包。

3、上述技術(shù)方案在檢測出第一預(yù)設(shè)緩存中存在藍(lán)牙消息時(shí),從第一預(yù)設(shè)緩存中讀取藍(lán)牙消息,從讀取的信息中獲取藍(lán)牙消息及來源信息,并根據(jù)來源信息分配不同的第二預(yù)設(shè)緩存,將藍(lán)牙消息存儲(chǔ)在與來源信息對(duì)應(yīng)的第二預(yù)設(shè)緩存,根據(jù)協(xié)議包結(jié)構(gòu)將讀取的藍(lán)牙消息存儲(chǔ)在對(duì)應(yīng)的第二預(yù)設(shè)緩存中得到協(xié)議包,如此能夠?qū)碜杂脩粼O(shè)備的不同的藍(lán)牙消息按照藍(lán)牙消息的來源信息進(jìn)行區(qū)分后組包,避免將不同來源信息的藍(lán)牙消息進(jìn)行組包造成組包失敗的情況的發(fā)生。

4、在本技術(shù)的一實(shí)施例中,所述方法還包括:若確定對(duì)所述協(xié)議包進(jìn)行組包時(shí),確定所述協(xié)議包的位置標(biāo)記,根據(jù)所述協(xié)議包的位置標(biāo)記對(duì)所述協(xié)議包進(jìn)行組包得到長協(xié)議包。上述技術(shù)方案在完成協(xié)議包后,確定協(xié)議包的位置標(biāo)記,并根據(jù)協(xié)議包的位置標(biāo)記對(duì)協(xié)議包進(jìn)行組包得到長協(xié)議包,如此實(shí)現(xiàn)應(yīng)用層級(jí)的數(shù)據(jù)組包功能,方便應(yīng)用調(diào)用。

5、在本技術(shù)的一實(shí)施例中,所述協(xié)議包結(jié)構(gòu)包括協(xié)議頭,所述確定對(duì)所述協(xié)議包進(jìn)行組包包括:對(duì)所述協(xié)議包的協(xié)議頭進(jìn)行解析得到第一標(biāo)志位,若第一標(biāo)志位的值為true值,則確定對(duì)所述協(xié)議包進(jìn)行組包。

6、在本技術(shù)的一實(shí)施例中,所述位置標(biāo)記包括首包、中間包及尾包,所述根據(jù)所述協(xié)議包的位置標(biāo)記對(duì)所述協(xié)議包進(jìn)行組包得到長協(xié)議包,包括:依次將所述位置標(biāo)記為首包的協(xié)議包、所述位置標(biāo)記為中間包的協(xié)議包及所述位置標(biāo)記為尾包的協(xié)議包進(jìn)行組合,得到長協(xié)議包。上述技術(shù)方案,通過將所述位置標(biāo)記為首包的協(xié)議包、所述位置標(biāo)記為中間包的協(xié)議包及所述位置標(biāo)記為尾包的協(xié)議包進(jìn)行組合,可以實(shí)現(xiàn)對(duì)多個(gè)協(xié)議包進(jìn)行組包的功能。

7、在本技術(shù)的一實(shí)施例中,所述識(shí)別所述藍(lán)牙消息的來源信息,將所述來源信息添加到所述藍(lán)牙消息中,包括:識(shí)別出發(fā)送所述藍(lán)牙消息的藍(lán)牙通道信息,將所述藍(lán)牙通道信息標(biāo)記為句柄值;基于所述句柄值、所述藍(lán)牙消息的幀長度,生成所述藍(lán)牙消息的信息頭;通過將所述信息頭插入到所述藍(lán)牙消息的頭部位置,對(duì)所述藍(lán)牙消息進(jìn)行更新。上述技術(shù)方案,通過將所述藍(lán)牙通道信息標(biāo)記為句柄值,基于所述句柄值、所述藍(lán)牙消息的幀長度,生成所述藍(lán)牙消息的信息頭,可以對(duì)接收的藍(lán)牙消息進(jìn)行區(qū)分。

8、在本技術(shù)的一實(shí)施例中,若所述第一預(yù)設(shè)緩存中包括多幀藍(lán)牙消息,所述從所述第一預(yù)設(shè)緩存中讀取所述藍(lán)牙消息包括:記錄每一幀藍(lán)牙消息的讀取信息,所述讀取信息包括每一幀藍(lán)牙消息的已讀取數(shù)據(jù)、未讀取數(shù)據(jù);若當(dāng)前幀藍(lán)牙消息的上一幀藍(lán)牙消息的讀取信息包括未讀取數(shù)據(jù),讀取所述上一幀藍(lán)牙消息;若所述上一幀藍(lán)牙消息的讀取信息不包括未讀取數(shù)據(jù),讀取所述當(dāng)前幀藍(lán)牙消息。上述技術(shù)方案,通過記錄每一幀藍(lán)牙消息的讀取信息,并依據(jù)讀取信息讀取藍(lán)牙消息,可以確保藍(lán)牙消息在進(jìn)行組包時(shí)不被遺漏。

9、在本技術(shù)的一實(shí)施例中,所述協(xié)議包結(jié)構(gòu)包括協(xié)議頭、協(xié)議包長度、協(xié)議數(shù)據(jù),所述將讀取的所述藍(lán)牙消息的數(shù)據(jù)按照協(xié)議包結(jié)構(gòu)存儲(chǔ)在與所述來源信息對(duì)應(yīng)的第二預(yù)設(shè)緩存中,得到對(duì)應(yīng)的協(xié)議包,包括:從所述第一預(yù)設(shè)緩存中讀取所述協(xié)議頭,并將所述協(xié)議頭存儲(chǔ)到所述第二預(yù)設(shè)緩存中;從所述第一預(yù)設(shè)緩存中讀取所述協(xié)議包長度,并將所述協(xié)議包長度存儲(chǔ)到所述第二預(yù)設(shè)緩存中;從所述第一預(yù)設(shè)緩存中讀取所述協(xié)議包長度的數(shù)據(jù),并將所述協(xié)議包長度的數(shù)據(jù)存儲(chǔ)到所述第二預(yù)設(shè)緩存中。

10、在本技術(shù)的一實(shí)施例中,所述從所述第一預(yù)設(shè)緩存中讀取所述協(xié)議頭,并將所述協(xié)議頭存儲(chǔ)到所述第二預(yù)設(shè)緩存中之后,所述方法還包括:設(shè)置第一定時(shí)器,并在所述第一定時(shí)器達(dá)到第一預(yù)設(shè)計(jì)時(shí)時(shí)間后清除所述第二預(yù)設(shè)緩存。上述技術(shù)方案,將協(xié)議頭存儲(chǔ)到第二預(yù)設(shè)緩存中,設(shè)置第一定時(shí)器,并在第一定時(shí)器達(dá)到第一預(yù)設(shè)計(jì)時(shí)時(shí)間后清除第二預(yù)設(shè)緩存,避免程序一直停留在當(dāng)前協(xié)議包的組包流程。

11、在本技術(shù)的一實(shí)施例中,所述根據(jù)所述協(xié)議包的位置標(biāo)記對(duì)所述協(xié)議包進(jìn)行組包得到長協(xié)議包,包括:若確定所述協(xié)議包的位置標(biāo)記為首包,判斷是否存在第三預(yù)設(shè)緩存;若不存在所述第三預(yù)設(shè)緩存,建立所述第三預(yù)設(shè)緩存,設(shè)置第二定時(shí)器進(jìn)行計(jì)時(shí),并在計(jì)時(shí)時(shí)間達(dá)到第二預(yù)設(shè)計(jì)時(shí)時(shí)間后,釋放所述第三預(yù)設(shè)緩存的內(nèi)存;若存在所述第三預(yù)設(shè)緩存,清空所述第三預(yù)設(shè)緩存的已有數(shù)據(jù),重置所述第二定時(shí)器進(jìn)行計(jì)時(shí);將所述位置標(biāo)記為首包的協(xié)議包存儲(chǔ)到所述第三預(yù)設(shè)緩存。

12、在本技術(shù)的一實(shí)施例中,所述根據(jù)所述協(xié)議包的位置標(biāo)記對(duì)所述協(xié)議包進(jìn)行組包得到長協(xié)議包,包括:若確定所述協(xié)議包的位置標(biāo)記為中間包,判斷是否存在所述第三預(yù)設(shè)緩存;若存在所述第三預(yù)設(shè)緩存,且所述第三預(yù)設(shè)緩存中存儲(chǔ)的上一協(xié)議包為首包或中間包,將位置標(biāo)記為中間包的協(xié)議包存儲(chǔ)到所述第三預(yù)設(shè)緩存;若不存在所述第三預(yù)設(shè)緩存,丟棄所述協(xié)議包。

13、在本技術(shù)的一實(shí)施例中,所述根據(jù)所述協(xié)議包的位置標(biāo)記對(duì)所述協(xié)議包進(jìn)行組包得到長協(xié)議包,包括:若確定所述協(xié)議包的位置標(biāo)記為尾包,判斷是否存在所述第三預(yù)設(shè)緩存;若存在所述第三預(yù)設(shè)緩存,且所述第三預(yù)設(shè)緩存中存儲(chǔ)的上一協(xié)議包為首包或中間包,將位置標(biāo)記為尾包的協(xié)議包存儲(chǔ)到所述第三預(yù)設(shè)緩存,從所述長協(xié)議包中解析出功能指令,并執(zhí)行所述功能指令,釋放所述第三預(yù)設(shè)緩存,并刪除所述第二定時(shí)器。

14、在本技術(shù)的一實(shí)施例中,所述方法還包括:按照預(yù)設(shè)校驗(yàn)算法對(duì)所述協(xié)議包進(jìn)行校驗(yàn)。上述技術(shù)方案按照預(yù)設(shè)校驗(yàn)算法對(duì)協(xié)議包進(jìn)行校驗(yàn),可以驗(yàn)證藍(lán)牙消息組包后的協(xié)議包是否正確,以便在校驗(yàn)錯(cuò)誤后丟棄協(xié)議包。

15、在本技術(shù)的一實(shí)施例中,所述方法還包括:從所述協(xié)議包或所述長協(xié)議包中解析出功能指令,并執(zhí)行所述功能指令。

16、第二方面,本技術(shù)實(shí)施例提供一種終端設(shè)備,終端設(shè)備包括存儲(chǔ)器和處理器:存儲(chǔ)器,用于存儲(chǔ)程序指令;處理器,用于讀取并執(zhí)行存儲(chǔ)器中存儲(chǔ)的程序指令,當(dāng)程序指令被處理器執(zhí)行時(shí),使得終端設(shè)備執(zhí)行上述消息組包方法。

17、第三方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有程序指令,當(dāng)程序指令在終端設(shè)備上運(yùn)行時(shí),使得終端設(shè)備執(zhí)行上述消息組包方法。

18、另外,第二方面至第三方面所帶來的技術(shù)效果可參見上述方法部分各設(shè)計(jì)的方法相關(guān)的描述,此處不再贅述。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鹤庆县| 东港市| 称多县| 安西县| 宁陵县| 达孜县| 翼城县| 香格里拉县| 闵行区| 吉木乃县| 楚雄市| 尉氏县| 左贡县| 海晏县| 铜川市| 淮南市| 青浦区| 大关县| 观塘区| 武宁县| 鄂尔多斯市| 瑞昌市| 尼木县| 叶城县| 门头沟区| 茶陵县| 宝山区| 简阳市| 饶平县| 潮安县| 邵东县| 常熟市| 白山市| 奉新县| 百色市| 六枝特区| 青神县| 乐安县| 醴陵市| 瓦房店市| 文昌市|