基于android平台的拉曼光谱仪控制器的设计与实现-嵌入式与智能控制专业论文.docx

微信小程序
资源下载
下载价格3

摘 要

在我国经济飞速发展的进程中,人民的物质生活水平和质量要求不断提高。 对于各种物质比如生活用品和食品的安全及等级纯度等方面的需求越来越高。为 了能更加高速和准确的进行物质的检测,拉曼光谱仪也越来越受到重视。拉曼光 谱的分析和研究在现代社会具有很重要的意义和应用价值传统的拉曼激光探测 仪在 pc 上检测有诸多不便。研究和开发一款基于 Android 平台的拉曼光谱仪控 制系统是十分必要的。

论文对 Android 操作系统的特点、系统架构、Android 项目的应用程序类型 和程序生命周期方面进行了分析和研究。针对项目的应用领域,使用原始开发的 方法并且进行了深入的需求分析。为用户提供登录检测和快速显示频谱图等功 能,还分别对不同类型的用户设计了不同的界面和功能集,以满足各种用户的不 同的需求。

论文通过对书本的学习和文献的阅读,完成了前期的准备工作。通过对 Android 系统 的架构 的学习 了解 了 Android 系统 的发 展历 程和 沿革 变化 ,对 Android 系统的程序的生命周期和编程思想有了深入的认识。阐述了拉曼光谱仪 的工作原理并结合该原理的方法步骤设计并实现了一套基于 Android 平台的拉曼 光谱仪控制器。解决了系统关键的连接问题和在没有 root 权限的情况下获取移 动设备 root 权限的问题。

充分利用开发工具包 Android SDK 和 NDK 和资源,在 Windows 7 系统下 利用 MyEclipse 作为 IDE 的开发环境,在 Android 平台实现了拉曼光谱仪控制 系统。最后对系统进行了测试并且达到了预期的效果。虽然系统的稳定性和准确 率比较高,但是在移动设备上的移动性还需进一步的提高,在无线连接上比如蓝 牙连接有待于进一步的分析和研究。

关键字:Android 拉曼光谱 USB 连接 实现

ABSTRACT

In the process of rapid economic development in our country, people’s material life level and the quality requirement enhances unceasingly. For a variety of material such as articles for daily use and food safety and purity level of demand is higher and higher. In order to be more fast and accurate test the material, Raman spectrometer is becoming more and more attention. Raman spectrum analysis and research in the modern society has very important meaning and application value of traditional Raman laser detectors detection have many inconvenience on the PC. Research and develop a Raman spectrometer based on Android platform control system is very necessary.

Papers on the characteristics of the Android operating system, systemarchitecture the Android project application type and process life cycle are analyzed and studied. For application of the project, use the original development methods and carried on the thorough analysis of the demand. To provide the user login detection and quickly show the function, such as spectrum separately for different types of users design the different interface and feature set, in order to meet the different needs of various kinds of users.

Paper based on the study of the books and literature reading, completed the prophase preparation. Through to the Android system architecture of learning about the development and evolution of the Android system change, the life cycle of the procedures of the Android system and have a deep understanding of programming ideas. This paper expounds the working principle and combined with the principle of Raman spectrometer method steps was designed and implemented a Raman spectro controller based on the Android platform. Solve the problem of the key connection system and in the absence of root access to mobile devices root of the problem.

Make full use of the development kit and the Android SDK and the NDK resources, under the Windows 7 system using MyEclipse development environment to the IDE, the Android platform to achieve the Raman spectrometer control system. Finally, the system was tested and reach the expected effect. Although system stability and the accuracy is higher, but on the mobile device still need to further

improve the mobility, such as bluetooth connection on wireless connection remains to be further analysis and research.

KEYWORDS: Android Raman spectrum Usb connection Implementation

目 录

第一章 绪论………………………………………………………………………………………………………….1

1.1 课题背景………………………………………………………………………………………………………….1

1.2 拉曼光谱技术概况……………………………………………………………………………………………1

1.2.1 拉曼光谱简介………………………………………………………………………………………..1

1.2.2 拉曼光谱仪工作原理……………………………………………………………………………..3

1.3 本文的研究内容……………………………………………………………………………………………….4

1.4 论文组织结构…………………………………………………………………………………………………..4

第二章 Android 操作系统 5

    1. Android 简介及发展历程 5
    2. Android 系统架构 7

2.2.1 应用程序层……………………………………………………………………………………………7

2.2.2 应用程序框架层…………………………………………………………………………………….8

2.2.3 系统函数库……………………………………………………………………………………………8

2.2.4 运行时环境……………………………………………………………………………………………9

2.2.5 系统内核……………………………………………………………………………………………….9

    1. Android 应用程序类型分析 9
    2. Android 程序生命周期 10
    3. Android 的特点 12

2.5.1 开放性…………………………………………………………………………………………………12

2.5.2 平等性…………………………………………………………………………………………………12

2.5.3 可重用性……………………………………………………………………………………………..12

2.5.4 开发方便……………………………………………………………………………………………..13

2.6 本章小结………………………………………………………………………………………………………..13

第三章 控制器的设计与实现……………………………………………………………………………….15

3.1 系统需求………………………………………………………………………………………………………..15

3.1.1 功能需求……………………………………………………………………………………………..15

3.1.2 性能需求……………………………………………………………………………………………..15

3.2 系统总体架构设计………………………………………………………………………………………….16

3.3 Android 开发环境 17

3.4 用户注册及登录……………………………………………………………………………………………..17

3.5 界面设计………………………………………………………………………………………………………..19

3.5.1 科学界面……………………………………………………………………………………………..19

3.5.2 简易界面……………………………………………………………………………………………..21

3.6 功能设计和实现……………………………………………………………………………………………..21

3.6.1 主应用设计………………………………………………………………………………………….21

3.6.2 拉曼光谱特征提取方法………………………………………………………………………..24

3.6.3 配置文件管理程序……………………………………………………………………………….25

3.6.4 条形码扫描仪管理程序………………………………………………………………………..26

3.6.5 数据库管理程序…………………………………………………………………………………..26

3.7 系统连接………………………………………………………………………………………………………..28

3.7.1 Wasatch Raman 光谱仪的 usb 连接 28

3.7.2 系统的设备适应性……………………………………………………………………………….31

3.8 本章小结………………………………………………………………………………………………………..33

第四章 系统测试…………………………………………………………………………………………………..35

4.1 工业主板测试…………………………………………………………………………………………………35

4.1.1 测试板规格说明…………………………………………………………………………………..35

4.1.2 测试实验……………………………………………………………………………………………..36

4.2 移动智能终端测试………………………………………………………………………………………….37

4.3 本章小结………………………………………………………………………………………………………..40

第五章 总结与展望…………………………………………………………………………………………… 41

5.1 论文总结………………………………………………………………………………………………………..41

5.2 展望……………………………………………………………………………………………………………….41

参考文献……………………………………………………………………………………………………………….43

致 谢…………………………………………………………………………………………………………………….45 攻读学位期间所取得的相关科研成果…………………………………………………………………….46

第一章 绪论

1.1 课题背景

拉曼光谱的分析和研究在现代社会具有很重要的意义和应用价值,人们对物 质的检测和鉴定的需求正在逐步提升。判断一种物质所含有的成分以及是否有杂 质,纯度方面的检测都会利用到拉曼光谱分析器。拉曼光谱检测方法与传统的检 测方法相比更加安全可靠,无需破碎研磨的特点不必破坏被测物体,在固体气液 等各种状态下都可以准确检测所以越来越受到人们的重视[1]。

当代科学技术的发展十分迅猛,尤其是计算机硬件技术和人工智能等技术的 发展,使得拉曼光谱分析在很多领域都有所渗透。社会信息化的大背景下,移动 互联时代已经到来。智能移动终端将成为未来发展的趋势。把传统的拉曼光谱分 析系统在移动终端上加以应用已经越来越显得势在必行。Android 智能终端以其 良好的开放性和可定制性成为了最为出色的移动操作平台。综上所述,基于 Android 平台的拉曼光谱仪控制器具有很大的前景和研究价值。本课题对拉曼光 谱分析仪的工作原理进行学习和分析,在 Android 平台下进行控制器的研究与探 索,结合拉曼光谱分析仪形成一个完整的拉曼光谱仪控制器。

1.2 拉曼光谱技术概况

1.2.1 拉曼光谱简介

印度科学家拉曼在 1928 年发现拉曼散射效应,即当一束光线通过透明的介 质分子散射光,除了一样的入射光频率成分之外,包括与入射光频移谱线。在接 下来的几十年里,拉曼散射在很长一段时间都没有真正成为一种行之有效价值的 工具,其原因是拉曼散射光强度很弱,激发光源(汞弧灯)的低能量等制约因素。 激发光源使用激光的激光拉曼光谱仪的出现打破了这种制约,傅立叶变换技术的 出现和日趋成熟更加使得拉曼光谱的检测准确度和灵敏度有了很大的提高[2]。拉 曼光谱技术的应用范围的宽度和广度也在逐渐的扩大和传播,国际拉曼光谱会议 每两年举办一次,每次都设立拉曼光谱在生物学和医学中的发展和应用的专门性 质的讨论会[3]。目前,在环保、高分子、材料、石油、化工、生物、地质等各个

工业和学科部门,拉曼光谱技术都深入的涉及和广泛的应用[4]。拉曼光谱和红外

光谱技术相结合使用可以在分析测试领域内更加深入系统和全面地研究分子的 振动状态并且对分子结构方面的信息提供更多的有参考价值的资料[5]。

拉曼光谱技术具有分辨率较高、不需提前制备样品、对被测物品没有损害等 优点,与激光、光学测试和开发新技术比如计算机技术等,成为光谱分析技术中 一支活跃的分支近年来得到了迅速的发展。拉曼光谱成为一种快速发展的光谱检 测新手段,除了具有无损分析、样本无需前处理、检测速度快等光谱分析法的共 同特点外,与红外、近红外、紫外焚光等光谱分析方法相比,拉曼光谱有其独有 的特点和优势[6]:

(1)检测范围广。当一束激光照射到物质中时,在极性分子和非极性分子 中都能够产生拉曼光谱[7]。所以拉曼光谱的检测范围十分广泛,我们通常所见到 的有机物和无机物以及高分子物质及混合物等都可以采用拉曼光谱分析技术进 行检测[8]。目前已广泛应用于石油化工、材料、环保、地质考古、宝石鉴别、食 品质检、医学药品等技术领域[9]。

(2)水溶液测量。红外光谱能够做到的检测分子震动的频率,拉曼光谱在这 方面毫不逊色,也可以有效并准确地提供分子振动频率的信息。红外光谱虽然能 够检测很多物质,但是对于一些特殊的化学键,如 C=C,S=S 等化学键,其电荷 分布中心是对称的,那么它们所吸收的红外光强度较弱。而拉曼光谱却能利用分 子极化率的改变很好地将它的信息完整清晰的展示出来。这样拉曼光谱与红外光 谱就很好地形成了一种互补的关系。由于水分子中化学键具有不对称性,水溶液 中水的拉曼光谱没有伸缩振动谱带。所以水分子的拉曼光谱频谱图的强度很弱, 其拉曼谱图相对来说比较简单。对比红外光谱,红外光谱在水中反映出的图上谱 线数目很多,这就不可避免地影响了水溶液中溶质的检验。所以拉曼光谱可以对 水溶液进行良好的测量,而红外光谱则不适用于水溶液的测定。

(3) 无损害、快速、准确。采用拉曼光谱技术进行检测和分析过程中对样 品的要求很低,一般不需要制备专门的样品。拉曼光谱检测技术对被检验的样品 不会造成损害,也不会产生额外的污染。使用拉曼光谱检测技术,待测试样几乎 可以是任意的外形,其物理状态也没有任何特定要求,唯一的要求是被测样品可 以接受激光的照射[10]。对被检测样品的极少要求决定了使用拉曼光谱检测技术进 行检测时釆样过程简单。而对一般的红外光谱分析技术来说,待测样本通常需要 被制备成薄膜或进行压片,样本的制备和压制过程比较复杂。由于这种坚定方面 的优势,使得采用拉曼光谱分析时,不用制备大量的样品,对待测样品的完整性 能够很好的保留。

(4)远程在线检测鉴定。随着光纤技术的应用和发展,拉曼光谱分析技术 不仅可以在实验室中进行检测,还可以利用日益发展完善的光纤技术实现远程在

线实时分析检测[11]。进行远程检测时要选择光学通过率高并且够一定长度的光纤

对激发光的信息进行传送和收集。这使得信号的采集过程和传送过程不用人亲自 来进行操作,从而可以在较恶劣的环境下自动完成,提高了环境适应性[12]。采用 CCD 阵列作为光谱检测器的拉曼光谱分析技术可将光谱扫描时间缩短至几秒甚 至更短,通过与激光器、光纤探头、光谱仪以及计算机等硬件设备及化学计量学、 计算机软件等资源相结合,使得拉曼光谱可适用于实时在线分析的要求[13]。

1.2.2 拉曼光谱仪工作原理

当一个频率的光束 v0 单色光照射到样品上时,其内部的分子可以导致入射 光的散射[14]。透过分子的光产生的透射光与入射光的频率相同,而大部分的光在 发生散射的时候改变了光的传播方向,这种散射称为瑞利散射[15]。另一种散射光

106 1010 [16]

约占总散射光强度的

。该散射光的传播方向和频率都发生了变化,

与激发光也就是入射光的频率不同,因此称该散射光为拉曼散射[17]。在拉曼散射, 散射光频率的入射光频率相对减少,称为斯托克斯散射[18]。与此相反的是,增加频 率散射,称为反斯托克斯散射[19]。斯托克斯散射通常远高于反斯托克斯散射,拉 曼光谱仪的测量通常是大多斯托克斯散射,也被称为拉曼散射[20]。

下图是简易型的拉曼激光发射器的工作原理。

图 1.1 拉曼激光原理图

1.3 本文的研究内容

本文的设计主要是在 Android 平台上研究设计并实现拉曼光谱仪的控制以及 图像采集。本文的主要工作包括:Android 平台架构的研究、拉曼光谱仪与手持 移动终端的连接以及控制系统在移动设备上的实现。

(1)Android 系统:Android 操作系统最初由 Android 公司开发。该系统 的内核是基于 Linux 内核,其源代码是开放的操作系统。Android 系统主要应用 在作为手机操作系统和移动智能终端的操作系统[21]。Android 的系统架构和其它 操作系统一样,采用了分层的架构模式。Android 系统的总体架构分为四个层, 并分别从高层到低层做了详细的研究和分析,这四层分别是应用程序层、应用程 序框架层、库和系统运行环境层和内核层[22]。

(2)光谱发射检测过程和设备连接的研究:深入研究了激光发射器 Wasatch

的工作原理和设备的连接,采用 USB 连接的方法实现设备的控制与显示

(3) 系统实现:在 Android 系统实现控制拉曼光谱仪的工作和显示。通 过学习 Android 平台的基础架构和内核的有关知识,理解其系统分层原理和技 术特点,在 Android 平台下实现控制拉曼光谱仪的工作,并且在移动设备上运 行,达到了预期的效果。

1.4 论文组织结构

本文各章节内容如下:

第 1 章:介绍本课题的背景,详细说明了拉曼光谱检测技术的发展应用和 拉曼激光发射仪的简单工作原理,以及本课题的主要研究内容。

第 2 章:介绍了 Android 系统的发展历程,对 Android 系统的架构进行研 究。

第 3 章:介绍了本系统的总体设计,以及需求和整体架构。详细的对

Android 平台下应用的设计和实现进行了研究,包括具体的功能和界面的实现。 第 4 章:对本系统进行实际测试,抓取图像并比较两种光谱的频谱图。

第 5 章:对论文的研究成果和不足进行总结,提出了进一步改进的建议, 并且对成果的应用前景进行了展望。

第二章 Android 操作系统

    1. Android 简介及发展历程

Google 公司在 2007 年 11 月 5 日发布了一款新的操作系统,这款系统被 命名为 Android,其中文意思是机器人。Android 操作系统是一个开源的操作系 统,它的内核是基于 Linux 内核,经常应用于手机等智能移动终端并且获得了市 场的广泛认可 [23]。Android 系统保留了 Linux 的核心应用,并且在保持 Linux 风格的同时方便了向广大程序开发人员。Android 系统为他们提供了各种函数库 和完整的应用程序框架[24]。此外,Android 系统还在 Linux 核心上提供了一种名 叫 Dalvik 的 Java 应用程序运行环境。Dalvik 是一种 Java 虚拟机,但是它与 Sun 公 司 J2ME 的 Java 虚拟机有所不同[25]。Dalvik 是由 Google 公司独创的一种 Java 虚 拟机,专门针对 Android 平台进行优化的。Google 公司提供了跨平台(包括: Windows、Mac OS X、Linux 等平台)的开发工具包(SDK),这些工具包是完全免 费的。这就使得全球的应用程序设计和开发人员都能够学习和参与 Android 平台 应用程序的开发[26]。Android 系统凭借这些特性在市场中树立了良好的形象并且 赢得了极大的好评,很快就取得了移动智能终端操作系统中的领先地位。

由于 Android 是一个开源并且免费的平台,应用 Android 操作系统的移动设 备在供应商看来是可以免除缴费的。而非免费的操作系统则需要每售出一台设 备,就得向操作系统的提供商缴纳一定的费用。对硬件开发和制造者来说, Android 是一个非常好的开放平台。只要厂商有能力,就可以发挥最大的自由度 在这个平台上进行加入特有的装置或预制功能。这些厂商不必受移动设备操作系 统厂商的限制。Android 在移动设备的开发者方面来说也是个先进的平台[27]。凡 是 Android 平台上的应用程序与各种型号的 Android 移动设备都是可以相容的, 开发者不必为不同型号移动设备进行有差别的开发而困扰。对于用户来说,不管 是移动设备的开发者还是使用者都可以从 Android 平台先进的网络管理能力和强 大的 3D 绘图处理能力中得到良好的用户体验。

Android 系统提供了一个相对完整的应用程序框架。这个框架以 Linux 核心 为基础,包括各种合用的函数库[28]。Android 系统所采用的 Apache 版权非常符 合商务用途的限制。Google 公司还自行研发了 Dalvik,它是一种基于 Android 平台的应用程序运行环境[29]。对于不同平台的开发者来说,Android 还提供了夸

平台的开发工具 SDK,并且是免费的整合了 Eclipse 的开发环境。不论开发者使

用的是 Windows、Mac OS X 抑或是 Linux,都能很方便的进行开发和使用。 Android 在短短三年中有如黑马一般突飞猛进,它在全球范围的影响是众多

人始料未及而有目共睹的。这种发展态势并非只是一时炒作,它得利于 Android

更深层次的优势。

1、数量巨大的开发者因为自身的开放性平台而加入到开发的行列,令自己 快速发展并地走向成熟;

2、它摆脱了移动运营商的束缚,其网络服务更加的便利;

3、Android 平台几乎囊括了所有的移动智能终端如手机、平板电脑等;

4、它的开发者自由而不受限制,这是开放性带来的又一个好处; 5、Android 平台的应用与 Google 应用能够实现无缝的结合。Android 电子

