LINUX中的rfcomm命令工具的使用

  LINUX中的rfcomm命令工具的使用
mknod /dev/rfcomm0 c 216 0
216是RFCOMM的设备号,可以参考..../bluez-utils-2.x/scripts/create_dev脚本
绑定
rfcomm.conf表示的是将rfcomm0绑定到某个MAC和channel上。这个功能用下面的命令也可以完成
rfcomm bind /dev/rfcomm0 [MAC] [channel]
解除绑定使用
rfcomm release /dev/rfcomm0
查看绑定使用
rfcomm show

所谓绑定,类似于设定/dev/rfcomm0对应某个确定的蓝牙设备和它的某个channel。可以把它想像为将一条串口电缆连接到某台计算机上的某个串口上。

连接
rfcomm conn /dev/rfcomm0 [MAC] 10
该命令建立一个与[MAC]的rfcomm连接。这时,可能被连接方会发送一下LINK_PIN_REQUEST,要求PIN码。

PIN码是由hcid/secury.c处理的,当hcid收到LINK_PIN_REQUEST,就调用下面的这个函数。见下面的代码:
static void pin_code_request(int dev, bdaddr_t *sba, bdaddr_t *dba)
{
......
pinlen = read_pin_code(sba, dba, pin); /*这里是从本机文件中读取PIN码*/
if (pairing == HCID_PAIRING_ONCE) {
struct link_key *key = get_link_key(sba, dba);
if (key) {
ba2str(dba, da);
syslog(LOG_WARNING, "PIN code request for already paired device %s", da);
goto reject;
}
} else if (pairing == HCID_PAIRING_NONE) /*hcid.conf中security设置为none*/
goto reject; /*发送PIN_Code_Request_Negative_Reply*/

if (hcid.security == HCID_SEC_AUTO) { /*hcid.conf中security设置为auto*/
......
hci_send_cmd(dev, OGF_LINK_CTL, OCF_PIN_CODE_REPLY,
PIN_CODE_REPLY_CP_SIZE, &pr);
} else {
/* Let PIN helper handle that */
request_pin(dev, sba, ci);/*调用hcid.conf中pin_helper对应的PIN输入程序*/
}
}
} else {
/* Let PIN helper handle that */
request_pin(dev, sba, ci);); /*调用hcid.conf中pin_helper对应的PIN输入程序*/
}

}

可见,hcid的处理行为是在/etc/bluetooth/hcid.conf文件中确定的。在实际使用中发现hcid.conf中的pin_helper设定的bluepin不起作用。(注:bluepin是一个python脚本文件)

read_pin_code()是从文件中读取PIN码,下面是这个函数的代码:

#define STORAGEDIR "/var/lib/bluetooth"
snprintf( filename, PATH_MAX, "%s/%s/pincodes", STORAGEDIR, addr);

可见PIN码的文件是在/var/lib/bluetooth/xx:xx:xx:xx:xx:xx/pincodes中。手工的建立这个文件,然后使用上面的命令
rfcomm conn /dev/rfcomm0 [MAC] 10
这可以成功连接上需要PIN码的蓝牙设备

 原文地址 http://hi.baidu.com/whyspai/blog/item/ca6b32dd0a392bd88c1029df.html

### 蓝牙低功耗(BLE)调试工具使用教程 #### 工具概述 对于蓝牙低功耗(BLE)技术而言,选择合适的调试工具至关重要。常见的BLE调试工具包括硬件设备如nRF Sniffer、Bluegiga Dongle等以及软件平台如nRF Connect for Desktop、LightBlue等。 #### nRF Sniffer配置方法 为了捕获并分析空中传输的数据包,可以采用nRF Sniffer这一流行的选择。安装过程涉及下载专用驱动程序和应用程序,并将其与PC端相连以便于监控BLE流量[^1]。 ```bash sudo apt-get install libpcap-dev # 安装依赖库 (Linux环境) ``` #### 使用nRF Connect进行交互操作 nRF Connect是一款功能全面的应用程序,适用于Android和iOS操作系统。此应用不仅能够扫描周围存在的BLE设备,还能查看服务特征值详情,发送读写指令给目标装置完成参数调整或命令下发等功能。 #### 设备仿真与测试框架搭建 针对开发者来说,在不具备实际物理器件的情况下也可以利用模拟器来进行初步验证工作。例如,借助MBED OS提供的在线IDE集成的虚拟串口终端实现简单的通信逻辑演练;或是运用Python编写脚本来调用pybluez库构造自定义的服务端实例[^3]。 ```python from pybluetooth import BluetoothSocket, RFCOMM server_sock=BluetoothSocket( RFCOMM ) server_sock.bind(("",PORT_ANY)) server_sock.listen(1) client_sock,address = server_sock.accept() print("Accepted connection from ",address) data = client_sock.recv(1024) print ("received [%s]"% data) client_sock.close() server_sock.close() ``` #### 功耗优化实践指导 当涉及到具体产品设计时,了解如何有效降低系统整体能耗显得尤为重要。以NXP BLE SOC为例,其具备多种省电状态可供选用——比如PD0模式允许保持蓝牙核心活跃从而维持持续广播能力而不必担心过度消耗电量;而切换至更深一层休眠级别(PD1),则可进一步减少静态电流直至微安级水平[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值