免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11039 | 回复: 4
打印 上一主题 下一主题

继续寻求mac下HID设备的读写方法,请高手帮助,谢谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-11 16:56 |只看该作者 |倒序浏览
       一个类似传感器的设备,用usb线连接到电脑上,在windows下通过查看资源管理器可以看到被识别为人体学输入设备。
在Mac(10.4.9的系统)下通过Xcode自带的USB Prober和IORegistryExplorer都可以看到设备的注册信息,部分注册信息是:
VendorID / ProductID : 0x10C4 / 0x0001
Usage Page : 65280(0xFF00)
Usage : 1(0x1)

比如一个串口设备,首先调用open()函数打开设备文件,然后调用write()函数来发送数据,如发送一个‘r‘,只需要write(fd,"r",1),就可以了,读取数据调用read()函数。

     此设备接入电脑后也需要发送一个指令,一个字节的数据(比如'm'),使其开始工作,然后它会把采集到的数据传回。
     我在苹果官网上下了一个HID Manager Basics的示例代码,改下usage page为62580、usage为1就可以读到这个设备的所有信息,但是无法发送数据和接收数据。请问哪位高手能够告诉我,通过调用哪些函数可以向其发送数据(比如一个字符“m”)和接收数据,不胜感激!



上面是我昨天发的帖子的内容,我测试了,无法用usb的方法读写数据,在打开设备的时候会提示打开设备失败,我在google上搜到这个问题好像是usb设备的唯一性造成的(在接入后就被系统打开,所以用户无法再用系统函数open()。而且这个设备不是标准的设备,我在HID Managr Basics程序下使用IOHIDQueue是创建和打开都成功,但是无法使用(*queue)->addElement(queue,elementCookie,0)是失败,请问非标准的HID设备读写数据可以使用Queue吗?还是使用IOHIDTransaction类?
      急切寻求高手给予帮助,谢谢!!!!

论坛徽章:
0
2 [报告]
发表于 2008-11-11 17:46 |只看该作者
你提供的信息基本上是没用的,系统用哪个驱动程序支持你的设备?这是最重要的,USB Probe和IORegistryExplorer都可以看到的,open,write是在驱动程序中支持后才可以的,http://developer.apple.com/docum ... er_3_section_3.html这篇文档你看过了吗?

论坛徽章:
0
3 [报告]
发表于 2008-11-11 17:54 |只看该作者
顺便说一句,认真看文档,Apple IOKit和别的系统有很大区别,搞清楚数据从你的设备到应用程序通过了系统的哪些层次,如果不能交流,数据卡到哪个层次了?别指望一个API就完成所有的工作,即使能,也要搞清楚原理,因为你是直接和硬件交流的,不然换个芯片,加点自定义的数据你就傻眼了。

论坛徽章:
0
4 [报告]
发表于 2008-11-12 08:41 |只看该作者
首先感谢 sinoman (macocoa)在此过程中提供的帮助!恩,可能一开始我就想系统自带的驱动能够识别这个设备,通过几个api函数应该就可以完成数据的收发了。虽然看了苹果下关于访问usb设备,hid的相关文档,但是有许多没有看懂的地方也没有深究,我再继续研究。谢谢!

论坛徽章:
0
5 [报告]
发表于 2014-08-19 14:34 |只看该作者
请问你研究出来了吗?我最近在做MAC下和HID设备通讯的软件,但是卡在USBInterfaceOpen失败,无法正常打开窗口,你有研究出来了吗?帮我解答下疑问,我的QQ是295183917.多谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP