[XMOVE自主设计的体感方案] XMove Studio管理系统(一)——基于XFrmWork的PC端框架

简介:

一 . XMove Studio简介

  XMove Studio ,是XMove框架的PC桌面整合平台,是XMove的管理系统和应用中心。它的开发基于我开发的XFrmWork桌面软件框架,采用插件结构,共享基类库。它具备以下特点:

  •   与节点通信,控制,采集,重现数据的能力。
  • 可扩展的应用平台,已开发了基于Unity3D的虚拟实境系统,空中鼠标和数据分析器等。并提供API向第三方开放
  • 可增删节点通信方法,包括蓝牙,WIFI,串口和USB等

  作为XMove 4.0最重要的变化之一,XMove Studio的的引入使得管理所有节点的功能上移到PC端。清晰的结构划分使得整个XMOVE框架变得更加灵活,例如,添加新功能仅需要添加PC更新包,所有节点程序不需要变动,管理软件可自动配置节点参数,实现数据流控制,从而实现新功能。

二. 功能组件介绍

  拜于XFrmWork所赐,系统采用插件结构的模块设计方法。除了XFrmWork提供的底层服务,如调试和界面显示功能以外,XMove Studio有清晰的模块划分。我们可以将其分为三个组成部分。通信管理器,节点管理器和应用程序管理器。  通信管理器负责将节点采集的传感器数据(或是存储器,网络甚至模拟产生的数据)传递给节点管理器。节点管理器的节点组获取数据后,会以事件的方式通知注册到相关节点的应用程序,各应用即可从而完成相关功能。我们可以将三个部分分别看成数据源,数据池,和使用数据的应用。

  下图(来源于系统运行截图),展现了数据流向,和不同节点,通信方式以及应用的联系关系。您可以从该图中完整的看到每个通信信道开启的时间和流量,不同节点收到的数据量和信号强度,以及各应用挂载节点的情况。

   1. 节点管理器

     节点管理器是联系通信管理器和应用管理器的中心纽带,为了方便读者更好的了解系统,我们先介绍节点管理器。

     XMove的节点部署方案如下图,15个节点部署于人体各处,手机和接收节点是可选节点。共17个节点构成节点组。每个节点组对应一个实际用户。系统可以支持多个用户,但此处的节点可以动态的与实际硬件节点实现绑定。您可以随时改变映射关系,这意味着,在用户0上的节点数据,可以映射到用户1身上的硬件节点。不同的节点组通过节点组编号区分,可以在运行时添加或删除用户。但注意,任何情况都必须至少保留一个节点组实例。

  当您将鼠标放置在虚拟节点图标上时,图标会放大,展现节点的类型和功能:

   可以切换到列表视图,系统会展示已经被激活的所有节点的特性,这些特性包括电池电量,信号强度,工作模式,组别和节点类型等。同时,系统还会提示该节点的硬件配置等。

  

      2. 通信管理器

    通信管理器是数据输入源,传感器数据可以同时以多种方式传递给节点管理器。目前XMove可接受如下类型的通信方式:

 

通信名称

最大传输速率

支持的节点类型

功能说明

ATL标准串口

115200bps

所有节点

与节点通信的主要方式

标准蓝牙

560Kbps

安卓手机节点

安卓手机通信

虚拟蓝牙串口

115200bps

Wince,塞班手机节点

提供可模拟为蓝牙串口设备的支持

模拟数据调试

——

——

可按算法要求模拟出虚拟数据,方便调试

USB高速传输

2Mbps

4.0桥接结点

通过USB-HID与桥接结点通信

虚拟通信

与录制时速度相同

——

可录制真实节点的数据,可将其回放

虚拟网络通信

100Mbps

另一台PC终端

可将另一台PC采集的节点数据通过网络发送到本PC

WIFI局域网

——

手机

与手机的WIFI通信方式

3G网络

实测最大600KBPS

手机

