CN106844120A - 一种绑定多路adb设备和usb端口的方法和装置 - Google Patents

一种绑定多路adb设备和usb端口的方法和装置 Download PDF

Info

Publication number
CN106844120A
CN106844120A CN201710065359.0A CN201710065359A CN106844120A CN 106844120 A CN106844120 A CN 106844120A CN 201710065359 A CN201710065359 A CN 201710065359A CN 106844120 A CN106844120 A CN 106844120A
Authority
CN
China
Prior art keywords
usb port
adb
adb equipment
serial numbers
usb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710065359.0A
Other languages
English (en)
Other versions
CN106844120B (zh
Inventor
黄上勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN X-POWERS TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN X-POWERS TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN X-POWERS TECHNOLOGY Co Ltd filed Critical SHENZHEN X-POWERS TECHNOLOGY Co Ltd
Priority to CN201710065359.0A priority Critical patent/CN106844120B/zh
Publication of CN106844120A publication Critical patent/CN106844120A/zh
Application granted granted Critical
Publication of CN106844120B publication Critical patent/CN106844120B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种绑定多路ADB设备和USB端口的方法和装置,方法包括步骤:建立用于绑定ADB设备序列号与USB端口标识符的数据结构;获取所有USB端口上ADB设备的第一ADB设备序列号集合;监听系统关于USB端口上ADB设备插拔的消息;收到所述消息后再次获取所有USB端口上ADB设备的第二ADB设备序列号集合;比较第一ADB设备序列号集合和第二ADB设备序列号集合,确定插拔的ADB设备的ADB设备序列号,遍历USB端口的端口信息,根据所述ADB设备序列号找到插拔动作对应的USB端口的USB端口逻辑标识符;如果是ADB设备插入USB端口的消息,则将ADB设备序列号和USB端口逻辑标识符写入数据结构,如果是ADB设备拔出USB端口的消息,则将数据结构中相应的ADB设备序列号删除。

Description

一种绑定多路ADB设备和USB端口的方法和装置
技术领域
本发明涉及嵌入式系统技术领域,具体涉及一种在Linux系统中绑定多路ADB设备和USB端口的方法和装置。
背景技术
ADB(Android Debug Bridge,安卓调试桥)是google开发的一套调试安卓设备的方法。当安卓设备以ADB模式连接安卓系统电脑时,安卓系统电脑端会发现一个ADB设备,以ADB序列号作为区分标识符,用ADB工具对ADB设备进行控制。ADB序列号是一个抽象了物理层提供的标识方法,但是很多情况下使用者需要把设备使用的物理USB端口与设备关联起来,特别是同时操作多路设备的场景下尤其重要。现有技术未见对多路ADB设备与物理USB端口进行绑定的技术方案,因此亟待改进。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种绑定多路ADB设备和USB端口的方法和装置,克服现有技术不能对多路ADB设备与物理USB端口进行绑定的缺陷。
本发明为解决上述技术问题所采用的技术方案为:
一种绑定多路ADB设备和USB端口的方法,包括步骤:
A1、建立用于绑定ADB设备序列号与USB端口标识符的数据结构;
A2、获取所有USB端口上ADB设备的第一ADB设备序列号集合;
A3、监听系统关于USB端口上ADB设备插拔的消息;
A4、收到所述消息后再次获取所有USB端口上ADB设备的第二ADB设备序列号集合;
A5、比较第一ADB设备序列号集合和第二ADB设备序列号集合,确定插拔的ADB设备的ADB设备序列号,遍历USB端口的端口信息,根据所述ADB设备序列号找到插拔动作对应的USB端口的USB端口逻辑标识符;
A6、如果是ADB设备插入USB端口的消息,则将所述ADB设备序列号和所述USB端口逻辑标识符写入所述数据结构,如果是ADB设备拔出USB端口的消息,则将所述数据结构中相应的ADB设备序列号删除。
根据本发明的实施例,所述步骤A5还包括步骤:为每一个USB端口分配一个USB端口物理位置标识符,如果是ADB设备插入USB端口的消息,将所述USB端口逻辑标识符对应的USB端口物理位置标识符写入所述数据结构。
根据本发明的实施例,所述数据结构设为队列。
根据本发明的实施例,所述步骤A6还包括步骤:将所述数据结构写入硬盘或者flash存储介质。
根据本发明的实施例,所述消息设为WINDOWS消息。
一种绑定多路ADB设备和USB端口的装置,包括ADB设备指令模块、USB端口遍历模块、USB端口信息提取模块和信息绑定模块,所述USB端口信息提取模块分别与所述ADB设备指令模块、USB端口遍历模块以及所述信息绑定模块相连,所述ADB设备指令模块用于重复获取所有USB端口上ADB设备的ADB设备序列号集合,并对前后相邻的ADB设备序列号集合进行比较,确定插拔的ADB设备的ADB设备序列号,所述USB端口遍历模块用于遍历USB端口的端口信息,所述USB端口信息提取模块用于监听系统关于USB端口上ADB设备插拔的消息,根据插拔动作对应的ADB设备的ADB设备序列号找到相应USB端口的USB端口逻辑标识符,所述信息绑定模块用于在ADB设备插入USB端口时,将所述ADB设备序列号和所述USB端口逻辑标识符写入用于绑定ADB设备序列号与USB端口标识符的数据结构,在ADB设备拔出USB端口时,将所述数据结构中相应的ADB设备序列号删除。
实施本发明的技术方案,具有以下有益效果:本发明技术方案可以快速实现插拔USB端口的ADB设备与USB端口的绑定和拆绑定,进一步可以确定绑定的USB端口的物理位置,这样就为上层程序对USB端口的控制提供了支持,本发明技术方案可以同时对多路ADB设备和USB端口进行绑定,识别多个ADB设备的同时插拔,提高了大批量ADB设备的同时测试的测试效率,实施本发明技术方案不需要对ADB设备信息进行修改,更有利于上层程序的实现。
附图说明
下面通过参考附图并结合实例具体地描述本发明,本发明的优点和实现方式将会更加明显,其中附图所示内容仅用于对本发明的解释说明,而不构成对本发明的任何意义上的限制,在附图中:
图1为本发明安卓系统ADB设备使用的布局示意图;
图2为本发明绑定多路ADB设备和USB端口方法的流程图;
图3为本发明ADB设备和USB端口绑定过程示意图;
图4为本发明绑定多路ADB设备和USB端口的装置示意图。
具体实施方式
如图2所示,本发明绑定多路ADB设备和USB端口的方法,包括步骤:
A1、建立用于绑定ADB设备序列号与USB端口标识符的数据结构;
A2、获取所有USB端口上ADB设备的第一ADB设备序列号集合;
A3、监听系统关于USB端口上ADB设备插拔的消息;
A4、收到消息后再次获取所有USB端口上ADB设备的第二ADB设备序列号集合;
A5、比较第一ADB设备序列号集合和第二ADB设备序列号集合,确定插拔的ADB设备的ADB设备序列号,遍历USB端口的端口信息,根据ADB设备序列号找到插拔动作对应的USB端口的USB端口逻辑标识符;
A6、如果是ADB设备插入USB端口的消息,则将ADB设备序列号和USB端口逻辑标识符写入数据结构,如果是ADB设备拔出USB端口的消息,则将数据结构中相应的ADB设备序列号删除。
根据本发明的实施例,步骤A5还包括步骤:为每一个USB端口分配一个USB端口物理位置标识符,如果是ADB设备插入USB端口的消息,将USB端口逻辑标识符对应的USB端口物理位置标识符写入数据结构。数据结构设为队列。根据本发明的实施例,步骤A6还包括步骤:将数据结构写入硬盘或者flash存储介质。消息设为WINDOWS消息。
如图4所示,本发明绑定多路ADB设备和USB端口的装置,包括ADB设备指令模块、USB端口遍历模块、USB端口信息提取模块和信息绑定模块,所述USB端口信息提取模块分别与所述ADB设备指令模块、USB端口遍历模块以及所述信息绑定模块相连,所述ADB设备指令模块用于重复获取所有USB端口上ADB设备的ADB设备序列号集合,并对前后相邻的ADB设备序列号集合进行比较,确定插拔的ADB设备的ADB设备序列号,所述USB端口遍历模块用于遍历USB端口的端口信息,所述USB端口信息提取模块用于根据插拔动作对应的ADB设备的ADB设备序列号找到相应USB端口的USB端口逻辑标识符,所述信息绑定模块用于将所述ADB设备序列号和所述USB端口逻辑标识符写入用于绑定ADB设备序列号与USB端口标识符的数据结构。
图1中一台上位机控制多个ADB设备,上位机在接收到ADB设备接入消息时,首先要与ADB设备建立起连接,而后上位机对ADB设备进行标准的ADB命令控制,某一路ADB设备完成工作任务时用户根据标识好的USB端口更换ADB设备,开始下一台设备的接入控制。要注意本实施例所述的绑定和连接是有区别的,绑定为ADB设备与上位机USB端口建立关联关系,而连接是指上位机程序与ADB设备进行连接达到通信目的。ADB设备常见为嵌入式系统设备如手机、平板等,而上位机通常为电脑。示意图中绑定与连接分离,上位机可以使用ADB设备序列号对多路进行控制,特别有用的,ADB提供的forward指令可使上位机通过标准的SOCKET接口与ADB设备应用连接,在各种场景下效果颇佳,因此ADB设备的多路绑定实用场景十分广泛。
图2为本发明方法实例的流程图,本实施例提供一种多路ADB设备绑定USB端口的方法,应用于与ADB设备接入的上位机上,包括如下步骤:
Step1:从存储介质上加载关联数据结构(或者实时建立关联数据结构),储介质为可数据持久化的存储设备,如硬盘、flash存储介质,如果已有USB端口被绑定则关联数据结构会包含已绑定信息,如果未有USB端口被绑定则关联数据结构不会包含数据内容。
Step2:使用adb devices获取所有ADB设备序列号集合作为原始记录,该指令列出所有接到上位机USB端口的ADB设备的设备序列号。
Step3:监听ADB设备插拔消息,所述消息反馈外挂设备状态变化。具体实现采用WINDOWS系统消息,该消息在WIN32API中定义为WM_DEVICECHANGE,值为0x219,本方法通过此消息过滤出用户对ADB设备的插拔动作。
Step4:监听到ADB设备消息后获取最新所有ADB设备序列号集合,此集合区别于原始集合,记录的是有设备发生状态变化后的最新记录。
Step5:处理Step3消息获取状态变化类型,此类型信息从WINDOWS消息处理函数中获得,包含“有新设备插入”和“有设备拔出”两种类型。当消息类型为“有设备拔出”时执行Step6,否则跳到Step7。
Step6:对前后的ADB设备序列号集合进行比较,获取被拔出的ADB设备序列号,在关联数据结构中查找包含该ADB设备序列号的关联数据结构单元,向上层报告被拔出的设备信息并跳转Step11。被拔出的设备信息包含该ADB设备序列号的关联数据结构单元的所有信息。
Step7:对前后的ADB设备序列号集合进行比较,获取新插入的ADB设备序列号,遍历USB端口信息找到包含该ADB设备序列号的USB端口的逻辑标识符,此步骤使用WIN32API函数DevcieControl。
Step8:判断该USB端口是否已绑定USB端口物理位置标识符,当关联数据结构显示该USB端口已绑定USB端口物理位置标识符即跳至Step10。
Step9:增加一个新的关联数据结构单元并填充“USB端口逻辑标识符、ADB设备序列号”完成ADB设备到USB端口逻辑位置的绑定,进一步还可以按预配置的规则生成USB端口物理位置标识符并填充到关联数据结构单元完成USB端口逻辑位置到USB端口物理位置的绑定。向上层报告新的USB端口绑定信息然后跳转至Step11。USB端口物理位置是以一定规则或者用户预定义的配置来生成能唯一代表一个USB端口物理位置的字符串如“1号设备,2号设备”等。
Step10:向上层传递有新插进设备的信息,信息包含Step7中获取的ADB设备序列号的关联数据结构单元的所有信息。
Step11:更新关联数据结构并同步至物理存储介质。
Step12:更新ADB设备序列号集合的记录,跳转至Step3继续监听ADB设备插拔消息。
图3中USB端口信息中0x0409字段(不固定)包含了ADB设备序列号信息,按预设规则在关联数据结构中加入关联单元名称“1号设备”。上述信息作为一个关联数据结构单元存储到硬盘持久化,图3中HUB表示上的每个USB端口上的标签(USB端口物理位置标识符)可与关联单元名称一一对应。
如图4所示,本发明绑定多路ADB设备和USB端口的装置包括ADB设备指令模块、USB端口遍历模块、USB端口信息提取模块和信息绑定模块,USB端口信息提取模块分别与ADB设备指令模块、USB端口遍历模块以及信息绑定模块相连,ADB设备指令模块用于重复获取所有USB端口上ADB设备的ADB设备序列号集合,并对前后相邻的ADB设备序列号集合进行比较,确定插拔的ADB设备的ADB设备序列号,USB端口遍历模块用于遍历USB端口的端口信息,USB端口信息提取模块用于监听系统关于USB端口上ADB设备插拔的消息,根据插拔动作对应的ADB设备的ADB设备序列号找到相应USB端口的USB端口逻辑标识符,信息绑定模块用于在ADB设备插入USB端口时,将ADB设备序列号和USB端口逻辑标识符写入用于绑定ADB设备序列号与USB端口标识符的数据结构,在ADB设备拔出USB端口时,将数据结构中相应的ADB设备序列号删除。
本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案实现本发明,以上所述仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效结构变化,均包含于本发明的权利范围之内。

Claims (6)

1.一种绑定多路ADB设备和USB端口的方法,其特征在于,包括步骤:
A1、建立用于绑定ADB设备序列号与USB端口标识符的数据结构;
A2、获取所有USB端口上ADB设备的第一ADB设备序列号集合;
A3、监听系统关于USB端口上ADB设备插拔的消息;
A4、收到所述消息后再次获取所有USB端口上ADB设备的第二ADB设备序列号集合;
A5、比较第一ADB设备序列号集合和第二ADB设备序列号集合,确定插拔的ADB设备的ADB设备序列号,遍历USB端口的端口信息,根据所述ADB设备序列号找到插拔动作对应的USB端口的USB端口逻辑标识符;
A6、如果是ADB设备插入USB端口的消息,则将所述ADB设备序列号和所述USB端口逻辑标识符写入所述数据结构,如果是ADB设备拔出USB端口的消息,则将所述数据结构中相应的ADB设备序列号删除。
2.根据权利要求1所述的绑定多路ADB设备和USB端口的方法,其特征在于,所述步骤A6还包括步骤:为每一个USB端口分配一个USB端口物理位置标识符,如果是ADB设备插入USB端口的消息,将所述USB端口逻辑标识符对应的USB端口物理位置标识符写入所述数据结构。
3.根据权利要求2所述的绑定多路ADB设备和USB端口的方法,其特征在于:所述数据结构设为队列。
4.根据权利要求3所述的绑定多路ADB设备和USB端口的方法,其特征在于,所述步骤A6还包括步骤:将所述数据结构写入硬盘或者flash存储介质。
5.根据权利要求4所述的绑定多路ADB设备和USB端口的方法,其特征在于:所述消息设为WINDOWS消息。
6.一种绑定多路ADB设备和USB端口的装置,其特征在于:包括ADB设备指令模块、USB端口遍历模块、USB端口信息提取模块和信息绑定模块,所述USB端口信息提取模块分别与所述ADB设备指令模块、USB端口遍历模块以及所述信息绑定模块相连,所述ADB设备指令模块用于重复获取所有USB端口上ADB设备的ADB设备序列号集合,并对前后相邻的ADB设备序列号集合进行比较,确定插拔的ADB设备的ADB设备序列号,所述USB端口遍历模块用于遍历USB端口的端口信息,所述USB端口信息提取模块用于监听系统关于USB端口上ADB设备插拔的消息,根据插拔动作对应的ADB设备的ADB设备序列号找到相应USB端口的USB端口逻辑标识符,所述信息绑定模块用于在ADB设备插入USB端口时,将所述ADB设备序列号和所述USB端口逻辑标识符写入用于绑定ADB设备序列号与USB端口标识符的数据结构,在ADB设备拔出USB端口时,将所述数据结构中相应的ADB设备序列号删除。
CN201710065359.0A 2017-02-06 2017-02-06 一种绑定多路adb设备和usb端口的方法和装置 Active CN106844120B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710065359.0A CN106844120B (zh) 2017-02-06 2017-02-06 一种绑定多路adb设备和usb端口的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710065359.0A CN106844120B (zh) 2017-02-06 2017-02-06 一种绑定多路adb设备和usb端口的方法和装置

Publications (2)

Publication Number Publication Date
CN106844120A true CN106844120A (zh) 2017-06-13
CN106844120B CN106844120B (zh) 2020-05-05

Family

ID=59121344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710065359.0A Active CN106844120B (zh) 2017-02-06 2017-02-06 一种绑定多路adb设备和usb端口的方法和装置

Country Status (1)

Country Link
CN (1) CN106844120B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073514A (zh) * 2017-07-18 2018-05-25 北京微应软件科技有限公司 个人电脑同时连接多个手机终端的方法及装置
CN109347816A (zh) * 2018-10-10 2019-02-15 上海易杵行智能科技有限公司 一种用于端口与接入设备的绑定方法及系统
CN110855447A (zh) * 2019-10-23 2020-02-28 郑州众智科技股份有限公司 一种通讯连接方法、通讯方法及发电机组控制器通讯系统
CN112650702A (zh) * 2020-12-22 2021-04-13 北京华大智宝电子系统有限公司 一种多口usb设备的端口绑定方法及系统
CN112699071A (zh) * 2020-12-14 2021-04-23 北京握奇智能科技有限公司 一种基于Linux系统的USB端口绑定结构和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631265B1 (en) * 2000-12-29 2009-12-08 Gateway, Inc. System and method for configuring and loading a user interface
CN103927256A (zh) * 2013-01-16 2014-07-16 珠海市君天电子科技有限公司 一种控制多个安卓装置的方法
CN104268112A (zh) * 2014-09-19 2015-01-07 福州瑞芯微电子有限公司 一种连接adb设备的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631265B1 (en) * 2000-12-29 2009-12-08 Gateway, Inc. System and method for configuring and loading a user interface
CN103927256A (zh) * 2013-01-16 2014-07-16 珠海市君天电子科技有限公司 一种控制多个安卓装置的方法
CN104268112A (zh) * 2014-09-19 2015-01-07 福州瑞芯微电子有限公司 一种连接adb设备的方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073514A (zh) * 2017-07-18 2018-05-25 北京微应软件科技有限公司 个人电脑同时连接多个手机终端的方法及装置
CN108073514B (zh) * 2017-07-18 2023-09-05 北京微应软件科技有限公司 个人电脑同时连接多个手机终端的方法及装置
CN109347816A (zh) * 2018-10-10 2019-02-15 上海易杵行智能科技有限公司 一种用于端口与接入设备的绑定方法及系统
CN109347816B (zh) * 2018-10-10 2022-01-04 上海易杵行智能科技有限公司 一种用于端口与接入设备的绑定方法及系统
CN110855447A (zh) * 2019-10-23 2020-02-28 郑州众智科技股份有限公司 一种通讯连接方法、通讯方法及发电机组控制器通讯系统
CN110855447B (zh) * 2019-10-23 2022-03-25 郑州众智科技股份有限公司 一种通讯连接方法、通讯方法及发电机组控制器通讯系统
CN112699071A (zh) * 2020-12-14 2021-04-23 北京握奇智能科技有限公司 一种基于Linux系统的USB端口绑定结构和方法
CN112650702A (zh) * 2020-12-22 2021-04-13 北京华大智宝电子系统有限公司 一种多口usb设备的端口绑定方法及系统
CN112650702B (zh) * 2020-12-22 2024-05-28 北京华大智宝电子系统有限公司 一种多口usb设备的端口绑定方法及系统

Also Published As

Publication number Publication date
CN106844120B (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
CN106844120A (zh) 一种绑定多路adb设备和usb端口的方法和装置
CN106716375A (zh) 具有每区段校验和的文件系统
CN102469025B (zh) 多存储系统上的多路径交换
CN107783777A (zh) 一种车载一体机的升级方法、设备和系统
CN104407935B (zh) 快照回滚方法和存储设备
US20110252280A1 (en) Intelligent lun generation and management
CN103970578A (zh) 主从mcu升级方法
CN101221485A (zh) 建立冗余磁盘阵列的方法及控制设备
CN103176913B (zh) 硬盘动态映射方法与应用其的服务器
CN105205247B (zh) 一种基于树结构的仿真路网数据管理方法
CN110113393A (zh) 一种消息推送方法、装置、电子设备及介质
CN108600779A (zh) 一种基于视频内容的目标对象操作方法及装置
CN102521332B (zh) 基于强模拟的图模式匹配方法、装置及系统
CN105988943B (zh) 一种驱动无线适配器的方法及装置
CN108228912A (zh) 一种业务数据的处理方法及相关装置
CN105260266B (zh) 一种快照卷写方法及依赖快照系统
CN107395456A (zh) 分布式文件系统流直存测试方法及平台
CN108737487B (zh) 数据同步方法和装置、存储介质及电子装置
CN103164168A (zh) 调整sas扩展器连接磁盘阵列卡的系统及方法
CN107992763A (zh) 一种文件系统的掉电保护方法及装置
CN107220146A (zh) 一种文件扫描恢复方法及装置
KR101593872B1 (ko) 통신 시스템에서 송신기 등화를 구성하기 위한 기술
CN103605479B (zh) 数据文件写入方法及系统、数据文件读取方法及系统
CN105204774B (zh) 一种数据处理方法及电子设备
CN104753659B (zh) 一种多网元数据同步加载的方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant