[BLE(低功耗蓝牙)] BlueNRG beacon+串口透传

逆风寒   2018-11-22 09:50 楼主
  一直想让BlueNRG同时实现 beacon+串口透传 功能,保证一主机与蓝牙通讯期间,其他手机还可以接收到beacon信息,现在打算利用两主机与蓝牙串口双向通信的方式,再加上蓝牙配对,限制手机随意连接来保证上述功能,目前问题是支持双主机下,我将蓝牙的收发(notification和write)放在同一个char里面,   
     ret =  aci_gatt_add_char(chatServHandle, UUID_TYPE_128, &char_uuid, 20,       CHAR_PROP_NOTIFY|CHAR_PROP_WRITE|CHAR_PROP_WRITE_WITHOUT_RESP, ATTR_PERMISSION_NONE,     GATT_NOTIFY_ATTRIBUTE_WRITE,  16, 1, &RXCharHandle);


手机这边没有显示蓝牙端发送过来的信息。。。

直接这样改是不是有问题啊。。。。另外大家还有其他比较合适的方法来实现上述功能吗?   求帮助。。。

另外bluenrg软件开发需要蓝牙协议都懂吗?

回复评论 (9)

我刚才试了下,只连一个手机,BLUENRG发送数据手机可以收到

BLE_Chat.bin (78.9 KB)
(下载次数: 18, 2018-11-23 09:34 上传)


QQ图片20181123093908.png


QQ图片20181123093453.png

QQ图片20181123093816.jpg



虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-11-23 09:39
引用: littleshrimp 发表于 2018-11-23 09:39
我刚才试了下,只连一个手机,BLUENRG发送数据手机可以收到

虾哥,你和我的处理方式一样吗?回调函数Attribute_Modified_CB这边要不要改啊。。。

另外,想知道你用的是哪个APP
点赞  2018-11-23 10:07
引用: 逆风寒 发表于 2018-11-23 10:07
虾哥,你和我的处理方式一样吗?回调函数Attribute_Modified_CB这边要不要改啊。。。

另外,想知道你 ...

BLE Scanner.apk (1.99 MB)
(下载次数: 24, 2018-11-23 10:10 上传)


这个是我以下在手机里的,你也可以到应用商店里再找找有无新版本

代码那个我只按照ST那边说的改了那三个地方,Characteristic properties地方改了一下,手机发送到蓝牙的代码没有实现
  Osal_MemCpy(&char_uuid.Char_UUID_128, charUuidTX, 16);
  ret =  aci_gatt_add_char(chatServHandle, UUID_TYPE_128, &char_uuid, 20, CHAR_PROP_NOTIFY|CHAR_PROP_READ|CHAR_PROP_WRITE, ATTR_PERMISSION_NONE, 0,
                16, 1, &TXCharHandle);
  if (ret != BLE_STATUS_SUCCESS) goto fail;

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-11-23 10:15
引用: littleshrimp 发表于 2018-11-23 10:15
这个是我以下在手机里的,你也可以到应用商店里再找找有无新版本

代码那个我只按照ST那边说的改了 ...

虾哥,我把你的bin转换为hex之后利用navigator烧到开发板,nrf这边显示只有notify。。。
点赞  2018-11-23 10:39
引用: 逆风寒 发表于 2018-11-23 10:39
虾哥,我把你的bin转换为hex之后利用navigator烧到开发板,nrf这边显示只有notify。。。

我把发给你的文件下载下来,重新刷了一下,使用ble scanner,读写都有要不你试试ble scanner看看?这个固件是BLUENRG-1的


Screenshot_2018-11-23-11-29-19.png

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-11-23 11:31
引用: littleshrimp 发表于 2018-11-23 10:15
这个是我以下在手机里的,你也可以到应用商店里再找找有无新版本

代码那个我只按照ST那边说的改了 ...

虾哥,你提到“手机发送到蓝牙的没有实现”,这边测试也是这样的,就算手机这边显示有写的功能,并且手机上显示了发送了数据,但是蓝牙串口连接电脑这边 是没有显示接收到数据的,

另外发现当主机数目更改为2时,无法连续接收蓝牙发送的数据,即当连接两主机时,蓝牙连续两次发送的数据,两部手机分别接收到其中的一次数据,即便测试时只用一部手机连接,也是只能接收到两次中的一次数据
点赞  2018-11-23 14:08
引用: 逆风寒 发表于 2018-11-23 14:08
虾哥,你提到“手机发送到蓝牙的没有实现”,这边测试也是这样的,就算手机这边显示有写的功能,并且手机 ...

BLE_Chat.bin (78.9 KB)
(下载次数: 3, 2018-11-23 16:22 上传)


使用chat例程,手机向蓝牙模块发也可以
想实现同一个char实现收发,你把这两个char里相当的代码弄到一起试试


QQ图片20181123162012.png

QQ图片20181123093908.png

/*
  Osal_MemCpy(&char_uuid.Char_UUID_128, charUuidTX, 16);
  ret =  aci_gatt_add_char(chatServHandle, UUID_TYPE_128, &char_uuid, 20, CHAR_PROP_NOTIFY|CHAR_PROP_READ|CHAR_PROP_WRITE, ATTR_PERMISSION_NONE, 0,
                16, 1, &TXCharHandle);
  if (ret != BLE_STATUS_SUCCESS) goto fail;
*/
  Osal_MemCpy(&char_uuid.Char_UUID_128, charUuidRX, 16);
  ret =  aci_gatt_add_char(chatServHandle, UUID_TYPE_128, &char_uuid, 20, CHAR_PROP_NOTIFY|CHAR_PROP_READ|CHAR_PROP_WRITE, ATTR_PERMISSION_NONE, GATT_NOTIFY_ATTRIBUTE_WRITE,
                16, 1, &RXCharHandle);
  if (ret != BLE_STATUS_SUCCESS) goto fail;

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-11-23 16:22
引用: littleshrimp 发表于 2018-11-23 16:22
使用chat例程,手机向蓝牙模块发也可以
想实现同一个char实现收发,你把这两个char里相当的代码弄到 ...

嗯,谢谢虾哥
点赞  2018-11-24 13:55
问题整合:
1.BlueNRG-1可以在一个主机连接进行串口透传的时候,还保证让其他的主机接收到BlueNRG发送的beacon信息吗?
2.之前技术支持提供的两主机连接进行串口透传的程序,在BlueNRG发送通知的时候,测试发现两个主机不能同时连续接收到notification (https://bbs.eeworld.com.cn/forum. ... 3&page=2#pid2820309
3.security例程,测试的时候,一旦手机先前忽略配对信息,之后就连接不上;或者手机连上之后断开,后续想要再连接也连接不上,必须用nevigator重新烧写程序,不重新烧程序时我给板子断电之后重新上电,手机也是连接不上的  @nmg
点赞  2018-11-29 10:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复