市场全部下载数量已经超过 150 亿次[30]。

表 2.1 Android 平台版本发展

版本代码 版本 API 级别 发布日期
1.0 API level 1 2008.08
1.1 API level 2 2009.02
Cupcake 1.5 API level 3, NDK 1 2009.04
Donut 1.6 API level 4, NDK 2 2009.09
Eclair 2.0 API level 5 2009.10
Eclair 2.0.1 API level 6 2009.10
Eclair 2.1 API level 7, NDK 3 2009.10
Froyo 2.2.x API level 8, NDK 4 2010.05
Gingerbread 2.3 – 2.3.2 API level 9, NDK 5 2010.12
Gingerbread 2.3.3 – 2.3.7 API level 10 2010.12
Honeycomb 3.0 API level 11 2011.02
Honeycomb 3.1 API level 12, NDK 6 2011.05
Honeycomb 3.2.x API level 13 2011.07
Ice Cream Sandwich 4.0.1 – 4.0.2 API level 14, NDK 7 2011.10
Ice Cream Sandwich 4.0.3 – 4.0.4 API level 15, NDK 8 2011.12
Jelly Bean 4.1.x API level 16 2012.06
    1. Android 系统架构

Android 操作系统虽然专门针对移动智能设备和终端,但是它也采取了分层 的思想和架构,这得益于像 Windows、Linux 系统等其他主流操作系统的支持和 启发。如图 2.1 所示。其四层的系统架构层分别是,系统中部分和第三方开发 的应用所在的应用程序层;应用程序框架层为开发人员提供 API ;为应用提供 组件和核心库的系统函数库和运行时环境层;提供最底层服务的 Linux 内核层 [31]。

图 2.1 Android 系统架构图

2.2.1 应用程序层

应用程序层包括了一部分的系统应用,第三方开发的应用也在这一层[32]。系 统应用和第三方开发的应用是有区别的。一些系统中隐藏的类会在系统应用中使 用, 而第三方的应用是完全对外开放的[33]。其中第三方应用调用的 API 是系统

对外开放的,其基于的基础 SDK 也是对外公开的。Android 系统中的所有应用都

是使用 Java 语言编写的。一般来说一个 Android 系统内部会预制一些基本的管理 和应用程序包。这些应用程序包包括电子邮件客户端,短消息发送和接收程序, 日历,地图,浏览器以及联系人管理程序等[34]。

2.2.2 应用程序框架层

应用程序框架层为开发人员提供了系统支持的各个功能和服务的 API 框 架,系统自带的核心应用也是基于此来进行开发的,开发人员可以通过调用这些 API 来开发自己的应用程序,而不需要过多的了解系统的内部实现,更不需要开 发人员自己去实现,避免了大量的重复劳动。有了 Android 系统的应用程序框 架层的设计,开发人员就可以方便的替换程序组件,可以减少很多工作量。

表 2.2 Android 系统服务

服务 功能

视图 可以用于构建应用程序,它包括按钮,文本框,列表,网格 内容提供器 应用程序可以访问另一个应用程序的数据 资源管理器 提供了对非代码资源的支持

通知管理器 管理状态栏信息

活动管理器 管理应用生命周期,导航辅助功能

系统函数库

Android 系统的底层的服务是使用 C/C++做为开发语言,将这些服务封装成 函数库,可以为开发人员提供方便的服务。开发人员可以根据系统提供的 API 调用这些函数库,开发自己的应用程序。以下给出了 Android 系统提供的部分 核心库。系统 C 库是标准 C 系统函数库( Libc ),它是从 BSD 实现的。系统 C 库的大小只有大约 200KB,是专门为基于 Linux 的嵌入式设备开发和定制的[35]。 上层结构可以方便的调用这些库函数。FreeType,用于位图和矢量字体渲染[36]。 Surface 管理,对显示子系统的管理,并且为应用程序提供和管理显示缓冲区[37]。 通过 Surface 管理,应用程序可以与 2D 和 3D 图形层紧密联系在一起。媒体 库,基于开源的 OpenCORE 多媒体引擎。作为第三方软件以库的形式封装到 Android 平台中,提供多种常用格式的媒体文件的播放和录制功能。WebKit 是 一种通用的内核,适用于绝大部分浏览器[38]。早期的浏览器内核是 Konqueror 浏 览器内核,它是基于 KDE 平台的[39]。以及先进的 LibWebCore 浏览器渲染引擎。 OpenGL ES,一个免费开放的 3D 标准,基于嵌入式设备设计的 OpenGL 三维 图形引擎 API 子集。当硬件支持时可通过硬件进行 3D 加速。SGL,底层基本 的 2D 图形引擎。SQLite 是一种数据库,它的特点是免费性和开源性。SQLite

数据库的代码整体体积很小,250KB 的代码能轻松并有效地支持达到 2TB 大小

的数据库。SQLite 是一种非常强大但是又体积轻小的关系数据库引擎,所有应 用程序都可以使用。

运行时环境

Android 系统运行时环境和系统函数库在同一层,提供了 JAVA 核心类库中 的大部分功能。Google 开发了一个基于基于寄存器的虚拟机,命名为 Dalvik[40]。 由于 Dalvik 虚拟机是基于寄存器的,所以在 Dalvik 应用的平台可以对其进行 优化处理,达到最佳的性能[41]。因此在 Dalvik 虚拟机可以高效地运行多个应用 实例,系统中每一个应用程序都是 Dalvik 虚拟机中的一个实例[42] 。能够在 Dalvik 虚拟机运行的文件是.dex 格式的可执行文件,这种格式专门为 Dalvik 虚拟机设计的,是一种最小内存依赖的格式。非常适合用于像嵌入式设备这种处 理速度和内存资源有限的系统。由于 Android 系统是基于 Linux 内核开发的, Dalvik 虚拟机同样依赖底层 Linux 内核提供基本功能,如线程管理和内存管理 等。

系统内核

Android 系统是基于 Linux 版本 2.6 开发的,与 Linux 系统内核的主要区 别是添加了一个名为 Goldfish 的虚拟 CPU 以及 Android 运行时所需的特定 驱动代码和删除了部分功能[43]。同时除了修正部分 Linux 的漏洞之外,还增加 了 Android 专有的驱动程序,对 Linux 做了很多方面的优化和改进。该层位于 硬件之上,软件层下,作为一个虚拟的中间层,上层不用直接与硬件打交道,提 供了一个硬件和上层软件的屏蔽作用。

该层用于提供系统最底层的核心服务,如安全机制、内存管理、进程管理、 网络堆栈及各个硬件的驱动模块。

    1. Android 应用程序类型分析

Andriod 架构中的几乎所有的应用程序都是由四种应用程序结构所构建的, 分别是活动(Activity)、服务(Service)、广播和 Intent 接收器(Broadcast and Intent Receivers)、内容提供器(Content Provider)。

活动(Activity)

Android 架构中的活动与 windows 操作系统中的独立应用程序十分地类似。 一些可执行的代码组成了这些,这些活动在系统或者用户需要时就会被启动。用 户可以与活动进行交互,还可以通过查询(queries)和 intent 组件向其他活动或者

服务获取数据和服务。屏幕的显示要由活动来处理和负责,每一个活动一般都有

一个对应的界面。系统可以在一个活动不处于激活状态下将它结束从而可以提高 移动智能设备的内存的利用率[44]。

服务(Service)

Android 系 统 架 构 中 的 服 务 与 windows 系 统 或 者 服 务 器 中 的 后 台 程 序 (daemons)类似,它的构成同样也是一些可执行的代码,这些服务启动以后会在 后台一直运行,直到移动智能设备关机为止[45]。一般情况下服务是没有用户交互 界面的。

广播和 Intent 接收器(Broadcast and Intent Receivers)

广播和 Intent 接收器(Broadcast and Intent Receivers)用于处理应用程序发出 的服务请求。系统级别的事件消息用广播接收器来处理,这些消息可能是由系统 本身发出的,例如移动设备的电量不足;消息的来源也可能是系统在中的某个正 在运行的其他活动服务和应用程序。一个活动或者服务如果想向其他应用程序提 供服务,一般通过 Intent 接收器来实现。Intent 接收器与活动服务一样也是一段 可执行代码,当其他服务或者活动发出服务或者数据请求时就会响应[46]。在活动 或服务要发送请求前,活动或者服务的客户端要先创建一个 intent 对象,然后把 这个对象提交到 Android 系统内部,由系统本身来决定使用哪个应用程序来处理 这个对象。这两种接收器程序和服务程序一样,也是没有用户交互界面的。

内容提供器(Content Provider)

内容提供器(Content Provider)的主要服务对象是其他的活动或者服务,它为 这些活动提供数据服务。内容提供器使用了一种名叫 URI(Uniform Resource Identifier,统一资源标识符)的接口,并通过这种接口向其他应用程序提供数据服 务。

    1. Android 程序生命周期

因为 Android 是一个在各种移动智能设备上运行的操作系统,这就不可避免 的会经常的遇到资源限制的问题(如内存不足、电量不够等)。为了解决这种资源 上的制约问题,Android 系统内部本身提供了一套行之有效的解决机制。这套机 制是 Android 系统给每个活动都定义了一个生命周期的概念,体现在 Android 活 动的生命周期里,如图 2.2 所示。一个活动或者服务从开始创建到程序结束的 所有可能的状态、事件和需要传输的数据都在活动的生命周期里进行了完整定 义。程序开发人员在设计活动和应用时也非常简单,在设计时通过重载 Activity 基类的方法既可以轻松监听并处理各种事件和消息,加强了对活动本身的把控和 掌握。

onCreate