与手机的3G网络通信方式

   值得注意的是,XMove可完整支持Kinect,其通信方法和应用在扩展应用组件里,此处从略。会有专门的一篇文章介绍其功能。

  使用时,您可以方便的将不同的通信方式,从左边的列表拖动到右边的列表当中,即可自动配置:

  下面,我们以模拟数据通信为例,介绍其配置方法:

  模拟数据调试是一个为调试应用提供方便的通信方法,它是虚拟的,内置了多种产生数据的算法,例如,产生映射的节点绕X轴旋转的”虚拟数据“,但对应用程序来说这是透明的。 在左边的下拉菜单可选择不同通信端口(对模拟数据通信是不同产生数据的逻辑)。

  下方是节点映射关系配置。所有的硬件传感器都通过RawID区分,但您可以将这些硬件节点映射到相应的虚拟节点,配置其”节点组ID“和对应的节点位置即可。列表每一项的右侧,红色的五星代表该节点未激活,绿色代表节点工作正常。同时给出该节点的节点类型。您可以通过右方的加减号添加或删除节点映射项。  这些映射关系在关闭程序时,系统会自动保存,并在第二次开启时恢复。

  您可以开启或关闭该端口,在配置界面的右上角可显示当前通信方法的流量和开启时长。  

  若您不想使用该通信方法,直接拖动该项到通信管理器外部,系统就会自动回收资源,关闭端口.  

  系统可以同时开启多个通信信道,这些信道之间互不干扰。系统允许两个信道同时为一个节点传输数据,但在使用时通常不建议这么做。

   3. 应用程序管理器

  应用程序管理器是XMove Studio的核心价值所在。XFrmWork的插件结构方便随时添加新的应用程序,您只需要将组件包拷贝到应用程序相应的插件目录文件夹下,系统就会自动加载。

  所有的应用程序都需要节点管理器提供的数据,XMove节点管理器通过事件方式通知应用程序,开放式的API可以为应用提供完整的服务。

  应用程序管理器的使用和通信管理器非常类似。您可以拖动应用到右方的应用列表中,不同的应用程序可互不干扰的执行。

  我们以空中鼠标为例,介绍其使用。空中鼠标主要使用传感器节点的陀螺仪,当您拖动空中鼠标到右边应用栏后,将出现下图所示的配置界面。节点映射配置器可以方便您要映射的节点,右侧五角星符号的颜色给出其是否被激活。考虑到不同的应用对节点的功能要求不一致,例如,有些应用必须要求节点拥有HID键盘设备,或必须包含GPS定位功能等,此时节点映射必须满足基本功能要求,否则不会映射成功。值得注意的是,下拉菜单的节点中,不满足节点功能要求的已经被删除,已经激活的节点会优先排列。

  您可以点击开始或关闭按钮实现对该功能的配置。当点击开始时,资源会自动加载,同时会自动注册节点事件。点击关闭时,管理器会以相反地顺序进行。

三. 程序结构介绍

  XMove扩展了XFrmWork的基本功能,包含以下基本类库:

  

  其中Interface库是所有库之间的公共接口库,定义了不同库的抽象结构和它们之间的交互逻辑。

     XFrmWork.Application 是应用无关的插件容器,是最终的应用启动点。

四. 具体使用和其他注意事项

  1. 在使用时,您应该首先开启XMove Studio应用程序,系统会自动加载所需资源并完成初始化。

  2. 开启通信管理器,将接收器以您所希望的通信方式接入Studio.

  3.  此时开启子节点,接收器应该可以接受所有子节点并在节点管理器中实时显示。配置这些节点,使其映射到相应的虚拟节点组。

  4. 确认所有节点已正常工作后,拖动您希望开启的应用到应用程序列表,配置节点映射关系和其他配置,选择开启。

    5. 应用程序启动,完成应用后,应正常关闭应用和端口。若您选择直接关闭主框架,Studio会自动帮您回收资源。

五 . 总结

  本文介绍了XMove Studio的基本结构,三大主要管理器:节点管理器,通信管理器和应用管理器的作用和使用方式,同时介绍了Studio的基本使用步骤。

  考虑到文集的其他部分对其使用做了详细的说明,因此此处并不打算深入的介绍所有组件的使用方法,仅作为综述性文章。

