CN102298446A - 一种多鼠标/键盘模拟装置 - Google Patents

一种多鼠标/键盘模拟装置 Download PDF

Info

Publication number
CN102298446A
CN102298446A CN2011102395844A CN201110239584A CN102298446A CN 102298446 A CN102298446 A CN 102298446A CN 2011102395844 A CN2011102395844 A CN 2011102395844A CN 201110239584 A CN201110239584 A CN 201110239584A CN 102298446 A CN102298446 A CN 102298446A
Authority
CN
China
Prior art keywords
processor
master
submodule
order
message
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
CN2011102395844A
Other languages
English (en)
Other versions
CN102298446B (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.)
Yuncheng University
Original Assignee
Yuncheng University
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 Yuncheng University filed Critical Yuncheng University
Priority to CN2011102395844A priority Critical patent/CN102298446B/zh
Publication of CN102298446A publication Critical patent/CN102298446A/zh
Application granted granted Critical
Publication of CN102298446B publication Critical patent/CN102298446B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明涉及计算机的鼠标、键盘模拟装置,具体为一种多鼠标/键盘模拟装置。本发明解决了现有计算机的模拟鼠标/键盘控制装置只能控制一个鼠标或键盘以及无法向上层应用反馈操作结果的问题。一种多鼠标/键盘模拟装置,包括主处理机工作组、若干个从处理机工作组、标准通信总线、主控制机工作组、若干个被控制机工作组、主板、电源、以及软件模块;主处理机工作组、标准通信总线和从处理机工作组均集成在主板上;标准通信总线由总线控制器、以及通信介质构成;主处理机工作组和从处理机工作组均由处理机、通信模块和内部通信模块构成。本发明所述的装置可靠性强,可广泛适用于计算机模拟鼠标/键盘控制。

Description

一种多鼠标/键盘模拟装置
技术领域
本发明涉及计算机的鼠标、键盘模拟装置,具体为一种多鼠标/键盘模拟装置。
背景技术
现有计算机的鼠标、键盘模拟装置均只能模拟一个鼠标或键盘,如果需要通过模拟装置控制多台设备,则需要占用多个通信接口,通常需要外接一个扩展通信接口的HUB,这样会影响系统的稳定性;另外,大部分现有装置都不提供反馈消息,使得上层控制应用不知道所发的操作命令是否正确执行。
发明内容
本发明为了解决现有计算机的模拟鼠标/键盘控制装置只能控制一个鼠标或键盘以及无法向上层应用反馈操作结果的问题,提供了一种多鼠标/键盘模拟装置。
本发明是采用如下技术方案实现的:一种多鼠标/键盘模拟装置,包括主处理机工作组、若干个从处理机工作组、标准通信总线、主控制机工作组、若干个被控制机工作组、主板、电源、以及软件模块;主处理机工作组、标准通信总线和从处理机工作组均集成在主板上;电源与主板的电源端相连;标准通信总线由总线控制器、以及通信介质构成;主处理机工作组和从处理机工作组均由处理机、通信模块和内部通信模块构成;其中,主处理机工作组的处理机称为主处理机,从处理机工作组的处理机称为从处理机;被控制机工作组包括被控制机、以及通信模块;主控制机工作组包括主控制机、以及通信模块;主处理机工作组的内部通信模块经标准通信总线的总线控制器分别与各个从处理机工作组的内部通信模块相连;主处理机工作组的通信模块与主控制机工作组的通信模块相连,构成物理链路,并在其上根据标准通信协议进行通信;从处理机的通信模块分别与对应的被控制机通信模块相连,构成物理链路,并在其上根据PS/2协议、USB协议或无线通信协议进行通信;主控制机命令包括命令类型和参数对象两个数据项;命令类型为枚举型或整型,包括键盘操作、鼠标操作、获取从处理机配置、更新从处理机配置;参数对象包含对应命令的参数信息;主处理机收到主控制机命令,经过处理后,向对应的从处理机发送对应的主处理机命令,并接收从处理机工作组发来的从处理机消息;从处理机机工作组收到主处理机命令后,进行处理,通过从处理机的通信模块按标准通信协议USB协议、PS/2协议或无线通信协议向被控制机发送相应信息,并接收被控制机的反馈信息,处理后再生成从处理机消息发给主处理机工作组;
软件模块包括设于主控制机内的控制机驱动软件模块、设于主处理机内的主处理机软件模块、以及设于从处理机内的从处理机软件模块;控制机驱动软件模块为标准硬件驱动程序,提供配置从处理机和向主处理机发送鼠标/键盘操作命令的软件接口,它由操作系统和上层应用软件调用;主处理机软件模块在加电时自动加载,负责处理主控制机命令和从处理机消息,并向主控制机发送响应主控制机命令或报告主处理机工作组和从处理机工作组状态的主处理机消息,向从处理机发送主处理机命令;从处理机软件模块在加电时自动加载,负责处理主处理机命令,并向主处理机工作组报告主处理机命令的执行结果及其工作状态的从处理机消息;
控制机驱动软件模块包含驱动初始化子模块、配置模拟装置子模块、获取模拟装置配置表子模块、发送模拟操作命令子模块、接收主处理机消息子模块、处理主处理机消息子模块、通信子模块、以及模拟装置配置数据模块;
控制机驱动软件模块的驱动初始化子模块在操作系统检测到模拟装置硬件后由操作系统调用,从模拟装置配置数据模块中读取初始化数据,生成初始化命令,并调用通信子模块发送初始化命令、接收主处理机工作组消息,根据主处理机工作组消息生成下一个初始化命令,循环处理直到初始化交互完成;
控制机驱动软件模块的配置模拟装置子模块由上层应用软件调用,有两个参数,分别为从处理机ID号和模拟设备类型;从处理机ID号指明要配置哪个从处理机工作组;模拟设备类型指明要将该从处理机工作组配置为鼠标模拟器还是键盘模拟器;其工作流程为:
1001.生成配置从处理机命令;
1002.调用通信子模块向主处理机工作组发送配置从处理机命令;
1003.结束操作;
控制机驱动软件模块的获取模拟装置配置子模块由上层应用程序调用,参数为主处理机ID号,表示要获取的主处理机的ID号,可用-1或大于最大从处理机ID号的值表示主处理机;工作流程为:
1101.检查模拟装置配置数据模块中是否有参数表中的主处理机ID号,如果没有,报错,结束操作;如果有,执行下一步;
1102.产生一个空的主控制机命令;
1103.将主控制机命令的命令类型设置为获取配置;
1104.将参数列表中的主处理机ID号封装为主控制机命令的参数对象;
1105.调用通信子模块发送主控制机命令;
1106.结束操作;
控制机驱动软件模块的发送模拟操作命令子模块由上层应用软件调用,包含的参数有:本命令ID号、从处理机ID号、操作类型和操作描述符;操作类型有键盘操作和鼠标操作;操作类型为键盘操作时操作描述符中包含的信息有操作哪个按键和操作的类型,如按下或者释放;操作类型为鼠标操作时操作描述符包含的信息为各方向移动距离、方向和各按键状态;其工作流程为:
1201.检查模拟装置配置数据模块中是否有参数表中的从处理机ID号,如果没有,报错,结束操作;如果有,执行下一步;
1202.检查模拟装置配置数据模块中参数表中的从处理机ID号对应的模拟类型是否为键盘;如果不是,报错,结束操作;如果是,执行下一步;
1203.检查键盘操作描述符是否合法;如果不合法,报错,结束操作;如果合法,执行下一步;
1204.产生一个命令ID号;
1205.产生一个空的主控制机命令;
1206.将主控制机命令的命令类型设置为键盘操作;
1207.将命令ID号、参数列表中的从处理机ID号和键盘操作描述符封装为主控制机命令的参数对象;
1208.调用通信子模块发送主控制机命令;
1209.将命令ID号放入待反馈命令列表中;
1210.结束操作;
控制机驱动软件模块的接收主处理机消息子模块由上层应用程序调用,工作流程为:
1301.初始化超时标记;
1302.调用通信子模块接收主处理机发送的主处理机消息;
1303.如果收到,执行步骤1305;否则检测是否超时,如果超时执行步骤1304,否则执行步骤1302;
1304. 报错,结束操作;
1305. 以接收到的主处理机消息为参数,调用处理主处理机消息子模块;
1306. 结束操作;
控制机驱动软件模块的处理主处理机消息子模块,参数为主处理机消息;工作流程为:
1401. 检查参数是否合法;如果不合法,报错,结束操作;如果合法,执行下一步;
1402.检查主处理机消息的消息类型,如果消息类型是更新从处理机状态,则执行步骤1403;如果消息类型是命令反馈,则执行步骤1405;
1403.更新模拟装置配置数据模块中对应的从处理机状态,结束操作;
1404. 从主处理机消息中取出参数对象;
1405.查找待反馈命令列表中是否有参数对象中包换的命令ID号,没有则结束操作;
1406.检查参数对象中的命令执行结果,如果表示执行成功,将该命令 ID号从待反馈命令列表中删除;如果表示执行不成功,则将该命令ID号从待反馈命令列表中移动到未成功执行命令列表中;
1407.结束操作;
控制机驱动软件模块的通信子模块包括接收和发送两个子单元,根据标准通信协议规定的流程接收和发送数据;
控制机驱动软件模块的模拟装置配置数据模块中保存标准通信协议所规定的配置信息,以及各从处理机工作组的状态信息,如待机/正常工作/故障、当前模拟鼠标还是键盘、ID号;
主处理机软件模块包括主处理机配置表数据子模块、临时数据子模块、主处理机主函数模块、主处理机初始化子模块、接收主控制机命令子模块、发送主处理机消息子模块、处理主控制机命令子模块、接收从处理机消息子模块、处理从处理机消息子模块、以及发送主处理机命令子模块;
主处理机软件模块的主处理机配置表数据子模块为数据模块,保存模拟装置设备描述信息、各从处理机配置信息和状态信息,从机状态信息的初始值为未初始化;
主处理机软件模块的临时数据子模块包括待发送主处理机命令列表、待发送主处理机消息列表、待处理从处理机消息列表、待处理主控制机命令列表、以及待反馈命令列表;
主处理机软件模块的主处理机主函数子模块在模拟装置加电时自动加载;其工作流程为:
2001.检查与主控制机建立通信信道是否已建立,如果尚未建立,则调用主处理机初始化子模块与主控制机建立通信信道;
2002. 分别执行以下六个步骤,执行顺序可互换:
2002.1 调用接收主控制机命令子模块;
2002.2调用处理主控制机命令子模块;
2002.3调用接收从处理机消息模块;
2002.4调用处理从处理机消息模块;
2002.5调用发送主处理机消息模块;
2002.6调用发送主处理机命令模块;
2003. 执行步骤2001;
主处理机软件模块的主处理机初始化子模块从主处理机配置表数据模块获取配置信息,按标准通信协议从通信模块中读取初始化命令数据包,或写入初始化命令数据包,建立与主控制机的通信信道;
主处理机软件模块的接收主控制机命令子模块用于接收主控制机发来的数据,其工作流程为:
2101. 检测主处理机的通信模块缓冲区中是否有数据,有则执行下一步,没有则执行步骤2104;
2102.从主处理机的通信模块缓冲区中读取数据;
2103.检查读取到的数据是否为主控制机命令,如果是则执行步骤2103.1,否则执行步骤2104; 
2103.1将数据格式化为主控制机命令;
2103.2将该主控制机命令添加到待处理主控制机命令列表中;
2103.3执行步骤2101;
2104.结束操作;
主处理机软件模块的发送主处理机消息子模块用于向主控制机发送主处理机消息,工作流程为:
2201.检查待发送主处理机消息列表是否为空,如果为空则结束操作,否则执行下一步;
2202.从待发送主处理机消息列表中取出一个主处理机消息作为当前主处理机消息;
2203.按标准通信协议要求将当前主处理机消息格式化为数据包;
2204.向主处理机的通信模块缓冲区中写入数据包;
2205.执行步骤2201;
主处理机软件模块的处理主控制机命令子模块用于处理已收到的主控制机命令,工作流程为:
2301.检查待处理主控制机命令列表是否为空,如果为空,则结束操作,否则执行下一步;
2302.从待处理主控制机命令列表中取出一个主控制机命令作为当前主控制机命令;
2303. 检查命令类型,如果命令类型是键盘操作或鼠标操作,则执行步骤2303. 1;如果是获取从处理机配置,则执行步骤2303.2;如果是更新从处理机配置,则执行步骤2303.3;
2303.1检查对应从处理机的模拟类型是否与命令类型一致,如果一致执行步骤2303.1.1,否则执行步骤2303.1.2;
2303.1.1 将当前主控制机命令格式化为主处理机命令,并添加到待发送主处理机命令列表;
2303.1.2 从当前主控制机命令中取出命令序号,和错误码一起封装成主处理机消息,放入待发送主处理机消息列表中;
2303.2从主处理机配置表数据模块中取出对应从处理机的配置信息,封装成主处理机消息,放入待发送主处理机消息列表中;
2303.3 检查主控制机命令中的参数对象所列从处理机配置是否与主处理机配置表数据模块中对应从处理机当前的配置信息完全相同,如果完全相同,则执行步骤2303. 3. 1,否则执行步骤2303. 3. 2;
2303.3.1从当前主控制机命令中取出命令序号,和执行成功码一起封装成主处理机消息,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机消息列表中;
2303.3.2 将命令序号、与对应从处理机当前配置信息不同的配置项、以及对应从处理机ID封装成主处理机命令,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机命令列表;
2304. 执行步骤2301;
主处理机软件模块的接收从处理机消息子模块用于接收从处理机发来的从处理机消息,其工作流程为:
2401.根据标准通信协议检测是否有从处理机请求通信,如果有执行下一步,否则结束操作;
2402.根据标准通信协议接收从处理机发来的数据;
2403.检查收到的数据是否为从处理机消息,是则执行下一步,否则执行步骤2405:
2404.将收到的数据格式化为从处理机消息,放入待处理从处理机消息列表中;
2405.执行步骤2401;
主处理机软件模块的处理从处理机消息子模块用于处理已收到的从处理机消息,工作流程为:
2501. 检查待处理从处理机消息列表是否为空,如果为空,则结束操作,否则执行下一步:
2502. 从待处理从处理机消息列表中取出一个从处理机消息作为当前从处理机消息;
2503. 检查消息类型,如果是获取配置信息,则执行步骤2503.1;如果是命令反馈,则执行步骤2503.2;
2503.1取出对应从处理机的配置信息,将其和从处理机ID封装成主处理机命令,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机命令列表;
2503.2 根据消息中的原命令类型和参数对象修改对应从处理机的工作状态,编写对应的主处理机消息,并将其放入待发送主处理机消息列表中;2504. 结束操作;
主处理机软件模块的发送主处理机命令子模块用于向从处理机发送主处理机命令,工作流程为:
2601. 检查待发送主处理机命令列表是否为空,如果为空则结束操作,否则执行下一步;
2602. 从待发送主处理机命令列表中取出一个主处理机命令作为当前主处理机命令;
2603. 检查主处理机配置表数据模块中对应从处理机的工作状态,如果状态为“就绪”,则执行下一步,否则将其重新放回待发送主处理机命令列表,执行步骤2601;
2603. 按标准通信协议要求将当前主处理机命令格式化为数据包;
2604. 根据标准通信协议向从处理机发送数据包;
2605. 将对应从处理机的工作状态改为“繁忙”;
2606. 将当前主处理机命令放入待反馈命令列表中;
2607.执行步骤2601;
从处理机软件模块包括从处理机配置数据子模块、从处理机主程序子模块、初始化从处理机子模块、接收主处理机命令子模块、处理主处理机命令子模块、发送从处理机消息子模块、发送键盘/鼠标命令子模块;
从处理机软件模块的从处理机配置数据子模块保存从处理机的配置信息,包括设备描述符、从处理机ID号、模拟类型和待处理主处理机命令、待发送从处理机消息、键盘/鼠标命令;
从处理机软件模块的从处理机主程序子模块在从处理机加电时自动执行,工作流程为:
3001. 调用初始化从处理机子模块;
3002. 调用接收主处理机命令子模块,检查是否接收到主处理机命令,如果接收到了执行下一步,否则执行步骤3002;
3003. 调用处理主处理机命令子模块,处理接收到的主处理机命令;
3004. 调用发送键盘/鼠标命令子模块;
3005. 调用发送从处理机消息子模块;
3006. 执行步骤3002;
从处理机软件模块的初始化从处理机子模块负责从主处理机获取配置信息,并与被控制机建立通信信道,工作流程为:
3101. 编写表示请求从处理机配置信息的从处理机消息;
3102. 调用发送从处理机消息子模块,发送从处理机消息;
3103. 循环调用接收主处理机命令模块,直到收到包含本从处理机配置信息的主处理机命令,执行下一步;
3104. 根据主处理机命令中包含的从处理机配置信息更新从处理机配置数据子模块中相应的数据;
3105. 根据从处理机配置信息和标准通信协议从通信模块的缓冲区中读取和写入初始化数据包;
3106.检测是否正确建立与被控制机之间的通信信道,如果没有,执行步骤3105,否则执行下一步;
3107.编写表示从处理机工作状态为就绪的从处理机消息;
3108.调用发送从处理机消息子模块,发送从处理机消息;
3109.结束操作;
从处理机软件模块的接收主处理机命令子模块根据标准通信协议检测主处理机是否请求发送数据,如果检测到请求,根据标准通信协议规定接收数据,接收完数据后,将其格式转化为主处理机命令形式记录在从处理机数据子模块中;
从处理机软件模块的处理主处理机命令子模块从从处理机数据子模块中取出待处理主处理机命令,判断命令类型,如果是更新配置信息,则根据主处理机命令中包含的配置信息更新对应的配置信息项,编写用于反馈的从处理机消息,并调用发送从处理机消息子模块发送该从处理机消息;然后重新启动本从处理机;如果是键盘/鼠标操作命令,根据主处理机命令包含的参数对象编写对应的键盘/鼠标操作命令,并将其写入从处理机数据子模块中;然后清除从处理机数据子模块中的待处理主处理机命令数据项;
从处理机软件模块的发送从处理机消息子模块从从处理机数据子模块中取出待发送从处理将消息,按标准通信协议将其发送给主处理机;然后将从处理机数据子模块中的待发送从处理机消息清除;
从处理机软件模块的发送键盘/鼠标命令子模块按标准通信协议把从处理机数据模块中的待发送键盘/鼠标命令封装为标准的数据包,放入通信模块的缓冲区中;检测是否发送成功;编写表示发送成功或失败的从处理机消息,并将其放任从处理机数据子模块中;清除从处理机数据子模块中的待发送键盘/鼠标命令。
本发明所述的装置可靠性强,可模拟多个鼠标或键盘,并向上层应用反馈操作结果;解决了现有计算机的模拟鼠标/键盘控制装置只能控制一个鼠标或键盘以及无法向上层应用反馈操作结果的问题,可广泛适用于计算机模拟鼠标/键盘控制。
附图说明
图1本发明的结构示意图。
具体实施方式
一种多鼠标/键盘模拟装置,包括主处理机工作组、若干个从处理机工作组、标准通信总线、主控制机工作组、若干个被控制机工作组、主板、电源、以及软件模块;主处理机工作组、标准通信总线和从处理机工作组均集成在主板上;电源与主板的电源端相连;标准通信总线由总线控制器、以及通信介质构成;主处理机工作组和从处理机工作组均由处理机、通信模块和内部通信模块构成;其中,主处理机工作组的处理机称为主处理机,从处理机工作组的处理机称为从处理机;被控制机工作组包括被控制机、以及通信模块;主控制机工作组包括主控制机、以及通信模块;主处理机工作组的内部通信模块经标准通信总线的总线控制器分别与各个从处理机工作组的内部通信模块相连;主处理机工作组的通信模块与主控制机工作组的通信模块相连,构成物理链路,并在其上根据标准通信协议进行通信;从处理机的通信模块分别与对应的被控制机通信模块相连,构成物理链路,并在其上根据PS/2协议、USB协议或无线通信协议进行通信;主控制机命令包括命令类型和参数对象两个数据项;命令类型为枚举型或整型,包括键盘操作、鼠标操作、获取从处理机配置、更新从处理机配置;参数对象包含对应命令的参数信息;主处理机收到主控制机命令,经过处理后,向对应的从处理机发送对应的主处理机命令,并接收从处理机工作组发来的从处理机消息;从处理机机工作组收到主处理机命令后,进行处理,通过从处理机的通信模块按标准通信协议USB协议、PS/2协议或无线通信协议向被控制机发送相应信息,并接收被控制机的反馈信息,处理后再生成从处理机消息发给主处理机工作组;
软件模块包括设于主控制机内的控制机驱动软件模块、设于主处理机内的主处理机软件模块、以及设于从处理机内的从处理机软件模块;控制机驱动软件模块为标准硬件驱动程序,提供配置从处理机和向主处理机发送鼠标/键盘操作命令的软件接口,它由操作系统和上层应用软件调用;主处理机软件模块在加电时自动加载,负责处理主控制机命令和从处理机消息,并向主控制机发送响应主控制机命令或报告主处理机工作组和从处理机工作组状态的主处理机消息,向从处理机发送主处理机命令;从处理机软件模块在加电时自动加载,负责处理主处理机命令,并向主处理机工作组报告主处理机命令的执行结果及其工作状态的从处理机消息;
控制机驱动软件模块包含驱动初始化子模块、配置模拟装置子模块、获取模拟装置配置表子模块、发送模拟操作命令子模块、接收主处理机消息子模块、处理主处理机消息子模块、通信子模块、以及模拟装置配置数据模块;
控制机驱动软件模块的驱动初始化子模块在操作系统检测到模拟装置硬件后由操作系统调用,从模拟装置配置数据模块中读取初始化数据,生成初始化命令,并调用通信子模块发送初始化命令、接收主处理机工作组消息,根据主处理机工作组消息生成下一个初始化命令,循环处理直到初始化交互完成;
控制机驱动软件模块的配置模拟装置子模块由上层应用软件调用,有两个参数,分别为从处理机ID号和模拟设备类型;从处理机ID号指明要配置哪个从处理机工作组;模拟设备类型指明要将该从处理机工作组配置为鼠标模拟器还是键盘模拟器;其工作流程为:
1001.生成配置从处理机命令;
1002.调用通信子模块向主处理机工作组发送配置从处理机命令;
1003.结束操作;
控制机驱动软件模块的获取模拟装置配置子模块由上层应用程序调用,参数为主处理机ID号,表示要获取的主处理机的ID号,可用-1或大于最大从处理机ID号的值表示主处理机;工作流程为:
1101.检查模拟装置配置数据模块中是否有参数表中的主处理机ID号,如果没有,报错,结束操作;如果有,执行下一步;
1102.产生一个空的主控制机命令;
1103.将主控制机命令的命令类型设置为获取配置;
1104.将参数列表中的主处理机ID号封装为主控制机命令的参数对象;
1105.调用通信子模块发送主控制机命令;
1106.结束操作;
控制机驱动软件模块的发送模拟操作命令子模块由上层应用软件调用,包含的参数有:本命令ID号、从处理机ID号、操作类型和操作描述符;操作类型有键盘操作和鼠标操作;操作类型为键盘操作时操作描述符中包含的信息有操作哪个按键和操作的类型,如按下或者释放;操作类型为鼠标操作时操作描述符包含的信息为各方向移动距离、方向和各按键状态;其工作流程为:
1201.检查模拟装置配置数据模块中是否有参数表中的从处理机ID号,如果没有,报错,结束操作;如果有,执行下一步;
1202.检查模拟装置配置数据模块中参数表中的从处理机ID号对应的模拟类型是否为键盘;如果不是,报错,结束操作;如果是,执行下一步;
1203.检查键盘操作描述符是否合法;如果不合法,报错,结束操作;如果合法,执行下一步;
1204.产生一个命令ID号;
1205.产生一个空的主控制机命令;
1206.将主控制机命令的命令类型设置为键盘操作;
1207.将命令ID号、参数列表中的从处理机ID号和键盘操作描述符封装为主控制机命令的参数对象;
1208.调用通信子模块发送主控制机命令;
1209.将命令ID号放入待反馈命令列表中;
1210.结束操作;
控制机驱动软件模块的接收主处理机消息子模块由上层应用程序调用,工作流程为:
1301.初始化超时标记;
1302.调用通信子模块接收主处理机发送的主处理机消息;
1303.如果收到,执行步骤1305;否则检测是否超时,如果超时执行步骤1304,否则执行步骤1302;
1304. 报错,结束操作;
1305. 以接收到的主处理机消息为参数,调用处理主处理机消息子模块;
1306. 结束操作;
控制机驱动软件模块的处理主处理机消息子模块,参数为主处理机消息;工作流程为:
1401. 检查参数是否合法;如果不合法,报错,结束操作;如果合法,执行下一步;
1402.检查主处理机消息的消息类型,如果消息类型是更新从处理机状态,则执行步骤1403;如果消息类型是命令反馈,则执行步骤1405;
1403.更新模拟装置配置数据模块中对应的从处理机状态,结束操作;
1404. 从主处理机消息中取出参数对象;
1405.查找待反馈命令列表中是否有参数对象中包换的命令ID号,没有则结束操作;
1406.检查参数对象中的命令执行结果,如果表示执行成功,将该命令 ID号从待反馈命令列表中删除;如果表示执行不成功,则将该命令ID号从待反馈命令列表中移动到未成功执行命令列表中;
1407.结束操作;
控制机驱动软件模块的通信子模块包括接收和发送两个子单元,根据标准通信协议规定的流程接收和发送数据;
控制机驱动软件模块的模拟装置配置数据模块中保存标准通信协议所规定的配置信息,以及各从处理机工作组的状态信息,如待机/正常工作/故障、当前模拟鼠标还是键盘、ID号;
主处理机软件模块包括主处理机配置表数据子模块、临时数据子模块、主处理机主函数模块、主处理机初始化子模块、接收主控制机命令子模块、发送主处理机消息子模块、处理主控制机命令子模块、接收从处理机消息子模块、处理从处理机消息子模块、以及发送主处理机命令子模块;
主处理机软件模块的主处理机配置表数据子模块为数据模块,保存模拟装置设备描述信息、各从处理机配置信息和状态信息,从机状态信息的初始值为未初始化;
主处理机软件模块的临时数据子模块包括待发送主处理机命令列表、待发送主处理机消息列表、待处理从处理机消息列表、待处理主控制机命令列表、以及待反馈命令列表;
主处理机软件模块的主处理机主函数子模块在模拟装置加电时自动加载;其工作流程为:
2001.检查与主控制机建立通信信道是否已建立,如果尚未建立,则调用主处理机初始化子模块与主控制机建立通信信道;
2002. 分别执行以下六个步骤,执行顺序可互换:
2002.1 调用接收主控制机命令子模块;
2002.2调用处理主控制机命令子模块;
2002.3调用接收从处理机消息模块;
2002.4调用处理从处理机消息模块;
2002.5调用发送主处理机消息模块;
2002.6调用发送主处理机命令模块;
2003. 执行步骤2001;
主处理机软件模块的主处理机初始化子模块从主处理机配置表数据模块获取配置信息,按标准通信协议从通信模块中读取初始化命令数据包,或写入初始化命令数据包,建立与主控制机的通信信道;
主处理机软件模块的接收主控制机命令子模块用于接收主控制机发来的数据,其工作流程为:
2101. 检测主处理机的通信模块缓冲区中是否有数据,有则执行下一步,没有则执行步骤2104;
2102.从主处理机的通信模块缓冲区中读取数据;
2103.检查读取到的数据是否为主控制机命令,如果是则执行步骤2103.1,否则执行步骤2104; 
2103.1将数据格式化为主控制机命令;
2103.2将该主控制机命令添加到待处理主控制机命令列表中;
2103.3执行步骤2101;
2104.结束操作;
主处理机软件模块的发送主处理机消息子模块用于向主控制机发送主处理机消息,工作流程为:
2201.检查待发送主处理机消息列表是否为空,如果为空则结束操作,否则执行下一步;
2202.从待发送主处理机消息列表中取出一个主处理机消息作为当前主处理机消息;
2203.按标准通信协议要求将当前主处理机消息格式化为数据包;
2204.向主处理机的通信模块缓冲区中写入数据包;
2205.执行步骤2201;
主处理机软件模块的处理主控制机命令子模块用于处理已收到的主控制机命令,工作流程为:
2301.检查待处理主控制机命令列表是否为空,如果为空,则结束操作,否则执行下一步;
2302.从待处理主控制机命令列表中取出一个主控制机命令作为当前主控制机命令;
2303. 检查命令类型,如果命令类型是键盘操作或鼠标操作,则执行步骤2303. 1;如果是获取从处理机配置,则执行步骤2303.2;如果是更新从处理机配置,则执行步骤2303.3;
2303.1检查对应从处理机的模拟类型是否与命令类型一致,如果一致执行步骤2303.1.1,否则执行步骤2303.1.2;
2303.1.1 将当前主控制机命令格式化为主处理机命令,并添加到待发送主处理机命令列表;
2303.1.2 从当前主控制机命令中取出命令序号,和错误码一起封装成主处理机消息,放入待发送主处理机消息列表中;
2303.2从主处理机配置表数据模块中取出对应从处理机的配置信息,封装成主处理机消息,放入待发送主处理机消息列表中;
2303.3 检查主控制机命令中的参数对象所列从处理机配置是否与主处理机配置表数据模块中对应从处理机当前的配置信息完全相同,如果完全相同,则执行步骤2303. 3. 1,否则执行步骤2303. 3. 2;
2303.3.1从当前主控制机命令中取出命令序号,和执行成功码一起封装成主处理机消息,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机消息列表中;
2303.3.2 将命令序号、与对应从处理机当前配置信息不同的配置项、以及对应从处理机ID封装成主处理机命令,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机命令列表;
2304. 执行步骤2301;
主处理机软件模块的接收从处理机消息子模块用于接收从处理机发来的从处理机消息,其工作流程为:
2401.根据标准通信协议检测是否有从处理机请求通信,如果有执行下一步,否则结束操作;
2402.根据标准通信协议接收从处理机发来的数据;
2403.检查收到的数据是否为从处理机消息,是则执行下一步,否则执行步骤2405:
2404.将收到的数据格式化为从处理机消息,放入待处理从处理机消息列表中;
2405.执行步骤2401;
主处理机软件模块的处理从处理机消息子模块用于处理已收到的从处理机消息,工作流程为:
2501. 检查待处理从处理机消息列表是否为空,如果为空,则结束操作,否则执行下一步:
2502. 从待处理从处理机消息列表中取出一个从处理机消息作为当前从处理机消息;
2503. 检查消息类型,如果是获取配置信息,则执行步骤2503.1;如果是命令反馈,则执行步骤2503.2;
2503.1取出对应从处理机的配置信息,将其和从处理机ID封装成主处理机命令,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机命令列表;
2503.2 根据消息中的原命令类型和参数对象修改对应从处理机的工作状态,编写对应的主处理机消息,并将其放入待发送主处理机消息列表中;2504. 结束操作;
主处理机软件模块的发送主处理机命令子模块用于向从处理机发送主处理机命令,工作流程为:
2601. 检查待发送主处理机命令列表是否为空,如果为空则结束操作,否则执行下一步;
2602. 从待发送主处理机命令列表中取出一个主处理机命令作为当前主处理机命令;
2603. 检查主处理机配置表数据模块中对应从处理机的工作状态,如果状态为“就绪”,则执行下一步,否则将其重新放回待发送主处理机命令列表,执行步骤2601;
2603. 按标准通信协议要求将当前主处理机命令格式化为数据包;
2604. 根据标准通信协议向从处理机发送数据包;
2605. 将对应从处理机的工作状态改为“繁忙”;
2606. 将当前主处理机命令放入待反馈命令列表中;
2607.执行步骤2601;
从处理机软件模块包括从处理机配置数据子模块、从处理机主程序子模块、初始化从处理机子模块、接收主处理机命令子模块、处理主处理机命令子模块、发送从处理机消息子模块、发送键盘/鼠标命令子模块;
从处理机软件模块的从处理机配置数据子模块保存从处理机的配置信息,包括设备描述符、从处理机ID号、模拟类型和待处理主处理机命令、待发送从处理机消息、键盘/鼠标命令;
从处理机软件模块的从处理机主程序子模块在从处理机加电时自动执行,工作流程为:
3001. 调用初始化从处理机子模块;
3002. 调用接收主处理机命令子模块,检查是否接收到主处理机命令,如果接收到了执行下一步,否则执行步骤3002;
3003. 调用处理主处理机命令子模块,处理接收到的主处理机命令;
3004. 调用发送键盘/鼠标命令子模块;
3005. 调用发送从处理机消息子模块;
3006. 执行步骤3002;
从处理机软件模块的初始化从处理机子模块负责从主处理机获取配置信息,并与被控制机建立通信信道,工作流程为:
3101. 编写表示请求从处理机配置信息的从处理机消息;
3102. 调用发送从处理机消息子模块,发送从处理机消息;
3103. 循环调用接收主处理机命令模块,直到收到包含本从处理机配置信息的主处理机命令,执行下一步;
3104. 根据主处理机命令中包含的从处理机配置信息更新从处理机配置数据子模块中相应的数据;
3105. 根据从处理机配置信息和标准通信协议从通信模块的缓冲区中读取和写入初始化数据包;
3106.检测是否正确建立与被控制机之间的通信信道,如果没有,执行步骤3105,否则执行下一步;
3107.编写表示从处理机工作状态为就绪的从处理机消息;
3108.调用发送从处理机消息子模块,发送从处理机消息;
3109.结束操作;
从处理机软件模块的接收主处理机命令子模块根据标准通信协议检测主处理机是否请求发送数据,如果检测到请求,根据标准通信协议规定接收数据,接收完数据后,将其格式转化为主处理机命令形式记录在从处理机数据子模块中;
从处理机软件模块的处理主处理机命令子模块从从处理机数据子模块中取出待处理主处理机命令,判断命令类型,如果是更新配置信息,则根据主处理机命令中包含的配置信息更新对应的配置信息项,编写用于反馈的从处理机消息,并调用发送从处理机消息子模块发送该从处理机消息;然后重新启动本从处理机;如果是键盘/鼠标操作命令,根据主处理机命令包含的参数对象编写对应的键盘/鼠标操作命令,并将其写入从处理机数据子模块中;然后清除从处理机数据子模块中的待处理主处理机命令数据项;
从处理机软件模块的发送从处理机消息子模块从从处理机数据子模块中取出待发送从处理将消息,按标准通信协议将其发送给主处理机;然后将从处理机数据子模块中的待发送从处理机消息清除;
从处理机软件模块的发送键盘/鼠标命令子模块按标准通信协议把从处理机数据模块中的待发送键盘/鼠标命令封装为标准的数据包,放入通信模块的缓冲区中;检测是否发送成功;编写表示发送成功或失败的从处理机消息,并将其放任从处理机数据子模块中;清除从处理机数据子模块中的待发送键盘/鼠标命令。

