一种基于USB设备的异步调用方法和装置制造方法及图纸

技术编号:13330363 阅读:40 留言:0更新日期:2016-07-11 20:45
本发明专利技术公开一种基于USB设备的异步调用方法和装置,该方法包括:S1:接收主控装置发送的上位机指令,向主控装置返回接收成功信息,向设备发送上位机指令,接收第一响应数据;S2:判断返回码是否为第七预设值,是则将查询标识置位,否则执行S3;S3:通过调用回调函数,将第一响应数据返回给主控,结束;该方法还包括:A1:判断查询标识是否置位,是则执行A2,否则返回A1;A2:向设备发送查询指令,接收第二响应数据;A3:对返回码进行判断,若返回码为第六预设值则将查询标识复位,执行A4,若返回码为第五预设值则返回A1,若是其他值则执行A4;A4:通过调用回调函数,将第二响应数据返回给主控,返回A1。

【技术实现步骤摘要】

本专利技术涉及通信领域,尤其涉及一种基于USB设备的异步调用方法和装置
技术介绍
现有技术中,上位机与USB设备之间的通信方式为同步通信,上位机向USB设备发送一条指令后,等待接收USB设备返回的响应,当上位机接收到USB设备返回的响应之后,才能够继续进行其他操作。因此,在这种通信方式中,上位机向USB设备发送指令后,只能阻塞等待USB设备处理完返回响应,不能进行其他操作,上位机的灵活性差,工作效率低。
技术实现思路
本专利技术的目的是为了克服现有技术的不足,提供一种基于USB设备的异步调用方法和装置,在上位机中增加通信库,上位机中的主控装置通过通信库向USB设备发送指令,通信库通过回调函数的方式将USB设备的响应返回给上位机中的主控装置,主控装置在发送指令之后不必等待接收响应。本专利技术提供的一种基于USB设备的异步调用方法,包括:步骤S1:接收主控装置发送的上位机指令,向所述主控装置返回接收成功信息,根据USB设备的设备句柄,向USB设备发送所述上位机指令,接收所述USB设备返回的第一响应数据;步骤S2:判断所述第一响应数据中的返回码是否为第七预设值,是则将查询标识置位,结束,否则执行步骤S3;步骤S3:通过调用回调函数,将所述第一响应数据返回给所述主控装置,结束;所述方法还包括:步骤A01:判断所述查询标识是否置位,是则执行步骤A02,否则返回步骤A01;步骤A02:根据所述USB设备的设备句柄,向所述USB设备发送查询指令,接收所述USB设备返回的第二响应数据;步骤A03:对所述第二响应数据中的返回码进行判断,若所述返回码为第六预设值则将所述查询标识复位,执行步骤A04,若所述返回码为第五预设值则返回步骤A01,若是其他值则执行步骤A04;步骤A04:通过调用所述回调函数,将所述第二响应数据返回给所述主控装置,返回步骤A01。本专利技术提供一种基于USB设备的异步调用装置,所述装置包括:第一发送接收模块、第一判断模块、置位模块和第一回调模块;所述第一发送接收模块,用于接收主控装置发送的上位机指令,向所述主控装置返回接收成功信息,根据USB设备的设备句柄,向USB设备发送所述上位机指令,接收所述USB设备返回的第一响应数据;所述第一判断模块,用于当所述第一发送接收模块接收到USB设备返回的第一响应数据后,判断所述第一响应数据中的返回码是否为第七预设值;所述置位模块,用于当所述第一判断模块判断出所述返回码为第七预设值时,将查询标识置位;所述第一回调模块,用于当所述第一判断模块判断出返回码不为第七预设值时,通过调用回调函数,将所述第一发送接收模块接收到的所述第一响应数据返回给所述主控装置;所述装置还包括:第二判断模块、第二发送接收模块、第三判断模块、复位模块和第二回调模块;所述第二判断模块,用于判断所述查询标识是否置位,若所述查询标识未置位,则所述第二判断模块继续判断查询标识是否置位;所述第二发送接收模块,用于当所述第二判断模块判断出所述查询标识置位时,根据所述USB设备的设备句柄,向所述USB设备发送查询指令,接收所述USB设备返回的第二响应数据;所述第三判断模块,用于对所述第二发送接收模块接收到的所述第二响应数据中的返回码进行判断,若所述返回码为第五预设值则触发所述第二判断模块进行工作;所述复位模块,用于当所述第三判断模块判断出所述返回码为第六预设值时,将所述查询标识复;所述第二回调模块,用于当所述第三判断模块判断出所述返回码为除第五预设值之外的其他值时,通过调用所述回调函数,将所述第二发送接收模块接收到的所述第二响应数据返回给所述主控装置,触发所述第二判断模块进行工作。本专利技术与现有技术相比,具有以下优点:本专利技术提供的一种基于USB设备的异步调用方法和装置,在上位机中增加通信库,上位机中的主控装置通过通信库向USB设备发送指令,通信库通过回调函数的方式将USB设备的响应返回给上位机中的主控装置,主控装置在发送指令之后不必等待接收响应,提高上位机的工作效率。附图说明图1和图2是本专利技术实施例2提供的一种基于USB设备的异步调用方法的主线程的流程图;图3是本专利技术实施例2提供的一种基于USB设备的异步调用方法的查询子线程的流程图;图4是本专利技术实施例3提供的一种基于USB设备的异步调用装置的模块图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1本专利技术的实施例1提供了一种基于USB设备的异步调用方法,应用于包括上位机和USB设备的系统中,其中,上位机包括主控装置和通信库,该方法包括:步骤S1:通信库接收主控装置发送的上位机指令,向主控装置返回接收成功信息,根据USB设备的设备句柄,向USB设备发送上位机指令,接收USB设备返回的第一响应数据;步骤S2:通信库根据判断第一响应数据中的返回码是否为第七预设值,是则将查询标识置位,结束,否则执行步骤S3;步骤S3:通信库通过调用回调函数,将第一响应数据返回给主控装置,结束;该方法还包括:步骤A01:通信库判断查询标识是否置位,是则执行步骤A02,否则返回步骤A01;步骤A02:通信库根据USB设备的设备句柄,向USB设备发送查询指令,接收USB设备返回的第二响应数据;步骤A03:通信库对第二响应数据中的返回码进行判断,若返回码为第六预设值则将查询标识复位,返回步骤A04,若返回码为第五预设值则返回步骤A01,若是其他值则执行步骤A04;步骤A04:通信库通过调用回调函数,将第二响应数据返回给主控装置,返回步骤A01;本实施例中,步骤S1至S3可以在通信库的主线程中实现,步骤A01至A04可以在通信库的查询子线程中实现;本实施例中,在启动查询子线程之前,还可以包括:步骤P1:通信库枚举与上位机相连的USB设备,获取USB设备的设备名称和设备名称长度;步骤P2:通信库根据设备名称长度,判断设备名称是否正确,是则执行步骤P3,否则向主控装置返回错误信息,结束;步骤P3:通信库根据设备名称和设备名称长度,打开并连接USB设备;<本文档来自技高网...

【技术保护点】
一种基于USB设备的异步调用方法,其特征在于,所述方法包括:步骤S1:接收主控装置发送的上位机指令,向所述主控装置返回接收成功信息,根据USB设备的设备句柄,向USB设备发送所述上位机指令,接收所述USB设备返回的第一响应数据;步骤S2:判断所述第一响应数据中的返回码是否为第七预设值,是则将查询标识置位,结束,否则执行步骤S3;步骤S3:通过调用回调函数,将所述第一响应数据返回给所述主控装置,结束;所述方法还包括:步骤A01:判断所述查询标识是否置位,是则执行步骤A02,否则返回步骤A01;步骤A02:根据所述USB设备的设备句柄,向所述USB设备发送查询指令,接收所述USB设备返回的第二响应数据;步骤A03:对所述第二响应数据中的返回码进行判断,若所述返回码为第六预设值则将所述查询标识复位,执行步骤A04,若所述返回码为第五预设值则返回步骤A01,若是其他值则执行步骤A04;步骤A04:通过调用所述回调函数,将所述第二响应数据返回给所述主控装置,返回步骤A01。

【技术特征摘要】
1.一种基于USB设备的异步调用方法,其特征在于,所述方法包括:
步骤S1:接收主控装置发送的上位机指令,向所述主控装置返回接收成功
信息,根据USB设备的设备句柄,向USB设备发送所述上位机指令,接收所述
USB设备返回的第一响应数据;
步骤S2:判断所述第一响应数据中的返回码是否为第七预设值,是则将查
询标识置位,结束,否则执行步骤S3;
步骤S3:通过调用回调函数,将所述第一响应数据返回给所述主控装置,
结束;
所述方法还包括:
步骤A01:判断所述查询标识是否置位,是则执行步骤A02,否则返回步
骤A01;
步骤A02:根据所述USB设备的设备句柄,向所述USB设备发送查询指令,
接收所述USB设备返回的第二响应数据;
步骤A03:对所述第二响应数据中的返回码进行判断,若所述返回码为第
六预设值则将所述查询标识复位,执行步骤A04,若所述返回码为第五预设值
则返回步骤A01,若是其他值则执行步骤A04;
步骤A04:通过调用所述回调函数,将所述第二响应数据返回给所述主控
装置,返回步骤A01。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1之前包括:判
断所述查询标识是否置位,是则向所述主控装置返回错误信息,结束,否则执
行步骤S1。
3.根据权利要求1所述的方法,其特征在于,所述根据USB设备的设备
句柄,向USB设备发送所述上位机指令,接收所述USB设备返回的第一响应数
据,包括:
步骤S1-1:获取卡片状态,判断所述卡片状态是否为重置,是则执行步骤
S1-2,否则执行步骤S1-3;
步骤S1-2:重新与所述USB设备建立连接,执行步骤S1-3;
步骤S1-3:根据所述USB设备的设备句柄,向所述USB设备发送所述上
位机指令,接收所述USB设备返回的第一响应数据。
4.根据权利要求1所述的方法,其特征在于,所述步骤S3之前包括:判
断向所述主控装置返回USB设备响应的回调函数指针是否为空,是则结束,否
则执行步骤S3。
5.根据权利要求1所述的方法,其特征在于,所述步骤A01之前包括:判
断所述USB设备的设备句柄是否为空,是则结束,否则执行步骤A01。
6.根据权利要求1所述的方法,其特征在于,所述根据USB设备的设备
句柄,向所述USB设备发送查询指令,接收所述USB设备返回的响应数据,包
括:
步骤A02-1:获取卡片状态,判断所述卡片状态是否为重置,是则执行步骤
A02-2,否则执行步骤A02-3;
步骤A02-2:重新与所述USB设备建立连接,执行步骤A02-3;
步骤A02-3:根据所述USB设备的设备句柄,向所述USB设备发送所述查
询指令,接收所述USB设备返回的第二响应数据。
7.根据权利要求1所述的方法,其特征在于,所述步骤A03之前包括:判
断所述第二响应数据的长度是否不小于第一预设长度,是则执行步骤A03,否
则返回步骤A01。
8.根据权利要求1所述的方法,其特征在于,所述步骤A04之前包括:判
断向所述主控装置返回USB设备响应的回调函数指针是否为空,是则返回步骤
A01,否则执行步骤A04。
9.根据权利要求1所述的方法,其特征在于,所述步骤A01之前还包括:
步骤P1:枚举与上位机相连的USB设备,获取所述USB设备的设备名称
和设备名称长度;
步骤P2:根据所述设备名称长度,判断所述设备名称是否正确,是则执行
步骤P3,否则向所述主控装置返回错误信息,结束;
步骤P3:根据所述设备名称和所述设备名称长度,打开并连接所述USB设
备;
步骤P4:判断是否成功打开并连接所述USB设备,是则执行步骤P5,否
则向所述主控装置返回错误信息,结束;
步骤P5:获取所述USB设备的设备句柄,将所述查询标识复位,设置向所