图 2.2 Android 活动的生命周期图

系统会在一个应用程序的活动(Activity)开始时调用 onCreate( )方法。这个方 法通常会打开数据库并创建活动的视图(view),另外还包括一些必要的初始化操 作。onCreate( )方法的参数是一个描述活动之前状态的 Bundled 对象。

onStart

onStar( )方法在活动显示在移动智能设备的显示屏上之前会被调用。一旦这 个 方 法 执 行 完 毕 , 活 动 就 显 示 在 屏 幕 上 。 这 时 程 序 的 控 制 权 就 会 传 递 到 onResume( )方法。如果活动显示隐藏,则会将控制权传递到 onStop( )方法。

onResume

当 onResume 方法被执行时,说明这个活动正在运行状态,用户可以在这 个活动的交互界面上与该活动进行交互。

onRestar

重新启动活动时会被执行 onRestart( )方法。 onPause

这个方法用于多活动的同时运行,在某个活动或程序正在运行时如果用户或

系统启动了另外一个活动并且要显示在屏幕上,就会执行 onPause( )方法,之前 正在运行的这个活动就会进入暂停状态。当活动暂停状态要结束时,将会调用 onResume( )方法重新在屏幕上显示原来的活动。不过在 Android 系统架构中不是 所有暂停的活动都能恢复到之前的运行状态。如果原活动不可见,则会调用 onStop( )方法强行终止活动。

onStop

onStop( )方法在当活动变得不可视时被调用。下面分为两种情况来处理,如 果是活动的前台显示权被夺去要重新运行活动,则调用 onRestart( )方法;如果是

要销毁活动,则调用 onDestroy( )方法。

onDestroy

这是活动被终止前执行的最后一个方法,表示活动任务已经完成。不过有些 时候,Android 系统为了回收一些系统资源,强行终止某个活动时也会执行这个 方法。

    1. Android 的特点

开放性

Google 与其组建的 OHA 开发了 Android 系统,Google 通过与软件开发 商、硬件制造商及电信营运商的深层次合作伙伴关系,建立标准化开放式的移动 终端平台系统[47]。Android 是开放式的操作系统,开发人员可以在 Google 官网 上获取 Android 系统的源代码,不仅包含底层的操作系统,同时包含了上层的用 户界面以及常用的应用软件。厂商不需要话费任何授权费用即可使用这个系统, 而且厂家也可以根据自己的需求对其进行定制和扩展。

平等性

Android 系统架构的应用程序中没有优先级明显高于其他程序的活动,他们 之间都是平等的,应用之间的创建条件也是平等的[48]。Android 系统中所有的应 用程序都运行在一个核心引擎上,这个核心引擎为 Android 系统提供了调用硬件 资源和基本功能实现的 API。不考虑这个核心引擎,Android 系统下默认提供的 应用程序和开发人员开发的第三方应用程序等都是平等的[49]。系统中默认提供的 应用程序可以被替换和扩展,用户可以跟据自己的喜好,替换系统默认的应用程 序,修改成具有自己个性和风格的手机系统。例如像拨号程序、SMS 信息这样 的系统核心组件也可以被替换成用户自己喜欢的具有相同功能的应用程序,这在 其他平台下的手机几乎是不可能实现的。

可重用性

Android 系统下的应用程序之间是无界限的,系统下的组件可重用性高。 Android 系统上的应用程序除了可以调用标准的 API 访问系统的核心功能,同 时可以发布它的功能块供其他应用程序使用,但是应用程序的使用方法需遵循框 架的安全性约束。同样,该应用程序也可以使用其他应用的程序发布的功能块。 这样用户就可以方便的替换程序组件。

开发方便

Android 系统为开发人员提供了大量实用库和工具,开发人员通过调用这些 实用库和工具的 API,可以方便的创建和开发自己想要的应用程序,同时开发人 员在满足 Android 系统框架的安全性约束的条件下可以调用系统提供的和第三方 开发的应用程序提供的功能模块,可以非常方便的实现所要开发的应用程序。例 如,编辑相机中图像的应用,在别的平台下的手机实现起来非常的复杂,而在 Android 平台下,开发人员通过调用系统自带的相机应用模块就可以轻松进行拍 照获取图像,进而对图像进行编辑,略去了大量的相机部分的代码编写,简单方 便的实现了编辑相机中图像功能的应用程序。与其他的主流的智能手机相比,在 Android 系统下开发应用程序非常方便[50]。

2.6 本章小结

这一章对 Android 平台进行了全面介绍。首先介绍了 Android 历史背景和 Android 市场的认可。然后分别阐述 4 层架构的 Android 系统。然后系统 Android 开 发工 具 进 行了 简 单 的说 明 。 然后 为 Android 目 录组 织 项 目的 解 释, 介 绍了 Android 程序的生命周期和特点。为下一步的工作提供了 Android 开发的基础和 环境。

第三章 控制器的设计与实现

3.1 系统需求

功能需求

拉曼光谱仪控制器的目标是通过对拉曼光谱仪的控制,来完成被检测物质的 光谱的抓取和对比等一系列功能从而判断被检测物质的成分和纯度。所以必须和 下位机进行连接,以便于完成频谱图的显示和对比等各项功能。

1. 抓取功能:对样品进行测试,把频谱图显示在界面上,以显示出物质拉 曼曲线的波峰和波谷,极值点等重要信息。用以确定物质成分。

2. 保存功能:将当前的频谱图保存到一个文件中去,可以选择不同的文件 格式。

3. 创建用户功能:用户需要对不同的身份创建不同权限的操作用户和管理 员[51]。

4. 设置功能:用户根据被测物质和外界条件的不同选择不同的激光功率和 积分时间。

5. 比对功能:用户可以根据不同物质生成的频谱图进行对比,需要把各次 抓取所获得的频谱图在同一界面上显示出来。

性能需求

由于基于 android 平台的拉曼光谱仪控制器需要存储被检测样品的信息以便 进行细致的比对,所以数据库系统应该具有备份和恢复功能,保证频谱图数据库 能够长期有效准确的保存和提供样品的频谱信息。另一方面,要能够便于管理员 的操作和管理。对系统的安全性要求比较高,这取决于用户本身和被测样品的秘 密级别。因此对业务逻辑必须封装,避免有人登陆进行他没有权限的操作,避免 黑客从数据流中截取敏感数据。

        1. 时间要求(Time Request)

(1)响应时间:即查询最多等待时间 。

系统规定,对于管理员在登录后 30 分钟内不进行任何操作即退到初始登录界面; 对于一般用户登录后 15 分钟内不进行任何操作即退到初始登录界面,以释放系 统资源并加强安全管理。

(2)更新处理时间:即用户的信息登记后每隔一个月就要更新一次,以使

系统能够具有最新的用户信息。

(3)解题时间:即对被测物质的检测时间,如在大于用户设置的积分时间 以外则终止本次抓取。

        1. 空间要求(Space Request)

(1)处理的文件和记录数大于 200。

(2)处理任务的数量大于 500。

(3)对输入和输出数据的精度有较高要求。

(4)对处理和传输过程中的精度要求是传送速率比较快。

        1. 界面需求(Interphase Requirement)

采用 Android 的界面,界面简单规范,易于操作。通过按钮由主界面访问各子模 块[52]。各子模块根据自身特点子模块的主界面形式访问其下各具体功能块。

(1)输入设备:智能移动设备触摸屏、鼠标、虚拟键盘;

(2)输出设备:智能移动设备显示屏;

(3)显示风格:图标界面、字符界面;

(4)输出格式:显示布局。

3.2 系统总体架构设计

论文中在 Android 平台下实现的拉曼光谱仪控制系统按照功能划分可以分成用户管理 模块,抓取及显示模块和保存比对模块,系统的主要模块定义如图 3.1 所示。

图 3.1 系统主要模块定义

3.3 Android 开发环境

论文的课题是设计并实现基于 Aandroid 平台下的拉曼光谱仪控制器。 本课题主要是在 Android 模拟器上进行开发,并在真机上进行物质检测,

所以首先需要对 Android 应用程序的开发环境进行搭建。本系统所需要的开发 环境和软件资源如下:

表 3.1 系统开发环境及资源表

系统环境 Windows7

JDK JDK1.6

SDK Android SDK 2.1

NDK Android NDK

开发环境 MyEclipse 10

开发环境的搭建步骤:

(1) 下载和安装 JDK,本系统采用的版本是 JDK1.6,其下载地址是: http://www.oracle.com/technetwork/java/index.html

  1. 下载和安装 Android SDK,本系统采用的版本是 Android SDK 2.1,其下

载地址是:

http://developer.android.com/sdk/index.html

  1. 下载和安装 Android NDK,本系统采用的版本是 Android NDK R7,其 下载地址是:http://developer.android.com/ tools/sdk/ndk/index.html
  2. 下载和安装 Eclipse, 本系统采用的版本是 Eclipse Indigo。Eclipse 的 环境进行配置,主要是下载安装 AndroidADT 插件。使用 ADT 工具设置目标 环

境。Eclipse Indigo 的下载地址是:http://www.eclipse.org/downloads/

3.4 用户注册及登录

1.用户类别 系统管理员(System Admin) 出厂标定员(Factory access)

2. 具体描述 用户操作权限的描述:

一般用户(User): 一般用户的界面将设计的尽量简洁,同时不失可操作性。 一般用户的权限包括,设置样品测试的种类,输入测试人的姓名,测试样品名称, 扫描增强剂的条形码,可以进行检测工作。

专家用户(professional):除了一般用户可以操作的内容外,专家用户可以

修改激光器参数,光谱仪参数,可以使用特殊的光谱获取模式(连续获取,抓取, 阀值获取)。可以对拉曼光谱图进行放大缩小,标记,裁剪,存储和分析。可以 定义频谱阀值,峰值和峰值组合。

