[1] 跪求哦使用btstack 实现gatt server,gatt client的思路和参考demo,
这个用bluez实现由啥区别吗?bluez-5.32源码profiles目录里的gatt文件夹
里的gas.c是ble的主模式实现还是从模式实现哦?
[2] 实现ble 的从模式的profiles有啥思路吗?
离线
这两个demo应该符合你的需要:
https://github.com/RadiusNetworks/bluez/blob/master/tools/btgatt-client.c
https://github.com/RadiusNetworks/bluez/blob/master/tools/btgatt-server.c
离线
这个和bluez官方master源码不一样吗?这个能单独用啊
离线
和btstack相比如何,我略看了下btstack源码,port文件夹下有很多和芯片有关的文件哦,比如stm32之类的,btstack 能当做在嵌入式arm linux 板上实现ble 从模式的库吗? 我现在已经移植完了整个bluez源码哦,好纠结怎么选啊?这个gatt client.c,gatt server.c能完全单独编译使用实现ble 主从一体吗?
离线
不好意思,3楼回答搞错了。
btstack的 server和client demo:
https://github.com/bluekitchen/btstack/blob/master/example/le_data_channel_server.c
https://github.com/bluekitchen/btstack/blob/master/example/le_data_channel_client.c
这两个我程序我试过了,
可以用来作为BLE通讯,
也可以用手机app BLEDeng 与 le_data_channel_server 通讯。
可以用Ubuntu测试, 也可以用单片机或者嵌入式平台测试,
参考这个帖子: https://whycan.cn/t_1133.html
离线
但是3楼发的感觉放在bluez里可以哦?他是dbus接口的,然后也是可以单独拿出来用实现ble 从机模式的吧?不想引入太多代码哦
最近编辑记录 soluxz (2018-05-17 21:01:03)
离线
这btstack和硬件蓝牙芯片是啥型号一点关系都没有吗?我的蓝牙芯片用的是AP6212A,arm是cortex-A7的主控,然后用的sdio,串口uart使用bt
离线
这个ble 和经典蓝牙有啥不同,如何说明是低功耗模式呢?这两个demo分别对应蓝牙主从模式吗,分别可以是主从模式对应的profile吗?
离线
马上研究一波。谢晕哥指点。
离线
离线
晕哥,我现在用的交叉编译器是arm-poky-Linux-gnueabi-gcc, 那么我应该编译哪个port呢?怎么修改Makefile哦,有相关的readme 不?
离线
怎么确定这个用那个port呢?我用的ap6212A 启动起来是会先装载ko驱动和加载一个固件和配置文件,如下
insmod /lib/modules/bcmdhd.ko firmware_path=/lib/firmware/bcm/fw_bcm43438a1.bin nvram_path=/lib/firmware/bcm/nvram_ap6212a.txt
离线
好的,我先研究研一波再来问吧,ap6212a是wifi和bt一体的。
离线
好的,我去确认下,如果不是一个芯片,那需要改寄存器吗,改固件吗?
离线
好的,这两个蓝牙芯片有点不一样哦,是不是得改初始化文件了
AP6212A BCM43438A1
AP6210 BCM43362
离线
晕哥,在哪里指定port posix-h4 的CC为arm-poky-Linux-gnueabi-gcc, 木有发现相关的readme?
离线
哦,晕哥,终于把btstack代码抱起来了。那个le_stream和le_stream_client是蓝牙ble的主模式和从模式的demo进程吗?
还有这个le_streamer.h头文件为啥用python动态生成噢?有le_stream demo的操作手册吗?
离线
那个le_stream和le_stream_client是蓝牙ble的主模式和从模式的demo进程吗?
对,应该是的,几天没搞又忘记了。
这个le_streamer.h头文件为啥用python动态生成噢?有le_stream demo的操作手册吗?
不知道为什么用python, le_stream 估计得去官网看说明了。
如果你知道答案了,请分享一下。
离线
ok,马上去研究一波。le_data_channel_server 和le_stream 这两个同时是一样的功能?有啥doc说明不?
反应bt stack 的bugs去哪个网址呀?
离线
ok,马上去研究一波。le_data_channel_server 和le_stream 这两个同时是一样的功能?有啥doc说明不?
反应bt stack 的bugs去哪个网址呀?
应该是BLE的不同应用demo吧。
本来打算用Android写个app与btstack的le_steamer通讯,现在手上有别的项目,来不及了。
https://whycan.cn/t_1206.html
只是拼拼凑凑开了个头。
离线
晕哥,带带我吧,师傅在上噢
离线
马上研究一波
离线
晕哥,突发一问,如何让ble支持AT指令哦,btstack已经支持了吗?
离线
哦,得研究一波看来
离线
晕哥,你用btstack做的ble通过了蓝牙认证吗?产品量产了?
离线
算我一个哦
离线
晕哥,btstack里的hci_dump.pklg怎么都是乱码?
离线
arm cortex a7,linux 4.1.15,串口的设备节点我修改为/dev/下的蓝牙串口节点,交叉编译出来的le_data_channel_server
离线
arm cortex a7,linux 4.1.15,串口的设备节点我修改为/dev/下的蓝牙串口节点,交叉编译出来的le_data_channel_server
离线
我修改了下dump的后缀,原来的不能上传噢
离线
离线
我把hci_dump.pklg改成了7z的后缀传的
离线
离线
是指的串口的配置?波特率配置的是115200,支持流控.
那怎么配置的呢?因为我通过bluez的主模式是正常的,然后我看了/etc/bluetooth 下的
配置是/dev/ttymxc2 bcm43xx 3000000 flow -t 20是这样的。我用wireshark把dump
文件打开看了下是因为捕获到了ctrl-c信号哦
离线
hci_dump_open(pklg_path, HCI_DUMP_PACKETLOGGER);
改成这样:
hci_dump_open(NULL, HCI_DUMP_STDOUT);
试一试.
这样是把log直接输出到控制台,而不是文件。
log如下:
root@helloworld:/mnt/mtdblock/bt# ./le_data_channel_server
Packet Log: /tmp/hci_dump.pklg
**********__line:321,le_data_channel_server
[2017-05-28 01:53:46.144] LOG -- l2cap.c.3522: L2CAP_LE_REGISTER_SERVICE psm 0x25
[2017-05-28 01:53:46.144] LOG -- hci.c.2800: hci_power_control: 1, current mode 0
[2017-05-28 01:53:46.144] LOG -- btstack_uart_block_posix.c.177: h4_set_baudrate 115200
[2017-05-28 01:53:46.244] LOG -- hci.c.3859: BTSTACK_EVENT_STATE 1
[2017-05-28 01:53:46.244] EVT <= 60 01 01
[2017-05-28 01:53:46.245] CMD => 03 0C 00
[2017-05-28 01:53:46.445] LOG -- hci.c.1098: Resend HCI Reset
root@helloworld:/mnt/mtdblock/bt# ./le_data_channel_client
Packet Log: /tmp/hci_dump.pklg
[2017-05-28 01:54:12.593] LOG -- hci.c.2800: hci_power_control: 1, current mode 0
[2017-05-28 01:54:12.594] LOG -- btstack_uart_block_posix.c.177: h4_set_baudrate 115200
[2017-05-28 01:54:12.695] LOG -- hci.c.3859: BTSTACK_EVENT_STATE 1
[2017-05-28 01:54:12.695] EVT <= 60 01 01
[2017-05-28 01:54:12.696] CMD => 03 0C 00
[2017-05-28 01:54:12.896] LOG -- hci.c.1098: Resend HCI Reset
离线
应该是h4_set_baudrate 115200 这个哦
离线
离线
有在启动的时候指定bcm固件包的一些启动参数的
firmware_path=/lib/firmware/bcm/fw_bcm43438a1.bin nvram_paht=/lib/firmware/bcm/nvram_ap6212a.txt
离线