博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝牙 bluez 的编程 C C++
阅读量:5927 次
发布时间:2019-06-19

本文共 1825 字,大约阅读时间需要 6 分钟。

蓝牙 bluez 的编程 C C++

简介

bluez目录有一个libbluetooth.a文件
有一个目录 lib目录里面存储这网络连接的部分代码
基于库的代码编程.
在linux下如果自带了蓝牙,可以通过gcc **.c -lbluetooth 直接编出一个可执行文件.

参考文献

下面的连接提供了一个测试代码.

另外,关于 ble 使用库的方式一直出现失败的情况,是因为,没有设置ble的相关参数,具体可以参考

中的enable_advertising函数

int device_id = hci_get_route(NULL);        int device_handle = 0;        if ((device_handle = hci_open_dev(device_id)) < 0) {                perror("Could not open device");                exit(1);        }        le_set_advertising_parameters_cp adv_params_cp = { 0 };        adv_params_cp.min_interval = htobs(advertising_interval);        adv_params_cp.max_interval = htobs(advertising_interval);        adv_params_cp.chan_map = 7;        uint8_t status;        struct hci_request rq = { 0 };        rq.ogf = OGF_LE_CTL;        rq.ocf = OCF_LE_SET_ADVERTISING_PARAMETERS;        rq.cparam = &adv_params_cp;        rq.clen = LE_SET_ADVERTISING_PARAMETERS_CP_SIZE;        rq.rparam = &status;        rq.rlen = 1;        int ret = hci_send_req(device_handle, &rq, 1000);        if (ret < 0) {                hci_close_dev(device_handle);                fprintf(stderr, "Can't send request %s (%d)\n", strerror(errno), errno);                return (1);        }        le_set_advertise_enable_cp advertise_cp = { 0 };        advertise_cp.enable = 0x01;        memset(&rq, 0, sizeof(rq));        rq.ogf = OGF_LE_CTL;        rq.ocf = OCF_LE_SET_ADVERTISE_ENABLE;        rq.cparam = &advertise_cp;        rq.clen = LE_SET_ADVERTISE_ENABLE_CP_SIZE;        rq.rparam = &status;        rq.rlen = 1;        ret = hci_send_req(device_handle, &rq, 1000);        if (ret < 0) {                hci_close_dev(device_handle);                fprintf(stderr, "Can't send request %s (%d)\n", strerror(errno), errno);                return (1);        }

转载于:https://www.cnblogs.com/eat-too-much/p/8885522.html

你可能感兴趣的文章
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
快速排序——Java
查看>>
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
行列式的乘法定理
查看>>
linux下内存释放问题
查看>>
让Java和JavaScript进行交互
查看>>
LINQ之路12:LINQ Operators之数据转换(Projecting)
查看>>
SQL Server:数据库角色
查看>>
分享8个超棒的基于HTML5和jQuery的开发教程
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
SpringMVC+Swagger详细整合
查看>>
计算机视觉领域最全汇总(第2部分)
查看>>
[译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量
查看>>