惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
H
Help Net Security
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Jina AI
Jina AI
L
LangChain Blog
K
Kaspersky official blog
I
Intezer
Martin Fowler
Martin Fowler
爱范儿
爱范儿
AWS News Blog
AWS News Blog
The Hacker News
The Hacker News
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
CXSECURITY Database RSS Feed - CXSecurity.com
Spread Privacy
Spread Privacy
Simon Willison's Weblog
Simon Willison's Weblog
U
Unit 42
N
News and Events Feed by Topic
A
Arctic Wolf
G
GRAHAM CLULEY
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
F
Fortinet All Blogs
C
Cisco Blogs
美团技术团队
Vercel News
Vercel News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
H
Hacker News: Front Page
T
Tailwind CSS Blog
I
InfoQ
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
P
Palo Alto Networks Blog
A
About on SuperTechFans
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
云风的 BLOG
云风的 BLOG
TaoSecurity Blog
TaoSecurity Blog
Google Online Security Blog
Google Online Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy & Cybersecurity Law Blog
H
Heimdal Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
O
OpenAI News
博客园 - Franky
Scott Helme
Scott Helme

博客园 - RayG

How to get data from Oracle DB in silverlight via WCF ? [Ray]How to use CString to create a font family - RayG [Copied] 80 VC++ tips [Copied]The GDI Coordinate Systems My Cheating Death solution in VC++ 3 given points, get the angle between two lines trouble shoot about using BindLayer in MapX with C# [原创] 计算几何常用算法(转) Trouble shooting about installation of ArcSDE 9.2 File type transform between ArcGIS and other major type - RayG [Tips] How to converting a Coverage to a Shapefile ? - RayG [Tips] How to Add New field into Shapefile attribute table in ArcGIS ? 子非鱼,安知鱼之乐? [GuanRui] My program implement on Symbian S60 (#1: File IO) - RayG My XNA HitBee small game [GuanRui]How to open Path browse dialog in VBA of ArcGIS Desktop ? Binary Tree ANSI C Implement (2) - RayG Binary Tree ANSI C Implement (1) Graph & Topology & Shortest path
[Ray] My GPS (卫星定位接收器) tracker program on Symbian OS
RayG · 2007-08-07 · via 博客园 - RayG

(-)引子
这两天从同事许可那里弄了个GPS卫星定位接收器,是蓝牙的,刚好我的N70也支持蓝牙,而且两者可以连接。 搞了这么久的GIS了,看能不能学以致用吧,准备花些时间做个N70手机程序,蓝牙连接GPS,实现手机的跟踪定位。

有个介绍Symbian平台和Nokia手机的文章:http://www.soccer8.cn/blog/post/304.html 
当然,我只关注开发!对价格性能都没兴趣!

下面是我所使用的GPS的产品描述:

---------------
丽台 LR9559X
导航性能产品类型 GPS模块
GPS模块 SiRF star III并行20通道
坐标航线 WGS-84 其他坐标可定义
自动定位时间 冷启动:< 42 s 暖启动:< 38 s
热启动:< 1 s 重捕:< 0.1 s
自动搜索:< 30 s
波段 19200bps
定位精度 10m,2D,无SA
速度:515m/s(max) 加速度:4 g(max)
高度:18000 m(max)
丽台 LR9559X 主要性能数据输入 NMEA,SiRF二进制
高度/位置/日期/时间,选择输出信息及速率
数据输出 Bluetooth序列埠v1.2, class 2 Profile(SPP)传输
SiRF二进制NMEA-0183
GGA GSA GSV RMC VTG GLL
丽台 LR9559X 外观描述产品天线 内置陶瓷Patch天线
产品重量 70g(包含锂电池)
产品尺寸 68.1 x 44 x 26.5 mm
丽台 LR9559X 基本参数产品电池 可充换锂电(和Nokia 3650等通用)1050mA
连续工作可使用11个小时
电源功率 3. 3V ± 5%
其他性能 NMEA-0183,SiRF二进制
------------------------------
注意NMEA的数据格式,这是蓝牙传输的标准格式!
http://www.leadtek.com.tw/eng/support/download.asp?downlineid=179&downline=LR9559X
支持WM5,WinCE,很遗憾,没有看到Symbian的支持。不过有一个网站很吸引人的眼球,该网站专注于蓝牙设备的开发。