\t述主控装置返回USB设备响应的回调函数指针,执行步骤A01。
10.根据权利要求9所述的方法,其特征在于,所述步骤P1包括:
步骤P1-1:建立上下文环境,判断是否成功建立上下文环境,是则获取上
下文句柄,执行步骤P1-2,否则向所述主控装置返回错误信息;
步骤P1-2:枚举USB设备,判断是否存在与所述上位机相连的USB设备,
是则获取USB设备列表,执行步骤P1-3,否则向所述主控装置返回错误信息,
结束;
步骤P1-3:判断所述USB设备列表中是否存在与预设关键字匹配的设备名
称,是则获取与所述预设关键字匹配的设备名称和设备名称长度,否则向所述
主控装置返回错误信息,结束。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:关闭所
述USB设备,清除所述USB设备的设备句柄。
12.一种基于USB设备的异步调用装置,其特征在于,所述异步调用装置
包括:第一发送接收模块、第一判断模块、置位模块和第一回调模块;
所述第一发送接收模块,用于接收主控装置发送的上位机指令,向所述主
控装置返回接收成功信息,根据USB设备的设备句柄,向USB设备发送所述上
位机指令,接收所述USB设备返回的第一响应数据;
所述第一判断模块,用于当所述第一发送接收模块接收到USB设备返回的
第一响应数据后,判断所述第一响应数据中的返回码是否为第七预设值;
所述置位模块,用于当所述第一判断模块判断出所述返回码为第七预设值
时,将查询标识置位;
所述第一回调模块,用于当所述第一判断模块判断出所述返回码不为第七
预设值时,通过调用回...

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

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

1