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

简介:   Linux下移植GPS应用程序之常见问题的分析与解决方法之一 OS:Linux 一. 直接提供函数实现给第三方 原因:主芯片设计以及gps芯片的更改,导致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

 

相关文章
|
2月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
179 6
|
3月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
638 2
|
3月前
|
Linux
Linux下使用ls查看文件颜色全部为白色的解决方法,以及Linux中文件颜色介绍
Linux下使用ls查看文件颜色全部为白色的解决方法,以及Linux中文件颜色介绍
191 2
|
3月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
67 2
|
7天前
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
26 5
|
22天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
1月前
|
安全 Linux 数据安全/隐私保护
Linux 忘记密码解决方法
Linux 忘记密码解决方法
38 2
Linux 忘记密码解决方法
|
1月前
|
监控 安全 Java
linux服务器上启动framework应用程序流程
【10月更文挑战第17天】在Linux服务器上启动Framework应用程序需经过准备工作、部署、启动、监控及访问五个步骤。首先确保服务器满足系统要求并安装依赖项;接着上传应用文件,编译构建,配置参数;然后通过脚本、命令行或系统服务启动应用;启动后检查日志,监控性能;最后确认访问地址,验证应用运行状态。具体操作应参照应用文档。
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
36 1
|
2月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
42 5