使用582從機(jī)例程,編寫的從機(jī)多連接遇到的問題

涉及到的設(shè)備有:主設(shè)備兩個582F、從設(shè)備一個582F;

實現(xiàn)功能:兩臺主設(shè)備默認(rèn)連接上后發(fā)送信息到從機(jī),之后保持連接定時發(fā)送信息;

遇到的問題:兩臺主設(shè)備連接成功后,能正常定時的發(fā)送信息,但是具有不穩(wěn)定的問題,主要是遇到主從設(shè)備之間保持著連接,但是主設(shè)備發(fā)送信息、從設(shè)備卻收不到信息。有時關(guān)閉主設(shè)備后重新開機(jī),正常連接上主設(shè)備后也無法接收到主設(shè)備發(fā)送的信息,如圖

icon_jpg.gifIMG_1304.HEIC.JPG


2臺主設(shè)備連接1個從機(jī)進(jìn)行多連接的功能。在最初建立連接的時候,主從機(jī)協(xié)商好連接間隔,但是晶振會有會有誤差,可能導(dǎo)致發(fā)送數(shù)據(jù)的間隔慢慢的靠近,最終導(dǎo)致在某個時間點,2臺主機(jī)同時發(fā)送數(shù)據(jù)給從機(jī),導(dǎo)致丟掉了一包,甚至可能出現(xiàn)斷連的情況。

基于上面到的問題,①建議2臺設(shè)備的連接間隔進(jìn)行協(xié)商,協(xié)商為不一樣的,最好為質(zhì)數(shù),減小撞在一起的概率;

②建議主機(jī)與從機(jī)進(jìn)行通信的時候,做好發(fā)包是否成功的判斷,如果發(fā)送失敗則再次進(jìn)行發(fā)包。


在進(jìn)行連接的時候,我觀察到主機(jī)程序有時沒有運行到

PRINT("Found Profile Service handle : %x ~ %x \n", centralSvcStartHdl, centralSvcEndHdl);

以及PRINT("Found Characteristic 1 handle : %x \n", centralCharHdl);

好像是沒有發(fā)現(xiàn)特征,也沒有開啟服務(wù)。這個會不會和從機(jī)那邊程序也有關(guān)系,但是有時候又能發(fā)現(xiàn)特征。求解,謝謝


是否發(fā)現(xiàn)服務(wù)理論上不會是概率的,可以用手機(jī)連接查看是否可以建立連接并枚舉到對應(yīng)的服務(wù)。

連接之后進(jìn)行服務(wù)的枚舉是需要通過填寫unknown service的UUID,并獲取到對應(yīng)的handle值,如果沒有獲取到,檢查UUID是否填寫正確。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频