一种Mac系统中与USB设备通讯的方法及装置制造方法及图纸

技术编号:14537213 阅读:260 留言:0更新日期:2017-02-02 22:58
本发明专利技术公开一种Mac系统中与USB设备通讯的方法及装置,属于通信领域。所述方法包括:应用程序获取已插入USB设备的设备信息,在获取到的设备信息中查找到与目标USB设备匹配的第一设备信息,连接第一设备信息对应的USB设备,如接收到预设错误码,则调用预设函数接口来枚举第一设备信息对应的USB设备,或者切断第一设备信息对应的USB设备与系统之间的连接并重新建立连接;如连接成功,则与第一设备信息对应的USB设备进行数据通讯。本发明专利技术中的技术方案,当系统独享USB设备的通信权限时,能够模拟USB设备的插拔从而使其他应用获得该USB设备的通信权限,减少了用户操作,提升用户体验。

Method and apparatus for communicating with USB device in Mac system

The invention discloses a method and a device for communicating with a USB device in a Mac system, which belongs to the field of communication. The method includes: the application gets inserted into USB equipment in access to information, equipment information to find the first device information matched with the target USB device, connecting device information corresponding to the first USB device, such as receiving the preset error code, call the default function interface to enumerate information corresponding to the first device USB equipment, or the connection between the USB device and cutting system corresponding to the first device information and to establish a connection; if the connection is successful, and the equipment information corresponding to the first USB data communication equipment. The technical scheme of the invention, when the communication authority system exclusive USB equipment, to simulate the USB plug devices so that other applications access permissions on the USB communication equipment, reducing the operation of the user, to enhance the user experience.

【技术实现步骤摘要】

