写在前面:微控完成快两年了,作为大学生科研项目一直没有开源,随着自己毕业,这些东西也逐渐成为电脑硬盘里闲置的垃圾,所以现在将它开源出来。我手里只有安卓端的源码,所以大家如果做类似的应用需要自行实现其他端。
微控是一款为了方便使用安卓手机操作电脑而设计的助手类应用,配合微控电脑客户端,微控可以大大提升您的远程电脑操作体验。
本程序利用安卓手机搭载的蓝牙与传感器,实现对人体动作的采集与转化,通过蓝牙网络将数据传送至电脑端,电脑端程序控制电脑实现一系列体感操作。
在项目的初期阶段我们分析了现今电脑操作的需求,定义了本程序是一款方便用户无线操纵电脑的助手类软件,我们需要用手机远程控制电脑,无线操纵PPT演示过程以及模拟无线手柄等。确定了软件功能后,软件正式开发前期我们调研了流行安卓平台的手机的硬件配置,了解了目前安卓手机普遍拥有蓝牙3.0甚至4.0标准的外设,配有支持多点触控的屏幕,搭载有丰富的传感器等,足以满足我们这个项目手机端的开发需求。同时在PC平台,windows SDK拥有丰富的API可以实现对电脑的操作,同时功能强大的C#语言也足以方便的开发这样一款软件。前期的调查和研究表明本程序具有充分的可行性与必要性。
###1.软件需求调查 在项目的初期阶段我们分析了现今电脑操作的需求,定义了本程序是一款方便用户无线操纵电脑的助手类软件,我们需要用手机远程控制电脑,无线操纵PPT演示过程以及模拟无线手柄等。确定了软件功能后,软件正式开发前期我们调研了流行安卓平台的手机的硬件配置,了解了目前安卓手机普遍拥有蓝牙3.0甚至4.0标准的外设,配有支持多点触控的屏幕,搭载有丰富的传感器等,足以满足我们这个项目手机端的开发需求。同时在PC平台,windows SDK拥有丰富的API可以实现对电脑的操作,同时功能强大的C#语言也足以方便的开发这样一款软件。前期的调查和研究表明本程序具有充分的可行性与必要性。 ###2.安卓端程序总体设计 安卓端负责体感数据的探测以及手势操作的接收,随后安卓端利用自带的蓝牙与电脑实施配对,借助串口通信将体感数据发送至电脑端解析。为了实现这个功能,经分析安卓端应大致具有以下几个模块: ####蓝牙配对连接模块
本模块处于底层驱动位置,负责安卓端蓝牙的扫描发现、接受外部设备的连接以及蓝牙信息的接受与发送等底层功能。
####全局通信连接模块
本模块负责全局所有界面层的消息调用需求,本模块应当提供上层应用对底层蓝牙状态的获取接口,对底层蓝牙扫描、断开等操作接口以及发送接收消息的接口。本模块承上启下,处于中层驱动的位置。
####界面层框架模块
本模块处于上层的界面部分,本模块应该搭建一个基本的界面框架,由于本程序在初期需求的不确定性,界面框架应该具有充分可扩展性以方便后期子组件的添加。
####子界面模块
程序中含有本模块若干,每个子界面负责一个具体的功能,本模块是程序具体功能实现的载体。
页面 | 指令 | 备注 |
---|---|---|
全局 | up | 弹起 |
全局 | down | 按下 |
鼠标设置 | mouse_sensitivity | 鼠标灵敏度 |
鼠标使用 | left_button | 左键 |
鼠标使用 | right_button | 右键 |
鼠标使用 | touch | 触摸板动作 |
文档演示 | next_page | 下一页 |
文档演示 | last_page | 上一页 |
文档演示 | enter_ppt | 进入演示 |
文档演示 | exit_ppt | 退出演示 |
按键手柄 | keyboard_reset_btn | 复位键 |
按键手柄 | keyboard_select_btn | 选择键 |
按键手柄 | keyboard_pos_front | 方向前 |
按键手柄 | keyboard_pos_back | 方向后 |
按键手柄 | keyboard_pos_left | 方向左 |
按键手柄 | keyboard_pos_right | 方向右 |
按键手柄 | keyboard_pos_front_right | 右上 |
按键手柄 | keyboard_pos_right_back | 右下 |
按键手柄 | keyboard_pos_back_left | 左下 |
按键手柄 | keyboard_pos_left_front | 左上 |
按键手柄 | keyboard_mode_a | a键 |
按键手柄 | keyboard_mode_b | b键 |
按键手柄 | keyboard_mode_x | x键 |
按键手柄 | keyboard_mode_y | y键 |
提示:想了解更多,请查看项目主页wecon-release或者开发文档doc。
本项目将长期更新,后续版本将会加入更多功能
Tips:目前仅仅开发了微控的一部分功能,上述也只是部分计划中的功能扩展,如果您对微控有什么好的意见或者建议,请按照本页最下方的联系方式联系我们,帮助微控更好地成长,微控开发小组对您的支持表示万分感谢!
安卓端为了实现上述的功能模块,我们仔细研究并重新编写了google官方提供的例程,深入理解了android平台对Bluetooth 3.0标准的操作过程,本过程中的代码已经在oschina网站开源,点击查看。 根据本例程原理,我们编写了BluetoothConnectService类放在com.tanxiaoyao.wecon.net包下,本类实现的蓝牙配对连接模块所需全部功能,并对外提供了调用接口。
为了方便上层界面对底层蓝牙的操作,我们编写了GlobalConnectHelper类来提供统一的实现接口及调用方法。本类可以实现获取蓝牙状态、获取连接服务实例、设置蓝牙连接参数、扫描并连接周围设备等一系列蓝牙操作。
经过不断的比较,我们选定了TabHost组成的菜单界面作为页面的扩展框架,ActivityMain即为本结构的代码实现。
**结构示意图:**蓝牙驱动和全局连接管理使用单例模式,为全局提供蓝牙调用接口
子界面由一个个基本的Activity组成,经过设计编写,本程序具有如下几个子界面ActivityHome、ActivityMouse、ActivityMouseMain、ActivityPowerPoint ActivitySimulate、ActivityHandle、ActivityGravityHandle、ActivitySensorTest、ActivityAbout。分别为主页、鼠标设置、鼠标操作、PPT操控、手柄选择、案件手柄操作、重力手柄操作、传感器检测以及关于程序界面。
在应用更新升级部分,首先将应用描述配置文档放在服务端,然后再安卓端利用http连接请求该文件,利用XmlPullParser解析请求到的xml字段,然后将解析到的信息存放在UpdataInfo类中,程序就可以判断是否有新版本并通过http下载新文件。程序的帮助信息以markdown形式存放,其中可以链接存放在git上的图片,手机通过第三方开源插件android-markdown-view加载markdown文件并从服务器上读取所需的图片。客户端下载按钮会发起一个Uri连接到下载页面供用户下载。
**提示:**升级时若您遇到服务器error等非网络连接引起的错误,请及时联系下方的联系方式,我们会尽快做出处理。
如下图所示,按照一般情况下的使用顺序,首先进入主页请按照界面提示扫描并连接您安装有微控电脑端的设备,设备成功匹配后电脑和手机会同时显示连接成功,随后您可以选择进入任何一个功能界面。在鼠标设置界面,位于上方的使用提示显示了几种基本使用方法,同时您可以通过文本下方的滑动条设置鼠标在屏幕上的移动速度,点击开启触控板按钮您就可以像使用实体触控板那样使用微控。在文档演示界面,您可以借助微控操纵电脑上的ppt,界面中的按钮分别可以进入ppt全屏演示、下一步、上一步以及退出全屏演示。
如下图所示,进入体感界面,您可以使用您使用手柄的方式,分为传统方式与重力方式。按下菜单键,在弹出菜单中选择传感器,您会看到您设备上所有传感器的列表,若您没有加速度传感器,您可能无法正常使用重力手柄。在菜单中选择关于,您会进入到本程序的相关信息展示界面,这里展示了微控的基本信息,同时您可以检查更新,或者利用帮助查看程序内置的markdown帮助文件,帮助文档与项目主页的readme.md文件同步更新。您还可以直接使用客户端下载按钮进入项目的下载地址,可以下载微控的安卓端以及电脑端安装包。
下图所示为微控使用的界面,您可在实际使用中体验其具体功能。
程序的开发过程中,我们参照了大量的开源作者的相关代码,包括使用了第三方的markdown编辑插件,我们十分感谢这些无私的作者对我们的帮助。由于种种原因,我们暂时不能对这个程序开源,但是如果您对本项目感兴趣或者您想了解其中某部分的细节,联系下面的地址,我们愿意尽自己的绵薄之力为开源社区努力。
1.Theresa Neil(美) 移动应用UI设计模式 北京:人民邮电出版社,2013
2.Reto Meier(美) Professional Android 2 Application Development,Wiley Publishing,Inc,2012
4.启动splash
5.底部Tab栏
6.传感器介绍
7.Socket通信
8.蓝牙连接
9.Google蓝牙聊天例程:Android Open Source Project BluetoothChat
12.应用升级更新参考
###安卓端 -Email :junlidev@gmail.com
-QQ :2561299250
-git :叹逍遥
感谢您的阅读,欢迎您继续关注微控!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型