20141020,总结

进入研究生以来的第一个大项目(对于我来说)就要结束了,从年前开始到现在也有9个月左右的时间,利用c语言在linux平台上开发了我们无人水面艇的主控系统,开发环境是小巧好用的codeblocks,不过该IDE有一个很大的缺点是没有返回上一视图的功能(也可能是我没找到),当代码量上来后查看代码很麻烦,我这个系统代码量有1W行左右,阅读代码已经好很吃力了。

由于在做这个项目之前已经利用C++和OpenCV开发计算机视觉程序有大半年的时间了,所以上手C语言还是很快的,由于需要在linux平台上开发程序,我开始学习ubuntu系统,由于之前学过一段时间的ROS(robotic operate system机器人操作系统),也是在ubuntu环境下学的,所以上手ubuntu也没有多大的压力,之后开始学习linux程序设计,主要涉及到串口编程、socket编程、多线程编程、makefile文件的编写和shell文件的编写等。由于在学习这些之前,自己完全是一个linux菜鸟,虽然学习的目的性很强,但每一步学得都很艰难,由于我很要强,别人跟我说很简单后我就不想再问了, 都是自己一个人在琢磨,耗费了很多时间,有些东西别人指点一下就可以搞明白,但我可能就花费了1天或两天来搞明白。

我的主要任务有四项:1)和上层界面系统之间的通信交互,2)和下层硬件控制系统之间的通信交互,3)和传感器(gps,惯导,激光传感器等)之间的通信(数据提取和解析),4)控制算法的编写。可以说我负责的部分是整个大系统的核心,由于保密要求,每一项的具体细节就不记录了。

在我负责的这一块里,我使用了很多的第三方的开源代码库,如cJSON,quicklz,log4c等。JSON主要用与和上位机界面系统之间通信和配置文件的编写,键值对的形式避免里传统的以结构体形式发送数据的很多弊端,如大小端和字节对齐等,但是使用JSON会增大数据量,所以我们使用了数据压缩库quicklz,该压缩算法主要是快,但压缩率不敢恭维,log4c主要用来编写日志用的,可以将错误打印到log文件里,当台代码出错后可以查看该文件锁定问题根源。在使用这些库是遇到了很多菜鸟都会遇到的问题,如我学习了三个JSON库(zzJSON、libJSON、cJSON),三个压缩库(7z,lzma,quicklz),学习log4c也是破费周折,后面有时间会单独讨论和记录遇到的问题。

想想这大半年的时间,过得真是充实,从一个linux菜鸟变成了linux爱好者,现在几乎就拿ubuntu当桌面了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值