本专利技术涉及通信领域,尤其涉及一种Mac系统中与USB设备通讯的方法及装置
技术介绍
现有技术中,在Mac10.10以上的操作系统中,使用USB设备时,如果安装该USB设备的安装包文件之前插入了该USB设备,则系统会第一时间独享该USB设备的通信权限,因此其他应用在访问该USB设备时,系统会报错;而为了其他应用能够获得该USB设备的通信权限,需要用户重新插拔该USB设备,降低了用户体验。
技术实现思路
为解决现有技术中存在的技术问题,本专利技术提供了一种Mac系统中与USB设备通讯的方法及装置。一方面,本专利技术提供了一种Mac系统中与USB设备通讯的方法,包括:步骤S1:应用程序获取已插入USB设备的设备信息,在获取到的设备信息中查找到与目标USB设备匹配的第一设备信息;步骤S2:所述应用程序连接第一设备信息对应的USB设备,如接收到预设错误码,则执行步骤S3;如连接成功,则与所述第一设备信息对应的USB设备进行数据通讯;步骤S3:所述应用程序调用预设函数接口来枚举所述第一设备信息对应的USB设备,返回步骤S1;或者所述应用程序切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接,返回步骤S1。可选地,所述步骤S1之前,还包括:所述应用程序创建第一设备字典,并将所述目标USB设备的设备信息添加到所述第一设备字典中。可选地,所述步骤S1中,所述在获取到的设备信息中查找到与目标USB设备匹配的第一设备信息,具体为:所述应用程序在所述获取到的设备信息中查找到与所述第一设备字典中的设备信息相同的第一设备信息。可选地,所述步骤S2之前,还包括:步骤A:所述应用程序获取第一设备信息对应的USB设备的设备类型。可选地,所述步骤A之前,还包括:步骤B:所述应用程序获取第一设备信息对应的USB设备的第一设备标识并保存到存储区中;所述步骤A,具体为:所述应用程序根据所述第一设备标识,获取第一设备信息对应的USB设备的设备类型;所述步骤S3中,返回步骤S1之前,还包括:清除所述存储区中与所述第一设备信息对应的USB设备对应的第一设备标识。可选地,所述步骤B中,所述应用程序获取第一设备信息对应的USB设备的第一设备标识,具体为:所述应用程序创建第一插件对象,通过所述第一插件对象获取第一设备信息对应的USB设备的第一设备标识,在获取到所述第一设备标识之后,释放所述第一插件对象。可选地,当所述应用程序获取到第一设备信息对应的USB设备的设备类型为SCSI时,所述预设错误码,具体为:第一独享设备错误码;所述步骤S2,具体为:所述应用程序连接第一设备信息对应的USB设备并打开所述第一设备信息对应的USB设备的通讯接口,如接收到第一独享设备错误码,则执行步骤S3;如打开成功,则与所述第一设备信息对应的USB设备进行数据通讯。可选地,所述步骤S3中,所述应用程序切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接,具体为:所述应用程序执行第一卸载指令来卸载设备类型为SCSI的USB设备的系统驱动,并执行第一加载指令来加载所述设备类型为SCSI的USB设备的系统驱动;或者,所述应用程序执行第二卸载指令来卸载USB设备的系统驱动类,并在监听到有USB设备插入时,自动加载所述USB设备的系统驱动类。可选地,所述步骤S2之前,还包括:步骤C:所述应用程序获取第一设备信息对应的USB设备的第一端口地址并判断所述存储区中是否存在所述第一端口地址,是则在监听到USB设备插入时,返回步骤S1,否则将所述第一端口地址保存到存储区中,执行步骤S2;所述步骤S3中,返回步骤S1之前,还包括:清除所述存储区中与所述第一设备信息对应的USB设备对应的第一端口地址。可选地,所述步骤S2中,所述应用程序连接第一设备信息对应的USB设备,具体包括:步骤b1:所述应用程序创建第二设备字典并添加所述目标USB设备的设备信息到所述第二设备字典中;步骤b2:所述应用程序获取已插入USB设备的设备信息,在获取到的设备信息中查找到与所述第二设备字典中的设备信息相同的第二设备信息;步骤b3:所述应用程序获取第二设备信息对应的USB设备的第二端口地址,并判断所述第二端口地址与所述第一端口地址是否相同,是则连接第一设备信息对应的USB设备,否则在监听到USB设备插入时,返回步骤S1。可选地,所述打开所述第一设备信息对应的USB设备的通讯接口之前,还包括:步骤D:所述应用程序打开所述第一设备信息对应的USB设备并查找到所述第一设备信息对应的USB设备的通讯接口。可选地,所述步骤D,具体为:所述应用程序调用第二函数接口打开所述第一设备信息对应的USB设备并创建第三插件对象,所述第三插件对象根据预设条件查找到所述第一设备信息对应的USB设备的通讯接口。可选地,当所述应用程序获取到第一设备信息对应的USB设备的设备类型为CCID时,所述预设错误码,具体为:第二独享设备错误码;所述步骤S2,具体为:所述应用程序连接第一设备信息对应的USB设备,如接收到第二独享设备错误码,则执行步骤S3;如连接成功,则与所述第一设备信息对应的USB设备进行数据通讯。可选地,所述步骤S2之前,还包括:步骤E:所述应用程序检测PC/SC服务是否打开,是则执行步骤S2,否则打开所述PC/SC服务,执行步骤S2。可选地,所述步骤S3中,所述应用程序切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接,具体为:所述应用程序关闭所述PC/SC服务,并重新打开所述PC/SC服务。可选地,所述步骤S2之前,还包括:步骤F:所述应用程序创建上下文环境,并在所述上下文环境中获取已插入设备类型为CCID的USB设备的设备列表,判断获取到的设备列表中是否含有所述目标USB设备的设备名称,是则将所述目标USB设备的设备名称与所述上下文环境对应保存,否则在监听到有USB设备插入时,返回步骤S1。可选地,所述步骤S2中,所述应用程序连接第一设备信息对应的USB设备,具体为:所述应用程序在所述上下文环境中调用第九函数接口连接保存的设备名称对应的USB设备。另一方面,本专利技术提供了一种Mac系统中与USB设备通讯的装置,包括:第一获取模块、查找模块、连接模块、通讯模块、接收模块和调用模块;或者,第一获取模块、查找模块、连接模块、通讯模块、接收模块和控制模块;所述第一获取模块,用于获取已插入USB设备的设备信息;所述查找模块,用于在所述第一获取模块获取到的设备信息中查找到与目标USB设备匹配的第一设备信息;所述连接模块,用于连接所述查找模块查找到的第一设备信息对应的USB设备;所述通讯模块,用于所述连接模块连接成功时,与所述第一设备信息对应的USB设备进行数据通讯;所述接收模块,用于所述连接模块连接失败时,接收错误码;所述调用模块,用于当所述接收模块接收到预设错误码时,调用预设函数接口来枚举所述第一设备信息对应的USB设备;所述控制模块,用于当所述接收模块接收到预设错误码时,切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接;所述第一获取模块,还用于所述调用模块调用预设函数接口来枚举所述第一设备信息对应的USB设备之后,获取已插入USB设备的设备信息;还用于所述控制模块切断所述第本文档来自技高网...

