微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 想把BLE-Bridge整合到Keyfob裡面

想把BLE-Bridge整合到Keyfob裡面

时间:10-02 整理:3721RD 点击:

想把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, &noti, FALSE)主动发送的

请注意看代码逻辑哦

我有將BLE_BRIDGE.C中的sendData FUNCTION移植到KEYFOB內,

裡面有調用GATT_Notification(0, &noti, 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了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top