系统管理员(System Admin):可以设置网络上网参数,创建新的文件夹存 放数据。可以从远端进行数据库数据更新。可以修改,增加和删除一般用户和专 家用户的名称。

出厂标定员(Factory access):可以对系统的各个参数进行设置,调整和标 定。

每个用户有一个密码和权限级别。每个权限被限定在一定的存取和使用范 围。

3. 正常操作情形 在下拉菜单中,点击“用户管理”这个菜单,进入用户管理对话框,可以创

建,修改,删除用户。设置用户密码,用户权限,第一次出现的对话框如下:

图 3.2 用户选择对话框

点击新增用户后, 出现一个创建新的用户的对话框:

图 3.3 创建用户对话框 用户点击确认程序将新的用户信息存入数据库,若按取消即放弃。 点击一个已有的非系统缺省用户后,出现的对话框和上一个一样,只是名称,

和用户类型已经从数据库中读出。用户这时可以修改密码和类型,用户名不可修

改。

若用户长按一个已有的非系统缺省用户,出现删除对话框如下:

图 3.4 清除用户对话框

若用户按确认,用户名将在数据库中标记为“已删除”。以后列表时这个用 户将不再被显示出来。

4. 数据库设计

表名(table name):UserProfile.xml

列名(Col name):序列号(No),名称(Name),权限(Priority),密码(Password), 删除标记(delete Mark).

3.5 界面设计

科学界面

图 3.5 科学界面

科学界面是提供给比较专业的用户进行检测和对比的界面,在其中囊括了本 系统绝大多数的功能。

1. 状态栏

0:Overlay 这个是当前的频谱数据的名称,比如“97 号汽油”,“93 号汽油”, “防晒霜”,等等,用户可以修改的名称。Temperature 这个实时显示当前频谱仪 的温度,这个值是每隔 0.5 秒更新一次。Power 这个是当前用户设置的激光的 功率值,最小是 0,最大是 100,这个显示的是最大激光功率的百分比。Integration

time 这个是 CCD 积分时间,用户可以设置这个值范围是 5 毫秒到 10 秒;同时

当开始采样的时候,这个状态栏变成积分进度条。进度条:当进行测试的时候, 从测试开始到测试结束,一个进度条表示当前实时的测试进度。离线状态: 当 设备没有连接时,只有一个设备未连接的状态图标,其他图标不的显示。当设备 连接后,这个离线状态就不再显示,其他的状态就开始显示。

        1. 按钮

数据或波峰按钮: 用户点击这个按钮,一个新的“波峰或者数据窗口从画面 的左边移动到整个界面,根据当前有否峰值,峰值显示窗口优先。设置按钮: 用 户点击这个按钮,从右边出现设置窗口,在设置窗口中,用户可以设置当前测试 的设置项,比如,积分时间,激光功率,温度,等等。

        1. 手势

底部上划手势: 用户从底部上划时,弹出一个按钮列表,按钮包括:保存, 打开,email,一次抓取,连续抓取,停止,背景,波峰,计算 ,清除,退出。 他们的优先级需要调整。中间手势:用户在界面中间左右划动时,从右往左划动 时,右面的频谱图移动到主界面,反之亦然。若到了最后一个频谱图,不再移动。

4. 按钮操作功能描述 保存:将当前的频谱图保存到一个文件中去,可以选择不同的文件格式。打

开:从系统中选择并打开一个文件,并将频谱显示在界面。一次抓取:用户点击 这个按钮,仪器开始对样品进行测试,并将结果显示在界面里。连续抓取:用户 点击这个按钮,仪器不断地对样品进行测试,并不断地更新界面,直到用户点击 停止按钮。停止:停止正在进行的连续抓取。背景:用户点击这个按钮时,仪器 将获取当前的背景光谱,这个光谱在一次抓取和连续抓取时,会从获取的光谱中 剪掉,以便获取正真的测量数据值。波峰:用户点击这个按钮后,进入手工波峰 标记状态,此时其他按钮将不能工作,需要一个浮动按钮从波峰标记状态退出。 计算按钮:用户点击这个按钮后,一个新的窗口出来,让用户选择计算的频谱和 计算的方法,然后计算的结果放入最后一个频谱图中。清除按钮:用户点击这个 按钮后,若界面有频谱曲线,将其清除干净,这样用户可以继续抓取新的频谱, 这样界面更干净。退出:用户点击这个按钮后,程序退出。按键:用户按返回键, 只返回前一级界面,不退出程序。

简易界面

图 3.6 简易界面

简易界面是提供给非专业的用户进行比较粗略的定性检测的界面,在其中只 有基本的功能。候选物质大类: 如食品类,对应的物质子类包括:苏丹红,孔雀 绿,苯,二噁英等等。用户测试按钮列表:包括开始测试,email(打印)结果, 返回和退出。

3.6 功能设计和实现

3.6.1 主应用设计

1. 用户类

一般用户(User): 一般用户的界面将设计的尽量简洁,同时不失可操作性。 一般用户的权限包括,设置样品测试的种类,输入测试人的姓名,测试样品名称, 扫描增强剂的条形码,可以进行检测工作。

专家用户(professional):除了一般用户可以操作的内容外,专家用户可以 修改激光器参数,光谱仪参数,可以使用特殊的光谱获取模式(连续获取,抓取, 阀值获取)。可以对拉曼光谱图进行放大缩小,标记,裁剪,存储和分析。可以 定义频谱阀值,峰值和峰值组合。

系统管理员(system Admin):可以设置网络上网参数,创建新的文件夹存 放数据。可以在终端直接更新数据库或者从服务器更新数据库。可以修改,增加 和删除一般用户和专家用户的名称[53]。

出厂标定员(Factory access):可以对系统的各个参数和数据库进行设置,

调整和标定,(出厂恢复功能实现)。

2. 具体描述

Main Application UI 是应用程序的主界面,它包含系统下拉菜单,所有的按 钮和文字数字标签,对一般用户包含一个显示用户测试的样品的物质含量的界 面,对专家用户还包含一个显示频谱的显示区,用户可以通过这个界面分析光谱。 在显示区的下面有可以选择不同的测试项的按钮。

开始

设置测试种类

扫描条形码数据并 处理

读取profile,

是 否 设, 置功率

N

获取缺省的功率值

Y

传送设置参数给光 谱仪

处理从光谱仪获得 的频谱数据 关闭 激光输出

将数据存入文件

对一般用户 将测量结 果显示报告给用户

对专家用户 将测量频 谱图显示给用户

关闭激光输出

结束

3. 异常和消息范畴

图 3.7 物质检测流程图

异常和消息管理程序将定义一个 android 全局异常处理程序,来管理所有未

处理的异常和 Android Log 消息。自定义系统定义 log 消息级别,用户户可以将

相应级别的 Log 信息发向这个处理程序,处理程序将相应的内容写入 log 日志文 件。日志文件的删除和新建管理。

3.6.2 拉曼光谱特征提取方法

1. 具体描述 基于光谱图中特征值峰值位置基本不变的特点,提取标准样品和测试样品的

特征峰值。

数学描述:

a. 特征峰值:一个特征峰值值包括拉曼位移的波长值和强度峰值。

b. 特征库:设定特征峰值个数上限值 N 及特征提取的阀值 Y, 高度在阀值 Y 以上的峰值称为特征峰值,设某一标准样品的特征峰值个数为 n。若 n<=N, 则 这 n 个特征峰值即为要提取的特征峰值;若 n>N,则按照特征峰值从大到小的顺 序取前 N 个为提取的特征峰值(若有特殊要求的情况,需要专门处理)[54]。

将已知的样品特征峰值集合标记为特征库 S=Usi(i=1,2,3,…,M), Si 表示第 i 种 样品的特征表,M 为特征库包括的样品的数量。建立的特征库即为识别算法的 已知的知识库。

c. 待测样品特征值:和已知的样品一样,待测样品的特征峰值的提取也需 设定阀值 Y 和特征峰值的个数上限 N。为使提取的待测样品的特征包含更多的 特征信息,阀值 Y 应当取得尽量小,但是过小的阀值会使提取的特征峰值包含 不需要的噪声信息,因此定义阀值 Y=3S0,S0 为一阶微分光谱在无信号参考区 内的方差。记录这些特征峰值的位置和强度信息,获得待测样品的特征表。

d. 特征比较:待测样品的特征表Ф与标准样品的特征表 S 进行位置匹配。 匹配要求特征表 S 里的每个特征峰值在待测样品的特征表Ф中都有表达,即同一 波长位置有对应的特征峰值。由于光谱测量,背景变化,预处理过程的变形会使 图谱发生不规律的波长平移,因此为了减小这种平移带来的检测误差,位置匹配 需要放宽匹配条件,即在一定的范围内匹配成功即可。经验表明,Fi=w+fi; w = ±4 即可。若待测样品的特征表Ф与标准样品的特征库 S=Usi 一一进行位置匹配,则 匹配成功的已知的样品的集合称为待测样品的识别结果集 R=URk(k=1,2,3,…,p),p 为匹配成功的已知的样品的个数。

e. 识别结果的评判:计算识别结果的置信度,就是计算检测结果 R=URk 与待测样品的相识度ρ=Uρk (K=1,2,3,…L),其中 L 为匹配成功的已知的样品的个 数。相似值ρk 越大,识别的结果准确度越高,就是待测样品与检测结果 Rk 的成 分越接近。Rk 与待测样品的相识度定义为式 3.1:

Rk 1max

Akj A* kj Akj A* kj

(3.1)