Claims (1)

1.一种多鼠标/键盘模拟装置,其特征在于:包括主处理机工作组、若干个从处理机工作组、标准通信总线、主控制机工作组、若干个被控制机工作组、主板、电源、以及软件模块;主处理机工作组、标准通信总线和从处理机工作组均集成在主板上;电源与主板的电源端相连;标准通信总线由总线控制器、以及通信介质构成;主处理机工作组和从处理机工作组均由处理机、通信模块和内部通信模块构成;其中,主处理机工作组的处理机称为主处理机,从处理机工作组的处理机称为从处理机;被控制机工作组包括被控制机、以及通信模块;主控制机工作组包括主控制机、以及通信模块;主处理机工作组的内部通信模块经标准通信总线的总线控制器分别与各个从处理机工作组的内部通信模块相连;主处理机工作组的通信模块与主控制机工作组的通信模块相连,构成物理链路,并在其上根据标准通信协议进行通信;从处理机的通信模块分别与对应的被控制机通信模块相连,构成物理链路,并在其上根据PS/2协议、USB协议或无线通信协议进行通信;主控制机命令包括命令类型和参数对象两个数据项;命令类型为枚举型或整型,包括键盘操作、鼠标操作、获取从处理机配置、更新从处理机配置;参数对象包含对应命令的参数信息;主处理机收到主控制机命令,经过处理后,向对应的从处理机发送对应的主处理机命令,并接收从处理机工作组发来的从处理机消息;从处理机机工作组收到主处理机命令后,进行处理,通过从处理机的通信模块按标准通信协议USB协议、PS/2协议或无线通信协议向被控制机发送相应信息,并接收被控制机的反馈信息,处理后再生成从处理机消息发给主处理机工作组;
软件模块包括设于主控制机内的控制机驱动软件模块、设于主处理机内的主处理机软件模块、以及设于从处理机内的从处理机软件模块;控制机驱动软件模块为标准硬件驱动程序,提供配置从处理机和向主处理机发送鼠标/键盘操作命令的软件接口,它由操作系统和上层应用软件调用;主处理机软件模块在加电时自动加载,负责处理主控制机命令和从处理机消息,并向主控制机发送响应主控制机命令或报告主处理机工作组和从处理机工作组状态的主处理机消息,向从处理机发送主处理机命令;从处理机软件模块在加电时自动加载,负责处理主处理机命令,并向主处理机工作组报告主处理机命令的执行结果及其工作状态的从处理机消息;
控制机驱动软件模块包含驱动初始化子模块、配置模拟装置子模块、获取模拟装置配置表子模块、发送模拟操作命令子模块、接收主处理机消息子模块、处理主处理机消息子模块、通信子模块、以及模拟装置配置数据模块;
控制机驱动软件模块的驱动初始化子模块在操作系统检测到模拟装置硬件后由操作系统调用,从模拟装置配置数据模块中读取初始化数据,生成初始化命令,并调用通信子模块发送初始化命令、接收主处理机工作组消息,根据主处理机工作组消息生成下一个初始化命令,循环处理直到初始化交互完成;
控制机驱动软件模块的配置模拟装置子模块由上层应用软件调用,有两个参数,分别为从处理机ID号和模拟设备类型;从处理机ID号指明要配置哪个从处理机工作组;模拟设备类型指明要将该从处理机工作组配置为鼠标模拟器还是键盘模拟器;其工作流程为:
1001.生成配置从处理机命令;
1002.调用通信子模块向主处理机工作组发送配置从处理机命令;
1003.结束操作;
控制机驱动软件模块的获取模拟装置配置子模块由上层应用程序调用,参数为主处理机ID号,表示要获取的主处理机的ID号,可用-1或大于最大从处理机ID号的值表示主处理机;工作流程为:
1101.检查模拟装置配置数据模块中是否有参数表中的主处理机ID号,如果没有,报错,结束操作;如果有,执行下一步;
1102.产生一个空的主控制机命令;
1103.将主控制机命令的命令类型设置为获取配置;
1104.将参数列表中的主处理机ID号封装为主控制机命令的参数对象;
1105.调用通信子模块发送主控制机命令;
1106.结束操作;
控制机驱动软件模块的发送模拟操作命令子模块由上层应用软件调用,包含的参数有:本命令ID号、从处理机ID号、操作类型和操作描述符;操作类型有键盘操作和鼠标操作;操作类型为键盘操作时操作描述符中包含的信息有操作哪个按键和操作的类型,如按下或者释放;操作类型为鼠标操作时操作描述符包含的信息为各方向移动距离、方向和各按键状态;其工作流程为:
1201.检查模拟装置配置数据模块中是否有参数表中的从处理机ID号,如果没有,报错,结束操作;如果有,执行下一步;
1202.检查模拟装置配置数据模块中参数表中的从处理机ID号对应的模拟类型是否为键盘;如果不是,报错,结束操作;如果是,执行下一步;
1203.检查键盘操作描述符是否合法;如果不合法,报错,结束操作;如果合法,执行下一步;
1204.产生一个命令ID号;
1205.产生一个空的主控制机命令;
1206.将主控制机命令的命令类型设置为键盘操作;
1207.将命令ID号、参数列表中的从处理机ID号和键盘操作描述符封装为主控制机命令的参数对象;
1208.调用通信子模块发送主控制机命令;
1209.将命令ID号放入待反馈命令列表中;
1210.结束操作;
控制机驱动软件模块的接收主处理机消息子模块由上层应用程序调用,工作流程为:
1301.初始化超时标记;
1302.调用通信子模块接收主处理机发送的主处理机消息;
1303.如果收到,执行步骤1305;否则检测是否超时,如果超时执行步骤1304,否则执行步骤1302;
报错,结束操作;
以接收到的主处理机消息为参数,调用处理主处理机消息子模块;
结束操作;
控制机驱动软件模块的处理主处理机消息子模块,参数为主处理机消息;工作流程为:
检查参数是否合法;如果不合法,报错,结束操作;如果合法,执行下一步;
1402.检查主处理机消息的消息类型,如果消息类型是更新从处理机状态,则执行步骤1403;如果消息类型是命令反馈,则执行步骤1405;
1403.更新模拟装置配置数据模块中对应的从处理机状态,结束操作;
从主处理机消息中取出参数对象;
1405.查找待反馈命令列表中是否有参数对象中包换的命令ID号,没有则结束操作;
1406.检查参数对象中的命令执行结果,如果表示执行成功,将该命令 ID号从待反馈命令列表中删除;如果表示执行不成功,则将该命令ID号从待反馈命令列表中移动到未成功执行命令列表中;
1407.结束操作;
控制机驱动软件模块的通信子模块包括接收和发送两个子单元,根据标准通信协议规定的流程接收和发送数据;
控制机驱动软件模块的模拟装置配置数据模块中保存标准通信协议所规定的配置信息,以及各从处理机工作组的状态信息,如待机/正常工作/故障、当前模拟鼠标还是键盘、ID号;
主处理机软件模块包括主处理机配置表数据子模块、临时数据子模块、主处理机主函数模块、主处理机初始化子模块、接收主控制机命令子模块、发送主处理机消息子模块、处理主控制机命令子模块、接收从处理机消息子模块、处理从处理机消息子模块、以及发送主处理机命令子模块;
主处理机软件模块的主处理机配置表数据子模块为数据模块,保存模拟装置设备描述信息、各从处理机配置信息和状态信息,从机状态信息的初始值为未初始化;
主处理机软件模块的临时数据子模块包括待发送主处理机命令列表、待发送主处理机消息列表、待处理从处理机消息列表、待处理主控制机命令列表、以及待反馈命令列表;
主处理机软件模块的主处理机主函数子模块在模拟装置加电时自动加载;其工作流程为:
2001.检查与主控制机建立通信信道是否已建立,如果尚未建立,则调用主处理机初始化子模块与主控制机建立通信信道;
分别执行以下六个步骤,执行顺序可互换:
2002.1 调用接收主控制机命令子模块;
2002.2调用处理主控制机命令子模块;
2002.3调用接收从处理机消息模块;
2002.4调用处理从处理机消息模块;
2002.5调用发送主处理机消息模块;
2002.6调用发送主处理机命令模块;
执行步骤2001;
主处理机软件模块的主处理机初始化子模块从主处理机配置表数据模块获取配置信息,按标准通信协议从通信模块中读取初始化命令数据包,或写入初始化命令数据包,建立与主控制机的通信信道;
主处理机软件模块的接收主控制机命令子模块用于接收主控制机发来的数据,其工作流程为:
检测主处理机的通信模块缓冲区中是否有数据,有则执行下一步,没有则执行步骤2104;
2102.从主处理机的通信模块缓冲区中读取数据;
2103.检查读取到的数据是否为主控制机命令,如果是则执行步骤2103.1,否则执行步骤2104; 
2103.1将数据格式化为主控制机命令;
2103.2将该主控制机命令添加到待处理主控制机命令列表中;
2103.3执行步骤2101;
2104.结束操作;
主处理机软件模块的发送主处理机消息子模块用于向主控制机发送主处理机消息,工作流程为:
2201.检查待发送主处理机消息列表是否为空,如果为空则结束操作,否则执行下一步;
2202.从待发送主处理机消息列表中取出一个主处理机消息作为当前主处理机消息;
2203.按标准通信协议要求将当前主处理机消息格式化为数据包;
2204.向主处理机的通信模块缓冲区中写入数据包;
2205.执行步骤2201;
主处理机软件模块的处理主控制机命令子模块用于处理已收到的主控制机命令,工作流程为:
2301.检查待处理主控制机命令列表是否为空,如果为空,则结束操作,否则执行下一步;
2302.从待处理主控制机命令列表中取出一个主控制机命令作为当前主控制机命令;
检查命令类型,如果命令类型是键盘操作或鼠标操作,则执行步骤2303. 1;如果是获取从处理机配置,则执行步骤2303.2;如果是更新从处理机配置,则执行步骤2303.3;
2303.1检查对应从处理机的模拟类型是否与命令类型一致,如果一致执行步骤2303.1.1,否则执行步骤2303.1.2;
2303.1.1 将当前主控制机命令格式化为主处理机命令,并添加到待发送主处理机命令列表;
2303.1.2 从当前主控制机命令中取出命令序号,和错误码一起封装成主处理机消息,放入待发送主处理机消息列表中;
2303.2从主处理机配置表数据模块中取出对应从处理机的配置信息,封装成主处理机消息,放入待发送主处理机消息列表中;
2303.3 检查主控制机命令中的参数对象所列从处理机配置是否与主处理机配置表数据模块中对应从处理机当前的配置信息完全相同,如果完全相同,则执行步骤2303. 3. 1,否则执行步骤2303. 3. 2;
2303.3.1从当前主控制机命令中取出命令序号,和执行成功码一起封装成主处理机消息,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机消息列表中;
2303.3.2 将命令序号、与对应从处理机当前配置信息不同的配置项、以及对应从处理机ID封装成主处理机命令,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机命令列表;
执行步骤2301;
主处理机软件模块的接收从处理机消息子模块用于接收从处理机发来的从处理机消息,其工作流程为:
2401.根据标准通信协议检测是否有从处理机请求通信,如果有执行下一步,否则结束操作;
2402.根据标准通信协议接收从处理机发来的数据;
2403.检查收到的数据是否为从处理机消息,是则执行下一步,否则执行步骤2405:
2404.将收到的数据格式化为从处理机消息,放入待处理从处理机消息列表中;
2405.执行步骤2401;
主处理机软件模块的处理从处理机消息子模块用于处理已收到的从处理机消息,工作流程为:
检查待处理从处理机消息列表是否为空,如果为空,则结束操作,否则执行下一步:
从待处理从处理机消息列表中取出一个从处理机消息作为当前从处理机消息;
检查消息类型,如果是获取配置信息,则执行步骤2503.1;如果是命令反馈,则执行步骤2503.2;
2503.1取出对应从处理机的配置信息,将其和从处理机ID封装成主处理机命令,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机命令列表;
2503.2 根据消息中的原命令类型和参数对象修改对应从处理机的工作状态,编写对应的主处理机消息,并将其放入待发送主处理机消息列表中;2504. 结束操作;
主处理机软件模块的发送主处理机命令子模块用于向从处理机发送主处理机命令,工作流程为:
检查待发送主处理机命令列表是否为空,如果为空则结束操作,否则执行下一步;
从待发送主处理机命令列表中取出一个主处理机命令作为当前主处理机命令;
检查主处理机配置表数据模块中对应从处理机的工作状态,如果状态为“就绪”,则执行下一步,否则将其重新放回待发送主处理机命令列表,执行步骤2601;
按标准通信协议要求将当前主处理机命令格式化为数据包;
根据标准通信协议向从处理机发送数据包;
将对应从处理机的工作状态改为“繁忙”;
将当前主处理机命令放入待反馈命令列表中;
2607.执行步骤2601;
从处理机软件模块包括从处理机配置数据子模块、从处理机主程序子模块、初始化从处理机子模块、接收主处理机命令子模块、处理主处理机命令子模块、发送从处理机消息子模块、发送键盘/鼠标命令子模块;
从处理机软件模块的从处理机配置数据子模块保存从处理机的配置信息,包括设备描述符、从处理机ID号、模拟类型和待处理主处理机命令、待发送从处理机消息、键盘/鼠标命令;
从处理机软件模块的从处理机主程序子模块在从处理机加电时自动执行,工作流程为:
调用初始化从处理机子模块;
调用接收主处理机命令子模块,检查是否接收到主处理机命令,如果接收到了执行下一步,否则执行步骤3002;
调用处理主处理机命令子模块,处理接收到的主处理机命令;
调用发送键盘/鼠标命令子模块;
调用发送从处理机消息子模块;
执行步骤3002;
从处理机软件模块的初始化从处理机子模块负责从主处理机获取配置信息,并与被控制机建立通信信道,工作流程为:
编写表示请求从处理机配置信息的从处理机消息;
调用发送从处理机消息子模块,发送从处理机消息;
循环调用接收主处理机命令模块,直到收到包含本从处理机配置信息的主处理机命令,执行下一步;
根据主处理机命令中包含的从处理机配置信息更新从处理机配置数据子模块中相应的数据;
根据从处理机配置信息和标准通信协议从通信模块的缓冲区中读取和写入初始化数据包;
3106.检测是否正确建立与被控制机之间的通信信道,如果没有,执行步骤3105,否则执行下一步;
3107.编写表示从处理机工作状态为就绪的从处理机消息;
3108.调用发送从处理机消息子模块,发送从处理机消息;
3109.结束操作;
从处理机软件模块的接收主处理机命令子模块根据标准通信协议检测主处理机是否请求发送数据,如果检测到请求,根据标准通信协议规定接收数据,接收完数据后,将其格式转化为主处理机命令形式记录在从处理机数据子模块中;
从处理机软件模块的处理主处理机命令子模块从从处理机数据子模块中取出待处理主处理机命令,判断命令类型,如果是更新配置信息,则根据主处理机命令中包含的配置信息更新对应的配置信息项,编写用于反馈的从处理机消息,并调用发送从处理机消息子模块发送该从处理机消息;然后重新启动本从处理机;如果是键盘/鼠标操作命令,根据主处理机命令包含的参数对象编写对应的键盘/鼠标操作命令,并将其写入从处理机数据子模块中;然后清除从处理机数据子模块中的待处理主处理机命令数据项;
从处理机软件模块的发送从处理机消息子模块从从处理机数据子模块中取出待发送从处理将消息,按标准通信协议将其发送给主处理机;然后将从处理机数据子模块中的待发送从处理机消息清除;
从处理机软件模块的发送键盘/鼠标命令子模块按标准通信协议把从处理机数据模块中的待发送键盘/鼠标命令封装为标准的数据包,放入通信模块的缓冲区中;检测是否发送成功;编写表示发送成功或失败的从处理机消息,并将其放任从处理机数据子模块中;清除从处理机数据子模块中的待发送键盘/鼠标命令。
CN2011102395844A 2011-08-20 2011-08-20 一种多鼠标/键盘模拟装置 Expired - Fee Related CN102298446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011102395844A CN102298446B (zh) 2011-08-20 2011-08-20 一种多鼠标/键盘模拟装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011102395844A CN102298446B (zh) 2011-08-20 2011-08-20 一种多鼠标/键盘模拟装置

