一、功能需求与描述
PC端运用相关技术构建出手机的三维模型,并实时展示手机当前姿态,用于演示等用途。 手机与PC通过WiFi网络连接。需要PC端有一个接收程序,手机端有一个发送程序。
二、技术分析
1.整体框架
任务需求可以简化为手机通过网络向电脑发送数据的过程。 手机端实时获取传感器数据并发送给电脑,电脑实时接收并解析数据,运用相关技术对数据进行可视化。
2.手机端
这里讨论基于Android系统的实现,语言为Java。通过调用系统传感器API,给应用注册传感器监听器,对手机方向传感器的数据进行实时获取。 同时当数据发生变化时将最新的数据通过网络发送出去。
3.电脑端
电脑端首先要对数据进行解析,从而获得数据。基于C++,采用OpenGL实现数据可视化,进行实时三维展示。
4.数据传输
采用Socket方式进行数据的发送与接收。手机端通过Socket向指定IP的端口不断发送数据,电脑端通过Socket不断接收数据,从而实现数据传输。
三、功能实现
代码及工程详见GitHub。https://github.com/zhaoxuhui/PhonePresentation
四、使用及功能展示
1.打开电脑端程序,指定用于接收数据的端口号,如这里输入2017。
2.打开手机客户端,输入本机对应的IP地址。必须保证和手机在同一局域网内(连接同一个WiFi),否则无法连接。 如在手机端输入的是10.129.174.242。
3.在手机端点击“连接”,进行数据连接。若连接成功,则会提示“accepted client…”,同时开始接收数据。
若需停止,在手机端点击“断开”即可。若需重新连接或更换IP,重新输入IP或端口号,再次点击“连接”即可。
下图展示了从连接到姿态获取的过程。
本文作者原创,未经许可不得转载,谢谢配合