我想請問一下,我需要做主機(jī),然后向從機(jī)發(fā)送數(shù)據(jù),但是我從機(jī)的UUID只有寫屬性,沒有讀屬性,導(dǎo)致回應(yīng)的包的的handle,不在主服務(wù)handle范圍下。我應(yīng)該怎么才能向從機(jī)發(fā)送數(shù)據(jù)
從機(jī)沒有相應(yīng)的讀屬性,沒法接收主機(jī)發(fā)送的數(shù)據(jù)。從機(jī)那里調(diào)整添加一下讀屬性的功能。
因?yàn)閺臋C(jī)是已經(jīng)開發(fā)好的透傳模組了,已經(jīng)無法更改,
這個(gè)uuid下只有寫屬性,沒有讀屬性和noti。
意思是我像Central例程里一樣,用這個(gè)試一下嘛。但是好像MultiCentral例程里沒有定義START_WRITE_CCCD_EVT,到時(shí)候會(huì)有這個(gè)消息回來嗎。
你上面用手機(jī)跟從機(jī)去連接,然后從機(jī)把功能給羅列出來了,從機(jī)是有讀功能的,因此你通過ffe9這個(gè)通道往從機(jī)寫數(shù)據(jù)應(yīng)該是沒問題的。同樣主機(jī)端跟你的從機(jī)連接正常,然后UUID也正常,所以上面handle值的范圍已經(jīng)列出來了(1e~21),但是最終枚舉handle時(shí)發(fā)現(xiàn)結(jié)果是0,這是有問題的,handle數(shù)量不多,你可以在這里將相應(yīng)的handle值都嘗試一下(1e~21),理論會(huì)write success。如果還有問題可以再貼一下主機(jī)端枚舉服務(wù)的打印信息。
經(jīng)過嘗試,成功發(fā)送數(shù)據(jù)了,從機(jī)也收到數(shù)據(jù),handle為20。但還是想分析一下是什么原因?qū)е碌摹:竺鎻臋C(jī)可能會(huì)使用不一樣的廠家,會(huì)比較麻煩。
下面是枚舉的具體內(nèi)容,
這里修改一下試試看
嘗試了GATT_DiscCharsByUUID與GATT_DiscAllChars兩個(gè)函數(shù),打印出來的handle都為1f,不是實(shí)際的20。
看打印的流程應(yīng)該是執(zhí)行了發(fā)送,但是沒有收到發(fā)送完成回應(yīng),從機(jī)也沒有收到數(shù)據(jù)。
實(shí)際的20是能收到執(zhí)行發(fā)送回應(yīng)的,從機(jī)也可以收到“TEST”數(shù)據(jù)。
這里的handle值加1,最終的數(shù)據(jù)傳輸是一個(gè)數(shù)組的形式,19的handle值最終是通過20發(fā)出去的
藍(lán)牙從機(jī)換了一個(gè)模塊,按照原來的流程,主機(jī)發(fā)送數(shù)據(jù),但是從機(jī)并沒有收到。并且主機(jī)也沒有收到發(fā)送成功的消息返回。
按照列舉出來的范圍進(jìn)行遍歷也還是一樣
下面是藍(lán)牙調(diào)試寶連接的圖示
調(diào)試寶是可以的,麻煩幫忙看一下
可以發(fā)送郵件至郵箱hy@wch.cn,可以給你發(fā)送一個(gè)主機(jī)遍歷所有從機(jī)服務(wù)的例程測試下看看。
好的,郵件已經(jīng)發(fā)送給您了。如果沒有收到的話。
下面是我的郵箱個(gè)人信息保護(hù),已隱藏,請直接發(fā)這個(gè)郵箱
感謝??!
經(jīng)過測試,是我以前使用GATT_WriteLongCharValue這個(gè)API函數(shù)導(dǎo)致發(fā)送有問題,我以為這個(gè)API函數(shù)才是發(fā)送字符串的。
另外想請假一下 31是什么斷連的理由
此時(shí)我的從機(jī)一直顯示是連接狀態(tài),也不廣播了,但是這里打印顯示主機(jī)斷開連接了。導(dǎo)致有點(diǎn)問題,
麻煩幫忙看一下
連接報(bào)0x31可能是GAPRole_CentralEstablishLink參數(shù)傳的有問題導(dǎo)致的,比如mac或者mactype不對會(huì)導(dǎo)致,
另外就是從機(jī)的廣播間隔是多少,間隔調(diào)小點(diǎn)試試呢。