Publications (2)

Publication Number Publication Date
CN102298446A true CN102298446A (zh) 2011-12-28
CN102298446B CN102298446B (zh) 2013-02-20

Family

ID=45358903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011102395844A Expired - Fee Related CN102298446B (zh) 2011-08-20 2011-08-20 一种多鼠标/键盘模拟装置

Country Status (1)

Country Link
CN (1) CN102298446B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425255A (zh) * 2013-05-28 2013-12-04 李家海 鼠标键盘显示屏综合分支器
WO2015051478A1 (es) * 2013-10-11 2015-04-16 Guerrero Gonzalez José Alejandro Sistema computacional de operación múltiple destinado a mejorar las actividades de aprendizaje grupal

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527218A (zh) * 2003-03-05 2004-09-08 广达电脑股份有限公司 虚拟键盘与鼠标的控制装置
CN1591336A (zh) * 2003-08-25 2005-03-09 联想(北京)有限公司 模拟计算机键盘或鼠标操作的方法
US20070136498A1 (en) * 2005-12-14 2007-06-14 Aten International Co., Ltd. KVM system for controlling computers and method thereof
CN101556501A (zh) * 2008-04-11 2009-10-14 深圳富泰宏精密工业有限公司 计算机鼠标模拟系统及方法
CN201607691U (zh) * 2009-12-22 2010-10-13 精元电脑股份有限公司 具有数字绘图触控板的键盘装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527218A (zh) * 2003-03-05 2004-09-08 广达电脑股份有限公司 虚拟键盘与鼠标的控制装置
CN1591336A (zh) * 2003-08-25 2005-03-09 联想(北京)有限公司 模拟计算机键盘或鼠标操作的方法
US20070136498A1 (en) * 2005-12-14 2007-06-14 Aten International Co., Ltd. KVM system for controlling computers and method thereof
CN101556501A (zh) * 2008-04-11 2009-10-14 深圳富泰宏精密工业有限公司 计算机鼠标模拟系统及方法
CN201607691U (zh) * 2009-12-22 2010-10-13 精元电脑股份有限公司 具有数字绘图触控板的键盘装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425255A (zh) * 2013-05-28 2013-12-04 李家海 鼠标键盘显示屏综合分支器
WO2015051478A1 (es) * 2013-10-11 2015-04-16 Guerrero Gonzalez José Alejandro Sistema computacional de operación múltiple destinado a mejorar las actividades de aprendizaje grupal

