基于QT的电子地图设计与实现
毕业设计是基于QT的电子地图设计与实现 ,用于C语言的开发。2010届本科生毕业设计目录摘要ABSTRACT前言.1.1概述1.2研究背景1.3研究目标1.4需求分析1.41用户需求分析1.4.2功能需求分析1.5本章小结2qT简介2.1QT的背景介绍2.2qT实现的结构原理.2.3 QT GraphicsⅤ iew Framework简介2.3.1 Graphics view层次结构2.3. 2 QGraphicsItem2.4QT应用程序的实现2.5本章小结3 mapinfo绘制电了地图3.1 Mapinfo professiona1简介122010届本科生毕业设计3.2 Mapinfo地图图表3.3 Mapinfo地图图层与图元.143.3.1地图图层.3.3.2地图图元3.4地图的来源3.5电了地图绘制3.5.1 Mapinfo professional地图绘制工具3.5.2 Mapinfo professional绘制地图3.6来MIF和求.MID文件3.7本章小结204系统框架描述214.1系统模块申非214.2主要功能4.3平台简介224.4UP- TECHPXA270-S核心模块资源234.5本章小结.....245详细设计,,255.1程序流程图...255.2界面设计.....275.2.1主窗体设计..,,,,.275.2.2子窗休设计285.3地图的显示..,,,,,,..,,.292010届本科生毕业设计5.3.1地图坐标转换5.3.2地图图元的显示305.3.3显示效果设计.,,,,,,,,,,335.4单源最短路径算法365.4.1 Dijkstra(迪杰斯特拉)算法365.4.2路径节点的存储,,,,,,,375.5木章小结416测试及运行结果6.1测试目标6.2测试预期结果426.3运行结果.6.3.1地图浏览功能.....436.3.2路径规划功能446.4木章小结看鲁457论文总结46参考文献.47谢辞482010届本科生毕业设计前言1.1概述随着新的ARM芯片不断问世以及这些芯片的价格下降,嵌入式产品开始潜移默化的取代早期的些单片机,并在社会各行各业中占有越来越重要的位置,嵌入式产品也由此成为众多工程师选择开发高端产品的芯片首选。QT具备跨平台,易扩展,界面华丽,性能稳定等优点。因此,以嵌入式处理器作为使件半台,以QT作为程序框架,两者的完美结合必将成为未来技术的发展方向1.2研究背景现在,汽车正在普及,道路不断建设,城际间的经济往来更加频繁,活动的区域也越来越大。为了提高生活质量,大量的休活动、探险活动的举行使我并不局限在自己认识的一小块区域中,不认识道路,找不到目的地的情况也屡有发生。就此,各种各样的导航仪逐渐走进我们的生活。无论仆么导航仪最主要的部分都是电子地图。开发电子地图成为了导航仪的关键。根据调査,电了地图制作困难而且价格相当昂贵,给导航伩的开发带来了很多不便。自主绘制电子地图,编写电子地图应用程疗,不管是从经济上还是研究上都具有非常大的意义市面上的嵌入式产品各式各样,用到的嵌入式操作系统自然也是有所不同。如果拥有一个跨平台的程序的话,那将会给我们的开发节省了大量的时间。QT正是一个支持多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Q是完仝面向对象的很容易扩展,并且允许真正地组件编程。所以使用QT作为应用程序框架是一个不错的选择1.3研究目标基于上述背景,开发一个电子地图项目,使用 windOws cD5.0搭配PXA270开发板来构建这个项目。仗用 mapinfo电子地图绘制软件自主绘制电子地图。利用QT4作为系统应用层的程序框架。根据系统的需求,裁减、移植 windOwsce内核。分析系统功能和接口,添加各种驱动程序,如:USB驱动,(∽M口驱动等根据应用程序屮的钶个功能模块,分析各个模块的用户界面接口和对人机交互图2010届本科生毕业设计形化用户界面的接口设计。1.4需求分析1.4.1用户需求分析目前,我们可以通过各种途径接触电子地图,例如以网页形式的电子地图,如 Google地图、 Google earth、百度地图等,以车载GPS导航仪的电子地图,如 garmin饪我游、纽曼、新科、城际通等,还有以手机导航功能出现的电子地图,越来越多的亍杋将支持导航功能,诺基亚2010年在大规模普及手机导航对此,本顶目采用免费版的QT作为程序框架,并且可以跨平台使用,在廾发成本上有着很大的优势。未来几年,配备电子地图的电子产品市场将逐渐走向成熟,市场需求和产品销量会保持大幅增长,产品供应链中的各类企业将获得曰大商机。尤其是随着产品价格的不断下降,这种快速发展的态势公愈加明显。电子地图在中国市场必然会获得更大的发展空间。由此,本项日也适应用户需求,开发电子地图的相关功能:地图显示功能卫星定位功能、路径导航功能、语音提示功能等。1.4.2功能需求分析根据用户需求,和对产品的定位,划分以下功能表1-1用户需求功能支持功能所需硬件1地图显示2实时定位UP- TECHPXA270-S为硬件开发平台3路径导航4语音提示2010届本科生毕业设计攴持功能分析:1.地图显示:显示当前位置地理信息,包括道路、河流、建筑物,以及标志性建筑的名称,可以通过地图了解的所在位置的周边情况。实时定位:通过不断对对COⅧM凵接收到的信息进行分析,获取当前所在位置并且显示在地图的相应位置上3.路径导航:可以设置日的地点,系统将通过路径优先算法显示最优路径,完成导航功能。4.语音提示:通过简单的语言提示来配合路径导航。所需硬件分析:需要的硬件模块在UP一 TECHPXA270-S硬件实验平台上已一应俱全。在此平台上还配制了8英寸的TFT真彩液晶屏,支持640*480的分辨率。UP一 TECHPXA270S在存储系统方面也有着很高的配置,内置了高性能价格比的 NAND FLASH6M内存,支持大谷量的用户差异图形图片和媒休文件的存储。CPU的能力当然是毋庸置疑的, Intel xscale结构芯片的PXA270在各方面都表现了很强悍的能力,在日前市场上来说也是一款很先进的处理器芯片PXA270处理器是 Intel公司目前性能最为强劲的移动处理器,已经成为高端移动设备屮最受欢迎的处理器之一。PXA270最高主频可达624Mz,它引入了X86架构奔腾4系列上的多媒体技术——MⅨ技术,能够大大提升多媒体处理能力,用户通过该技术可以在VGA上面播放高质量的MPG4视频:同时加入了 Inte lSpeedstep动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。1.5本章小结木章主要介绍本项目的选题背景、意义,选题目标和项目需求分析,根据品市场和本人技术水平情况,按需求划分软件功能模块,还根据软件功能和现有瓷源的性能对使件需求做」详细分析。2010届本科生毕业设计20T简介2.1QT的背景介绍Qt/ Embedded是著名的Qt库开发商 Trolltech公司开发的面向嵌入式系统的Qt版本,开发人员多为KDE项日的核心开发人员。许多基于Qt的XWindow程序可以非常方便地移植到Qt/ Embedded上,与X11版本的Qt在最大程度上接口兼容,延续了在Ⅹ上的强大功能,在底层彻底摒弃了X1ib,仅米用 framebuffer作为底层图形接口。Qt/ Embedded类库完全采用C++封装。丰富的控件资源和较好的可移植性是Qt/ Embedded最为优秀的·方面,使用Ⅹ下的开发工具 Qt Designer可以直接开发基于Qt/ Embedded的UI(用户操作接口)界面。越来越多的第三方软件公司也开始采用Qt/ Embedded廾发嵌入式下的应用软件。2.20T实现的结构原理Qt/ Embedded是 Trolltech公司开发的面向嵌入式系统的Qt版本,与Ⅹ11版本的Qt在最大程度上接口兼容,采用帧缓存( framebuffer)作为底层图形接口。Qt/ Embedded类库完全采用C艹+封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/ Embedded apl可用于多种开发项∏。Qt/ Embedded的实现结构如下:QT的应用程序QT的图形事件QT/EmbeddedFrameBuffer设备驱动操作系统硬件平台图21QT的实现结构图2010届本科生毕业设计Qt/ Embedded的底层图形引擎基于 framebuffer。 Framebuffer驱动程序的实现分为两个方面:一方面是对LCD及其相关部分的初始化,包括画在缓冲区的创建和对DMA通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为read、 write、 Iseek等系统调用接凵。至于将画面缓冲区的内容输出到LCD显示屏上,则由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后,DMA开始正常工作,并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的基于该特性, framebuffer驱动程序必须将画面缓冲区的存储空间(物理空间)重新映射到一个不加高缓存和写缓存的虚拟地址区间中,这样能才保证应用程序通过map将该缓存映射到用户空间后,对于该画面缓存的写操作能够实时的体现在LCD上。QT程序是基于C+编写的,图形用户界面编程同时需要运行效率和高水平的灵活性。Qτ通过结合C+的速度为这一领域提供了Qt对象模型。Qt把下面这些特性添加到了C++当中和被称为信号和槽的非常强大的机制;可查询和可设计的属性项;强大的事件和事件过滤器:根据上下文进行国际化的字符串翻译;完善的时间间隔驱动的计时器等。许多Qt的特性是基于Q0 bject的继承,通过标准C++投术实现的。Q^ pplication是必须构造的吐t主对象,需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个Qt应用程序有且仪有一个APplication对象,该对象必须在做其他事之前创建,这个对象处理一些底层操作,如事件处理、字符串本地化和控制界面外观等。信号和信号处理函数是(UⅠ应用程序用来响应用户输入的基本机制,乜是所有GUI库的核心特征,Qt的信号处理机制由信号( signa1)和槽(slot)构成,它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。信号和槽用于对象间的通讯,它的基本语法为:connect(objectl, signal, object2, slot1)2.3 QT Gr aphics view Framework简介2.3.1 Graphics view层次结构Graphics view提供一个强人的自定义2D平面图元并处理它们之间相互作用的接口,以及将一个这些图元视化的view控件,它支持旋转和缩放。该框架还包含个事件传递机制,允许画布和画布上的图元之问精确
- 2020-12-08下载
- 积分:1
mqtt物联网数据传输协议
引用github的资源https://mcxiaoke.gitbooks.io/mqtt-cn/Introduction3.2 CONNACK一确认连接请求o3.3 PUBLISH-发布消息o34 PUBACK一发布确认o35 PUBREC-发布收到(QoS2,第一步)°36 PUBREL-发布释放(QoS2,第二步)°3.7P∪ BCOME一发布完成(QoS2,第三步)o3.8 SUBSCR|BE-订阅主题o39S∪BACK-订闶确认o3.10 UNSUBSCR|BE-取消订阅3.11 UNSUBACK-取消订阔确认3.12P| NGREG一心跳请求3.13 PINGRESE一心跳响应o3.14D| SCONNECT一断开连接第四章一操作行为第五章一安全第六章一使用 Websocket第七章一一致性目标附录B-强制性规范声明旧版文档已过期,建议使用 GifTbook版本最新版本:V1.0.12015.10.22文档连接中文版HTMLMQTT3.1.1中文版中文版PDFMQTT3.1.1中文版英文版HTMLMQTT Version 3.1.1英文版PDFMQTT∨ ersion3.1.1许可协议署名-非商业性位用-相同方式共享4.0国际联系方式IntroductionBloghttp://blog.mcxiaoke.comGithub:https://github.com/mcxiaoke.Email:github@mcxiaoke.com开源项目·Rx文档中文翻译:htts:/! github. com/mcxiaoke/ RXDOCS·MQTT协议中文版:htps:/ github. com/ mcxiaoke/mgttAwesome-kotlin:httpsgithub.com/mcxiaokelawesome-kotlin.Kotlin-koi:https:/github.com/mcxiaoke/kotlin-koiNeXt公共组件库:htps!/github.com/xiaoke/Android-Next· PackerNg极速打包:htts;/ github. com/mcxiaoke/ packer- ng-pluginGradle渠道打包https://github.com/mcxiaoke/gradle-packer-plugin·VentuS实现xBus:htps;/github.com/miaoke/BuS磨菇饭App:htps:! github. com/mcxiaoke/minicat·饭否客户端:https:/github.com/mcxiaoke/anfouapp-opensourceVolleyt:https://github.com/mcxiaoke/android-volley第一章-MQTT介绍第一章概逃 Introduction1.1MQTT协议的组织结构 Organization of MQTT本规范分为七个章节:第一章一介绍第二章一MQTT控制报文格式第三章一MQTT控制报文·第四章一操作行为第五章一安全第六章一使用 Websocket第七章一一致性日标附录B一强制性规范声明12术语 Terminology本规范中用到的夭键字必须MUST,不能 MUST NOT,要求 REQUIRED,将会 SHALL,不会 SHALL NOT,应该 SHOULD,不应该 SHOULD NOT,推荐 RECOMMENDED,可以MAY,可选 OPTIONAL都是按照 TE RFC2119[RFC2119]中的描迹解释。网络连接 Network ConnectionMQTT使用的底层传输协议基础设施。客户端使用它连接服务端。它提供有序的丶可靠的丶双向字节流传输。例子见42节应用消息App| ication Message MQT协议通过网络传输应用数据。应用消息通过MQT传输时’它们有关联的服务质量(QoS)和主题( Topic)客户粥C|ient使用MQπT的程序或设备。客户端总是通过网络连接到服务端。它可以发布应用消息给其它相关的客户端。●订阅以请求接受相关的应用消息。·取消订阅以移除接受应用消息的请求从服务端断开连接第一章-MQTT介绍服务端 Server个程序或设备,作为发送消息的客户端和请求订阅的客户端之间的中介σ服务端接受来自客户端的网络连接。接受客户端发布的应用消息。·处理客户端的订阅和取消订阅请求。转发应用消息给符合条件的已订阅客户端订 Subscription订阔包含一个主题过滤器( Topic Filter)和一个最大的服务质量(QoS)等级。订阅与单个会话( Session)关联。会话可以包含多于一个的订阅。会话的每个订阅都有一个不同的主题过主题名 Topic Name附加在应用消息上的一个标签’服务端巳知且与订阔匹配。服务端发送应用消息的一个副本给每一个匹配的容户端订阅。主题过滤器 Topic Filter订阅中包含的一个表达式,用于表示相关的一个或多个主题。主题过滤器可以使用通配符。会话 Session客户端和服务端之间的状态交互。一些会话持续时长与网络连接一样·另一些可以在客户端和服务端的多个连续网络连接间扩展。控制报文 MQTT Contro| Packet通过网络连接发送的信息数据包。MQTT规范定义了十四种不同类型的控制报文,其中一个( PUBLISH报文)用于传输应用消息。1.5数据表示 Data representations1.51二进制位Bits字节中的位从0到7。第7位是最高有效位’第0位是最低有效位。1.52整数数值 Integer data values整数数值是16位’使用大湍序( big-endian,高位字节在低位字节前面)。这意味着一个16位的字在网络上表示为最高有效字节(MSB),后面跟着最低有效字节(LSB)1.53UTF8编码字符串UTF8 encoded strings后面会描逑的控制报文中的文本字段编码为UTF8格式的字符串。UTF8[RFC3629]是一个高效的υ ncode字符编码格式’为了攴持基于文本的通信’它对ASC∏字符的编码做了优化第一章-MQTT介绍每一个字符串都有一个两字节的长度字段作为前缀,它给出这个字符串UTF8编码的字节数,它门在图例1.1UTF8编码字符串的结构中描述。因此可以传送的UTF-8编码的字符串大小有个限制,不能超过65535字节除非另有说明’所有的UTF-8编码字符串的长度都必须在0到65535字节这个范围内。图例1.1UTF8编码字符串的结构 Structure of ute8 encoded strings进制位7-0yte字符串长度的最高有效字节(MsB)byte 2字符串长度的最低有效字节(LSB)byte 3如果长度大于0,这里是UTF-8编码的字符数据。UTF-8编码字符串中的字符数据必须是按照 Unicode规范[ Unicode]定义的和在RFC3629[RFC3629]中重申的有效的UTF8格式。特別需要指出的是,这些数据不能包含字符码在U+D800和U+DFFF之间的数据。如果服务端或客户端收到了一个包含无效UTF-8字符的控制报文”它必须关闭网络连接[MQTT1.53-]。UTF-8编码的字符串不能包含空字符U+0000如果客户端或服务端收到了一个包含U+0000的控制报文’它必须关闭网络连接MQTT-1.53-2]数据中不应该包含下面这些 Unicode代码点的编码。如果一个接收者(服务端或客户端)收到了包含下列任意字符的控制报文,它可以关闭网络连接U+0001和U+00F之间的控制字符∪+007F和∪+009F之问的控制字符Unicode规范定义的非宇符代码点(例如U+ OFFFF)Unicode规范定义的保留字符(例如U+ OFFFF)UTF-8编码序列0XEF0xBB0XBF总是被解释为U+FEFF(零宽度非换行空白字符)’无论它出现在字符串的什么位置’报文接收者都不能跳过或者剥离它[MQTT-153-3]。非规范示例 Non normative example例如,字符串A是一个拉丁字母A后面跟着一个代码点U+2A6D4(它表示一个中日韩统表意文字扩展B中的字符)这个字符串编码如下图例12UTF8编码字符串非规范示例UTF-8 encoded string non normative example第一章-MQTT介绍Bit54byte 1字符串长度MSB(0x0O)00byte 2字符串长度LSB(0×05)byte 3A(0×41)00000bye4(0×F0)000byte 5(OXAA)00byte 6(0×9B)0byte 7(0×94)0001.6编辑约定 Editing conventions本规范用黃色高亮的文本标识一致性声明·毎个一致性声明都分配了一个这种袼式的引用:[MQTT××x-y]项目主页MQTT协议中文版第二章一MQTT控制报文格式第二章MQTT控制报文格式 MQTT ControPacket format目录第一章-个绍第二章一MQTT控制报文格式第三章一MQTT控制报文·第四章一操作行为第五章一安全第六章一使用 Websocket第七章一一致性目标附录B-强制性规范声明2.1MQTT控制报文的结构 Structure of an MQTTControl packetMQπT协议通过交換预定义的MQTT控制报文来通信。这一节描逃这些报文的格式。MQTT控制报文由三部分组成’按照图例2.1-MQ∏控制报文的结构描逃的顺序图例21-MQTT控制报文的结构Fixed header固定报头’所有控制报文都包含Variable header可变报头·部分控制报文包含Payload有效载荷·部分控制报文包含22固定报头 Fixed header每个MQTT控制报文都包含一个固定报头。图例2.2-因定报头的格式描逑了因定报头的格式图例22-固定报头的格式第二章一MQTT控制报文格式Bit65432byte 1MQTT控制报文的类型用于指定控制报文类型的标志位byte 2剩余长度221MQTT控制报文的类型 MQTT Control Packet type位置:第1个字节,二进制位7-4表示为4位无符号值,这些值的定义见表格2.1-控制报文的类型表格2.1-控制报文的类型名字值报文流动方向描述Reserved禁止保留CONNECT客户端到服务端客户端请求连接服务端CONNACK2服务端到客户端连接报文确认PUBLISH两个方向都允许发布消息PUBACK丙个方向都允许QoS1消息发布收到确认PUBREC5两个方向都允许发布收到(保证交付第一步)PUBREL两个方向都允许发布释放(保证交付第二步PUBCOMP7两个方向都允许QoS2消息发布完成(保证交互第三步)SUBSCRIBE8客户端到服务端客户端订阅请求SUBACK9服务端到户风请求摄文确认UNSUBSCRIBE10客户端到服务端客户端取消订阋请求UNSUBACK服务端到客戶端取消订阔报文确认PINGREQ12客户端到服务端跳请求PINGRESP13服务端到客户端心跳响应DISCON№ECT14客户端到服务端客户端断开连接Reserved15禁止保留222标志Fags固定报头第1个字节的剩余的4位[30]包含每个MQTT控制报文类型特定的标志,见表格22-标志位。表格2.2中任何标记为“保留”的标志位·都是保留给以后使用的·必须设置为表柊中出的值[MQT「-22.2-1。如果收到非法的标志’接收者必须关闭网络连接。有美错误处理的详细信息见4.8节MQTT2222]
- 2021-05-06下载
- 积分:1