其 中 Akj,j=1,2,3,…,m, 为 Rk 的 特 征 峰 值 位 置 表 中 m 个 峰 值 的 强 度 。 A*kj,J=1,2,3,…,m,为待测样品特征表中与这个 m 个峰值对应的特征峰值的强 度。识别结果 R=URk 会对应一组置信度ρ=Uρk ,通过设定相识度ρ的最小值 ρ≥10%,可以将位置匹配恰好成功的误检测结果滤掉。

2. 正常操作情形

在管理员用户标定一个样品后,输入数据,添加特征库。在一般用户测试一 个待测样品后,得到光谱图,特征提取程序开始工作。

3. 数据库设计

表名(table name):SampleEigenvalue(需要先计算,输入的数据库) 列名(Col name):拉曼位移(RamanShift),拉曼强度(RamanIntensity)。 表名(table name):MeasuredEigenvalue(待测样品)

列名(Col name):拉曼位移(RamanShift),拉曼强度(RamanIntensity)。

4. 菜单和活动 有两种实现方法:

a. 创建一个新的应用程序专门对标准数据库的标准液体进行测试,处理完

特征峰值后保存到数据库。

b. 在现在的应用程序中加入一个标定数据库模式,然后进行处理,保存到 数据库。

a 模式更方便可靠一些。b 模式更一体化,集中化,但是管理更复杂些。本 文采取 a 模式进行设计。

3.6.3 配置文件管理程序

1. 具体描述 配置文件基本包括:

a. 系统配置文件,主要放仪器系列号,生产和出厂日期,维修记录数据, 激光标定数据,硬件端口号和软硬件的版本号。

b. 用户配置文件,有一般用户配置文件,专家用户配置文件,系统管理员 配置文件。

c. 光谱仪测试参数对配置文件。

d. 激光器参数配置文件。 程序模块要完成读、写、添加、删除和保护配置文件。通过权限管理,实现

配置数据的存取通过该管理程序接口。文件格式采用 XML 格式,便于 Java 类存 取和网络传输。XML 格式里包括属性,属性数据格式,最后包括数据本身。

2. 逻辑描述

每个 profile 都对应一个 class,提供对每个属性的读写(只读属性没有写方

法)。每次写完成后,及时存盘。在资源目录为每一个配置文件定义一个 XML

文件。系统启动时,创建每个配置文件的实例,用统一接口让其他模块存取。

3.6.4 条形码扫描仪管理程序

1. 具体描述

条形码扫描仪管理程序实现:(1)条形码扫描仪和 android 系统的通讯功能, (2).管理条形码数据,功能包括对条形码的读取,校对,广播,接受,显示,储 存,更新,删除。3.增强剂的购买,录入,失效提示等功能。

3.6.5 数据库管理程序

1. 用户类别 系统管理员(professional) 2. 具体描述

编写基于可以使用 XML,SQLite,Excel 或者使用 TXT 文本格式存储,根 据找出理由和根据。提供一个和应用程序无关的接口,让用户透明地使用数据库。

3. 数据库设计

定义自己的数据库接口。SQLite 特性:(1).轻量级 (2). 独立性 (3). 隔 离性(4). 跨平台(5). 多语言接口(6). 安全性。SQLite 数据库为了方便管 理把所有的信息都放在一个文件内,并且加强了数据库级别上的独占性和共享锁 用来实现独立事务处理[55]。这样设计的目的是为了能够做到多个进程可以在同一 时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或现成向数 据库执行操作之前,必须获得独占锁定。其他程序的读或写操作在有别的程序发 出独占锁定以后就不会再发生。

创建和打开数据库:openOrCreateDatabase(),自动检测是否存在这个数据库, 如果存在则打开,否则创建,创建成功会返回一个 SQLiteDatabase 对象,否则抛 出异常 FileNotFoundException:

mSQLiteDatabase =

this.openOrCreateDatabase(“abc.db”,MODE_PRIVATE,null);

创建表: execSQL():

String Create_Table = “Create table table1…”; mSQLiteDatabase.execSQL(Create_Table);

向 表 中 添 加 数 据 : insert 方 法 需 要 把 数 据 打 包 到 ContentValues 中 ,

ContentValues 其实就是一个 Map,Key 值是字段名称,Value 值是字段的值。通 过 ContentValues 的 put 方法就可以把数据放到 ContentValues 对象中,然后插入 到表中:

ContentValue cv = new ContentValues(); cv.put(table_num,1); mSQLiteDatabase.insert(TABLE_NAME,null,cv);

从表中删除数据:

delete(): mSQLiteDatabase.delete(“abc.db”,”where…”,null);

修改表数据:

update():

ContentValues cv = new ContentValues(); cv.put(TABLE_NUM,3);

mSQLiteDatabase.update(“table1”,cv,”num”+”=”+Integer.toString(0),null);

关闭数据库:

mSQLiteDatabase.close();

删除指定表:

mSQLiteDatabase.execSQL(“DROP TABLE table1”);

删除数据库:

this.deleteDatabase(“abc.db”);

查询表中的某条记录:通过 Cursor 类实现,当使用 SQLiteDatabase.query() 方法时,会得到一个 Cursor 对象,Cursor 指向的就是每一条数据。它提供了很 多有关查询的方法:

表 3.2 SQLiteDatabase 查询方法

3.7 系统连接

3.7.1 Wasatch Raman 光谱仪的 usb 连接

USB 接口的 Wasatch 拉曼光谱仪是 USB 2.0 兼容和高速操作的。命令发送作 为供应商请求和响应是阅读在端点 0,除了得到图像命令或当光谱仪的操作与外 部输入触发(即 CCD 数据采集触发。设置源设置为 1)。在这两种情况下 1024 字 的 CCD 数据出现在端点 2(定义在 512 字节的散装读包),和 8 字节的状态信息出 现在端点 6。

一个打开并返回设备处理到分光计的标准 C 程序如下:

#define MY_VID 0x24AA

#define MY_PID 0x0002

usb_dev_handle *open_dev(void)

{

struct usb_bus *bus; struct usb_device *dev; usb_init(); usb_find_busses(); usb_find_devices();

bus = usb_get_busses();

for (bus; bus; bus = bus->next)

{

for (dev = bus->devices; dev; dev = dev->next)

{

if (dev->descriptor.idVendor == MY_VID

&& dev->descriptor.idProduct == MY_PID)

{

return usb_open(dev);

}

}

}

return NULL;

其他两个命令是需要正确配置设备:

usb_set_configuration(dev, 1) // sets active configuration to 1 usb_claim_interface(dev, 0) // claims interface 0

在这一点上标准控制消息命令下面描述可以发送到设备。控制消息格式如

下:

int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, int value, int index, char *bytes, int size, int timeout);

请求类型段 :0x40 对于主机设备命令,0 xc0 设备到主机的命令

要求:bRequest 字段设置包。bRequest 代表了特定的命令被送到光谱仪。 价值:值字段设置数据包。通常用于发送一个命令的参数。 指数:索引字段设置数据包。同时,经常用来发送高阶字节信息作为参数的命

令。

字节:8 字节数据包相关控制信息。set 命令用于一些高阶参数字节来表示。 除非指定,可以发送空指针。

尺寸:大小的字节数据包缓冲区。如果空数据包可以为 0。 例如,设置积分时间 100 毫秒:

#define HOST2DEVICE 0x40 // SET commands use 0x40 direction

char *nullbuff = NULL;//Can be null or 8 byte zero array

int ret;

ret = usb_control_msg( dev,

HOST2DEVICE, // host to device request 0xB2, // “Set Integration Time” bRequest 100, // (Integration_Time mod 65536)

0, // floor(Integration_Time/65536)

nullbuff, // NULL buffer array reference

0, // size of NULLBUFF array

1000); // timeout in 1000 msec

获得积分时间写入该设备使用上面的设置命令,可以使用以下代码:

#define DEVICE2HOST 0xC0 // GET commands use 0xC0 direction

char buff[8]; // max data packet size memset(buff, 0,8); // clear the data packet int ret;

ret = usb_control_msg( dev,

DEVICE2HOST, // device to host request

0xBF, // “Get Integration Time” bRequest

0, // Doesn’t matter

0, // Doesn’t matter

buff, // buff array reference to

// receive response

8, // size of buff array

1000); // timeout in 1000 msec

许多 GET / SET 操作涉及到读写寄存器在 FPGA。这种交流是通过 I2C 总线 建立。一种改进的事务时间可以通过设置 I2C 时钟到 400 千赫,而不是默认的 100 千赫。一个可以设置 I2C 总线高速模式下使用:

#define HOST2DEVICE 0x40 // SET commands use 0x40 direction

char *NULLBUFF = NULL;//Can be null or 8 byte zero array

int ret;

ret = usb_control_msg( dev,

HOST2DEVICE, // host to device request 0xB2, // “Set Integration Time” bRequest 100, // (Integration_Time mod 65536)

0, // floor(Integration_Time/65536)

NULLBUFF, // NULL buffer array reference

0, // size of NULLBUFF array

1000); // timeout in 1000 msec

以下是有效的 USB 接口命令。除了以下命令数据分组为“设置”命令可以

是一个空指针:

(1)激光调制时间

(2)激光调制脉冲延迟

(3)设置激光调制周期

(4)激光调制脉冲宽度 在上面的命令,一个引用至少一个字节必须被发送。如果这些高比特位不使

用,那么这个字节的值引用应该是 0。另外,数据包最大长度是 8 个字节。缺省情 况下,所有 8 个字节的引用可以发送设置为 0。

下面是一个可用于每个配置 USB 命令的列表:

表 3.3 USB 命令配置列表

