一种Linux系统数据卡设备端口识别的方法及装置制造方法及图纸

技术编号:3980110 阅读:334 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种在Linux系统下的数据卡设备端口识别的方法及装置,包括如下步骤:步骤1,获取USB设备的信息,将所述信息中有关待识别USB设备的设备信息予以记录;步骤2,根据所述待识别USB设备的设备信息,获取所述待识别USB设备中各端口的端口信息;步骤3,根据所述各端口信息,识别所述端口的属性。本发明专利技术通过获取设备信息和端口信息,并根据AT口和Modem口可以收发AT命令的特性以及事先设置的AT口和Modem口的顺序属性来正确识别AT端口和Modem口,从而可以准确判断设备上各个端口的属性问题,解决了Linux系统下无端口描述机制时照样可以进行识别数据卡设备端口。

【技术实现步骤摘要】

本专利技术涉及数据卡设备识别的
,尤其涉及一种Linux系统下数据卡设备 端口识别的实现方法及装置。
技术介绍
要让无线数据卡发挥的性能发挥到最大,需要PC侧数据卡管理软件的配合。Windows系统下的设备端口识别流程大致如此,先要为设备创建设备描述表,该表 必须包括设备PID(ProdUCt ID),及该设备枚举的端口描述信息,这些信息的格式必须符合 Windows系统对接口描述格式的要求。表中这些端口描述信息必须是准确且唯一,可以确保 应用程序根据端口信息描述,快速而精确地判断端口的属性是诊断口、或是modem 口、或是 AT 口等。由于系统的处理方式不同,Linux系统没有类似于Windows系统的端口处理机制, 所以Windows系统下的设备端口识别方式在Linux系统下无法正常使用。所以Linux系统 下的数据卡设备端口识别方法应运而生,即如何让Linux系统下的PC侧软件正确识别数据 卡设备,并能正确区分AT (Attention)命令控制口和Modem数据口。
技术实现思路
本专利技术所要解决的技术问题是提供一种在Linux系统下的数据卡设备端口识别 的方法,以便准确判断设备上各个端口的属性问题。本专利技术采用了如下技术方案一种Linux系统数据卡设备端口识别的方法,包括如下步骤获取USB设备的信息,将所述信息中有关待识别USB设备的设备信息予以记录;根据所述待识别USB设备的设备信息,获取所述待识别USB设备中各端口的端口 fn息;根据所述各端口信息,识别所述端口的属性。进一步地,所述的获取USB设备的信息具体为调用系统中与USB设备有关的库函 数获取USB设备的信息。进一步地,所述的调用系统中与USB设备有关的库函数获取USB设备的信息包括 调用与初始化有关的库函数对所述USB设备进行初始化后,调用与信息获取有关库函数获 取所述USB设备的信息。进一步地,所述的获取所述待识别USB设备中各端口的端口信息之前还包括如 果所述待识别USB设备是虚拟光盘设备,将其切换为普通的USB设备。进一步地,所述的根据所述各端口信息,识别所述端口的属性具体为根据所述 端口信息,在所述各端口中找出两个对AT命令有响应的端口,并根据预先设置的AT 口和 Modem 口的顺序属性,识别所述两个对AT命令有响应的端口的属性。进一步地,所述设备信息包括设备商ID和产品识别码。进一步地,所述端口信息包括端口名称和端口设备文件路径。本专利技术还提供一种Linux系统数据卡设备端口识别装置,包括设备信息获取模 块、端口信息获取模块、端口识别模块;所述设备信息获取模块,用于获取待识别USB设备的设备信息;所述端口信息获取模块,用于根据所述待识别USB设备的设备信息,获取所述待 识别USB设备的所有端口的端口信息;所述端口属性识别模块,用于根据所述端口信息,获取所述所有端口的属性。进一步地,所述设备信息包括设备商ID和产品识别码。进一步地,所述端口信息包括端口名称和端口设备文件路径。本专利技术的有益效果是通过获取设备信息和端口信息,并根据AT 口和Modem 口可 以收发AT命令的特性来正确识别AT端口和Modem 口,从而可以准确判断设备上各个端口 的属性问题,解决了 Linux系统下无端口描述机制时照样可以进行识别数据卡设备端口。附图说明图1是本专利技术方法实施例的流程示意图;图2是图1所示实施例中获取数据卡设备信息的流程示意图;图3是图1所示实施例中获取设备端口信息的流程示意图;图4是图1所示实施例中识别端口属性的流程示意图;图5是本专利技术方法预先设置端口顺序属性实施例的流程示意图;图5A是图5所示实施例的XML格式示意图;图5B是图5所示实施例的端口信息数组示意图。具体实施例方式下面通过具体实施方式结合附图对本专利技术作进一步详细说明。本专利技术实施例提供了一种Linux系统下数据卡设备端口识别的实现方法,如图1 所示,通过执行如下步骤S100至步骤S300,从而实现准确判断设备上各个端口的属性。步骤S100,获取设备信息,即,获取USB设备的信息,并记录待识别USB设备的设备 fn息;步骤S200,根据所述待识别USB设备的设备信息,获取所述待识别USB设备的所有 端口的端口信息;步骤S300,根据所述端口信息,获取所述所有端口的属性,即识别AT端口和Modem端□。对于步骤S100,要获取设备信息,首先要识别设备,获取设备的VID (Vendor ID 设备商ID)和PID(Product ID 产品识别码)。本实施例通过应用程序调用系统中和 USB设备有关的库函数获取D-Bus上的USB设备信息;系统返回的USB设备信息格式 为“VID:PID”,比如系统返回了 3种设备的信息,分别是Device l:lbd2:0001 ;Device 2:lbd2:0002 ;Device 3:19d2:0031。那么 Device 1 的 VID = lbd2,PID = 0001 ;Device 2 的 VID = lbd2, PID = 0002 ;Device3 的 VID = 19d2, PID = 0031。其中 VID = 19d2,是应 用程序需要识别的设备,那么应用程序会将Device3的设备信息VID = 19d2,PID = 00314记录下来,留待下一步处理。上述获取数据卡设备的PID的过程具体包括如下步骤2-1至2-4,如图2所示。步骤2-1,设备端口初始化,获取系统中所有USB设备信息。通过调用函数usb_ init ()、usb_find_busses () > usb_find_devices ()对设备进行初始化,通过函数 usb_get_ busses ()获取D-Bus上的USB设备信息。本实施例中需要获取的USB设备信息很简单,只 需要设备的VID和PID即可,其中,VID可以表示设备厂家,而PID可以表示该厂家的某款 设备。步骤2-2,判断VID是否是指定设备的VID。应用程序通常只识别指定VID值的设 备,当然这个值是可配置的。如果VID是指定设备的VID值,那么转步骤2-3 ;否则转步骤2-4;步骤2-3,没有合适的设备,即需要处理的设备没有被插入,初始化模块继续运行, 直到合适的设备被发现。步骤2-4,记录该USB设备信息,获取数据卡设备的PID。至此,获取设备pid过程结束。在执行步骤S100获取到设备信息后执行步骤S200,通过枚举设备端口以获取该 设备的所有端口。先要判断该设备是否是虚拟光驱设备,如果是则先要弹出光盘,并将虚拟 光驱设备切换成正常的USB端口设备。根据设备的VID,判断找到的USB设备是否是应用程 序要支持的设备,如果是则从系统里获取端口信息,否则不进行任何处理。具体步骤描述如 图3所示,包括步骤3-1至步骤3-7 步骤3-1,获取当前插入设备的pid值,获取方法参考前述步骤s100 ;步骤3-2,根据PID值判断识别到的设备是否是虚拟光盘设备;如果是虚拟光盘 设备,则需要先弹出光盘设备,切换设备为普通USB设备,即转步骤3-3处理,;否则转步骤3-6;步骤3-3,弹出光盘设备,本实施例中使用的命令是“ejectMODEMCONNECTION” ;步骤3-4,本文档来自技高网...

【技术保护点】
一种Linux系统数据卡设备端口识别的方法,其特征在于,包括如下步骤:获取USB设备的信息,将所述信息中有关待识别USB设备的设备信息予以记录;根据所述待识别USB设备的设备信息,获取所述待识别USB设备中各端口的端口信息;根据所述各端口信息,识别所述端口的属性。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈颖
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1