个人工程实践的题目是基于OpenGL ES 2.0的车载虚拟表盘软件的开发,是一个纯开发的项目,这个软件主要是面向房车的用户,由于这款软件的功能包括控制车载系统的灯光,有睡眠,夜晚,平常等模式,还有显示电压和水压,包括车内外温度等信息最后在界面上面显示出来。对于这次工程实践我选择用例建模:linux
用例建模的定义:用例方法彻底是站在用户的角度上(从系统的外部)来描述系统的功能的。在用例方法中,咱们把被定义系统看做是一个黑箱,咱们并不关心系统内部是如何完成它所提供的功能的。用例方法首先描述了被定义系统有哪些外部使用者(抽象成为Actor),这些使用者与被定义系统发生交互;针对每一参与者,用例方法又描述了系统为这些参与者提供了什么样的服务(抽象成为Use Case),或者说系统是如何被这些参与者使用的。因此从用例图中,咱们能够获得对于被定义系统的一个整体印象。微信
用例建模的主要步骤:多线程
1.抽取Abstract use case函数
这次工程实践的项目经过用例建模获得的Abstract use case为 主题选择、语音控制、灯光控制、车内信息管理、异常报警。编码
2.用例图操作系统
3.High level use case线程
主要为界面主题的切换和选择,主要用到了多线程的技术,在预设的每个demo模型中添加到线程中去,这样能够根据不一样的房车的厂商进行有选择的更换;设计
OpenGL ES 2.0的API的调用,对于基本界面的按钮的方法的定义和电池,水位等图标的变换,用到了OpenGL中的着色器和图形变换的原理blog
语音识别功能,主要作到了将输入的语音信息转换成而二进制的编码,再经过函数的调用将结果输出在显示屏上开发
4.电压,水位、温度等信息信息的获取
主要是经过将硬件的传感器获得的电信号传递到开发板中,开发板使用了单片机和一个封装过的linux操做系统,能够经过与pc之间的串口通讯来实现对系统中文件的管理,每次经过使用SecureCRT将在电脑中编译出来的可执行文件上传到机子中,机子的界面就会展现出效果
此次的工程实践主要在于对于各类风格的界面的 使用OpenGL ES 2.0的API的调用,来对这个界面进行本身的设计,使用c语言编写多个customer的形式来切换用户的使用模式,基于OPENGL的成套GUI库 代码清晰易懂使用超级方便 支持控件序列化和反序列化 支持总体和单个控件换肤。使用OpenGL绘制用户界面时,基本绘图过程分为:清楚缓冲区,设置当前颜色、绘制几何单元(绘制模型)、输出图形。OpenGL的变换其实是经过矩阵乘法来实现。不管是移动、旋转仍是缩放大小,都是经过在当前矩阵的基础上乘以一个新的矩阵来达到目的,绘制模型时,须要首先肯定绘画元素相对于坐标原点的坐标,再经过矩阵变换计算出每一个绘画元素相对于坐标原点的位移、旋转角度、裁剪、窗口变换等位置信息,而上述位置信息须要经过矩阵运算的方式进行肯定,变换矩阵类型多样。上述的界面还在处于发展的阶段,还有待改进,好比人脸识别,微信二维码等还未启用,以后还须要加入进去,使界面更加丰富。