实战 linux蓝牙编程之(八) hci 协议 应用编程实现
对于hci层的编程 是相当复杂的 功能也是强大的,建议学习者 去读bluez-lib中的hci和sdp
这里简要介绍 我在开发公司的项目中的 一个小的基础动作. 该编程的过程基本理清了hci和sdp的衔接和应用.希望对学习者有帮助
说明有不到之处,望大家多多研究,不要局限,每个人有自己的方式,也许你的在逻辑算法上比我的好!!
//scan是一个利用hci层协议 获得远程蓝牙设备的蓝牙地址和蓝牙昵称的函数;
int scan()
{
inquiry_info *ii = NULL;
int max_rsp, num_rsp;
int dev_id, sock, len, flags;
int i;
char addr[19] = { 0 };
char name[248] = { 0 };
dev_id = hci_get_route(NULL);
printf("\nhci%d is scanning......\n",dev_id);
//dev_id = lc[scannum].name;
sock = hci_open_dev( dev_id );
if (dev_id < 0 || sock < 0) {
system("reboot");
perror("opening socket");
return 0;
}
bdaddr_t src;
bacpy(&src, BDADDR_ANY);
len = 8;
max_rsp = 255;
flags = IREQ_CACHE_FLUSH;
ii = (inquiry_info*)malloc(max_rsp * sizeof(inquiry_info));
num_rsp = hci_inquiry(dev_id, len, max_rsp, NULL, &ii, flags);
if( num_rsp < 0 ) perror("hci_inquiry");
for (i = 0; i < num_rsp; i++) {
ba2str(&(ii+i)->bdaddr, addr);
memset(name, 0, sizeof(name));
int c=0;
if (sdp_get_channel_opush(&src, &(ii+i)->bdaddr, &c))
//printf("\n%d\n",c);
if(c>0)addadr(addr,c); //此处是我在做项目中做的一个与应用程序连接的接口函数,功能是完成远程蓝牙设备的地址和文件传输通道号添加到
相关文档:
本文转自:http://www.cnblogs.com/blueoceanli/archive/2009/04/27/1444491.html
(修改~/.vimrc,没有创建之)
set encoding=utf-8
syntax enable
syntax on
filetype on
set tabstop=4
set softtabstop=4
set shiftwidth=4
set cindent
set autoindent
filetype plugin indent on
1.Alternate (http://www.vim ......
Linux 下安装QQ
1. download qq:
到QQ官方上下载Linux版本的QQ,有tar.gz和rpm等格式。
建议下载tar.gz格式的。 ......
ln
[root@www ~]# ln [-sf] 來源檔 目標檔
選項與參數:
-s :如果不加任何參數就進行連結,那就是hard link,至於 -s 就是symbolic link
-f :如果 目標檔 存在時,就主動的將目જ ......
Linux系统省略输入用户名密码(字符界面下)
1、省略密码验证
很简单,只需把/etc/passwd中的root:x:0:0:root:/root:/bin/bash,改为root::0:0:root:/root:/bin/bash,就可以了,就是去掉了里面的x,这样root用户就不用密码了。其他用户也一样。
2、省略输入用户名
(1)修改/etc/inittab
在inittab中,有如下配 ......
1. 检查Oracle的进程
$ ps -ef|grep "ora_"|grep -v grep
oracle 5998 1 0 11:15:59 ? 0:01 ora_j000_PPRD10
oracle 2968 1  ......