Also Published As

Publication number Publication date
CN102298446B (zh) 2013-02-20

Similar Documents

Publication Publication Date Title
CN104111867B (zh) 一种虚拟机迁移装置及方法
CN107608693A (zh) 版本升级方法及终端设备
CN107341039A (zh) 一种虚拟环境下对usb设备进行管理的方法、主机和系统
CN103559124A (zh) 故障快速检测方法及装置
CN101276316A (zh) 用于控制主机设备与usb设备之间的通信的装置、方法及系统
CN1591336B (zh) 模拟计算机键盘或鼠标操作的方法
CN105094877A (zh) 一种固件升级的方法和主机端装置及系统
CN102419753B (zh) 信息处理设备、信息处理方法和信息处理系统
CN113076144A (zh) 功放适配方法、终端设备、存储介质及计算机程序产品
CN103902315A (zh) 一种多板卡在线更新的方法及其系统
CN102298446B (zh) 一种多鼠标/键盘模拟装置
CN102324129A (zh) 排队呼叫系统及其实现方法
CN104731579A (zh) 一种变频器键盘及变频器参数拷贝方法
CN102567071A (zh) 一种虚拟串口系统及其通信方法
CN107967223B (zh) 一种多产品线通用代码架构系统
CN106302010A (zh) 一种CANopen网络通信仿真测试方法及相关设备
CN102662739B (zh) 实现函数调用的方法和装置
CN100403285C (zh) 一种具有主机系统操作功能的半导体存储装置
CN105208200A (zh) 移动终端的系统升级方法及其移动终端
CN114296559A (zh) 条码录入方法、装置、系统、电子设备及介质
CN109032535A (zh) 一种raid组建方法及相关装置
CN109725621A (zh) 一种基于1553b总线和can总线的二级总线程序在线烧写方法
CN204595522U (zh) 控制设备的薄膜键盘系统
CN102193644A (zh) 计算机系统和模拟键盘输入的方法
JP6029501B2 (ja) ソフトウェア無線装置

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: 20130220

Termination date: 20190820

CF01 Termination of patent right due to non-payment of annual fee