相关文章
|
芯片 SoC
FinFET工作原理、结构和应用特性介绍
FinFET的全称是Fin Field-Effect Transistor。它是一种新型互补金属氧化物半导体晶体管。FinFET 的名称是基于晶体管和鳍片形状的相似性。
14270 0
FinFET工作原理、结构和应用特性介绍
|
存储 运维 网络协议
如何实现 呼叫速率(caps) 值控制
首先,企业需要明确的是呼叫中心系统搭建的目的。搭建这个呼叫中心是想用来做什么呢? 是为了企业当做呼入型的客服使用? 还是用来当电话外呼使用? 是企业想做营销用呢还是政府单位办公使用? 是要做外包服务呢还是自己用? 是想挣钱用呢还是想做客户服务使用? 需求 呼叫中心的搭建肯定有需求,这就要把一份需求文档写出来。比如想要做什么,每一点写的清清楚楚: 需求包括现在有什么? 碰到了什么问题? 以后想整成什么样? 设置,扩容以及升级的快速,成本与灵活性 一个企业的业务、流程与规模有时候随着市场的快速成长会有很大的变化。这时候,企业的呼叫中心系统就要能够快速的适应市场,能让企业做出适当的调整。比如,呼叫中
|
存储 安全 网络安全
Windows安全防护:构建多层防御体系,守护系统安全
Windows系统的安全性对于保护用户个人信息和企业业务连续运行至关重要。面对日益严峻的网络威胁,我们需要构建多层防御体系,通过采用系统内置的安全防护措施、用户可采取的安全保护措施以及加强用户教育与培训、实施严格的访问控制策略、定期进行系统安全评估与审计、建立应急响应机制以及采用先进的安全防护技术等方式
969 57
|
存储 人工智能 JSON
【AI大模型应用开发】【LangChain系列】3. 一文了解LangChain的记忆模块(理论实战+细节)
本文介绍了LangChain库中用于处理对话会话记忆的组件。Memory功能用于存储和检索先前的交互信息,以便在对话中提供上下文。目前,LangChain的Memory大多处于测试阶段,其中较为成熟的是`ChatMessageHistory`。Memory类型包括:`ConversationBufferMemory`(保存对话历史数组)、`ConversationBufferWindowMemory`(限制为最近的K条对话)和`ConversationTokenBufferMemory`(根据Token数限制上下文长度)。
604 0
|
Java
Thread 类中的start() 和 run() 方法有什么区别
【8月更文挑战第9天】Thread 类中的start() 和 run() 方法有什么区别
666 0
|
机器学习/深度学习 人工智能 物联网
快速玩转 Llama2 机器学习 PAI 最佳实践(一)低代码 Lora 微调及部署
采用阿里云机器学习平台PAI-快速开始模块针对 Llama-2-7b-chat 进行开发。PAI-快速开始支持基于开源模型的低代码训练、布署和推理全流程,适合想要快速开箱体验预训练模型的开发者。
69322 59
|
存储 SQL JSON
使用 NextJS 和 TailwindCSS 重构我的博客
这是笔者第三次重构博客应用。本文主要是笔者记录重构博客所用的知识和记录,希望以后每周或者每两周能够有一篇文章,记录和总结知识。
1339 0
Vue3使用路由及配置vite.alias简化导入写法
Vue3使用路由及配置vite.alias简化导入写法
274 0
|
SQL 存储 开发框架
架构设计91-闲聊02-帮Stack Overflow评估一下性能指标
架构设计91-闲聊02-帮Stack Overflow评估一下性能指标
345 0
架构设计91-闲聊02-帮Stack Overflow评估一下性能指标
|
存储 数据采集 数据可视化
千字干货带你入门数据仓库,跑通数据建模全流程(附视频)
个推资深大数据研发工程师为大家深入浅出地介绍了数据仓库的前世今生以及数据建模的常用方法。
776 0
千字干货带你入门数据仓库,跑通数据建模全流程(附视频)