diff --git a/README_zh.md b/README_zh.md index 5da0c726a4dbe95f92db2779194b6bdc3ad0eb3a..38c6ef966cb4e7a32b7c6b6ff5cd2cae8363612b 100644 --- a/README_zh.md +++ b/README_zh.md @@ -2,75 +2,68 @@ ## **简介** -分布式输入部件提供了跨设备的键鼠外设输入能力,使一台设备可以使用另一台设备的输入外设(如鼠标,键盘,触摸板等),在另一台设备上的操作作用于本设备。分布式输入不提供北向接口,由多模输入子系统提供接口供开发者调用分布式输入的能力。 +分布式输入提供了跨设备的输入外设控制能力,使一台设备可以使用另一台设备的输入外设(如鼠标,键盘,触摸板等)在本设备进行输入操作(如鼠标点击,键盘打字,触摸板滑动等),对端设备的外设输入事件在本机生效。 +分布式输入不提供北向接口,由[多模输入子系统](https://gitee.com/openharmony/multimodalinput_input)提供[分布式输入业务接口](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.multimodalInput.inputDeviceCooperate.d.ts)供开发者调用分布式输入的能力。 ### **概念说明** -**主控端(source)**:控制端设备,通过分布式输入向被控端设备发送命令,使用其键鼠输入的能力。 +**主控端(source)**:分布式输入控制端设备,向被控端设备发送指令,使用其外设输入的能力。 -**被控端(sink)**:被控制端设备,接受主控端发送的命令并且完成对应操作,提供本地键鼠外设供主控端设备使用。 +**被控端(sink)**:分布式输入被控制端设备,接受主控端发送的指令并且完成对应操作,提供本地外设供主控端设备使用。 ### **架构实现** -其系统架构图如下所示: +系统架构图如下所示: ![distributedinput_arch](figures/distributedinput_arch.png) -**分布式输入主控端(DInputSource)**:使用周边被控端设备键鼠输入能力的设备,称为分布式输入主控端,周边被控端设备键鼠事件可以在主控端生效。 +**分布式输入主控端(DInputSource)**:使用周边设备输入外设的设备,称为分布式输入主控端,周边设备输入外设输入事件可以在主控端生效。 -**分布式输入被控端(DInputSink)**:提供本地键鼠外设供主控端设备使用的设备,称为分布式输入被控端,物理键鼠连接在分布式输入被控端。 +**分布式输入被控端(DInputSink)**:提供本地输入外设供主控端设备使用的设备,称为分布式输入被控端,输入外设连接在分布式输入被控端。 -**分布式输入InnerSDK(DistributedInputSDK)**:为多模输入(multimodalinput_input)模块调用分布式输入能力提供的内部接口。 +**分布式输入InnerSDK(DistributedInputSDK)**:为多模输入模块调用分布式输入能力提供的内部接口。 -**分布式输入硬件框架南向扩展实现(DistributedInputFwkImpl)**:实现了分布式硬件管理框架(distributed_hardware_fwk)定义的部件扩展接口,供分布式硬件管理框架调度分布式输入部件能力。 +**分布式输入硬件框架南向扩展实现(DistributedInputFwkImpl)**:实现了[分布式硬件管理框架](https://gitee.com/openharmony/distributedhardware_distributed_hardware_fwk)定义的南向外设扩展接口,供分布式硬件管理框架调度分布式输入能力。 **分布式输入驱动管理(DInputDriverMgr)**:提供分布式输入驱动的添加和删除能力。 **事件过滤(EventFilter)**:提供组合键过滤能力,根据系统预置的组合键白名单进行组合键过滤,白名单上的组合键只在被控端设备生效,比如锁屏键等。 -**事件采集(EventCollector)**:用于从输入驱动采集键鼠原始事件。 +**事件采集(EventCollector)**:用于从输入驱动采集输入外设原始事件。 **事件发送(EventSender)**:用于将事件采集模块采集到的原始事件发送到主控端。 -**事件接收(EventReceiver)**:用于接收被控端事件发送模块发送的键鼠原始事件。 +**事件接收(EventReceiver)**:用于接收被控端事件发送模块发送的输入外设原始事件。 -**事件注入(EventInject)**:用于将被控端发送的键鼠原始事件注入虚拟键鼠驱动。 +**事件注入(EventInject)**:用于将被控端发送的输入外设原始事件注入虚拟输入驱动。 -**本地键鼠驱动(Local KeyBoard/Mouse)**:被控端键鼠在驱动层对应的驱动节点。 +**本地输入驱动(Local Input Driver)**:被控端输入外设在驱动层对应的驱动节点。 -**虚拟键鼠驱动(Virtual KeyBoard/Mouse)**:被控端键鼠信息通过分布式硬件管理框架同步信息到主控端后,主控端分布式硬件管理框架调用分布式输入驱动管理功能,在主控端为对应的被控端键鼠创建的虚拟键鼠驱动节点,和被控端键鼠节点对应。 +**虚拟输入驱动(Virtual Input Driver)**:被控端输入外设的硬件规格信息通过分布式硬件管理框架同步信息到主控端后,主控端分布式硬件管理框架调用分布式输入虚拟驱动注册功能,在主控端为对应的被控端输入外设创建的虚拟输入驱动节点,和被控端输入驱动节点对应。 ### **流程说明** -#### **1. 分布式输入初始化** +#### **1. 设备上线** -设备组网后,分布式硬件管理框架进行本地输入外设的信息查询,同时进行分布式输入source侧和sink侧的初始化。 +设备组网并认证通过后,会触发设备上线事件,[设备管理](https://gitee.com/openharmony/distributedhardware_device_manager)发现设备上线后,启动分布式硬件管理框架,分布式硬件管理框架启动完成后,会进行本地输入外设的信息查询和跨设备同步,同时进行分布式输入主控端和被控端模块的初始化。 #### **2. 分布式输入驱动的准备** -分布式硬件管理框架获取到被控端设备上线的输入外设信息后,会调用分布式输入在主控端设备注册分布式输入驱动接口,为被控端设备外设在主控端设备注册对应的外设虚拟驱动节点,作为被控端设备外设的代理,该代理会被多模输入管理起来,并供外部应用调用。 +分布式硬件管理框架同步到被控端设备的输入外设硬件规格信息后,会调用分布式输入驱动注册接口,为被控端设备输入外设在主控端设备注册对应的外设虚拟驱动节点,作为被控端设备外设的代理,该代理会被多模输入自动发现并和本地输入外设一起管理起来。 #### **3. 使用分布式输入能力** -(1) 应用可以通过调用多模输入的能力查询接口,查询到对端可信设备具有的分布式输入能力。 +(1) 应用可以调用多模输入的“键鼠穿越功能开关”接口,打开键鼠穿越功能开关,开关打开后,应用可以调用下述“开始穿越”和“停止穿越”接口,控制被控端输入外设生效的设备。 -(2) 应用可以通过调用多模输入的键鼠穿越开关接口,打开键鼠穿越的功能开关。 +(2) 应用可以调用多模输入的“开始穿越”接口,启动键鼠外设的跨设备输入能力,此时被控端输入外设(键盘,鼠标,触摸板等)产生的输入事件可以在主控端生效。 -(3) 应用可以通过调用多模输入的键鼠穿越接口,启动键鼠外设的跨设备输入能力: +(3) 应用可以调用多模输入的“停止穿越”接口,停止键鼠外设的跨设备输入能力,此时被控端输入外设(键盘,鼠标,触摸板等)产生的输入事件在本地生效,不再控制主控端。 -- 设备间首次进行键鼠穿越时,分布式输入部件会启动相关的资源准备,包括设备间网络连接的建立以及相关资源线程的启动等; - -- 键鼠穿越成功后,分布式输入部件会通知主控端设备开始使用被控端设备的输入外设,此时被控端设备的分布式输入服务采集到输入外设原始事件并回传到主控端,主控端分布式输入接收到事件并注入到对应的分布式输入驱动,多模输入模块获取到注入的被控端外设事件,进行事件处理后在本地生效,从而实现了主控端对被控端输入外设的使用。 - -(4) 如果键鼠不再需要穿越,应用可以通过调用多模输入的停止穿越接口,通知被控端分布式输入服务不再回传被控端的外设事件,被控端外设事件在被控端本地生效。 - -(5) 如果业务方停止使用键鼠穿越,应用可以通过调用多模输入的接口关闭键鼠穿越开关,停止使用键鼠穿越能力。 - -备注:关于多模输入分布式输入相关接口的使用,参见多模输入相关文档。 +备注:关于多模输入分布式输入相关接口的使用,参见[多模输入相关文档](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.multimodalInput.inputDeviceCooperate.d.ts)。 #### **4. 设备下线** -设备下线后,分布式硬件管理框架去使能下线设备的输入外设,移除分布式输入驱动,此时下线设备的分布式输入外设不可用。 +设备下线后,分布式硬件管理框架去使能下线设备的输入外设,移除下线设备输入外设对应的虚拟输入驱动,两个设备之间不再拥有分布式输入能力。 ## **目录**