windows mobile 蓝牙

jn989 2009-01-13 03:36:16
本人最近要在windows mobile系统下开发一个基于蓝牙的广播式的应用程序,问两个问题:
1.在WM下开发蓝牙程序有没有比较好的参考资料啊?
2.看了本windows moblie手机应用开发的书,里面讲蓝牙的通信是使用WinSocket,请问有没有其他方法啊?(主要为了解决下面的问题)
3.我看了一下蓝牙的介绍,好像是支持广播的,但是现在大多应用都是CS模式时的一对一链接后再通信,请问:如何开发蓝牙的广播程序?(实现:不查询设备,也不建立链接,设备产生数据包后,广播出去,在其周围的各个节点均受到包并做分析后决定是否抛弃还是接受
急盼请高人指点一二。
...全文
962 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wonderwon 2010-04-10
  • 打赏
  • 举报
回复
一年前的问题了
biaozai06 2009-02-11
  • 打赏
  • 举报
回复
ACL是面向分组的连接,支持广播信息。在ACL方式下,主设备控制链路带宽,负责从设备带宽的分配;从设备依轮询发送数据。

“除了以上大家说的比如MSDN帮助之外,何处有比较详细的蓝牙编程资料呢?尤其是这些链路层、acl、bnep等等的编程。初次涉及,有点无法入手,请大侠示之。”

————————你是做蓝牙应用还是驱动开发?使用的是什么蓝牙SDK?
jn989 2009-02-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 alucardpj 的回复:]
蓝牙通信采用跳频,所谓的连接实际上是同步两个设备间的跳频序列,只有在统一的跳频通道上才可以发送/接收数据。这个同步是根据双方的地址和主设备的时钟来决定的,所以不建立连接双方的跳频序列不同步,不可能实现通信,即便物理层收到数据包也会当作是噪声被丢弃。
pc的udp广播实际上是基于TCP/IP协议,在蓝牙上面如果想实现这个协议的话前提还是要建立逻辑上的acl连接,然后实现bnep,一个是指蓝牙的acl link,一个是指TCP/…
[/Quote]

受教了,非常感谢你!

进一步问一下:
1.关于你说的“定时刷新当前可用设备的信息,然后依次建立连接、通信然后断开”,是以轮询方式逐次建立链接、发送数据、最后断开链接吗?我看到蓝牙协议似乎支持最多8个链接,能否在查询到周围设备后,和多个设备都建立链接后,统一发送数据啊?就如同udp广播一样?
2.关于你说的“两个蓝牙芯片……”的问题,有点不太明白,我在做的是多部windows mobile系统手机(具有蓝牙)组成的临时自组网络的通信,能否满足你说的这个要求,能否详细示之,多谢!
3.除了以上大家说的比如MSDN帮助之外,何处有比较详细的蓝牙编程资料呢?尤其是这些链路层、acl、bnep等等的编程。初次涉及,有点无法入手,请大侠示之。

其他朋友要是有好的建议也请多多指教,感激不尽!
jn989 2009-02-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 biaozai06 的回复:]
ACL是面向分组的连接,支持广播信息。在ACL方式下,主设备控制链路带宽,负责从设备带宽的分配;从设备依轮询发送数据。

“除了以上大家说的比如MSDN帮助之外,何处有比较详细的蓝牙编程资料呢?尤其是这些链路层、acl、bnep等等的编程。初次涉及,有点无法入手,请大侠示之。”

————————你是做蓝牙应用还是驱动开发?使用的是什么蓝牙SDK?
[/Quote]
谢谢你!
感觉应该是应用吧,是做一个无线自组网络的路由协议,但是需要用手机模拟各个节点,通过蓝牙来模拟建立一个无线网络,在这上面跑这个协议
alucardpj 2009-02-05
  • 打赏
  • 举报
回复
蓝牙通信采用跳频,所谓的连接实际上是同步两个设备间的跳频序列,只有在统一的跳频通道上才可以发送/接收数据。这个同步是根据双方的地址和主设备的时钟来决定的,所以不建立连接双方的跳频序列不同步,不可能实现通信,即便物理层收到数据包也会当作是噪声被丢弃。
pc的udp广播实际上是基于TCP/IP协议,在蓝牙上面如果想实现这个协议的话前提还是要建立逻辑上的acl连接,然后实现bnep,一个是指蓝牙的acl link,一个是指TCP/IP上面的udp广播,两者不是一个层次上的。
要实现你所说的类似广播,可以分时的查询设备地址,定时刷新当前可用设备的信息,然后依次建立连接、通信然后断开。如果有两个蓝牙芯片就好办了,一个专门循环查找设备,维护设备地址列表,另一个就在设备列表中选取设备进行通信。
儿大不由爷 2009-01-14
  • 打赏
  • 举报
回复
蓝牙设备之间首先要配对,建立信任关系才能,传输据吧
jn989 2009-01-14
  • 打赏
  • 举报
回复
没人知道了吗?
jn989 2009-01-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 biaozai06 的回复:]
下面的信息应该对LZ有用:

微微网(Piconet):是由采用蓝牙技术的设备以特定方式组成的网络。
微微网的建立是由两台设备(如便携式电脑和蜂窝电话)的连接开始,最多由8台设备构成。所有的蓝牙设备都是对等的,以同样的方式工作。然而,当一个微微网建立时,只有一台为主设备,其他均为从设备,而且在一个微微网存在期间将一直维持这一状况。

可以看看我这篇blog:http://blog.csdn.net/biaozai06/archive/2008/12/…
[/Quote]
谢谢,这些我已经看过了,理论方面我已经看过很多了。现在需要的是涉及在WM下的蓝牙广播编程的具体实现问题啊
biaozai06 2009-01-14
  • 打赏
  • 举报
回复
下面的信息应该对LZ有用:

微微网(Piconet):是由采用蓝牙技术的设备以特定方式组成的网络。
微微网的建立是由两台设备(如便携式电脑和蜂窝电话)的连接开始,最多由8台设备构成。所有的蓝牙设备都是对等的,以同样的方式工作。然而,当一个微微网建立时,只有一台为主设备,其他均为从设备,而且在一个微微网存在期间将一直维持这一状况。

可以看看我这篇blog:http://blog.csdn.net/biaozai06/archive/2008/12/08/3474065.aspx
jn989 2009-01-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ultrapro 的回复:]
蓝牙设备之间首先要配对,建立信任关系才能,传输据吧
[/Quote]
是传数据啊,那蓝牙如何支持广播呢?当一个设备进入很多设备组成的临时网络时,能否自动加入,并接受这个网络中的数据包,这个能否实现呢?能否实现一对多的同时发送数据呢?(这个模型有点像手机的蜂窝网,比如你从外地去北京,当进入北京后,北京的基站发送的新闻等你的手机同样能接受到)
jn989 2009-01-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ultrapro 的回复:]
1.MSDN上有说明
2.如果用蓝牙协议开发应用基本上就的用Socket了。
不知道你说的广播是什么意思是TCP/IP上的广播么?如果是的话,你的设备需要与其他设备先建立连接(蓝牙)
[/Quote]
谢谢你!
这个广播类似吧,但是最好不要建立连接,或者说能不能自动建立连接呢?
因为我的系统中的设备是活动着的,可能当前有4个节点,过一会出去1一个又进来3个,并且节点也是运动着的,所以主要是在这种类似于自组式的移动网络中实现数据的传输。只要能实现这个功能就行!
儿大不由爷 2009-01-13
  • 打赏
  • 举报
回复
The following table shows the Bluetooth functions with a description of the purpose of each. These functions are actually Winsock functions. However, the information that is presented in them is specific to Bluetooth.



Programming element PPC SP Description
accept (Bluetooth) X X This function permits an incoming connection attempt on a socket.

bind (Bluetooth) X X This function associates a local address with a socket.

connect (Bluetooth) X X This function establishes a connection to a specified socket.

getpeername (Bluetooth) X X This function retrieves the name of the peer to which a socket is connected.

getsockname (Bluetooth) X X This function retrieves the local name for a socket.

getsockopt (Bluetooth) X X This function retrieves a socket option.

setsockopt (Bluetooth) X X This function sets a socket option.

socket (Bluetooth) X X This function creates a socket that is bound to a specific service provider.

WSALookupServiceBegin (Bluetooth) X X This function initiates a client query that is constrained by the information contained within a WSAQUERYSET (Bluetooth) structure.

WSALookupServiceEnd (Bluetooth) X X This function frees the handle after previous calls to the WSALookupServiceBegin (Bluetooth) and WSALookupServiceNext (Bluetooth) functions.

WSALookupServiceNext (Bluetooth) X X This function retrieves the results of an SDP search.

WSASetService (Bluetooth) X X This function adds, updates, or removes service records from the local SDP database.

RequestBluetoothNotifications X X This function is called by an application to register the class of events for which to receive notifications.

StopBluetoothNotifications X X This function is called by the application to stop receiving event notification for class of events registered in an earlier call to RequestBluetoothNotifications.

BthGetMode X X Retrieves the current mode of operation of the Bluetooth radio.

BthSetMode X X Sets the Bluetooth mode of operation, reflects it in the control panel, and persists that state across hardware insertion and reboot.

儿大不由爷 2009-01-13
  • 打赏
  • 举报
回复
1.MSDN上有说明
2.如果用蓝牙协议开发应用基本上就的用Socket了。
不知道你说的广播是什么意思是TCP/IP上的广播么?如果是的话,你的设备需要与其他设备先建立连接(蓝牙)

7,660

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