配置结构
命令 0 1 2 3 4 5
I2C_100 X X X X X X
I2C_400 X X X X X X
ACQUIRE_CCD X X X X X X
SET_INTEGRATION_TIME X X X X X X
FPGA_CFG_REGISTER X X X X X X
GET_FPGA_REV X X X X X X
RESET_FPGA X X X X X X
GET_EP_CONTROL_STATUS X X X X X X
SET_CCD_OFFSET X X X X X X
Set_CCD_GAIN X X X X X X
LASER_MOD_DURATION X X
SET_LASER_MOD X X
SET_LASER X X X
GET_INTEGRATION_TIME X X X X X X
GET_CODE_REVISION X X X X X X
GET_MOD_DURATION X X
GET_CCD_OFFSET X X X X X X
GET_CCD_GAIN X X X X X X
SET_MOD_PULSE_DELAY X X
SET_MOD_PERIOD X X
GET_MOD_PULSE_DELAY X X
GET_MOD_PERIOD X X
SET_CCD_THRESHOLD_SENSING_MODE X X X X X X
GET_CCD_THRESHOLD_SENSING_MODE X X X X X X
POLL_DATA X X X X X X
GET_LASER_TEMP X X
SET_CCD_TEMP_ENABLE X
GET_CCD_TEMP X
SET_CCD_SETPOINT X
GET_CCD_SETPOINT X
GET_CCD_TEMP_ENABLE X
GET_ACTUAL_FRAMES X X X X X X
GET_DA_SETPOINT X X
SET_DA_SETPOINT X X
LASER_MOD_PULSE_WIDTH X X
GET_LASER_MOD_PULSE_WIDTH X X
LINK_LASER_MOD_TO_INTEGRATION_TIME X X
GET_LINK_LASER_MOD_TO_INTEGRATION_TIME X X
GET_ACTUAL_INTEGRATION_TIME X X X X X X
SET_EXTERNAL_TRIGGER_OUTPUT X
GET_EXTERNAL_TRIGGER_OUTPUT X
GET_LASER X X X
GET_LASER_MOD X X

对于设备的响应来说,这是响应为配置 2(高速单元)。数据从 CCD 出现在端

点 2 和 4 的 512 字节的块。从 CCD 的数据字出现 LSB 字节第一,最高有效位字 节第二。8 字节的状态出现在端点 6。前两个字节是一个校验,接下来的两个字 节的帧数,之后的四个字节是实际的积分时间。如果命令是成功的则返回 0 x00, 如果不成功返回值< 0。

3.7.2 系统的设备适应性

在系统进行各种操作之前,要确保获得移动设备的 root 权限,才能通过移 动设备来控制光谱仪进行工作。以 Samsung Galaxy Tab3 为例,获取 root 权限的 方法如下:

1、参考 SamsungGalaxyTab3_root.txt 取得 root 权限下载相关文件。下载地址:

http://pan.baidu.com/share/link?shareid=2260878149&uk=438060286

2、首先确定 PC 和 Tab3 处在一个局域网并且相互之间能 ping 通(平板电

脑 ip 查 看 方 法 : a 、 首 先 打 开 下 载 的 文 件 安 装 超 级 终 端 Terminal Emulator 1.0.53.apk 和 BusyBox Pro 9.9.apk。b、安装成功后在超级终端中输入:busybox ifcofig 即可查看 Tab3 的 ip)

3、Android 端: 在开发人员选项中启用 USB 调试,

打开下载的文件并安装 AdbWireless.apk 到 Tab3 打开软件,提示需要最 高权限时选择同意

点击绿色的按钮开启 wireless adb 服务 软件提示:adbWireless is on,from your computer run

adb connect 192.169.2.117:5555

注:192.169.2.117 为 Tab3 本机 ip 4、PC 端:

打开 cmd 命令行进入 android sdk 中 platform-tools 路径

键入:adb connect 192.169.2.117:5555 提示 connected 192.169.2.117:5555

表示连接成功

键入 adb shell 若是电脑第一次连接调试 Tab3 则等待 Tab3 出现对话框询 问是否允许本台电脑

进行调试,选择同意(这一步很关键否则不能调试)。

CMD 窗口中出现 shell@android:/ $ 则说明已经连接调试成功。

5、打开 IDE 在 log 中就可看见设备并可以进行调试了 其中关键代码如下:

private static final String TAG = “WasatchUsbInterfaceImpl”; private Context context = null;

public WasatchUsbInterfaceImpl(Context context) { this.context = context;

}

public boolean initUsbDevice(int in_vid, int in_pid) {

// 获取 USB 设备

manager = (UsbManager) context.getSystemService(Context.USB_SERVICE);

if (manager == null) { return false;

} else {

Log.i(TAG, “usb 设备” + String.valueOf(manager.toString()));

}

HashMap<String, UsbDevice> deviceList = manager.getDeviceList(); Log.i(TAG, “usb 设备” + String.valueOf(deviceList.size()));

Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); ArrayList<String> USBDeviceList = new ArrayList<String>(); // 存 放

USB 设备的数

while (deviceIterator.hasNext()) {

UsbDevice device = deviceIterator.next();

USBDeviceList.add(“—–vid—–” +

String.valueOf(device.getVendorId()) +

“——-pid—–” + String.valueOf(device.getProductId()));

Log.e(“========>>>>MainActivity2”, “——–getVendorId—->” + String.valueOf(device.getVendorId()));

Log.e(“========>>>>MainActivity2”, “——–getProductId—>” + String.valueOf(device.getProductId()));

// 在这里添加处理设备的代码

if (device.getVendorId() == in_vid && device.getProductId() ==

in_pid) {

}

mUsbDevice = device; Log.i(TAG, “找到设备”);

return true;

}

return false;

}

3.8 本章小结

本章主要介绍了系统的设计和实现过程,首先介绍系统开发运行所需要的环 境,然后对系统各个模块的功能以及关键技术进行了详细的分析,最后对系统的关 键连接部分重点加以说明,实现了与拉曼激光探测仪和移动终端的连接。

第四章 系统测试

4.1 工业主板测试

4.1.1 测试板规格说明

表 4.1 测试版规格说明表

中央处理器 ARM Cortex + Mail400

核心处理器主频 1G

内存 DDR3 1G

存储 4G FLASH

TF-Card 最大 64G (选配)

SATA II 最大 2000G (选配)

音频 AC’97 规范

前置/后置音频同步 内置 2*6W 功放(选配)

显示 外置 VGA 接口 Support 1920*1080 HDMI 1.3/1.4 Support 1080p

LVDS (Dual 24bit) Support 1080P

内置扩展接口 串口*5 个

USB2.0*8 个

4 线触摸屏控制接口*1 个 红外遥控接收口*1 个 通用输入/输出口*6 组 用户自定义按钮*14 个 用户供电口(12V/5V)*一组

网络 支持 10M/100M 自适应以太网 支持 54M WIFI 数据通讯(选配) 支持蓝牙通讯(选配)

支持 USB 3G 功能

电源 支 持 DC_12V 外 置 / 内 置 电 源 供 电 和 ATX 12V 供电

支持来电开机功能

主板最大功耗 5W

4.1.2 测试实验

由于定制开发板已经具有 root 权限,因此应用程序可以正常运行。连接开 发板与 Wasatch 光谱仪,用 93 号汽油进行检测,得到如下图所示的频谱图

图 4.1 开发板测试效果图 1

图 4.2 开发板测试效果图 2

第二步换下被测物质,用 95 号汽油继续检测,并且调整积分时间和激光功 率,的到如下频谱图,可以与第一次得到的频谱图加以对比

图 4.3 开发板测试效果图 3

图 4.4 开发板测试效果图 4

4.2 移动智能终端测试

本测试以 Samsung Galaxy Tab3 为例,首先用本文第三章中所讲的方法获取 设备的 root 权限,同样选取 93 号汽油和 95 号汽油进行检测,先进行 93 号汽油 的检测,然后再检测 95 号汽油,把二者的频谱图做对比,首先进行对激光探测 仪的设置:

图 4.5 系统设置界面

然后将被检测的物质样品放入激光器检验槽内,开启激光器进行检测,得到 如下结果:

所示:

图 4.6 频谱图显示界面

点击屏幕左侧按钮或者向右滑动屏幕可以查看频谱图具体数据,如下图

至此完成对被测物质频谱图的抓取和对比。下图是平板电脑和拉曼光谱仪的 整体连接和测试效果图:

图 4.5 平板电脑测试效果图 1

图 4.6 平板电脑测试效果图 2

4.3 本章小结

本章测试分别选取了 AK-471 v0.5 安卓工业主板和 Samsung Galaxy Tab3 为 例,通过对系统连接和物质检测的主要功能对系统进行了完整的测试,测试结果 令人满意。

第五章 总结与展望

5.1 论文总结

随着人们生活水平的提升与科技的进步,拉曼光谱仪在越来越多的领域受到 关注和应用。在对物质进行检测的同时也对检测条件、检测时间和精准度提出了 更高的需求。本文针对这一背景深入细致地研究了拉曼光谱仪的工作原理和 Wasatch 拉曼激光探测仪的特性,开发了一款可以在大部分移动智能终端上应用 的拉曼光谱仪控制器。用户只要在拥有激光探测仪的的条件下就能利用其它 Aandroid 平台的智能设备实现对物质的检测和纯度的测量。系统支持管理员与 一般用户各自建立自己的账户以实现不同的功能。本拉曼光谱仪控制器分为普通 用户和有一定专业背景知识的专家用户不同的界面功能,实现了保存当前频谱 图,打开已经存储的频谱图,对样品进行一次抓取和连续抓取,以及波峰显示和 频谱对比等多项功能。在设备连接上采用 usb 连接的方法,首先获取移动设备的 root 权限,然后根据具体的设备进行安装和调试。

