当前位置: 代码迷 >> WinCE >> wince蓝牙(顶贴有分,大伙来讨论一下)
  详细解决方案

wince蓝牙(顶贴有分,大伙来讨论一下)

热度:132   发布时间:2016-04-28 12:00:09.0
wince蓝牙(顶贴有分,大家来讨论一下)
蓝牙驱动应经做好,系统也加了OBEX组件,相关注册表配置也添加好了。
现在蓝牙扫描设备,收发文件都可以。
但是我们终端现在要过3C认证,所以要对蓝牙模块进行测试。
需要让蓝牙进入test模式。
在蓝牙规范中,对应内容是:


现在问题是,在wince的应用层或者驱动部分,如何才能发送这些指令或者调用相应函数,
让蓝牙模块进入test mode呢?
我对蓝牙不是很熟悉,希望做过蓝牙的朋友们支支招。谢谢。
Your responces are greatly appreciated!
------解决方案--------------------
问代理商呢...直接高效
------解决方案--------------------
没做过windows下的驱动,路过
------解决方案--------------------
问代理商是好方法, 又不是什么有难度问题, 别太浪费时间
------解决方案--------------------
这种事,肯定是掏钱的啦
------解决方案--------------------
你看蓝牙寄存器地址都映射到得位置
------解决方案--------------------
没有做过这个验证,帮顶一下。LZ,看看是不是直接发送那个指令到驱动,然后会进入到那个模式
------解决方案--------------------
路过支持下楼主,虽然一点都不懂,但是感觉很强大的
------解决方案--------------------
关注一下,期待怎么解决的。
------解决方案--------------------
好像wince只支持集中蓝牙模块,本来这个暑假我们要做android的蓝牙驱动的,后来因为android技术原因没做了,哎,有点遗憾,呵呵,感觉也有点难度,
------解决方案--------------------
楼主你能自己写驱动吗?本人求教
------解决方案--------------------
看起来楼主很牛b啊,蓝牙驱动都是自己写的,小弟求教啊
------解决方案--------------------
顶一下,希望更多人来出点子
------解决方案--------------------
虽然不是太懂这方面,但还是为LZ的精神所感动,支持下
------解决方案--------------------
我是鉴玄子
有个其他方法供你参考,不知好不好用,你可以先把蓝牙停掉
HANDLE hDev = CreateFile (L"BTD0:", GENERIC_READ 
------解决方案--------------------
 GENERIC_WRITE,FILE_SHARE_READ 
------解决方案--------------------
 FILE_SHARE_WRITE,NULL, OPEN_EXISTING, 0, NULL);

int iErr = DeviceIoControl (hDev, IOCTL_SERVICE_STOP, NULL, 0, NULL, NULL, NULL, NULL);

这样蓝牙串口会被释放

直接打开这个串口,把你要发的命令自己组个包发过去
------解决方案--------------------
不懂这个,帮你顶吧
楼主加油吧
------解决方案--------------------
哇,关注中
------解决方案--------------------
我也只是做到收发文件而已,至于你说的测试,没做过。

所以只能友情帮顶了。
------解决方案--------------------
友情帮顶一下,呵呵。
------解决方案--------------------
蓝牙的没搞过,友情支持一下吧!
------解决方案--------------------
顶贴有分
------解决方案--------------------
我是编写蓝牙程序的,用的是CSR的芯片。
一般我们进测试模式有两种办法:
一种是使用CSR给的工具,由PC端通过串口或者并口发送命令给芯片。这个工具跑在XP下面,可以在CSR的官网上面下载它的源码。
另外一种是在蓝牙程序里面先写好,有IO口触发,当IO口有变化时进入测试模式。
我觉得你应该跟厂家沟通,看是否能修改芯片里面跑的程序,如果能做成IO口触发的话,对你来说应该是最方便的。

另外还有一种办法就是自己写程序有PC端发送命令了,流程如下:
1.Opening the device
调用系统的CreateFile()函数,得到一个文件的句柄       
handle=CreateFile(device_name,GENERIC_READ
------解决方案--------------------
GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
2.Sending an HCI Command
To send an HCI command to CSR BC USB device,first open the device,then use win32’s function DeviceIoControl().This takes a buffer and the length of data to send to the device.This can will return the actual number of bytes written.
Status=DeviceIoControl(Handle,IOCTL_CSRBC01_SEND_HCI_COMMAND,0,0,Buffer,length,&written,&overlapped)
3.Read HCI Event
To read HCI event,call DeviceIoControl(),This takes a buffer and a length.
Status=DeviceIoControl(Handle,IOCTL_CSRBC01_GET_HCI_EVENT,0,0,Buffer,length,&written,&overlapped)
4.Close the Device
CloseHandle(handle);


------解决方案--------------------
引用:
哇。大神终于现身了。看来44楼的兄弟很有心得啊。
PC端软件设置的方法是不行了,因为我们的蓝牙模块是用在WINCE上。
不过也许可以借鉴一下PC端那个软件的源码。

“另外一种是在蓝牙程序里面先写好,有IO口触发,当IO口有变化时进入测试模式。
我觉得你应该跟厂家沟通,看是否能修改芯片里面跑的程序”
这个不太明白,是说修改什么芯片里面的程序,蓝牙芯片里面的程序吗?


“另外还……

1.那个源码是跑在XP系统下的,不过我认为可以移植到WinCE下。
2.是蓝牙芯片里面的程序,我们做芯片的时候一般会做这个功能,可以方便我们自己做测试。
------解决方案--------------------
已发,请查收。
  相关解决方案