(二)平台的搭建

我会在这几个平台中选择一个
CodeWarrior Development Studio for Symbian
Carbide.C++ 1.2
Microsoft Visual Studio 6
MS的东东当然是最熟悉的了,不过Carbide是同一个妈生的,当然更好些。然后,到Nokia的官方网站上,找到了相关的Nokia N70的信息。如下图:

所以我选择Carbide.C++
这里有详细的介绍以及下载,是驴是马,拉出来溜溜嘛。先装一个再说了。
http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/
当然,从这里:
http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/carbide_cpp_dev_screenshots.html

看了一下Carbide 1.2(卡拜德)的开发界面,相当之酷!(不要笑我这个没用过Java IDE的老鸟)^_^  
感觉就好像看到一个美女一样,第一印象非常好,之后呢? 当然要加深了解才能知道了。
同时,要安装好S60 2nd , FP3 的SDK,网上也有下。这里注意了,你的手机使用哪个版本,你自己到NOKIA网站上去找,不然搞开发门都没有。干软件这行,讲的就是一个精确!

由于我的N70是通过USB电缆连接到电脑,这样的话,要进行调试工作,必须使用下面这篇文章介绍到的内容:
http://newlc.com/Carbide-c-Setting-up-On-Target.html

搭建环境期间发现一个问题,我想做自己的第一个HELLOWORLD程序试试看的时候,Carbide.C++无法找到SDK,这种情况不知道什么原因,我指定了SDK位置后,还是不行。我试试看重装SDK,将SDK装到Carbide的同级目录下,看能否解决这个问题,如果还不能解决,就建Console程序。

后来查看WEB上的帮助发现,走了弯路了,SDK和C++必须同目录,所以奉劝各位:不要改变默认的安装路径设置,这样就保证可以用了!

oKaY,经过这么一番折腾,一切就绪。第一个HelloWorld程序已经在我的N70手机上运行了。非常cOoL!像俺这种没搞过手机开发的菜鸟,一个HelloWorld就让我觉得非常新鲜!
看了看程序结构,说实话,不如MFC好懂。当然这跟我刚学习也有关系,对这套东西的组织还要慢慢熟悉。程序员保持一定的好奇心,非常重要!好奇心就是驱动力。

(三)Carbide C++的程序结构,及本程序的设计

现在,环境是搭建好了,接下来要考虑程序的设计思路,首先,我的程序要能获取手机至GPS的连接。GPS和N70已经可以通过BlueTooth连接上,现在,就要去查看BT模块相关的API,看我如何在程序里面获得该连接,读取数据。我准备给我的问题取这个标题: How can I receive the GPS data in my Symbian Carbide program ? should I download SDK from the GPS Hardware vendor ? 有点长,但是我的疑问全部包含在里面了。

Step 1, Create a function to detect BlueTooth device (GPS).
Step 2, Create a function to Read data from GPS.
Step 3, Display the data in N70 screen.
Step 4, Add map into N70, relocate the point

(四)程序设计
程序完成了第一步,读地图显示,现在要实现的是对蓝牙数据的接受,然后通过DRAW来画图在地图上面。具体代码会在后面贴上来,有兴趣的朋友多交流。

关于程序的结构,我打算如下设计,当然,这样设计很不合理,但做为第一个程序,为了方便我的学习和将多种Symbian编程的技术融合到其中。我选这种方法,使用文件作为数据的中转。而且,蓝牙(BT)部分的编程会比较难一点,这样设计,我可以把其它的显示,数据源都分开实现,最后实现BT部分的功能。这样也是个循序渐进的编程过程。

总之,突击学习了半个月以后,(看书、上网加上动手实践),觉得Symbian的入门不难,特别是对于有MFC基础的程序员来说,理解这个体系不难。但是,毕竟嵌入式开发和WIN下面的开发不一样,Symbian是一个C/S构架的异步(Asynchronous)操作系统。有很多编程概念和Windows下面不一样。

我会分阶段把代码全部贴出来,希望与在学习的Symbian而且立志投身其中的朋友多多交流,大家共同进步。
今天在上网无意中看到NOKIA的一款GPS手机 6610N, 里面的导航软件,正是我琢磨着想做的。真是太有感觉了,图片如下: