`
coolerbaosi
  • 浏览: 728932 次
文章分类
社区版块
存档分类
最新评论

(GPS移植三部曲)Linux下移植GPS应用程序之常见问题的分析与解决方法之二

 
阅读更多

Linux下移植GPS应用程序之常见问题的分析与解决方法之一

OS:Linux

. 直接提供函数实现给第三方

原因:主芯片设计以及gps芯片的更改,导致gps驱动程序时常处于更新状态

演化为:给第三方提供.so动态链接库以及.h头文件

.gps参数写死到程序中

gps参数有:Serial串口设备的路径、GPIO设备的端口号、波特率、GPIO端口号、复位Reset的GPIO端口号、电源管理工具的路径、快速启动GPS所保存的文件路径(冷启动和热启动之分);

开发板有:Lily、Bali以及Apollo1.0,Apollo1.1;

演化为:提供gps参数的配置文件,如:atgps.cnf以及navione.cnf两个配置文件

.直接将驱动开发的软件接口提供给第三方

原因:

1. 驱动开发的软件接口,会经常发生变化,接口不稳定;

2. 驱动开发的软件接口,还不是第三方真正需要的接口,还不能完全满足用户需求;

3. 要基于驱动开发的软件接口,来进一步扩展和完善,使其满足第三方的需要;

演化为:基于驱动开发人员提供的接口,来进行封装,以满足实现客户的需要。

.第三方没有调用at_close_gps函数,待机时间明显缩短

造成的后果:电流偏大,电流降不下来,待机时机偏短;

解决办法:确保第三方,调用at_close_gps函数,关闭gps设备。

.程序与数据没有分离,造成一个目录经常放不下所有程序和数据

数据:地图数据,声音数据

Linux分区的目录经常才400-500M,而GPS整个存储空间需要900M

演化为:程序与数据分离

.当前目录与运行程序的路径相混淆

当前目录经常会发生更改,当前目录不一定是运行程序的所在路径。

所以,一定要注意区分清楚。

.使用C++类的形式,封装数据,隐藏信息

1.数据,信息是与具体的操作相关联的;

2.给第三方提供操作行为;

3.信息,属性隐藏;

.一个开发板不同版本Apollo1.0与Apollo1.1,需要2套gps代码

开发板:Apollo开发板就有Apollo1.0与Apollo1.1至少两个硬件版本之分,毕竟硬件还是有点差别的;

解决办法:一套代码可以适合多个不同的开发板,一个开发板可以拥有多个不同的版本。

.针对给第三方的接口,编写验证其接口正确性,其工具是:gpstool

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics