首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 嵌入式定位系统的实用设计与软件算法实现(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
嵌入式定位系统的实用设计与软件算法实现(2)
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2015-11-14 20:25
|
只看该作者
嵌入式定位系统的实用设计与软件算法实现(2)
嵌入式
,
软件
要得到地图的左上角和右下角的经纬度坐标,只需知道地图边界范围内任取的2个参考点的4个参数即可。通过在某地实地采集的3个参考点,得到表l所列的坐标数据。
根据公式,上面的3个参考点共有3种组合方式,分别得出3组经纬度值,对这3组取平均值,以减少误差,提高精度。最终求得左上角和右下角的坐标数据,如表2所示。
从而得到基准点,并将其坐标数据保存到坐标数据文件taiyuan_gps.dat中。
为了提高灵活性,这里为坐标源数据定义如下数据结构:
3.2 GPS线程
采用单线程对采集的一组数据进行读取、解析和计算。在程序中定义一个pthread_t类型变量,代表采集并解析GPS数据的后端线程。由于 GUI的前端和后端GPS线程都要访问某些GPS数据,因此需要在线程间采用同步策略。这里利用线程锁来实现,将其定义为GPSL0CK。它是一个 pthread_mutex_t类型的变量。
对应于Point型、Pline型和Region型3种类型的地理信息,分别定义数据结构_POINT、_PLINE和_REGION。以道路为例,在程序中定义对应的_PLINE结构来描述相关信息,该结构定义如下:
3.3 MiniGUI下电子地图的绘制
MiniGUI程序的入口点为MiniGUIMain.main函数已在MiniGUl的函数库中定义,该函数在进行一些MiniGUI的初始化工作后调用MiniGUI-Main函数。先调用SetDesktopRect函数来设置程序的显示区域,然后调用CreateMainWindow函数创建并显示程序的主窗口,最终进入消息循环。
MiniGUI是消息驱动的系统,一切运作都围绕消息进行,MiniGUI应用程序通过接收消息来与外界交互。在电子地图的绘制过程中,主要用到MiniGUI的窗口绘制消息MSG_PAINT。该消息在需要进行窗口重绘时发送到窗口过程。MiniGUI通过判断窗口是否含有无效区域来确定是否需要重绘,在需要进行重绘时,MiniGUI会向相应的窗口过程发送MSG_PAINT消息。MSG_TIMER则主要负责从后端GPS线程中取得当前的经纬度信息,格式化之后输出到文本框中。
当MiniGUI主程序接收到其GPS通信子进程发送的SIGUSRl信号时,就会调用相应的信号处理函数。为了实时更新定位点在电子地图中的位置,必须在该函数中读取共享内存中的最新位置信息;同时根据定位点位置的变化确定需要重绘的区域,调用MiniGUI中的lnvalidateRect 函数使该区域无效。通过这种方式使得最新的位置信息实时地显示在电子地图上。
4 结束语
随着社会信息化的发展,GPS导航终端的使用已成燎原之势,越来越多的设备配备定位或导航功能。本设计利用MiniGUI来实现GPS的基本功能,使地图的绘制工作脱离繁琐的底层硬件,大大简化了此项工作,再配合GPS信号接收机实现实时定位导航功能。同时,本设计还有许多地方值得改进,例如通讯反馈精度和矢量化地理信息的优化显示等。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
方案分享
X86
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议