From dcf0d7c7b65784d0cfe8424c1a5bb8c18e79b73f Mon Sep 17 00:00:00 2001 From: joe49 Date: Tue, 4 Apr 2023 10:14:36 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: joe49 --- README_zh.md | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/README_zh.md b/README_zh.md index b6c739b..b34f840 100644 --- a/README_zh.md +++ b/README_zh.md @@ -8,15 +8,23 @@ ![distributedinput_arch](figures/distributedinput_arch.png) -**分布式输入被控端(DInputSink)**:提供本地键鼠外设供其他设备使用的设备,称为分布式输入被控端,物理键鼠连接在分布式输入被控端。 +## **概念说明** -**分布式输入主控端(DInputSource)**:使用周边其他设备键鼠输入能力的设备,称为分布式输入主控端,周边其他设备键鼠事件可以在主控端生效。 +**主控端(source)**:控制端设备,通过分布式输入向被控端设备发送命令,使用周边被控端设备键鼠输入能力的设备。 -**分布式输入InnerSDK(DistributedInputSDK)**:用于供多模输入(multimodalinput_input)调用的分布式输入内部API,调用分布式输入能力。 +**被控端(sink)**:被控制端设备,接受主控端发送的命令并且完成对应操作,提供本地键鼠外设供主控端设备使用的设备。 + +## **架构说明** + +**分布式输入主控端(DInputSource)**:使用周边被控端设备键鼠输入能力的设备,称为分布式输入主控端,周边被控端设备键鼠事件可以在主控端生效。 + +**分布式输入被控端(DInputSink)**:提供本地键鼠外设供主控端设备使用的设备,称为分布式输入被控端,物理键鼠连接在分布式输入被控端。 + +**分布式输入InnerSDK(DistributedInputSDK)**:为多模输入(multimodalinput_input)模块调用分布式输入能力提供的内部接口。 **分布式输入硬件框架南向扩展实现(DistributedInputFwkImpl)**:实现了分布式硬件管理框架(distributed_hardware_fwk)定义的部件扩展接口,供分布式硬件管理框架调度分布式输入部件能力。 -**分布式输入驱动管理(DInputDriverMgr)**:管理分布式输入驱动,提供分布式输入驱动的添加和删除能力。 +**分布式输入驱动管理(DInputDriverMgr)**:提供分布式输入驱动的添加和删除能力。 **事件过滤(EventFilter)**:提供组合键过滤能力。部分组合键适合在本地生效,例如锁屏键;如果开启了分布式输入能力,被控端键鼠控制主控端设备,被控端锁屏键被多模输入识别后,通过过滤模块判断是否要在本地生效,如果在白名单中,则在本地生效,远端不生效。 @@ -24,9 +32,9 @@ **事件发送(EventSender)**:用于将事件采集模块采集到的原始事件发送到主控端。 -**事件接收(EventReceiver)**:用于接收事件发送模块发送的键鼠原始事件。 +**事件接收(EventReceiver)**:用于接收被控端事件发送模块发送的键鼠原始事件。 -**事件注入(EventInject)**:用于将被控端发送的键鼠原始事件注入虚拟键鼠驱动 +**事件注入(EventInject)**:用于将被控端发送的键鼠原始事件注入虚拟键鼠驱动。 **本地键鼠驱动(Local KeyBoard/Mouse)**:被控端键鼠在驱动层对应的驱动节点。 @@ -82,7 +90,7 @@ #### **2. 分布式输入驱动的准备** -分布式硬件管理框架监听数据库数据变化,如果从分布式数据获取到上线的其他设备同步的输入外设信息,会调用分布式输入主控端注册分布式输入驱动接口,为对端设备外设在本地注册对应的分布式外设,作为对端设备外设的代理;本地新注册的分布式输入外设,会被多模输入管理起来,并供外部应用调用。 +分布式硬件管理框架监听数据库数据变化,如果从分布式数据获取到上线的被控端设备同步的输入外设信息,会调用分布式输入主控端注册分布式输入驱动接口,为对端设备外设在本地注册对应的分布式外设,作为对端设备外设的代理;本地新注册的分布式输入外设,会被多模输入管理起来,并供外部应用调用。 #### **3. 使用分布式输入能力** -- Gitee From c6b8e25511376b2528d8036b56dec86e026d745f Mon Sep 17 00:00:00 2001 From: joe49 Date: Tue, 4 Apr 2023 10:16:47 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: joe49 --- README_zh.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README_zh.md b/README_zh.md index b34f840..81ba02c 100644 --- a/README_zh.md +++ b/README_zh.md @@ -76,13 +76,12 @@ **操作系统限制**:OpenHarmony标准操作系统。 -## **说明** -### **接口说明** +## **接口说明** 分布式输入不提供北向接口,由多模输入子系统提供接口供开发者调用分布式输入的能力。 -### **流程说明** +## **流程说明** #### **1. 分布式输入初始化** -- Gitee From 8fb144cdacc5b78bc83dcdcd6d8b26d43a455e46 Mon Sep 17 00:00:00 2001 From: joe49 Date: Tue, 4 Apr 2023 11:29:11 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: joe49 --- README_zh.md | 83 ++++++++++++++++++++++++---------------------------- 1 file changed, 39 insertions(+), 44 deletions(-) diff --git a/README_zh.md b/README_zh.md index 81ba02c..8bbfb43 100644 --- a/README_zh.md +++ b/README_zh.md @@ -2,19 +2,19 @@ ## **简介** -分布式输入部件提供了跨设备的键鼠外设输入能力,使一台设备可以使用另一台设备的输入外设(如鼠标,键盘,触摸板等)作为本设备的外设使用,在另一台设备上的操作作用于本设备。 +分布式输入部件提供了跨设备的键鼠外设输入能力,使一台设备可以使用另一台设备的输入外设(如鼠标,键盘,触摸板等)作为本设备的外设使用,在另一台设备上的操作作用于本设备。分布式输入不提供北向接口,由多模输入子系统提供接口供开发者调用分布式输入的能力。 -其系统架构图如下图所示: - -![distributedinput_arch](figures/distributedinput_arch.png) - -## **概念说明** +### **概念说明** **主控端(source)**:控制端设备,通过分布式输入向被控端设备发送命令,使用周边被控端设备键鼠输入能力的设备。 **被控端(sink)**:被控制端设备,接受主控端发送的命令并且完成对应操作,提供本地键鼠外设供主控端设备使用的设备。 -## **架构说明** +### **架构实现** + +其系统架构图如下所示: + +![distributedinput_arch](figures/distributedinput_arch.png) **分布式输入主控端(DInputSource)**:使用周边被控端设备键鼠输入能力的设备,称为分布式输入主控端,周边被控端设备键鼠事件可以在主控端生效。 @@ -40,6 +40,38 @@ **虚拟键鼠驱动(Virtual KeyBoard/Mouse)**:被控端键鼠信息通过分布式硬件管理框架同步信息到主控端后,主控端分布式硬件管理框架调用分布式输入驱动管理功能,在主控端为对应的被控端键鼠创建的虚拟键鼠驱动节点,和被控端键鼠节点对应。 +### **流程说明** + +#### **1. 分布式输入初始化** + +分布式硬件管理框架启动后,查询本机分布式输入的部件配置,如果发现有相关配置,通过配置加载分布式输入实现的部件接入so,进行本地输入外设的信息查询,以及分布式输入source侧和sink侧的初始化;分布式硬件管理框架将查询到的本地外设信息记录到分布式数据库,在可信设备之间同步。 + +#### **2. 分布式输入驱动的准备** + +分布式硬件管理框架监听数据库数据变化,如果从分布式数据获取到上线的被控端设备同步的输入外设信息,会调用分布式输入主控端注册分布式输入驱动接口,为对端设备外设在本地注册对应的分布式外设,作为对端设备外设的代理;本地新注册的分布式输入外设,会被多模输入管理起来,并供外部应用调用。 + +#### **3. 使用分布式输入能力** + +(1) 应用可以通过调用多模输入的能力查询接口,查询到对端可信设备具有的分布式输入能力。 + +(2) 应用可以通过调用多模输入的键鼠穿越开关接口,打开键鼠穿越的功能开关。 + +(3) 应用可以通过调用多模输入的键鼠穿越接口,启动键鼠外设的跨设备输入能力: + +- 设备间首次进行键鼠穿越时,分布式输入部件会启动相关的资源准备,包括设备间网络连接的建立以及相关资源线程的启动等; + +- 键鼠穿越成功后,分布式输入部件会通知主控端设备开始使用被控端设备的输入外设,此时被控端设备的分布式输入服务采集到输入外设原始事件并回传到主控端,主控端分布式输入接收到事件并注入到对应的分布式输入驱动,多模输入模块获取到注入的被控端外设事件,进行事件处理后在本地生效,从而实现了主控端对被控端输入外设的使用。 + +(4) 如果键鼠不再需要穿越,应用可以通过调用多模输入的停止穿越接口,通知被控端分布式输入服务不再回传被控端的外设事件,被控端外设事件在被控端本地生效。 + +(5) 如果业务方停止使用键鼠穿越,应用可以通过调用多模输入的接口关闭键鼠穿越开关,停止使用键鼠穿越能力。 + +备注:关于多模输入分布式输入相关接口的使用,参见多模输入相关文档。 + +#### **4. 设备下线** + +设备下线后,分布式硬件管理框架去使能下线设备的输入外设,移除分布式输入驱动,此时下线设备的分布式输入外设不可用。 + ## **目录** ``` @@ -76,43 +108,6 @@ **操作系统限制**:OpenHarmony标准操作系统。 - -## **接口说明** - -分布式输入不提供北向接口,由多模输入子系统提供接口供开发者调用分布式输入的能力。 - -## **流程说明** - -#### **1. 分布式输入初始化** - -分布式硬件管理框架启动后,查询本机分布式输入的部件配置,如果发现有相关配置,通过配置加载分布式输入实现的部件接入so,进行本地输入外设的信息查询,以及分布式输入source侧和sink侧的初始化;分布式硬件管理框架将查询到的本地外设信息记录到分布式数据库,在可信设备之间同步。 - -#### **2. 分布式输入驱动的准备** - -分布式硬件管理框架监听数据库数据变化,如果从分布式数据获取到上线的被控端设备同步的输入外设信息,会调用分布式输入主控端注册分布式输入驱动接口,为对端设备外设在本地注册对应的分布式外设,作为对端设备外设的代理;本地新注册的分布式输入外设,会被多模输入管理起来,并供外部应用调用。 - -#### **3. 使用分布式输入能力** - -(1) 应用可以通过调用多模输入的能力查询接口,查询到对端可信设备具有的分布式输入能力。 - -(2) 应用可以通过调用多模输入的键鼠穿越开关接口,打开键鼠穿越的功能开关。 - -(3) 应用可以通过调用多模输入的键鼠穿越接口,启动键鼠外设的跨设备输入能力: - -- 设备间首次进行键鼠穿越时,分布式输入部件会启动相关的资源准备,包括设备间网络连接的建立以及相关资源线程的启动等; - -- 键鼠穿越成功后,分布式输入部件会通知主控端设备开始使用被控端设备的输入外设,此时被控端设备的分布式输入服务采集到输入外设原始事件并回传到主控端,主控端分布式输入接收到事件并注入到对应的分布式输入驱动,多模输入模块获取到注入的被控端外设事件,进行事件处理后在本地生效,从而实现了主控端对被控端输入外设的使用。 - -(4) 如果键鼠不再需要穿越,应用可以通过调用多模输入的停止穿越接口,通知被控端分布式输入服务不再回传被控端的外设事件,被控端外设事件在被控端本地生效。 - -(5) 如果业务方停止使用键鼠穿越,应用可以通过调用多模输入的接口关闭键鼠穿越开关,停止使用键鼠穿越能力。 - -备注:关于多模输入分布式输入相关接口的使用,参见多模输入相关文档。 - -#### **4. 设备下线** - -设备下线后,分布式硬件管理框架去使能下线设备的输入外设,移除分布式输入驱动,此时下线设备的分布式输入外设不可用。 - ## **相关仓** **** -- Gitee From 80c12ebc976b19a9afee0c42e106b982ee51394a Mon Sep 17 00:00:00 2001 From: joe49 Date: Tue, 4 Apr 2023 14:35:09 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: joe49 --- README_zh.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README_zh.md b/README_zh.md index 8bbfb43..3aee9aa 100644 --- a/README_zh.md +++ b/README_zh.md @@ -2,13 +2,13 @@ ## **简介** -分布式输入部件提供了跨设备的键鼠外设输入能力,使一台设备可以使用另一台设备的输入外设(如鼠标,键盘,触摸板等)作为本设备的外设使用,在另一台设备上的操作作用于本设备。分布式输入不提供北向接口,由多模输入子系统提供接口供开发者调用分布式输入的能力。 +分布式输入部件提供了跨设备的键鼠外设输入能力,使一台设备可以使用另一台设备的输入外设(如鼠标,键盘,触摸板等),在另一台设备上的操作作用于本设备。分布式输入不提供北向接口,由多模输入子系统提供接口供开发者调用分布式输入的能力。 ### **概念说明** -**主控端(source)**:控制端设备,通过分布式输入向被控端设备发送命令,使用周边被控端设备键鼠输入能力的设备。 +**主控端(source)**:控制端设备,通过分布式输入向被控端设备发送命令,使用其键鼠输入的能力。 -**被控端(sink)**:被控制端设备,接受主控端发送的命令并且完成对应操作,提供本地键鼠外设供主控端设备使用的设备。 +**被控端(sink)**:被控制端设备,接受主控端发送的命令并且完成对应操作,提供本地键鼠外设供主控端设备使用。 ### **架构实现** @@ -26,7 +26,7 @@ **分布式输入驱动管理(DInputDriverMgr)**:提供分布式输入驱动的添加和删除能力。 -**事件过滤(EventFilter)**:提供组合键过滤能力。部分组合键适合在本地生效,例如锁屏键;如果开启了分布式输入能力,被控端键鼠控制主控端设备,被控端锁屏键被多模输入识别后,通过过滤模块判断是否要在本地生效,如果在白名单中,则在本地生效,远端不生效。 +**事件过滤(EventFilter)**:提供组合键过滤能力,设置组合键过滤白名单,白名单上的组合键只在被控端设备生效,比如锁屏键等。 **事件采集(EventCollector)**:用于从输入驱动采集键鼠原始事件。 @@ -44,11 +44,11 @@ #### **1. 分布式输入初始化** -分布式硬件管理框架启动后,查询本机分布式输入的部件配置,如果发现有相关配置,通过配置加载分布式输入实现的部件接入so,进行本地输入外设的信息查询,以及分布式输入source侧和sink侧的初始化;分布式硬件管理框架将查询到的本地外设信息记录到分布式数据库,在可信设备之间同步。 +设备组网后,分布式硬件管理框架进行本地输入外设的信息查询,同时进行分布式输入source侧和sink侧的初始化。 #### **2. 分布式输入驱动的准备** -分布式硬件管理框架监听数据库数据变化,如果从分布式数据获取到上线的被控端设备同步的输入外设信息,会调用分布式输入主控端注册分布式输入驱动接口,为对端设备外设在本地注册对应的分布式外设,作为对端设备外设的代理;本地新注册的分布式输入外设,会被多模输入管理起来,并供外部应用调用。 +分布式硬件管理框架获取到被控端设备上线的输入外设信息后,会调用分布式输入在主控端设备注册分布式输入驱动接口,为被控端设备外设在主控端设备注册对应的外设虚拟驱动节点,作为被控端设备外设的代理,该代理会被多模输入管理起来,并供外部应用调用。 #### **3. 使用分布式输入能力** -- Gitee