想把BLE-Bridge整合到Keyfob裡面
想把BLE-Bridge整合到Keyfob裡面,
把相關程式從Bridge.c移到Keyfob.c中,
但是Keyfob.h中的CONSTANTS卻不知道怎麼調整
這是Key Fob 的 Task Events
// Key Fob Task Events
#define KFD_START_DEVICE_EVT 0x0001
#define KFD_BATTERY_CHECK_EVT 0x0002
#define KFD_ACCEL_READ_EVT 0x0004
#define KFD_TOGGLE_BUZZER_EVT 0x0008
#define KFD_ADV_IN_CONNECTION_EVT 0x0010
#define KFD_POWERON_LED_TIMEOUT_EVT 0x0020
這是Bridge 的 Task Events
// BLE_Bridge Task Events
#define SBP_START_DEVICE_EVT 0x0001
#define SBP_ADV_IN_CONNECTION_EVT 0x0004
#define SBP_SEND_EVT 0x0008
第一個我把兩個合再一起了,但是後面的SBP_ADV_IN_CONNECTION_EVT和SBP_SEND_EVT卻不知道怎麼設定了,
亂改成其他的數字(例如0x0005&0x0009)有時候廣播時的燈就不閃了(恆亮)。
請問這邊要如何設定?
P.S.有在 OSAL_KeyFobDemo.c 的 tasksArr 加入
SerialInterface_ProcessEvent, // task 11
首先task的events必须不一样 可以把BLE_Bridge的events重新定义为不同的值
我有嘗試過修改EVENT的值
例如將BLE_BRIDGE的兩個EVENT值改成0x0005&0x0009或是0x0014&0x00018,
但是第一個結果是原本廣播會閃燈變成不閃恆亮,
第二個則是無法透過藍芽接收資料,
所以想請問是不是EVENT的值有特定的?
event的值实际上是某一位为1 所以你列的都不行 因为都不是只有某一位为1
0x0005相当于是0000 0000 0000 0101 这样就和0x0001和0x0004冲突了
非常感謝,改成0X0040&0X0080後成功收到主機傳出的訊號了,
但是主機卻收不到從機的發出的NOTIFY,
KEYFOB的操作手冊第5點似乎要先輸入0X0048,01:00才能夠NOTIFY是這樣嗎?
在KEYFOBDEMO.C裡面沒看到控制NOTIFY的設定阿。
notification都是主机要打开从机侧属性值的开关才能收的
可是BLE_BRIDGE似乎不用打開開關就可以NOTIFY耶
因为例程调用的是GATT_Notification(0, ¬i, FALSE)主动发送的
请注意看代码逻辑哦
我有將BLE_BRIDGE.C中的sendData FUNCTION移植到KEYFOB內,
裡面有調用GATT_Notification(0, ¬i, FALSE),
主機還是沒有收到從機發送的NOTIFICATION
還是說noti.handle = 0x2E; 在KEYFOB中要修改?
BLE_Bridge是基于SimpleBLEPeripheral例程改的,使用的属性值也是使用的simpleGATTprofile里的
麻烦确认是否有添加相关的对属性值的操作及回调操作
我有添加SimpleBLEPeripheral相關的程式,
實際以SNIFFER觀察,
也發現從機有收到主機發出的訊號並經過處理後發出NOTIFICATION,
但是主機方卻表示沒有收到NOTIFICATION。
非常感謝WBJ的說明,
研究BLE_BRIDGE的指令發現WRITE的HANDLE是0X002B,NOTIFICATION的HANDLE是0X002E,
根據SENIFFER發現移到KEYFOB後WRITE的HANDLE變成0X0052,於是我將NOTIFICATION的HANDLE改成0X0055後,
主機成功的收到從機發出的NOTIFICATION了。