CN103365712B - 一种线程可控装置及其工作方法 - Google Patents
一种线程可控装置及其工作方法 Download PDFInfo
- Publication number
- CN103365712B CN103365712B CN201310338544.4A CN201310338544A CN103365712B CN 103365712 B CN103365712 B CN 103365712B CN 201310338544 A CN201310338544 A CN 201310338544A CN 103365712 B CN103365712 B CN 103365712B
- Authority
- CN
- China
- Prior art keywords
- hub
- variable
- current
- port
- thread
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种线程可控装置及其工作方法,属于计算机技术领域。该装置包括初始化模块、选择模块、定位模块、判断模块、更新模块、创建子线程模块和操作模块,其工作方法是根据当前HUB编号选定一个当前HUB;根据当前端口编号选定当前HUB的一个当前端口;对当前HUB的当前端口进行操作,直至当前HUB的所有端口完成操作后选定下一个当前HUB,若是单线程工作方式则直至完成对所有枚举到的HUB的操作,若是多线程工作方式则直至完成对一个线程中的所有HUB的操作。本发明提出的该装置及其工作方法可以同时支持单线程、多线程的分组方式和并行方式,提高了HUB设备的通用性、灵活性,提高了生产效率,且能够准确的进行差错控制。<!--1-->
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种线程可控装置及其工作方法。
背景技术
集线器控制设备(HUB设备)是一种可以将一个USB接口扩展成为多个独立工作的USB接口的装置。
现有技术中,HUB设备作为一种数据传输通道,被广泛应用于实现多个USB设备与上位机进行交互,但是,这种数据交互过程多是HUB设备在单线程工作方式下进行的,即上位机只能同时与HUB设备上多个USB设备的其中之一进行通信,这样,在某些特定场合的应用将影响生产效率,如工装中上位机通过HUB设备对USB产品的批量烧写。
发明内容
为解决现有技术中存在的问题,本发明提出了一种线程可控装置及其工作方法。
本发明采取的技术方案是:一种线程可控装置,包括:
初始化模块:用于初始化当前HUB编号和当前端口编号;
选择模块:用于选择工作线程;
定位模块:用于根据当前HUB编号选定一个当前HUB,根据当前端口编号选定当前HUB的一个当前端口;
判断模块:用于判断是否对当前HUB的所有端口完成操作,用于判断是否对枚举到的所有HUB完成操作;
更新模块:用于当判断模块判断是否对当前HUB的所有端口完成操作的判断结果为否时更新当前端口编号,当判断模块判断是否对枚举到的所有HUB完成操作的判断结果为是时更新当前HUB编号;
创建子线程模块:用于根据枚举到的HUB个数创建子线程;
操作模块:用于枚举HUB并记录枚举到的HUB个数,用于对当前HUB的当前端口进行操作。
当所述选择模块选择的工作线程为单线程时,所述装置还包括计算模块;所述初始化模块还用于初始化第一变量和第二变量;所述计算模块,用于将第一变量与枚举到的HUB个数做取模运算;所述根据当前HUB编号选定一个当前HUB具体为根据所述取模运算结果确定当前HUB,所述根据当前端口编号选定当前HUB的一个当前端口具体为根据第二变量的取值选定当前HUB的一个当前端口;所述判断模块还用于判断第二变量是否等于预设值;所述更新模块,还用于当所述判断模块判断第二变量是否等于预设值的判断结果为是时更新第一变量,当判断结果为否时更新第二变量。
所述初始化第一变量具体为将第一变量的初值设为第一数值,所述初始化第二变量具体为将第二变量的初值设为第二数值。
当所述选择模块选择的工作线程为多线程时,所述装置还包括计算模块;所述初始化模块还用于初始化第一变量;所述创建子线程模块还用于为创建的所有子线程编号;计算模块:用于根据第一预设公式对子线程编号计算得到第一初值,并将第一初值赋值给第一变量;用于对第一变量和HUB的端口数作整除运算,用于根据第二预设公式对第一变量计算得到第二初值,对第二初值和HUB的端口数做取模计算;所述根据当前HUB编号选定一个当前HUB具体为根据所述整除运算结果确定当前HUB,所述根据当前端口编号选定当前HUB的一个当前端口具体为所述取模计算结果确定当前端口;用于根据第三预设公式对第一变量计算得到取模运算结果;所述判断模块还用于判断计算模块根据第三预设公式对第一变量计算得到取模运算结果是否等于0;所述更新模块还用于,在根据第三预设公式对第一变量计算得到取模运算结果之前更新所述第一变量,或者在判断模块判断所述取模运算结果是否等于0的判断结果为否时更新所述第一变量。
所述预设值等于第二变量的最大取值或最小取值。
所述初始化第一变量具体为将第一变量的初值设为第一数值。
所述第一预设公式为:第一初值=子线程编号*子线程中HUB个数*HUB的端口数;所述第二预设公式为:第二初值=第一变量%HUB的端口数,所述第三预设公式为:取模运算结果=第一变量%(子线程中HUB个数*HUB的端口数),所述子线程中HUB个数等于所述枚举到的HUB个数对创建的子线程的个数的整除运算结果,其中“%”表示取模运算,“*”表示乘法运算。
所述操作模块包括:
收发单元:用于向当前HUB发送具体操作指令并接收当前HUB的返回数据;
判断单元:用于判断收发单元接收到的返回数据是否正确;
显示单元:用于当判断单元判断所述返回数据为错误时,提示出错;
获取单元:用于从返回数据中获取关键信息。
一种线程可控装置的工作方法,包括:所述装置与HUB设备连接,枚举HUB,记录枚举到的HUB个数,选择工作线程,当选择的工作线程是单线程时,直接执行步骤1至步骤6;当选择的工作线程是多线程时,先根据枚举到的HUB个数创建子线程,然后对创建的所有子线程同时开始执行步骤1至步骤6:
步骤1:初始化当前HUB编号和当前端口编号;
步骤2:根据当前HUB编号选定一个当前HUB;
步骤3:根据当前端口编号选定当前HUB的一个当前端口;
步骤4:对当前HUB的当前端口进行操作;
步骤5:判断是否对当前HUB的所有端口完成操作,是则执行步骤6,否则更新当前端口编号返回执行步骤3;
步骤6:判断是否对枚举到的所有HUB完成操作,是则返回执行步骤1,否则更新当前HUB编号返回执行步骤2。
当选择的工作线程是单线程时,所述方法还包括定义第一变量和第二变量,所述当前HUB编号根据第一变量和枚举到的HUB个数的计算结果得到,所述当前端口编号根据第二变量计算得到,所述步骤1至所述步骤6具体为:
步骤A1:初始化第一变量;
步骤A2:根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB;
步骤A3:初始化第二变量;
步骤A4:根据第二变量的取值选定当前HUB的一个当前端口;
步骤A5:对当前HUB的当前端口进行操作,操作完成后执行下一步;
步骤A6:判断第二变量是否等于预设值,是则执行步骤A7,否则更新第二变量返回执行步骤A4;
步骤A7:更新第一变量,返回执行步骤A2。
当选择的工作线程是单线程时,所述方法还包括定义第一变量和第二变量,所述当前HUB编号根据第一变量和枚举到的HUB个数的计算结果得到,所述当前端口编号根据第二变量计算得到,所述步骤1至所述步骤6具体为:
步骤A1:初始化第一变量;
步骤A2:根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB;
步骤A3:初始化第二变量;
步骤A4:判断第二变量是否等于预设值,是则执行步骤A7,否则执行步骤A5;
步骤A5:根据第二变量的取值选定当前HUB的一个当前端口;
步骤A6:对当前HUB的当前端口进行操作,操作完成后更新第二变量返回步骤A5;
步骤A7:更新第一变量,返回执行步骤A2。
所述初始化第一变量具体为将第一变量的初值设为第一数值,所述初始化第二变量具体为将第二变量的初值设为第二数值。
步骤A2所述根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB具体为:将第一变量与枚举到的HUB个数做取模运算,根据取模运算结果确定当前HUB。
步骤A6所述预设值等于第二变量的最大取值或最小取值。
步骤A6所述更新第二变量具体为将第二变量自加1或将第二变量自减1,步骤A7所述更新第一变量具体为将第一变量自加1或将第一变量自减1。
当选择的工作线程是多线程时,所述方法还包括为创建的所有子线程编号,定义第一变量,所述当前HUB编号和所述当前端口编号根据第一变量和HUB的端口数的计算结果得到,所述步骤1至所述步骤6具体为:
步骤B1:初始化第一变量;
步骤B2:根据第一预设公式对子线程编号计算得到第一初值,并将第一初值赋值给第一变量;
步骤B3:根据第一变量和HUB的端口数的计算结果选定一个当前HUB;
步骤B4:根据第二预设公式对第一变量计算得到第二初值,根据第二初值和HUB的端口数的计算结果选定当前HUB的一个当前端口;
步骤B5:对当前HUB的当前端口进行操作;
步骤B6:更新第一变量;
步骤B7:根据第三预设公式对第一变量计算得到取模运算结果,判断所述取模运算结果是否等于0,是则返回执行步骤B2,否则返回执行步骤B3。
所述步骤B6和步骤B7能具体为:根据第三预设公式对第一变量计算得到取模运算结果,判断取模运算结果是否等于0,当取模运算结果等于0且第一变量等于第一初值或者取模运算结果不等于0时更新第一变量返回执行步骤B2,当取模运算结果等于0且第一变量不等于第一初值时返回执行步骤B3。
当选择的工作线程是多线程时,所述方法还包括为创建的所有子线程编号,定义第一变量,所述当前HUB编号和所述当前端口编号根据第一变量和HUB的端口数的计算结果得到,所述步骤1至所述步骤6具体为:
步骤B1:初始化第一变量;
步骤B2:根据第一预设公式对子线程编号计算得到第一初值,并将第一初值赋值给第一变量;
步骤B3:根据第三预设公式对第一变量计算得到取模运算结果,判断所述取模运算结果是否等于0,当取模运算结果等于0且第一变量等于第一初值或者取模运算结果不等于0时执行步骤B4,当取模运算结果等于0且第一变量不等于第一初值时返回执行步骤B2;
步骤B4:根据第一变量和HUB的端口数的计算结果选定一个当前HUB;
步骤B5:根据第二预设公式对第一变量计算得到第二初值,根据第二初值和HUB的端口数的计算结果选定当前HUB的一个当前端口;
步骤B6:对当前HUB的当前端口进行操作;
步骤B7:更新第一变量,返回步骤B3。
所述第一预设公式为:第一初值=子线程编号*子线程中HUB个数*HUB的端口数;所述第二预设公式为:第二初值=第一变量%HUB的端口数,所述第三预设公式为:取模运算结果=第一变量%(子线程中HUB个数*HUB的端口数),所述子线程中HUB个数等于所述枚举到的HUB个数对创建的子线程的个数的整除运算结果,其中“%”表示取模运算,“*”表示乘法运算。
步骤B3所述根据第一变量和HUB的端口数的计算结果选定一个当前HUB具体为:根据第一变量对HUB的端口数的整除运算结果确定当前HUB,步骤B4所述根据第二初值和HUB的端口数的计算结果选定当前HUB的一个当前端口具体为:根据第二初值与HUB的端口数的取模计算结果确定当前端口。
步骤B5所述更新第一变量具体为将第一变量自加1或将第一变量自减1。
所述初始化第一变量具体为将第一变量的初值设为第一数值。
所述根据枚举到的HUB个数创建子线程满足:所述枚举到的HUB个数是创建的所述子线程的个数的倍数。
步骤4所述操作包括:获取HUB状态操作、上下电操作、获取端口电流操作、设置端口电流上限操作和烧写操作。
本发明的有益效果是:通过本发明提供的方案,可以实现根据特定场合和特定需求,控制HUB设备选择单线程工作方式或选择多线程工作方式,如在对产品进行批量烧写时可以通过选择多线程工作方式提高生产效率,采用本发明提高了HUB设备的通用性、灵活性;并且在单线程和多线程工作方式下本发明的方案都可以精确定位到HUB设备上的某一端口的USB设备的操作状态,本发明不仅提高了生产效率,而且能够准确的进行差错控制。
附图说明
图1是本发明实施例1提供的一种线程可控装置的结构图;
图2是本发明实施例2提供的一种线程可控装置的工作方法流程图;
图3是图2中步骤S3-步骤S9的具体实现方法流程图;
图4是图2中步骤S10-步骤S17的具体实现方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案作进一步解释。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。在以下实施例中出现的公式中,其中“%”表示取模运算,“/”表示整除运算,“*”表示乘法运算,例如:a%b表示a与b做取模运算,模数为b,a/b表示a除以b并取整。
实施例1
本发明实施例1提供了一种线程可控装置,以上位机为载体,能够控制与上位机连接的HUB设备在单线程和多线程方式下工作,提高了HUB设备的通用性、灵活性,并且可以精确定位到HUB设备上的某一端口的USB设备的操作状态。如图1所示,该装置包括:
初始化模块1:用于初始化当前HUB编号和当前端口编号;
选择模块2:用于选择工作线程;
定位模块3:用于根据当前HUB编号选定一个当前HUB,根据当前端口编号选定当前HUB的一个当前端口;
判断模块4:用于判断是否对当前HUB的所有端口完成操作,用于判断是否对枚举到的所有HUB完成操作;
更新模块5:用于当判断模块4判断是否对当前HUB的所有端口完成操作的判断结果为否时更新当前端口编号,当判断模块4判断是否对枚举到的所有HUB完成操作的判断结果为是时更新当前HUB编号;
创建子线程模块6:用于根据枚举到的HUB个数创建子线程;
操作模块7:用于枚举HUB并记录枚举到的HUB个数,用于对当前HUB的当前端口进行操作。
当所述选择模块2选择的工作线程为单线程时,所述装置还包括计算模块;
所述初始化模块1还用于初始化第一变量和第二变量;
所述计算模块,用于将第一变量与枚举到的HUB个数做取模运算;所述根据当前HUB编号选定一个当前HUB具体为根据所述取模运算结果确定当前HUB,所述根据当前端口编号选定当前HUB的一个当前端口具体为根据第二变量的取值选定当前HUB的一个当前端口;
所述判断模块4还用于判断第二变量是否等于预设值;所述预设值等于第二变量的最大取值或最小取值。
所述更新模块5,还用于当所述判断模块4判断第二变量是否等于预设值的判断结果为是时更新第一变量,当判断结果为否时更新第二变量。
当所述选择模块2选择的工作线程为多线程时,所述装置还包括计算模块;
所述初始化模块1还用于初始化第一变量;
所述创建子线程模块6还用于为创建的所有子线程编号;
计算模块:用于根据第一预设公式对子线程编号计算得到第一初值,并将第一初值赋值给第一变量;用于对第一变量和HUB的端口数作整除运算,用于根据第二预设公式对第一变量计算得到第二初值,对第二初值和HUB的端口数作取模计算;所述根据当前HUB编号选定一个当前HUB具体为根据所述整除运算结果确定当前HUB,所述根据当前端口编号选定当前HUB的一个当前端口具体为根据所述取模计算结果确定当前端口;用于根据第三预设公式对第一变量计算得到取模运算结果;
所述第一预设公式为:第一初值=子线程编号*子线程中HUB个数*HUB的端口数;所述第二预设公式为:第二初值=第一变量%HUB的端口数,所述第三预设公式为:取模运算结果=第一变量%(子线程中HUB个数*HUB的端口数),所述子线程中HUB个数等于所述枚举到的HUB个数对创建的子线程的个数的整除运算结果。
所述判断模块4还用于判断计算模块根据第三预设公式对第一变量计算得到取模运算结果是否等于0;
所述更新模块5还用于,在根据第三预设公式对第一变量计算得到取模运算结果之前更新所述第一变量,或者在判断模块判断所述取模运算结果是否等于0的判断结果为否时更新所述第一变量。
进一步的,所述操作模块7包括:
收发单元:用于向当前HUB发送具体操作指令并接收当前HUB的返回数据;
本实施例中具体的,所述具体操作指令包括获取HUB状态指令、端口上电指令、端口下电指令、获取端口电流指令、设置端口电流上限指令和烧写指令。
判断单元:用于判断收发单元接收到的返回数据是否正确;
具体的,当发送的是获取HUB状态指令时,接收到的是第一返回数据,所述第一返回数据由状态码和HUB状态信息组成,其中HUB状态信息包括:电流值、端口状态、电流上限、端口电压、HUBID、端口ID号等,共68个字节;其中HUBID的长度占2个字节。判断第一返回数据是否正确具体为判断第一返回数据中的状态码是否为9000,是则正确,否则报错。
当发送的是端口下电指令时,接收到的是第二返回数据;所述第二返回数据由状态码组成,所述判断第二返回数据是否正确具体为判断第二返回数据中的状态码是否为9000,是则正确,否则报错。
当发送的是端口上电指令时,接收到的是第三返回数据;所述第三返回数据由状态码组成,所述判断第三返回数据是否正确具体为第三返回数据中的状态码是否为9000,是则正确,否则报错,显示单元屏幕显示出错的当前HUBID和当前端口号;
当发送的是设置电流上限指令时,接收到的是第四返回数据;所述第四返回数据由状态码组成,所述判断第四返回数据是否正确具体为判断第四返回数据中的状态码是否为9000,是则正确,否则报错,显示单元屏幕显示出错的当前HUBID和当前端口号;。
当发送的是获取当前端口电流指令时,接收到的是第五返回数据;所述第五返回数据由状态码和当前端口电流值组成。所述判断第五返回数据是否正确,具体为判断第五返回数据中的状态码是否为9000,是则正确,否则报错,显示单元屏幕显示出错的当前HUBID和当前端口号;
当发送的是烧写指令时,接收到的是第六返回数据;所述第六返回数据由状态码组成,所述判断第六返回数据是否正确具体为判断第六返回数据中的状态码是否为9000,是则正确,否则报错,显示单元屏幕显示出错的当前HUBID和当前端口号;
显示单元:用于当判断单元判断所述返回数据为错误时,提示出错;
获取单元:用于从返回数据中获取关键信息;
具体的,从第一返回数据中获取HUB状态信息,从第五返回数据中获取当前端口电流值。
本事实例中所述更新第二变量具体为将第二变量自加1或将第二变量自减1,所述更新第一变量具体为将第一变量自加1或将第一变量自减1。
实施例2
在实施例1的基础上,本发明实施例2提供了一种线程可控装置的工作方法,该方法包括:
装置与HUB设备连接,枚举HUB,记录枚举到的HUB个数,选择工作线程,当选择的工作线程是单线程时,直接执行步骤1至步骤6;当选择的工作线程是多线程时,先根据枚举到的HUB个数创建子线程,然后对创建的所有子线程同时开始执行步骤1至步骤6:
步骤1:初始化当前HUB编号和当前端口编号;
步骤2:根据当前HUB编号选定一个当前HUB;
步骤3:根据当前端口编号选定当前HUB的一个当前端口;
步骤4:对当前HUB的当前端口进行操作;
步骤5:判断是否对当前HUB的所有端口完成操作,是则执行步骤6,否则更新当前端口编号返回执行步骤3;
步骤6:判断是否对枚举到的所有HUB完成操作,是则返回执行步骤1,否则更新当前HUB编号返回执行步骤2。
或者还可以是,将单线程作为多线程的一个特例,当选择的工作线程是单线程或多线程时,均在执行步骤1之前包括根据枚举到的HUB个数创建子线程,对创建的所有子线程同时开始执行所述步骤1至所述步骤6,只不过单线程是根据枚举到HUB个数创建1个子线程,并对这一个子线程执行步骤1至步骤6。
本实施例中装置可以根据预先设定选择单线程或多线程的工作方式,而且当选择多线程创建子线程时,可以灵活的使用分组方式或并行方式,其中并行方式可以最大化的提高生产效率。本发明提出的该装置及其工作方法可以同时支持单线程、多线程的分组方式和并行方式。如图2所示,一种线程可控装置的工作方法,包括:
步骤S1:装置与HUB设备连接,枚举HUB,记录枚举到的HUB个数;
具体地,装置与HUB设备通过USB接口连接。
如果以HUB设备包含有4个子HUB为例,则枚举HUB具体的可以枚举到HUB设备上的4个子HUB,记录枚举到的HUB个数为4。
步骤S2:装置选择工作线程,判断所选择的工作线程,若是单线程则执行步骤S3-步骤S9,若是多线程则执行步骤S10-步骤S17;
具体地,可以预先设定对HUB设备的子HUB上连接的USB设备(例如加密锁)的具体操作采用单线程或多线程,装置根据预先设定选择工作线程。例如:在工装阶段利用该装置对加密锁进行初始化操作时选择单线程;利用该装置对加密锁进行烧写时选择多线程。需说明的是,步骤S2后的其他步骤的操作主体均为所述装置。
本步骤也可以是:装置选择工作线程然后执行步骤S10-步骤S17,即将单线程作为多线程的一个特例进行处理。
步骤S3:初始化第一变量;
本实施例中优选的,初始化第一变量是将第一变量的初值设为0。
步骤S4:根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB;
本步骤具体为:将第一变量与枚举到的HUB个数做取模运算,根据运算结果确定要操作的当前HUB。
步骤S5:初始化第二变量;
本实施例中优选的,初始化第二变量是将第二变量的初值设为0。
步骤S6:根据第二变量的取值选定当前HUB的一个当前端口;
例如,第一变量和第二变量的取值均等于0时,定位到的是第0个HUB的第0个端口。
需说明的是,在步骤S3和步骤S5的初始化中,将第一变量和第二变量初始化为0,是为了后续的计算方便,而不是限制于本流程的开始位置只能从第0个HUB的第0个端口开始操作;也可以将第一变量和第二变量的初值设为其他数值,例如,第一变量的初值设为0,第二变量的初值设为4,第一变量的初值为3,第二变量的初值为0,等等,实际应用中以计算方便为优选方式。
本实施例中后续的举例说明以及用到的计算公式均以初始化第一变量和第二变量为0介绍。
步骤S7:对当前HUB的当前端口进行操作;操作完成后执行下一步;
步骤S8:判断第二变量是否等于预设值,是则执行步骤S9,否则更新第二变量返回执行步骤S6;
本步骤具体为,判断第二变量的取值是否达到当前HUB的当前端口的最大取值即第二变量的最大取值,是则执行步骤S9,否则更新第二变量返回执行步骤S6。
本实施例中以每个子HUB具有5个端口为例,则HUB的端口数等于5,第二变量的初值为0则优选的所述预设值的取值为4,所述更新第二变量具体为将第二变量自加1。
步骤S9:更新第一变量,返回执行步骤S4;
本实施例具体的,所述更新第一变量具体为:将第一变量自加1。
进一步的,上述步骤S3-步骤S9还可以替换为以下步骤:
步骤S3’:初始化第一变量;
步骤S4’:根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB;
步骤S5’:初始化第二变量;
步骤S6’:判断第二变量是否等于预设值,是则执行步骤S9’,否则执行步骤S7’;
步骤S7’:根据第二变量的取值选定当前HUB的一个当前端口;
步骤S8’:对当前HUB的当前端口进行操作,操作完成后更新第二变量返回步骤S6’;
步骤S9’:更新第一变量,返回执行步骤S4’。
步骤S10:根据枚举到的HUB个数创建子线程,并给创建的所有子线程编号,执行所有子线程;
所述根据枚举到的HUB个数创建子线程需满足的条件是:所述枚举到的HUB个数是创建的所述子线程的个数的倍数。
本实施例具体的,枚举到的HUB个数为4,根据枚举到的HUB个数可以创建2个子线程或4个子线程,若创建2个子线程则2个子线程分别编号为0、1,若创建4个子线程则4个子线程分别编号为0、1、2、3。
步骤S11:初始化第一变量;
本实施例中优选的,初始化第一变量是将第一变量的初值设为0。
步骤S12:根据当前子线程编号计算得到第一初值,并将第一初值赋值给第一变量;
具体的,根据第一预设公式:第一初值=当前子线程编号*子线程中HUB个数*HUB的端口数,计算得到第一初值并将其赋值给第一变量。
步骤S13:根据第一变量和HUB的端口数的计算结果选定一个当前HUB;
具体的,根据第一变量对HUB的端口数的整除运算结果确定当前HUB。
步骤S14:根据第一变量计算得到第二初值,根据第二初值和HUB的端口数的计算结果选定当前HUB的一个当前端口;
具体的,根据第二预设公式:第二初值=第一变量%HUB的端口数,计算得到第二初值,根据第二初值与HUB的端口数的取模计算结果确定当前端口。其中“%”表示第一变量与HUB的端口数的取模运算,已知的HUB的端口数等于5,即第二初值等于第一变量与5做取模运算的结果。
步骤S15:对当前HUB的当前端口进行操作;
步骤S16:更新第一变量;
本实施例具体的,所述更新第一变量具体为将第一变量自加1。
进一步的,所述更新第一变量还可以是将第一变量自减1。
步骤S17:对第一变量做取模运算,判断取模运算结果是否等于0,是则返回执行步骤S12,否则返回执行步骤S13。
具体的,根据第三预设公式:取模运算结果=第一变量%(子线程中HUB个数*HUB的端口数),计算得到取模运算结果。例如:HUB的端口数为5,若创建了2个子线程,则子线程中HUB个数为2,取模运算结果=第一变量%10,若创建了4个子线程,则子线程中HUB个数为1,取模运算结果等于第一变量的取值。
或者是,步骤S16和步骤S17的顺序调换,且调换后步骤S16和步骤S17具体为:对第一变量做取模运算,判断取模运算结果是否等于0,当取模运算结果等于0且第一变量等于第一初值或者取模运算结果不等于0时更新第一变量返回执行步骤S13,当取模运算结果等于0且第一变量不等于第一初值时返回执行步骤S12;
或者是,上述步骤S11-步骤S17还可以替换为以下步骤:
步骤S11’:初始化第一变量;
步骤S12’:根据第一预设公式对子线程编号计算得到第一初值,并将第一初值赋值给第一变量;
步骤S13’:根据第三预设公式对第一变量计算得到取模运算结果,判断所述取模运算结果是否等于0,当取模运算结果等于0且第一变量等于第一初值或者取模运算结果不等于0时执行步骤S14’,当取模运算结果等于0且第一变量不等于第一初值时返回执行步骤S12’;
步骤S14’:根据第一变量和HUB的端口数的计算结果选定一个当前HUB;
步骤S15’:根据第二预设公式对第一变量计算得到第二初值,根据第二初值和HUB的端口数的计算结果选定当前HUB的一个当前端口;
步骤S16’:对当前HUB的当前端口进行操作;
步骤S17’:更新第一变量,返回步骤S13’。
以下以对当前HUB的当前端口进行的具体操作包括获取HUB状态操作、上下电操作、获取端口电流操作、设置端口电流上限操作和烧写操作为例进行介绍,具体的装置通过向HUB设备发送具体操作指令来实现所述具体操作,上述步骤S3-步骤S9可细化为如图3所示流程,具体如下:
步骤101:初始化第一变量;
本实施例中,初始化第一变量具体为将第一变量初值设为0。
步骤102:将枚举到的HUB个数作为模数与第一变量做取模计算,并用计算结果更新第一变量;
具体的,本实施例中枚举到的HUB个数为4,根据公式:第一变量=第一变量%4,更新第一变量。
步骤103:根据第一变量确定当前HUB;
步骤104:向当前HUB发送获取HUB状态指令,等待接收当前HUB的第一返回数据;
步骤105:接收第一返回数据并判断第一返回数据是否正确,是则执行步骤106,否则报错;
具体地,所述第一返回数据由状态码和HUB状态信息组成,其中HUB状态信息包括:电流值、端口状态、电流上限、端口电压、HUBID、端口ID号等,共68个字节;其中HUBID的长度占2个字节。
所述判断第一返回数据是否正确具体为判断第一返回数据中的状态码是否为9000,是则正确,否则报错。
步骤106:根据第一返回数据获取当前HUBID;
步骤107:向当前HUB发送端口下电指令,等待接收当前HUB的第二返回数据;
步骤108:接收第二返回数据并判断第二返回数据是否正确,是则执行步骤109,否则报错;
具体地,所述第二返回数据由状态码组成,所述判断第二返回数据是否正确具体为判断第二返回数据中的状态码是否为9000,是则正确,否则报错。
步骤109:初始化第二变量;
本实施例中,初始化第二变量具体为将第二变量初值设为0。
步骤110:根据第二变量确定当前端口,向当前HUB发送端口上电指令,等待接收第三返回数据;
步骤111:接收第三返回数据并判断第三返回数据是否正确,是则执行步骤112,否则报错,屏幕显示出错的当前HUBID和当前端口号;
本实施例中通过屏幕显示出错的当前HUBID和当前端口号,可以起到差错控制的作用,例如,在批量生成中,通过在上位机的屏幕上显示出错的当前HUBID和当前端口号,准确提示操作人员进行更换或其他处理,有效避免不合格产品的漏检。
具体地,所述第三返回数据由状态码组成,所述判断第三返回数据是否正确具体为判断第三返回数据中的状态码是否为9000,是则正确,否则报错。
步骤112:向当前HUB发送设置电流上限指令,等待接收第四返回数据;
步骤113:接收第四返回数据并判断第四返回数据是否正确,是则执行步骤114,否则报错,屏幕显示出错的当前HUBID和当前端口号;
具体地,所述第四返回数据由状态码组成,所述判断第四返回数据是否正确具体为判断第四返回数据中的状态码是否为9000,是则正确,否则报错。
步骤114:向当前HUB发送获取当前端口电流指令,等待接收当前HUB的第五返回数据;
步骤115:根据第五返回数据获取当前端口电流值;
具体地,所述第五返回数据由状态码和当前端口电流值组成。
本步骤还可以包括:判断第五返回数据是否正确,具体为判断第五返回数据中的状态码是否为9000,是则正确,否则报错。
步骤116:判断当前端口电流值是否大于预设上限电流值,是则执行步骤117,否则报错,屏幕显示出错的当前HUBID和当前端口号;
本实施例中优选的,预设上限电流值为50毫安。
步骤117:向当前HUB发送烧写指令,等待接收当前HUB的第六返回数据;
步骤118:接收第六返回数据并判断第六返回数据是否正确,是则执行步骤119,否则报错,屏幕显示出错的当前HUBID和当前端口号;
具体地,所述第六返回数据由状态码组成,所述判断第六返回数据是否正确具体为判断第六返回数据中的状态码是否为9000,是则正确,否则报错。
步骤119:判断第二变量是否等于预设值,是则执行步骤120,否则执行步骤123;
具体的,所述预设值取为4。
步骤120:第一变量自加1,返回执行步骤102;
步骤121:第二变量自加1,返回执行步骤110。
以下以对当前HUB的当前端口进行的具体操作包括获取HUB状态操作、上下电操作、获取端口电流操作、设置端口电流上限操作和烧写操作为例进行介绍,具体的装置通过向HUB设备发送具体操作指令来实现所述具体操作,上述步骤S10-步骤S17可细化为如图4所示流程,具体如下:
步骤201:根据枚举到的HUB个数创建子线程,定义第三变量表示子线程编号,初始化第一变量、第二变量,执行所有子线程;
本实施例具体的,枚举到的HUB个数为4,根据枚举到的HUB个数可以创建2个子线程或4个子线程,若创建2个子线程则2个子线程顺序编号为0、1,若创建4个子线程则4个子线程顺序编号为0、1、2、3,定义第三变量表示子线程编号。初始化第一变量、第二变量具体为将第一变量和第二变量的初值设为0。
在实际应用中,优选的,当枚举到的HUB个数为N,则创建N个子线程,每个子线程有一个HUB,同时执行所有子线程则可以控制所有的HUB上连接的USB设备并行同时工作,这样可以达到生产效率最大化的效果,在USB设备产品的批量生产中可以广泛应用。
步骤202:计算第三变量乘以子线程中HUB个数乘以HUB的端口数,并用计算结果更新第一变量;
步骤203:根据第一变量和HUB的端口数的计算结果选定一个当前HUB;
具体的,根据第一变量对HUB的端口数的整除运算结果确定当前HUB。
步骤204:向当前HUB发送获取HUB状态指令,等待接收当前HUB的第一返回数据;
步骤205:接收第一返回数据并判断第一返回数据是否正确,是则执行步骤206,否则报错;
具体地,所述第一返回数据由状态码和HUB状态信息组成,其中HUB状态信息包括:电流值、端口状态、电流上限、端口电压、HUBID、端口ID号等,共68个字节;其中HUBID的长度占2个字节。
所述判断第一返回数据是否正确具体为判断第一返回数据中的状态码是否为9000,是则正确,否则报错。
步骤206:根据第一返回数据获取当前HUBID;
步骤207:向当前HUB发送端口下电指令,等待接收当前HUB的第二返回数据;
步骤208:接收第二返回数据并判断第二返回数据是否正确,是则执行步骤209,否则报错;
具体地,所述第二返回数据由状态码组成,所述判断第二返回数据是否正确具体为判断第二返回数据中的状态码是否为9000,是则正确,否则报错。
步骤209:将HUB的端口数作为模数对第一变量做取模计算,并用计算结果更新第二变量;
步骤210:根据第二变量选定当前端口,向当前HUB发送端口上电指令,等待接收第三返回数据;
具体的,根据第二变量与HUB的端口数的取模计算结果确定当前端口。
步骤211:接收第三返回数据并判断第三返回数据是否正确,是则执行步骤212,否则报错,屏幕显示出错的当前HUBID和当前端口号;
具体地,所述第三返回数据由状态码组成,所述判断第三返回数据是否正确具体为判断第三返回数据中的状态码是否为9000,是则正确,否则报错。
本实施例中通过屏幕显示出错的当前HUBID和当前端口号,可以起到差错控制的作用,例如,在批量生成中,通过在上位机的屏幕上显示出错的当前HUBID和当前端口号,准确提示操作人员进行更换或其他处理,有效避免不合格的产品的漏检。
步骤212:向当前HUB发送设置电流上限指令,等待接收第四返回数据;
步骤213:接收第四返回数据并判断第四返回数据是否正确,是则执行步骤214,否则报错,屏幕显示出错的当前HUBID和当前端口号;
具体地,所述第四返回数据由状态码组成,所述判断第四返回数据是否正确具体为判断第四返回数据中的状态码是否为9000,是则正确,否则报错。
步骤214:向当前HUB发送获取当前端口电流指令,等待接收第五返回数据;
步骤215:根据第五返回数据获取当前端口电流值;
具体地,所述第五返回数据由状态码和当前端口电流值组成。
本步骤还可以包括:判断第五返回数据是否正确,具体为判断第五返回数据中的状态码是否为9000,是则正确,否则报错。
步骤216:判断当前端口电流值是否大于预设上限电流值,是则执行步骤217,否则报错,屏幕显示出错的当前HUBID和当前端口号;
本实施例中优选的,预设上限电流值为50毫安。
步骤217:向当前HUB发送烧写指令,等待接收当前HUB的第六返回数据;
步骤218:接收第六返回数据并判断第六返回数据是否正确,是则执行步骤219,否则报错,屏幕显示出错的当前HUBID和当前端口号;
具体地,所述第六返回数据由状态码组成,所述判断第六返回数据是否正确具体为判断第六返回数据中的状态码是否为9000,是则正确,否则报错。
步骤219:第一变量自加1;
步骤220:将子线程中的HUB个数乘以HUB的端口数的计算结果作为模数,对第一变量做取模运算,判断取模运算结果是否等于0,是则返回执行步骤202,否则执行步骤221;
步骤221:判断第一变量和HUB的端口数的取模运算结果是否等于0,是则返回执行步骤203,否则返回执行步骤209。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (24)
1.一种线程可控装置,其特征是,所述装置包括:
初始化模块:用于初始化当前HUB编号和当前端口编号;
选择模块:用于选择工作线程;
定位模块:用于根据当前HUB编号选定一个当前HUB,根据当前端口编号选定当前HUB的一个当前端口;
当所述选择模块选择的工作线程为单线程时,所述定位模块,具体用于根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB,根据第二变量选定当前HUB的一个当前端口;当所述选择模块选择的工作线程为多线程时,所述定位模块,具体用于根据第一变量和HUB的端口数的计算结果选定一个当前HUB和当前HUB的一个当前端口;
判断模块:用于判断是否对当前HUB的所有端口完成操作,用于判断是否对枚举到的所有HUB完成操作;
更新模块:用于当判断模块判断是否对当前HUB的所有端口完成操作的判断结果为否时更新当前端口编号,当判断模块判断是否对枚举到的所有HUB完成操作的判断结果为是时更新当前HUB编号;
创建子线程模块:用于根据枚举到的HUB个数创建子线程;
操作模块:用于枚举HUB并记录枚举到的HUB个数,用于对当前HUB的当前端口进行操作。
2.如权利要求1所述的装置,其特征是,当所述选择模块选择的工作线程为单线程时,所述装置还包括计算模块;
所述初始化模块还用于初始化第一变量和第二变量;
所述计算模块,用于将第一变量与枚举到的HUB个数做取模运算;
所述根据当前HUB编号选定一个当前HUB具体为根据所述取模运算结果确定当前HUB,所述根据当前端口编号选定当前HUB的一个当前端口具体为根据第二变量的取值选定当前HUB的一个当前端口;
所述判断模块还用于判断第二变量是否等于预设值;
所述更新模块,还用于当所述判断模块判断第二变量是否等于预设值的判断结果为是时更新第一变量,当判断结果为否时更新第二变量。
3.如权利要求2所述的装置,其特征是,所述初始化第一变量具体为将第一变量的初值设为第一数值,所述初始化第二变量具体为将第二变量的初值设为第二数值。
4.如权利要求1所述的装置,其特征是,当所述选择模块选择的工作线程为多线程时,所述装置还包括计算模块;
所述初始化模块还用于初始化第一变量;
所述创建子线程模块还用于为创建的所有子线程编号;
计算模块:用于根据第一预设公式对子线程编号计算得到第一初值,并将第一初值赋值给第一变量;用于对第一变量和HUB的端口数作整除运算,用于根据第二预设公式对第一变量计算得到第二初值,对第二初值和HUB的端口数做取模计算;所述根据当前HUB编号选定一个当前HUB具体为根据所述整除运算结果确定当前HUB,所述根据当前端口编号选定当前HUB的一个当前端口具体为所述取模计算结果确定当前端口;用于根据第三预设公式对第一变量计算得到取模运算结果;
所述判断模块还用于判断计算模块根据第三预设公式对第一变量计算得到取模运算结果是否等于0;
所述更新模块还用于,在根据第三预设公式对第一变量计算得到取模运算结果之前更新所述第一变量,或者在判断模块判断所述取模运算结果是否等于0的判断结果为否时更新所述第一变量。
5.如权利要求2所述的装置,其特征是,所述预设值等于第二变量的最大取值或最小取值。
6.如权利要求4所述的装置,其特征是,所述初始化第一变量具体为将第一变量的初值设为第一数值。
7.如权利要求4所述的装置,其特征是,所述第一预设公式为:第一初值=子线程编号*子线程中HUB个数*HUB的端口数;所述第二预设公式为:第二初值=第一变量%HUB的端口数,所述第三预设公式为:取模运算结果=第一变量%(子线程中HUB个数*HUB的端口数),所述子线程中HUB个数等于所述枚举到的HUB个数对创建的子线程的个数的整除运算结果,其中“%”表示取模运算,“*”表示乘法运算。
8.如权利要求1所述的装置,其特征是,所述操作模块包括:
收发单元:用于向当前HUB发送具体操作指令并接收当前HUB的返回数据;
判断单元:用于判断收发单元接收到的返回数据是否正确;
显示单元:用于当判断单元判断所述返回数据为错误时,提示出错;
获取单元:用于从返回数据中获取关键信息。
9.如权利要求1所述的装置的工作方法,其特征是,所述方法包括:
所述装置与HUB设备连接,枚举HUB,记录枚举到的HUB个数,选择工作线程,当选择的工作线程是单线程时,直接执行步骤1至步骤6;当选择的工作线程是多线程时,先根据枚举到的HUB个数创建子线程,然后对创建的所有子线程同时开始执行步骤1至步骤6:
步骤1:初始化当前HUB编号和当前端口编号;
步骤2:根据当前HUB编号选定一个当前HUB;
步骤3:根据当前端口编号选定当前HUB的一个当前端口;
步骤4:对当前HUB的当前端口进行操作;
步骤5:判断是否对当前HUB的所有端口完成操作,是则执行步骤6,否则更新当前端口编号返回执行步骤3;
步骤6:判断是否对枚举到的所有HUB完成操作,是则返回执行步骤1,否则更新当前HUB编号返回执行步骤2。
10.如权利要求9所述方法,其特征是:当选择的工作线程是单线程时,所述方法还包括定义第一变量和第二变量,所述当前HUB编号根据第一变量和枚举到的HUB个数的计算结果得到,所述当前端口编号根据第二变量计算得到,所述步骤1至所述步骤6具体为:
步骤A1:初始化第一变量;
步骤A2:根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB;
步骤A3:初始化第二变量;
步骤A4:根据第二变量的取值选定当前HUB的一个当前端口;
步骤A5:对当前HUB的当前端口进行操作,操作完成后执行下一步;
步骤A6:判断第二变量是否等于预设值,是则执行步骤A7,否则更新第二变量返回执行步骤A4;
步骤A7:更新第一变量,返回执行步骤A2。
11.如权利要求9所述方法,其特征是:当选择的工作线程是单线程时,所述方法还包括定义第一变量和第二变量,所述当前HUB编号根据第一变量和枚举到的HUB个数的计算结果得到,所述当前端口编号根据第二变量计算得到,所述步骤1至所述步骤6具体为:
步骤A1:初始化第一变量;
步骤A2:根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB;
步骤A3:初始化第二变量;
步骤A4:判断第二变量是否等于预设值,是则执行步骤A7,否则执行步骤A5;
步骤A5:根据第二变量的取值选定当前HUB的一个当前端口;
步骤A6:对当前HUB的当前端口进行操作,操作完成后更新第二变量返回步骤A5;
步骤A7:更新第一变量,返回执行步骤A2。
12.如权利要求10或11所述方法,其特征是:所述初始化第一变量具体为将第一变量的初值设为第一数值,所述初始化第二变量具体为将第二变量的初值设为第二数值。
13.如权利要求10或11所述方法,其特征是:步骤A2所述根据第一变量和枚举到的HUB个数的计算结果选定一个当前HUB具体为:将第一变量与枚举到的HUB个数做取模运算,根据取模运算结果确定当前HUB。
14.如权利要求10或11所述方法,其特征是:所述预设值等于第二变量的最大取值或最小取值。
15.如权利要求10或11所述方法,其特征是:步骤A6所述更新第二变量具体为将第二变量自加1或将第二变量自减1,步骤A7所述更新第一变量具体为将第一变量自加1或将第一变量自减1。
16.如权利要求9所述方法,其特征是:当选择的工作线程是多线程时,所述方法还包括为创建的所有子线程编号,定义第一变量,所述当前HUB编号和所述当前端口编号根据第一变量和HUB的端口数的计算结果得到,所述步骤1至所述步骤6具体为:
步骤B1:初始化第一变量;
步骤B2:根据第一预设公式对子线程编号计算得到第一初值,并将第一初值赋值给第一变量;
步骤B3:根据第一变量和HUB的端口数的计算结果选定一个当前HUB;
步骤B4:根据第二预设公式对第一变量计算得到第二初值,根据第二初值和HUB的端口数的计算结果选定当前HUB的一个当前端口;
步骤B5:对当前HUB的当前端口进行操作;
步骤B6:更新第一变量;
步骤B7:根据第三预设公式对第一变量计算得到取模运算结果,判断所述取模运算结果是否等于0,是则返回执行步骤B2,否则返回执行步骤B3。
17.如权利要求16所述方法,其特征是:所述步骤B6和步骤B7具体为:根据第三预设公式对第一变量计算得到取模运算结果,判断取模运算结果是否等于0,当取模运算结果等于0且第一变量等于第一初值或者取模运算结果不等于0时更新第一变量返回执行步骤B2,当取模运算结果等于0且第一变量不等于第一初值时返回执行步骤B3。
18.如权利要求9所述方法,其特征是:当选择的工作线程是多线程时,所述方法还包括为创建的所有子线程编号,定义第一变量,所述当前HUB编号和所述当前端口编号根据第一变量和HUB的端口数的计算结果得到,所述步骤1至所述步骤6具体为:
步骤B1:初始化第一变量;
步骤B2:根据第一预设公式对子线程编号计算得到第一初值,并将第一初值赋值给第一变量;
步骤B3:根据第三预设公式对第一变量计算得到取模运算结果,判断所述取模运算结果是否等于0,当取模运算结果等于0且第一变量等于第一初值或者取模运算结果不等于0时执行步骤B4,当取模运算结果等于0且第一变量不等于第一初值时返回执行步骤B2;
步骤B4:根据第一变量和HUB的端口数的计算结果选定一个当前HUB;
步骤B5:根据第二预设公式对第一变量计算得到第二初值,根据第二初值和HUB的端口数的计算结果选定当前HUB的一个当前端口;
步骤B6:对当前HUB的当前端口进行操作;
步骤B7:更新第一变量,返回步骤B3。
19.如权利要求16或17或18所述方法,其特征是:所述第一预设公式为:第一初值=子线程编号*子线程中HUB个数*HUB的端口数;所述第二预设公式为:第二初值=第一变量%HUB的端口数,所述第三预设公式为:取模运算结果=第一变量%(子线程中HUB个数*HUB的端口数),所述子线程中HUB个数等于所述枚举到的HUB个数对创建的子线程的个数的整除运算结果,其中“%”表示取模运算,“*”表示乘法运算。
20.如权利要求16或17或18所述方法,其特征是:所述根据第一变量和HUB的端口数的计算结果选定一个当前HUB具体为:根据第一变量对HUB的端口数的整除运算结果确定当前HUB,所述根据第二初值和HUB的端口数的计算结果选定当前HUB的一个当前端口具体为:根据第二初值与HUB的端口数的取模计算结果确定当前端口。
21.如权利要求16或17或18所述方法,其特征是:所述更新第一变量具体为将第一变量自加1或将第一变量自减1。
22.如权利要求16或17或18所述方法,其特征是:所述初始化第一变量具体为将第一变量的初值设为第一数值。
23.如权利要求9所述方法,其特征是:所述根据枚举到的HUB个数创建子线程满足:所述枚举到的HUB个数是创建的所述子线程的个数的倍数。
24.如权利要求9所述方法,其特征是:步骤4所述操作包括:获取HUB状态操作、上下电操作、获取端口电流操作、设置端口电流上限操作和烧写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310338544.4A CN103365712B (zh) | 2013-08-06 | 2013-08-06 | 一种线程可控装置及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310338544.4A CN103365712B (zh) | 2013-08-06 | 2013-08-06 | 一种线程可控装置及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365712A CN103365712A (zh) | 2013-10-23 |
CN103365712B true CN103365712B (zh) | 2016-05-25 |
Family
ID=49367139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310338544.4A Expired - Fee Related CN103365712B (zh) | 2013-08-06 | 2013-08-06 | 一种线程可控装置及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365712B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955442B (zh) * | 2014-05-04 | 2016-09-28 | 飞天诚信科技股份有限公司 | 一种usb设备生产装置的工作方法 |
CN109460239A (zh) * | 2017-09-06 | 2019-03-12 | 深圳市中兴微电子技术有限公司 | 一种多单板烧录的方法、系统及烧录工具 |
CN113934439B (zh) * | 2021-11-16 | 2023-09-15 | 思澈科技(重庆)有限公司 | 一种多通道自动识别烧录系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694641A (zh) * | 2009-09-28 | 2010-04-14 | 北京深思洛克软件技术股份有限公司 | 一种初始化通用串行总线设备的方法及系统 |
CN201607724U (zh) * | 2009-12-30 | 2010-10-13 | 北京飞天诚信科技有限公司 | 一种支持多线程操作的usb hub |
CN102368710A (zh) * | 2011-10-17 | 2012-03-07 | 深圳市共进电子股份有限公司 | 一种基于局域网的网络设备软件批量升级的方法 |
-
2013
- 2013-08-06 CN CN201310338544.4A patent/CN103365712B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694641A (zh) * | 2009-09-28 | 2010-04-14 | 北京深思洛克软件技术股份有限公司 | 一种初始化通用串行总线设备的方法及系统 |
CN201607724U (zh) * | 2009-12-30 | 2010-10-13 | 北京飞天诚信科技有限公司 | 一种支持多线程操作的usb hub |
CN102368710A (zh) * | 2011-10-17 | 2012-03-07 | 深圳市共进电子股份有限公司 | 一种基于局域网的网络设备软件批量升级的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103365712A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365712B (zh) | 一种线程可控装置及其工作方法 | |
CN104081295A (zh) | 具有用户界面特征的智能手表 | |
CN102662708B (zh) | 一种Linux操作系统及其显卡驱动装置 | |
CN101174177A (zh) | 计算机系统及其控制方法 | |
US20160072317A1 (en) | Method and system for power provisioning | |
CN105094263A (zh) | 一种开关机联动控制的装置及系统 | |
CN107656785A (zh) | 基本输入输出系统设置界面显示方法及终端设备 | |
CN205754402U (zh) | 具人机交互功能的PoE交换机 | |
CN103019365A (zh) | 计算机、遥控系统、计算机控制方法以及遥控方法 | |
CN105974826B (zh) | 自动化装置和操作者系统 | |
CN103049064A (zh) | 计算终端的开机方法、系统及计算终端 | |
CN102681861B (zh) | 安装软件的方法和装置 | |
CN113268178A (zh) | 设备显控方法、装置及介质 | |
CN103676880A (zh) | Cmp集成控制系统的通讯模块 | |
CN103296864B (zh) | 响应于多种控制信号格式的电源 | |
CN106339048A (zh) | 带端子式接口式串口服务器 | |
CN104205002A (zh) | 用于传送可用电池电力的方法和装置 | |
Deshpande et al. | Home automation using the concept of IoT | |
CN104731329A (zh) | 一种用户笔迹颜色处理的方法和装置 | |
CN104597833A (zh) | 一种plc保护系统及保护方法 | |
CN109032535A (zh) | 一种raid组建方法及相关装置 | |
CN102591206B (zh) | 用于分析时间流程特性的方法和系统 | |
CN207096970U (zh) | 一种应用于t‑con板的代码烧录器 | |
CN204242185U (zh) | 一种USBKey | |
CN106997182B (zh) | 一种用于单片机或pc机的可编程控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160525 |
|
CF01 | Termination of patent right due to non-payment of annual fee |