
bluez/obex
文章平均质量分 74
baozhongchao
吹尽狂沙始到金
展开
-
Linux下基于bluez与obex的服务
一个服务端需要给对方提供OBEX Object Push服务的通道,所以在打开服务器之前需要确定已经将该服务注册到SDP服务器,Linux下使用sdptool注册该服务的命令为:sdptool add opush; 1.OBEX_Init()用于初始化一个obex instance handle;arg1:OBEX_TRANS_BLUETOOTH用于声明传输协议为bluetoot转载 2009-08-10 17:11:00 · 5239 阅读 · 0 评论 -
实战Linux Bluetooth编程(二) BlueZ简介
Linux下Bluetooth协议栈的实现. Linux下开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ。我们主要面对Bluez来探讨。 BlueZ基础代码均是由Maxim Krasnyansky完成的。包括:HCI,L2CAP,RFCOMM和基本socket的实现。他就职于Qualcomm(高通)。转载 2009-10-26 12:39:00 · 9134 阅读 · 0 评论 -
实战Linux Bluetooth编程(三) HCI层编程
1. HCI层协议概述:HCI提供一套统一的方法来访问Bluetooth底层。如图所示: 从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。在Host这一端:a转载 2009-10-26 12:40:00 · 11849 阅读 · 4 评论 -
实战Linux Bluetooth编程(四) L2CAP层编程
(L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接口) 一:L2CAP协议简介:Logical Link Control and Adaptation Protocol(L2CAP) 逻辑连接控制和适配协议 (L2CAP) 为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操作。L2CAP 充许上层协议和应用软件传输和接收最大长度为 64转载 2009-10-26 12:41:00 · 5315 阅读 · 1 评论 -
实战Linux Bluetooth编程(五) Socket与Bluetooth
Linux下Bluetooth编程,借用了Socket体制。也就是说,BlueZ Kernel部分将Bluetooth协议栈以网络协议的形式添加进网络协议栈,这样极大的方便了用户编程。下面Sam就结合Socket概念将Linux Bluetooth做个研究。 1957年10月4日,星期五,苏联发射了人类历史上第一颗人造地球卫星--Sputnik.这标志着人类外太空时代的开始。这颗卫星篮球大转载 2009-10-26 12:42:00 · 6236 阅读 · 2 评论 -
实战Linux Bluetooth编程(六) L2CAP编程实例
例一:发送Signaling Packet:Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.多个Command可以在一个C-frame(control frame)中发送。 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接S转载 2009-10-26 12:43:00 · 7937 阅读 · 0 评论 -
Bluetooth HCI Event的处理
1.当Bluetooth USB dongle插入USB接口时,driver/bluetooth/hci_usb.c中probe程序被调用。probe会调用hci_register_dev()--〉tasklet_init(&hdev->rx_task, hci_rx_task, (unsigned long) hdev);将hci_rx_task() 连上rx_task->func.2.同样转载 2009-10-26 12:31:00 · 3589 阅读 · 0 评论 -
Bluetooth协议栈学习之SDP
SDP(service discovery protocol:服务发现协议)提供了一个方法,让应用程序检测哪些服务是可用的并探测这些可用服务的特性。服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的转载 2009-10-26 12:37:00 · 9521 阅读 · 0 评论 -
实战Linux Bluetooth编程 (七) SDP协议
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。这个协议定义了转载 2009-10-26 12:44:00 · 4724 阅读 · 1 评论 -
实战 linux蓝牙编程之(八) hci 协议 应用编程实现
对于hci层的编程 是相当复杂的 功能也是强大的,建议学习者 去读bluez-lib中的hci和sdp 这里简要介绍 我在开发公司的项目中的 一个小的基础动作. 该编程的过程基本理清了hci和sdp的衔接和应用.希望对学习者有帮助说明有不到之处,望大家多多研究,不要局限,每个人有自己的方式,也许你的在逻辑算法上比我的好!!//scan是一个利用hci层协议 获得远程蓝牙设备原创 2009-11-10 10:32:00 · 8272 阅读 · 3 评论 -
rfcomm层的socket程序编写
<br />今天写了个简单的蓝牙server—client传递字符串的程序,并且把server移植到了开发板上,测试通过。能够在测试端输入字符串,并显示在服务端。现在输入超过1200个左右的字符就会出现问题,还不清楚究竟是socket的write大小限制在1000多,还是自己缓冲区的问题,明天去借本书来研究研究。<br />利用蓝牙建立连接其实和普通socket编程中建立tcp连接很相似,首先在监听端创建socket,bind,然后listen,accept.在客户端connect就连接上了.之后用read转载 2010-10-17 15:40:00 · 1512 阅读 · 1 评论 -
rfcomm层的socket程序编写
<br />今天写了个简单的蓝牙server—client传递字符串的程序,并且把server移植到了开发板上,测试通过。能够在测试端输入字符串,并显示在服务端。现在输入超过1200个左右的字符就会出现问题,还不清楚究竟是socket的write大小限制在1000多,还是自己缓冲区的问题,明天去借本书来研究研究。<br />利用蓝牙建立连接其实和普通socket编程中建立tcp连接很相似,首先在监听端创建socket,bind,然后listen,accept.在客户端connect就连接上了.之后用read转载 2010-10-17 15:41:00 · 2646 阅读 · 0 评论 -
实战Linux Bluetooth编程(一) 协议栈概述
Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记了。所以决定在这次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的Bluetooth编程基础给记录下来吧。 前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要Bluetooth设备和应用。但在Linux下如何对Bluetooth编转载 2009-10-26 12:38:00 · 6442 阅读 · 0 评论 -
Hi3110 EV 100平台上Bluetooth的移植
Sam想把手柄库移植到海思 Hi3100 EV 100平台上去。先进行评估如下:1. Hi3100 EV 100为ARM平台。2. Hi3100 EV 100使用uclibc。这两个差异决定了需要从bluetooth 底层库开始移植。一:Sam从linux kernel中编译出了bluetooth.ko, hci_usb.ko, l2cap.ko, hidp.ko。二:下载新版bluez.http转载 2009-10-26 12:36:00 · 2886 阅读 · 0 评论 -
Bluetooth Sniff 详解
前面讲了Blueooth Remote Control发送Sniff request,要求每5ms发送一个数据包。这篇详细介绍一下Bluetooth Sniff.在Sniff mode, Slave活动的占空比可能会降低。如果一个ACL逻辑传输的Slave 处于Active Mode,它将在在每个Master 发送ACL Slot中监听。除非link处理为分散连接或者在Hold Mode。在Sni转载 2009-10-26 12:34:00 · 7992 阅读 · 0 评论 -
YC2440-F移植blueZ
准备工作:a. 在http://www.bluez.org/download/下载 bluez-libs-2.25.tar.gz 和 bluez-utils-2.25.tar.gz压缩包。b.ARM-LINUX-GCC 3.3.2版本,在终端中arm-linux-gcc -v查看。c.我的板子上是扬创出厂时的内核版本2.6.13。 具体步骤:1.重新编译内核开启对蓝牙USB模块的支持:转载 2009-08-18 13:19:00 · 2353 阅读 · 0 评论 -
YC2440-F移植blueZ
a. 在http://www.bluez.org/download/下载 bluez-libs-2.25.tar.gz 和 bluez-utils-2.25.tar.gz压缩包。b.ARM-LINUX-GCC 3.3.2版本,在终端中arm-linux-gcc -v查看。c.我的板子上是扬创出厂时的内核版本2.6.13。 具体步骤:1.重新编译内核开启对蓝牙USB模块的支持:make转载 2009-08-26 11:40:00 · 1217 阅读 · 0 评论 -
在Linux中使用蓝牙
一,蓝牙存储设备 蓝牙适配器: CSR蓝牙, USB接口 1,加载蓝牙适配器 插入USB口之后,可以使用lsusb命令,看到: Bus 004 Device 003: ID 1131:1001 Integrated System Solution Corp. 这是,运行hciconfig可以看到: hci0: Type: USB BD Addres原创 2009-08-26 12:53:00 · 19035 阅读 · 0 评论 -
bluetooth(蓝牙)在S3C2410上的移植
(一) 在Red hat 9上安装Bluez在pc上的安装我参考了OReilly的Linux Unwired一书,chapter 7中详细地介绍了linux下的bluetooth的基础知识、安装、配置和使用。安装前必须了解一下bluez的基本结构,直接位于发射传输协议之上的 协议是HCI(host control interface),我的手机和蓝牙GPS用到的高层协议是服务发现协议SDP和模拟转载 2009-08-28 13:50:00 · 4142 阅读 · 0 评论 -
连接蓝牙设备
当蓝牙SIG(特别兴趣组,由爱立信等厂商组成)成立的时候,其发起者曾经指出,当蓝牙能够被集成入单芯片之中、成本下降到5美元的时候,将得到极大地普及。而今,小小的一个五号电池大小的几十块人民币的东西就可以提供这个功能了,蓝牙也真的进入了我们的生活。利用蓝牙在手机之间传送图片不是什么新鲜事,现在做的是要连接Linux主机和蓝牙手机。15.2.1 蓝牙技术概述蓝牙最早由瑞典的爱立信公司提出,其转载 2009-09-25 12:58:00 · 6504 阅读 · 1 评论 -
预防蓝牙手机中病毒
当机”、“终止应用程序”、“衍生变种家族”、“无线入侵”、“伪装免费软件”甚至“窃取资讯”,这些电脑病毒常见的破坏手法,现在手机病毒也跟着模仿,入侵手机用户。趋势科技 TrendLabs 最近的一份报告指出,手机病毒可能造成文件、电话簿、讯息、相册以及电话本身的操作功能丧失。 趋势科技TrendLabs分析第一季的手机病毒,发现主要呈现四种状况,包括“复写防毒软件”伪装成更新防原创 2009-10-14 11:47:00 · 978 阅读 · 0 评论 -
蓝牙安全浅析
越来越多地出现在使用带有蓝牙功能手机的朋友身边:明明自己不怎么爱发短信但是却发现自己短信费用突然增高、自己与朋友合影的照片被不认识的人登在了网上、自己的手机莫名其妙地向外拨号……到底是什么原因造成了这些问题呢?下面我们为大家讲述一则有关蓝牙安全的故事,通过这个故事,大家就知道造成这些问题的原因了。 周利是一个从事无线安全研究的技术专家,为了对蓝牙设备安全进行研究,周利决定原创 2009-10-14 11:43:00 · 1663 阅读 · 0 评论 -
蓝牙编程-l2cap协议层的c/s程序
l2cap协议方式的socket连接.以下为客户端的程序:#include #include #include #include #include #include int main( int argc , char **argv){ struct sockaddr_l2 addr={0}; int s,status; char *dest,*buf; //="00:11:67:3转载 2009-10-26 10:32:00 · 4301 阅读 · 1 评论 -
Linux下Bluetooth HCI Command的实现
Linux下写Bluetooth程序,首先接触到的就是使用HCI Command来设置Bluetooth Modules(USB Bluetooth dongle)。那这些HCI command在blueZ中是如何实现的呢?举例说明。if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI)) 在此之前,因为hci_sock.c已经被bui转载 2009-10-26 12:29:00 · 4721 阅读 · 0 评论 -
Linux BlueZ 下 Inquiry的实现
前面讲了使用 ioctl发送HCI Command的方法。但HCI protocol还有一些Command,比如Inquiry等,他们则不需要使用ioctl来发送。blueZ 直接提供了支持,虽然他们的最终都是用同样办法实现的。在应用程序中:hci_inquiry(dev_id, length, num_rsp, NULL, &info, flags);这样需要包含blueZ 头文件如下:#inc转载 2009-10-26 12:30:00 · 2313 阅读 · 0 评论 -
基于bluez程序编译时注意事项
制作了一个基于bluez的,类似于BTW的库---BTX.在编写和使用这个库时,发现头文件包含容易出现的问题。第一:不要用到哪个Bluez头文件中定义的内容就只去包含这个头文件。而应该将bluetooth/bluetooth.h最先加入。类似://==================================//bluetooth header file#include //BTPROTO转载 2009-10-26 12:32:00 · 2595 阅读 · 0 评论 -
rfcomm层的socket程序编写
<br />今天写了个简单的蓝牙server—client传递字符串的程序,并且把server移植到了开发板上,测试通过。能够在测试端输入字符串,并显示在服务端。现在输入超过1200个左右的字符就会出现问题,还不清楚究竟是socket的write大小限制在1000多,还是自己缓冲区的问题,明天去借本书来研究研究。<br />利用蓝牙建立连接其实和普通socket编程中建立tcp连接很相似,首先在监听端创建socket,bind,然后listen,accept.在客户端connect就连接上了.之后用read转载 2010-10-17 15:41:00 · 1824 阅读 · 1 评论