该智能系统包括主应用模块,数据库管理模块,频谱管理模块和激光发射器 管理模块。其中主应用模块包含了大部分的用户界面,包括主界面,登录界面,

设置界面,频谱图界面,科学界面和简易界面。

5.2 展望

本 文 开 发 的 拉 曼 光 谱 仪 智 能 控 制 器 界 面 简 洁 易 用 , 检 测 快 速 准 确 , 在 Aandroid 平台的智能设备上能够稳定运行。但是由于时间和本人能力有限,本 智能系统还有很多不尽如人意的地方,需要进一步完善和改进。下面给出几点需 要改进的方面:

1.检测结果方面。为了进一步提高检测结果的准确性和可用性,可以在现有 的显示频谱图上对拉曼曲线进行平滑处理,以便更直观清晰的判断物质的成分。

2.数据存储方面。数据存储模块的数据库表结构的设计还可以进一步优化。

3.远程访问方面。该系统可以增加邮件发送和访问机制及时发送和保存检测 结果。

4.移动性方面。使用 Usb 连接的一个弊端就是设备的移动性差,可以增加蓝 牙无线连接模块,使本系统更加适应移动终端。

参考文献

[1] 张恒南.手持式拉曼光谱仪控制系统研究[D].哈尔滨工业大学.2012

[2] 龚,卢永凯,林素君,等. 拉曼光谱技术在色谱分析检测中的应用[J].化学通报,2010,08:

689

[3] 张延会,吴良平,孙真荣.拉曼光谱技术应用进展[J].化学教学,2006,04:32

[4] 李艳红.以 PMMA 为基体的光折变聚合物的合成及成份分析[D].北京工业大学.2007 [5] 杨俊丽.光折变聚合物分散液晶的制备及光谱表征[D].北京工业大学.2010

[6] 乔西娅.拉曼光谱特征提取方法在定性分析中的应用[D].浙江大学.2010

[7] 药林桃,刘木华,刘道金,等.激光技术在农产品质量检测中的研究进展[J].激光生物学 报,2007,03:369

[8] 胡晓红,周金池.拉曼光谱的应用及其进展[J].分析仪器,2011,06:1

[9] 杨洁.拉曼光谱技术在检测环境内分泌干扰物中的应用[D].华东师范大学.2011

[10] Iris L B,Ilan S,Valery B,et al.On-line remote prediction of gaso line properties by combined optical methods[J].Analytica Chimica Acta,1997,339:193-199

[11] 陈玉伦.拉曼光谱仪的研制及预处理方法研究[D].浙江大学.2006

[12] 于再超.物质间相互作用对拉曼散射影响的研究[D].长春理工大学.2012

[13] J H Holland.Adaption in natural and artificial system[M].Boston:MIT Press,1992 [14] Wolverson D.Raman Spectroscopy[M].Plenum Press,1995

[15] 王美荣,金志琳.光散射技术及其在化学与化工领域中的应用[J].山东化工,2005,01:16

[16] 董哲.高功率激光与粉末相互作用的物理过程[D].天津工业大学.2008

[17] 邓丹,陈昌永.康普顿效应与拉曼散射的对比研究[J].湖南人文科技学院学报,2007,06:9

[18] 刘琨.近场表面增强拉曼散射实验技术与血清分析的研究[D].大连理工大学.2008

[19] 马兆铭.基于液芯光纤的甲烷拉曼检测关键技术研究[D].哈尔滨工程大学.2008

[20] 李成彧.β-胡萝卜素在液芯光纤中的共振吸收拉曼散射[D].长春理工大学.2010 [21] 沈晓光.论 3G 智能手机推动互联网发展[J].现代商贸工业,2011,16:249

[22] Enck W,Ong Tang M,McDaniel.P.Understanding Android Security[J].IEEE Security and Privacy,2009,7:50-57

[23] 赖堃.JavaScript 引擎 Rhino 研究与 J2ME 实现[D].电子科技大学.2010

[24] 熊卫刚.基于 COM 技术的航路编辑器系统设计与实现[D].哈尔滨工程大学.2005 [25] 宋伟奇.闪存数据库在手机嵌入式系统中的应用研究[D].南开大学.2010

[26] 琚彬.基于 WPF 平台的自定义控件开发[D].西安电子科技大学.2008

[27] 朱珊珊.基于 Android 平台的库存管理系统设计与实现[D].江苏大学.2012 [28] 杜小刚,李舟军.J2EE Web 开发框架体系结构[J].计算机科学,2006,08:236

[29] 公 磊 , 周 聪 . 基 于 Android 的 移 动 终 端 应 用 程 序 开 发 与 研 究 [J]. 计 算 机 与 现 代 化 ,

2008,08:85

[30] 张浈.苹果应用商店定价策略研究[D].中国科学技术大学.2012

[31] 邵艳洁.Android 操作系统移植及应用研究[D].湖南大学.2011

[32] 徐敏.Android 平台多媒体通信客户端研究与实现[D].西安电子科技大学.2011

[33] 宋建军.互联网开放平台之服务平台的设计与实现[D].南开大学.2011

[34] 丛国华.基于 SKIA 的可移植控件组的设计与实现[D].北京邮电大学.2010

[35] 席晓东.新型电子花样机嵌入式软件系统的研究与开发[D].西北工业大学.2005

[36] 余亚东,朱荣,彭峰,等. BSP 在 TriMedia 多媒体应用系统中与应用程序互通的一种简单实 现[J].武汉大学学报(信息科学版),2002,01:48

[37] 叶炳发,孟小华.Android 图形系统的分析与移植[J].电信科学,2010,02:65

[38] 舒亮.基于 WebKit 内核的 Clutter Port 的研究与实现[D].华中科技大学.2012

[39] 方圆.手机浏览器页面解析服务器海量日志模块设计与实现[D].北京邮电大学.2010

[40] 邹国民.Android 虚拟机 Dalvik 在龙芯平台上的移植与优化[D].中国石油大学(华东).2011 [41]Shi Yunhe, Gregg D, Beatty A, et al. Virtual Machine Showdown:Stack Versus

Registers[C].Proc. of Virtual Execution Environ-ments. Chicago, USA: [s. n.], 2005. [42] 高小明.基于 Intel VT 硬件虚拟机内核研究与实现[D].电子科技大学.2010

[43] Kim Jung Hoon, Kim Jung Yup,Oh Jun Ho.Adjustment of home posture of biped humanoid robot using sensory feedback control[J].Theory and Applications,2008,51:421-438

[44] 张芳.基于嵌入式 Linux 的智能手机应用系统研究[D].长沙理工大学.2006

[45] 孙鹏.以触摸屏为例的界面交互机制研究[D].同济大学.2009

[46] 程帅.基于 Android 平台的数字示波器软件设计[D].哈尔滨工业大学.2011 [47] 郑健,贺超.Android 和 Chrome 的发展与未来[J].移动通信,2010,11:80

[48] Lauren Darcey,Shane Conder.Android Wireless Application Development[J].Addison welsey Professional,2009:211-213

[49] 焦磊.基于 Android 的多媒体彩像系统终端软件的研究与实现[D].北京交通大学.2010

[50] 李颜.基于 Windows Mobile 的智能手机 GUI 的研究与实现[D].中山大学.2007 [51] 王慧慧.Oracle 之用户管理[J].硅谷,2011,04:179

[52] 秦金东.远程医疗保健终端网络模块的研究与实现[D].青岛大学.2011 [53] 魏群义.基于 web 的轻合金信息网的设计与实现[D].重庆大学.2003

[54] Li min zan,Han Dong hai,Wang Xiu.Specture Analysis Technology and Application[M].Beiji ng:Science Press,2006.115

[55] 王甫.电子织带机控制系统的研究与实现[D].南京理工大学.2013

致 谢

在研究生生活即将结束之际,我度过了充实而有意义的研究生生活。对我学 习生活以及学术研究和论文撰写给予关心帮助和指导支持的老师和同学们表示 深切的感谢。

首先我要对我的导师耿恒山老师表示深深的谢意和诚挚的敬意。耿老师为人 谦逊学术严谨的作风使我受益匪浅。在平时的研究实验和论文的写作修改上耿老 师都对给了我很大的帮助和支持,做事认真负责是我从耿老师那里学到的最受用 终身的道理。

其次要感谢计算机学院的其他老师和我的同学们,没有他们的帮助我不可能 顺利的完成我的研究和论文。

特别感谢我的父母和所有的亲人们为我的学习和生后所付出的一切。

攻读学位期间所取得的相关科研成果

[1] 任美琪,郭伟强.色彩在网络图形界面中的应用研究[J].设计,2013,11

点点赞赏,手留余香 给TA打赏

AI创作

评论0

请先

在线网课学习课堂《学术写作(浙江大学 )》单元测试考核答案
在线网课学习课堂《学术写作(浙江大学 )》单元测试考核答案
4分钟前 有人购买 去瞅瞅看
在线网课学习课堂《地学景观——探秘﹒审美﹒文化(重大 )》单元测试考核答案
在线网课学习课堂《地学景观——探秘﹒审美﹒文化(重大 )》单元测试考核答案
2分钟前 有人购买 去瞅瞅看
《电气化铁路牵引供电系统继电保护设计报告》11000字
《电气化铁路牵引供电系统继电保护设计报告》11000字
2分钟前 有人购买 去瞅瞅看
支持多种货币
支持多种货币付款,满足您的付款需求
7天无忧退换
安心无忧购物,售后有保障
专业客服服务
百名资深客服7*24h在线服务
发货超时赔付
交易成功极速发货,专业水准保证时效性

站点公告

课程作业辅导,有需要加下方微信

显示验证码

社交账号快速登录