蓝牙 bluez 的编程 C C++
蓝牙 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);
}
蓝牙 bluez 的编程 C C++的更多相关文章
- 低功耗蓝牙4.0BLE编程-nrf51822开发(1)
为了省钱,也为了提高手动能力,只买了块核心板,仿真器用的是旧的jinkv7,自己搭扩展板,DIY就这样开始了. 买这块之前做了些调查,最终选定了nrf51822,功耗低,性能强,开发难度小,虽然比TI ...
- Linux 下蓝牙bluez分析及使用 (1)
蓝牙耳机的使用 由于Linux下蓝牙使用不及Windows下直观,致使使用时会出现一些小问题.虽然是小问题,但是由于普通的操作都具有顺序性,前面的中断了,后面的哪怕再简单,也无法继续了.正好近期工作与 ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(11)-蓝牙串口代码分析
代码实例:点击打开链接 实现的功能是从uart口发送数据至另一个蓝牙串口,或是从蓝牙读取数据通过uart打印出数据. int main(void) { // Initialize leds_init( ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(9)
Android 4.3以后的系统自动支持蓝牙4.0规范的低功耗蓝牙(BLE).在android4.3之前,蓝牙4.0支持是由手机厂家加入支持的,接口各异,导致开发一个支持蓝牙4.0程序支持市面上的手机 ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(7)-SDP服务发现协议
SDP的全称是Service Discovery Protocol,中文是服务发现协议.SDP(服务发现协议)是蓝牙协议体系中的核心协议,是蓝牙系统重要组成部分,是所有用户模式的基础.在蓝牙系统中.客 ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(6)-Battery Service
Battery Service是有关电池特性方面的服务,如果需要它,在初始化时将它加入到蓝牙协议栈. 如果通过ble_bas_battery_level_update(),电池电量将会通知,Batte ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(3)
蓝牙协议栈 nrf51822开发中,蓝牙协议栈和应用开发是分开的. (1)兼容蓝牙4.0低功耗协议栈基带层,L2CAP\AAT\SM\GAP\GATT协议,设备和广播,GATT客户端和服务器,SMP支 ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(4)
蓝牙是一种短距离的通讯方式,它设计的意图是取代电子便携设备之间的有线电缆连接.蓝牙的主要特性是健壮性.低功耗.成本低,它工作于免费的2.4无线传输频段. 蓝牙有两种技术系统:基本速率Basic Rat ...
- 低功耗蓝牙4.0BLE编程-nrf51822开发(2)
相关下载:http://download.csdn.net/detail/xgbing/9565708 首先看的示例是心率计一个示例程序:<KEIL path> \ARM\Device\N ...
- (蓝牙)网络编程中,使用InputStream read方法读取数据阻塞的解决方法
问题如题,这个问题困扰了我好几天,今天终于解决了,感谢[1]. 首先,我要做的是android手机和电脑进行蓝牙通信,android发一句话,电脑端程序至少就要做到接受到那句话.android端发送信 ...
随机推荐
- Sql Server数据库远程连接访问设置
步骤一:设置sql server数据库 1.以新建一个新用户名test作为远程连接登录名.在本地登录sql server数据库,安全性->右键用户名 2.点击根目录右键,选择属性 选择安全性 选 ...
- 2025dsfz集训Day11:数位DP、状态压缩DP、单调队列优化DP
Day11:数位DP.状压DP.单调队列优化DP 经典题目:AccodersP2195 |[一本通提高数位动态规划]Amount of Degrees 题意: 求出区间 \([x,y]\) 中满足下面 ...
- 题解:P10983 [蓝桥杯 2023 国 Python A] 跑步计划
一眼看,什么 py,不是纯计算题吗? 需要知道的 2023 年是平年,有 365 天. 每个月分别有 31,28,31,30,31,30,31,31,30,31,30,31 天. 计算 一月,十月,十 ...
- 【经验】VMware|Win11的Ubuntu虚拟机启动虚拟化,报错此平台不支持虚拟化的 Intel VT-x/EPT(方案汇总+自己的解决方案)
2024/04/24说明:这篇暂时修改为粉丝可见,因为正在冲粉丝量,等到我弄完了粉丝量的要求,我就改回来!不方便看到全文的小伙伴不好意思!! 我开虚拟化是为了在虚拟机中运行VirtualBox,如果不 ...
- SQL 日常练习 (十七)
五一了, 2020过去近乎一半了, 疫情原因, 哪都没去, 其实与其出去玩, 不如呆着学习, 终身学习, 学无止境, 气有浩然, 这是我从上大学开始一直刻在脑海的训诫. 都说今年很艰难, 回头一想, ...
- 浅析NodeJS中的事件循环和异步API
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- Python标准库之Collections---Container datatype
Deques Deques,即 Double-ended-queues,是支持线程安全,内存高效的列表类对象.Deques是可改变的,支持索引等类似于list的操作,然而,我们不能直接对Deques进 ...
- Windows平台调试器原理与编写03.单步
调试器原理与编写03.单步-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 单步 TF - 置位(置1 复位就是置0) 单步步入 -- 遇到call便入 单步步过 ...
- 怒更一波TransDuck免费的声音克隆和AI配音功能
宝子们! 最近咱软件TransDuck的免费声音克隆和AI配音功能被大家用爆啦!感谢各位自来水疯狂安利!! DD这里也是收到好多用户提的宝贵建议!所以,连夜肝了波更新! 这次重点更新使用克隆音色进行A ...
- select * 和 select 字段的区别
摘要:介绍 select * 和 select 字段的区别,建议各位不要使用 select * . 在千万级表中查询数据的时候,需要千方百计提升查询效率,为用户带来最爽的体验:业界各位大佬都提到 ...