基于wince的C 应用程序开发多功能画图软件.doc_第1页
基于wince的C 应用程序开发多功能画图软件.doc_第2页
基于wince的C 应用程序开发多功能画图软件.doc_第3页
基于wince的C 应用程序开发多功能画图软件.doc_第4页
基于wince的C 应用程序开发多功能画图软件.doc_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XX大学信息科学技术学院嵌入式系统大作业设计报告项目名称基于wince的C+应用程序开发:多功能画图软件姓名:学号:班级: 日期:2011.6.28目录一、概论3二、设计任务31 、设计目的32 、功能要求33 、仪器设备44 、设计内容4三、设计原理43.1运行环境WinCE6.043.2开发平台Visual Studio200553.3开发语言C+6四、设计方案83.1功能设计83.2界面设计8五、系统测试与性能分析134.1系统测试134.2性能分析15六、结论15附录:16(1)参考资料16(2)设计步骤16(3)遇到的问题与解决方法16(4)程序清单17(5) 课程体会22嵌入式系统设计课程设计报告一、概论 嵌入式嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、对可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由以下几部分组成: 嵌入式微处理器、外围硬件设备、嵌入式操作系统、特定的应用程序。WindowsCE的多线性、多任务、全优先的操作系统环境是专门针对资源有限而设计的。这种模块化设计使嵌入式系统开发者和应用开发者能够定做各种产品,例如家用电器、专门的工业控制器和嵌入式通信设备。WindowsCE支持各种硬件外围设备及网络系统。包括键盘、鼠标、触摸屏、串行端口、以太网连接器、调制解调器、USB设备、音频设备、并行端口、打印设备及存储设备等。此外,WindowsCE支持超过1000个公共MicrosoftWin32API和几种附加的编程接口,用户可利用他们来开发应用程序。WindowsCE不仅继承了传统的Windows图形界面,并且在WindowsCE平台上可以使用Windows98/2000/xp上的编程工具(如VisualBasic、VisualC+等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在WindowsCE平台上继续使用。二、设计任务1 、设计目的掌握嵌入式系统设计的基本方法,熟悉Wince的开发环境及软硬件的调试过程,巩固和加深对理论课中知识的理解,提高对所学知识的综合运用能力。2 、功能要求通过单机版PC机与实验箱(带wince操作系统)的连接,实现C+可运行程序的移植。将多功能画图软件程序运行于wince操作系统上。实现多功能画图,实际功能包括画方形、圆形、椭圆等,除此之外还能修改图形线条粗细,颜色等。3 、仪器设备和开发环境目标机环境:嵌入式系统环境为带LED灯驱动程序的nk.bin的Wince系列实验系统,WindowsCE系统(简称WinCE),它是为各种嵌入式系统和产品设计的一种压缩的、具有高效的、可升级的、体积小巧、组件化的硬实时嵌入式操作系统。 宿主机环境:单机版PC机,可运行Winxp,可以在此系统中运行C+的编程环境以及联合调试环境。4 、设计内容本课题是基于Wince操作系统的C+应用程序实现多功能画图。主要由标题栏、菜单栏、工具栏、绘图工作区及设置页对话框组成。其中设置对话框可以改变笔画的大小粗细,根据RGB值修改画笔颜色。三、设计原理3.1运行环境WinCE6.0WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivit)和伴侣(Companion);E代表电子产品(Electronics)。与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于WIN32 API重新开发、新型的信息设备的平台。Windows CE具有模块化、结构化和基于Win32应用程序接口和与 处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C+等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。Windows CE并非是专为单一装置设计的,所以微软为旗下采用Windows CE作业系统的产品大致分为三条产品线,Pocket PC(掌上电脑)、Handheld PC(手持设备)及Auto PC。 2006年11月,微软公司其最新的嵌入式平台Windows Embedded CE 6.0正式上市。作为业内领先的软件工具,Windows Embedded CE 6.0将为多种设备构建实时操作系统,例如:互联网协议(IP)机顶盒、全球定位系统(GPS)、无线投影仪,以及各种工业自动化、消费电子以及医疗设备等。在Windows Embedded诞生十周年之际,微软将首次在“共享源计划(Microsoft Shared Source programme)”中100%毫无保留地开放Windows Embedded CE 6.0内核,(GUI图形用户界面不开放)比Windows Embedded CE的先前版本的开放比例整体高出56%。“共享源计划”为设备制造商提供了全面的源代码访问,以进行修改和重新发布(根据许可协议条款),而且不需要与微软或其他方共享他们最终的设计成果。尽管Windows操作系统是一个通用型计算机平台,为实现统一的体验而设计,设备制造商可以使用Windows Embedded CE 6.0这个工具包为不同的非桌面设备构建定制化的操作系统映像。通过获得Windows Embedded CE源代码的某些部分,比如:文件系统、设备驱动程序和其他核心组件,嵌入式开发者可以选择他们所需的源代码,然后编译并构建自己的代码和独特的操作系统,迅速将他们的设备推向市场。微软还将Visual Studio 2005专业版作为Windows Embedded CE 6.0的一部分一并推出。这对微软来说又是一次史无前例的突破。Visual Studio 2005专业版将包括一个被称为Platform Builder的功能强大的插件,它是一个专门为嵌入式平台提供的“集成开发环境”。这个集成开发环境使得整个开发链融为一体,并提供了一个从设备到应用都易于使用的工具,极大地加速了设备开发的上市。Windows Embedded CE 6.0重新设计的内核具有32,000个处理器的并发处理能力,每个处理有2GB虚拟内存寻址空间,同时还能保持系统的实时响应。这使得开发人员可以将大量强大的应用程序融入到更智能化、更复杂的设备中。无论在路上、在工作还是在家里,都可以使用这种设备。目前最新的Windows CE为Windows CE 6.0,这个版本在内核部分有很大的进步:所有系统元件都由EXE改为DLL,并移到 kernel space.全新设计的虚拟内存架构;全新的设备驱动程序架构,同时支持 User Mode 与 Kernel Mode 两种驱动程序。突破只能运行 32 个工作元(process)的限制,可以运行 32768 个工作元。每一工作元的的虚拟内存限制由32 M 增加到全系统总虚拟内存。Platform Builder IDE 集成到 Microsoft Visual Studio 2005。新的安全架构,确保只有被信任的软件可以在系统中运行。UDF 2.5 文件系统。支持 802.11i (WPA2)及 802.11e (QoS) 等无线规格,及多重 radio support.支持 x86, ARM, SH4, MIPS 等各种处理器。提供新的 Cellcore components 使系统在移动电话网络中更容易创建数据链接及激活通话。12在开发环境上,微软也提供兼容于.NET Framework的开发元件:.NET Compact Framework,让正在学习.NET或已拥有.NET程序开发技术的开发人员能迅速而顺利的在搭载Windows CE .NET系统的设备上开发应用程序。3.2开发平台Visual Studio2005Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。创建满足关键性要求的多层次的智能客户端、Web、移动或基于Microsoft Office的应用程序。3.3开发语言C+C+是一种使用非常广泛的电脑程序设计语言。它是一种静态数据类型检查的,支持多范型的通用程序设计语言。C+支持过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计、基于原则设计等多种程序设计风格。在C+语言的设计和演化(1994)中,Bjarne Stroustrup描述了他在设计C+时,所使用的一些原则。知道这些原则有助于理解C+为何会是现在这个样子。以下总结了一些原则,详尽的内容可参阅C+语言的设计和演化: C+设计成使用静态类型机制、和C同样高效且可移植的多用途程序设计语言。 C+设计成直接的和广泛的支持多种程序设计风格(过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计)。 C+设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。 C+设计成尽可能与C兼容,借此提供一个从C到C+的平滑过渡。 C+避免平台限定或没有普遍用途的特性。 C+不使用会带来额外开销的特性。 C+设计成无需复杂的程序设计环境。3.4 设计原理简述基于C+面向对象的可视化图形界面的编程设计多功能画图软件实现编程设计核心代码:void CGraphicView:OnLButtonDown(UINT nFlags, CPoint point)/ TODO: Add your message handler code here and/or call default m_ptOrigin=point;CView:OnLButtonDown(nFlags, point);void CGraphicView:OnLButtonUp(UINT nFlags, CPoint point)/ TODO: Add your message handler code here and/or call defaultCClientDC dc(this);CPen pen(m_nLineType,m_nLineWidth,RGB(m_nLineColorR,m_nLineColorG,m_nLineColorB);dc.SelectObject(&pen);CBrush *pBrush=CBrush:FromHandle(HBRUSH)GetStockObject(NULL_BRUSH);dc.SelectObject(pBrush);switch(m_nDrawType)case 1:dc.SetPixel(point,RGB(255,0,0);break;case 2:dc.MoveTo(m_ptOrigin);dc.LineTo(point);break;case 3:dc.Rectangle(CRect(m_ptOrigin,point);break;case 4:dc.Ellipse(CRect(m_ptOrigin,point);break;CView:OnLButtonUp(nFlags, point);四、设计方案3.1功能设计本程序主要运用SetPixel、Rectangle、Ellipse函数实现绘制各种图形,通过OnLButtonUp、OnLButtonDown两个消息函数记录鼠标按下与松开的位置,通过修改画笔画刷的参数实现对不同线宽、线型、线段颜色的修改。3.2界面设计基于C+语言可视化界面设计应用设计平台实际界面设计在菜单中添加画图项,其下添加画各种图形及设置的按钮为按钮添加事件函数添加用于设置的对话框,在对话框中添加改变线段宽度,线段类型,线段颜色的控件。为设置对话框添加新类为文本框关联变量五、系统测试与性能分析4.1系统测试1.超级终端能正确建立连接2.操作系统能成功地下到试验箱上运行3.能通过USB线成功的链接实验箱上WinCE系统与PC机上的XP系统4.程序顺利运行在WinCE环境下4.2性能分析多次测试之后,未发现明显错误。六、结论经过多次测试,结果都能正确将C+编写的多功能画图软件实际应用于各版本的WinCE系统上正确运行,具有良好的可移植性。然而,本次课程设计中,亦存在诸多不足的地方,例如未能实现画图时的擦涂功能,不能保存导入图片等等,对此仍需做进一步的工作。由于本次实验程序较为简易,也未能深刻体现出Wince操作系统其它多方面的认知。这都有待之后的继续学习。附录:(1)参考文献C+语言的设计和演化 作者:美斯特朗斯特鲁普 嵌入式系统设计与开发 主编:马文华实验指导书(2)设计步骤 小组讨论确定课题分工合作,编程与实践结合将程序运行于实验箱上,观察运行情况改进代码多次运行程序,并进行测试撰写论文(3)遇到的问题与解决方法在本次课程设计,从开始确立课题到最终成功运行于Wince操作系统的实验箱上,其中我们也走了不少弯路。主要有1、对不同操作系统代码移植的认识不够,致使第一次编写的程序无法成功移植运行。之后根据VC+的错误提示,进行多次修改,最后才成功按照预想的结果显示。2、在实验箱的具体操作上总发生不知名的错误,例如下载C+程序设计的带LED灯驱动程序的nk.bin时总出现错误,需要多次下载。3、实际编程实现的时候需要注意各种细节,需要耐心细致,实际编程中遇到一些细节上的小问题确实需要仔细考虑才行。在写程序的时候也遇到了一些困难,例如在设计的时候有很多比较新鲜的想法,很遗憾因为时间的原因未能全部一一实现。(4)程序清单/ GraphicView.cpp : implementation of the CGraphicView class/#include stdafx.h#include Graphic.h#include GraphicDoc.h#include GraphicView.h#include SettingDlg1.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CGraphicViewIMPLEMENT_DYNCREATE(CGraphicView, CView)BEGIN_MESSAGE_MAP(CGraphicView, CView)ON_COMMAND(IDM_DOT, &CGraphicView:OnDot)ON_COMMAND(IDM_LINE, &CGraphicView:OnLine)ON_COMMAND(IDM_RECTANGLE, &CGraphicView:OnRectangle)ON_COMMAND(IDM_ELLIPSE, &CGraphicView:OnEllipse)ON_COMMAND(IDM_SETTING, &CGraphicView:OnSetting)ON_WM_LBUTTONDOWN()ON_WM_LBUTTONUP()END_MESSAGE_MAP()/ CGraphicView construction/destructionCGraphicView:CGraphicView(): m_nDrawType(0), m_ptOrigin(0), m_nLineWidth(0), m_nLineType(0), m_nLineColorR(0), m_nLneColorG(0), m_nLineColorB(0), m_nLineColorG(0)m_nDrawType=0;m_ptOrigin=0;m_nLineWidth=0;m_nLineType=0;m_nLineColorR=255;m_nLineColorG=0;m_nLineColorB=0;BOOL CGraphicView:PreCreateWindow(CREATESTRUCT& cs)/ the CREATESTRUCT csreturn CView:PreCreateWindow(cs);/ CGraphicView drawingvoid CGraphicView:OnDraw(CDC* /*pDC*/)CGraphicDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);#ifdef _DEBUGvoid CGraphicView:AssertValid() constCView:AssertValid();CGraphicDoc* CGraphicView:GetDocument() const / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CGraphicDoc);return (CGraphicDoc*)m_pDocument;#endif /_DEBUGvoid CGraphicView:OnDot()m_nDrawType=1;void CGraphicView:OnLine()m_nDrawType=2;void CGraphicView:OnRectangle()m_nDrawType=3;void CGraphicView:OnEllipse()m_nDrawType=4;void CGraphicView:OnSetting()CSettingDlg1 dlg;dlg.m_nLineWidth=m_nLineWidth;dlg.m_nLineType=m_nLineType;dlg.m_nLineColorR=m_nLineColorR;dlg.m_nLineColorG=m_nLineColorG;dlg.m_nLineColorB=m_nLineColorB;if(dlg.DoModal()m_nLineWidth=dlg.m_nLineWidth;m_nLineType=dlg.m_nLineType;m_nLineColorR=dlg.m_nLineColorR;m_nLineColorG=dlg.m_nLineColorG;m_nLineColorB=dlg.m_nLineColorB;void CGraphicView:OnLButtonDown(UINT nFlags, CPoint point) m_ptOrigin=point;CView:OnLButton

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论