【技术保护点】
一种Mac系统中与USB设备通讯的方法,其特征在于,包括:步骤S1:应用程序获取已插入USB设备的设备信息,在获取到的设备信息中查找到与目标USB设备匹配的第一设备信息;步骤S2:所述应用程序连接第一设备信息对应的USB设备,如接收到预设错误码,则执行步骤S3;如连接成功,则与所述第一设备信息对应的USB设备进行数据通讯;步骤S3:所述应用程序调用预设函数接口来枚举所述第一设备信息对应的USB设备,返回步骤S1;或者所述应用程序切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接,返回步骤S1。

【技术特征摘要】
1.一种Mac系统中与USB设备通讯的方法,其特征在于,包括:步骤S1:应用程序获取已插入USB设备的设备信息,在获取到的设备信息中查找到与目标USB设备匹配的第一设备信息;步骤S2:所述应用程序连接第一设备信息对应的USB设备,如接收到预设错误码,则执行步骤S3;如连接成功,则与所述第一设备信息对应的USB设备进行数据通讯;步骤S3:所述应用程序调用预设函数接口来枚举所述第一设备信息对应的USB设备,返回步骤S1;或者所述应用程序切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接,返回步骤S1。2.根据权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括:所述应用程序创建第一设备字典,并将所述目标USB设备的设备信息添加到所述第一设备字典中。3.根据权利要求2所述的方法,其特征在于,所述步骤S1中,所述在获取到的设备信息中查找到与目标USB设备匹配的第一设备信息,具体为:所述应用程序在所述获取到的设备信息中查找到与所述第一设备字典中的设备信息相同的第一设备信息。4.根据权利要求1所述的方法,其特征在于,所述步骤S2之前,还包括:步骤A:所述应用程序获取第一设备信息对应的USB设备的设备类型。5.根据权利要求4所述的方法,其特征在于,所述步骤A之前,还包括:步骤B:所述应用程序获取第一设备信息对应的USB设备的第一设备标识并保存到存储区中;所述步骤A,具体为:所述应用程序根据所述第一设备标识,获取第一设备信息对应的USB设备的设备类型;所述步骤S3中,返回步骤S1之前,还包括:清除所述存储区中与所述第一设备信息对应的USB设备对应的第一设备标识。6.根据权利要求5所述的方法,其特征在于,所述步骤B中,所述应用程序获取第一设备信息对应的USB设备的第一设备标识,具体为:所述应用程序创建第一插件对象,通过所述第一插件对象获取第一设备信息对应的USB设备的第一设备标识,在获取到所述第一设备标识之后,释放所述第一插件对象。7.根据权利要求4所述的方法,其特征在于,当所述应用程序获取到第一设备信息对应的USB设备的设备类型为SCSI时,所述预设错误码,具体为:第一独享设备错误码;所述步骤S2,具体为:所述应用程序连接第一设备信息对应的USB设备并打开所述第一设备信息对应的USB设备的通讯接口,如接收到第一独享设备错误码,则执行步骤S3;如打开成功,则与所述第一设备信息对应的USB设备进行数据通讯。8.根据权利要求7所述的方法,其特征在于,所述步骤S3中,所述应用程序切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接,具体为:所述应用程序执行第一卸载指令来卸载设备类型为SCSI的USB设备的系统驱动,并执行第一加载指令来加载所述设备类型为SCSI的USB设备的系统驱动;或者,所述应用程序执行第二卸载指令来卸载USB设备的系统驱动类,并在监听到有USB设备插入时,自动加载所述USB设备的系统驱动类。9.根据权利要求7所述的方法,其特征在于,所述步骤S2之前,还包括:步骤C:所述应用程序获取第一设备信息对应的USB设备的第一端口地址并判断所述存储区中是否存在所述第一端口地址,是则在监听到USB设备插入时,返回步骤S1,否则将所述第一端口地址保存到存储区中,执行步骤S2;所述步骤S3中,返回步骤S1之前,还包括:清除所述存储区中与所述第一设备信息对应的USB设备对应的第一端口地址。10.根据权利要求9所述的方法,其特征在于,所述步骤S2中,所述应用程序连接第一设备信息对应的USB设备,具体包括:步骤b1:所述应用程序创建第二设备字典并添加所述目标USB设备的设备信息到所述第二设备字典中;步骤b2:所述应用程序获取已插入USB设备的设备信息,在获取到的设备信息中查找到与所述第二设备字典中的设备信息相同的第二设备信息;步骤b3:所述应用程序获取第二设备信息对应的USB设备的第二端口地址,并判断所述第二端口地址与所述第一端口地址是否相同,是则连接第一设备信息对应的USB设备,否则在监听到USB设备插入时,返回步骤S1。11.根据权利要求7所述的方法,其特征在于,所述打开所述第一设备信息对应的USB设备的通讯接口之前,还包括:步骤D:所述应用程序打开所述第一设备信息对应的USB设备并查找到所述第一设备信息对应的USB设备的通讯接口。12.根据权利要求11所述的方法,其特征在于,所述步骤D,具体为:所述应用程序调用第二函数接口打开所述第一设备信息对应的USB设备并创建第三插件对象,所述第三插件对象根据预设条件查找到所述第一设备信息对应的USB设备的通讯接口。13.根据权利要求4所述的方法,其特征在于,当所述应用程序获取到第一设备信息对应的USB设备的设备类型为CCID时,所述预设错误码,具体为:第二独享设备错误码;所述步骤S2,具体为:所述应用程序连接第一设备信息对应的USB设备,如接收到第二独享设备错误码,则执行步骤S3;如连接成功,则与所述第一设备信息对应的USB设备进行数据通讯。14.根据权利要求13所述的方法,其特征在于,所述步骤S2之前,还包括:步骤E:所述应用程序检测PC/SC服务是否打开,是则执行步骤S2,否则打开所述PC/SC服务,执行步骤S2。15.根据权利要求14所述的方法,其特征在于,所述步骤S3中,所述应用程序切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接,具体为:所述应用程序关闭所述PC/SC服务,并重新打开所述PC/SC服务。16.根据权利要求14所述的方法,其特征在于,所述步骤S2之前,还包括:步骤F:所述应用程序创建上下文环境,并在所述上下文环境中获取已插入设备类型为CCID的USB设备的设备列表,判断获取到的设备列表中是否含有所述目标USB设备的设备名称,是则将所述目标USB设备的设备名称与所述上下文环境对应保存,否则在监听到有USB设备插入时,返回步骤S1。17.根据权利要求16所述的方法,其特征在于,所述步骤S2中,所述应用程序连接第一设备信息对应的USB设备,具体为:所述应用程序在所述上下文环境中调用第九函数接口连接保存的设备名称对应的USB设备。18.一种Mac系统中与USB设备通讯的装置,其特征在于,包括:第一获取模块、查找模块、连接模块、通讯模块、接收模块和调用模块;或者,第一获取模块、查找模块、连接模块、通讯模块、接收模块和控制模块;所述第一获取模块,用于获取已插入USB设备的设备信息;所述查找模块,用于在所述第一获取模块获取到的设备信息中查找到与目标USB设备匹配的第一设备信息;所述连接模块,用于连接所述查找模块查找到的第一设备信息对应的USB设备;所述通讯模块,用于所述连接模块连接成功时,与所述第一设备信息对应的USB设备进行数据通讯;所述接收模块,用于接收预设错误码;所述调用模块,用于当所述接收模块接收到预设错误码时,调用预设函数接口来枚举所述第一设备信息对应的USB设备;所述控制模块,用于当所述接收模块接收到预设错误码时,切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接;所述第一获取模块,还用于所述调用模块调用预设函数接口来枚举所述第一设备信息对应的USB设备之后,获取已插入USB设备的设备信息;还用于所述控制模块切断所述第一设备信息对应的USB设备与系统之间的连接并重新建立连接之后,获取已插入USB设备的设备信息。19.根据权利要求18所述的装置,其特征在于,还包括:创建模块,用于所述第一获取模块获取已插入USB设备的设备信息之前,创建第一设备字典,并将所述目标USB设备的设备信息添加到所述第一设备字典中。20...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1