2014年2月16日 星期日

修正 BLE mini 的問題

Tri-Robot 初號機在本周回到我的懷抱,是時候讓它跟《AMIGO Controller 2.00》同步。連接十分成功,可是數據收發不太穩定。一時成功,一時失敗。用《AMIGO Controller 1.10》卻次次成功。一定是 2.00 中出了甚麼問題。

多次測試後發現每逢初次連接時必定會出現問題,於是把首次及二次連接的記錄找來對比一下。原來首次連接後沒有調用 enableReadNotification 程序。追查下去才知是因為讀不到裝置名稱而判斷失敗。這是 BLE mini 自身的問題,在 HM-10 上沒有這個情況。以下是修改後的代碼:
if ([peripheralName isEqualToString:BLEMANAGER_NAME_BLEMINI] == YES || [peripheralName length] == 0)  {
 CBUUID *serviceUUID = [CBUUID UUIDWithString:BLEMANAGER_BLEMINI_UUID_SERVICE];
 CBUUID *readUUID = [CBUUID UUIDWithString:BLEMANAGER_BLEMINI_UUID_RX];
 [self notification:serviceUUID characteristicUUID:readUUID peripheral:peripheral on:YES];
 return;
}

沒有留言: