找到了新的工作,依然是在我的城市,毕竟家在这里,父母在这里,十月份要结婚,妻子也在这里有不错的工作。我的新单位是一家规模不算小的私企,有不到一百人这样的规模。我所在的是研发部门,我做的还是嵌入式系统软件工程师方向。
来到这里首先给我的是一本C++的教材,让我看了一周,算是复习一下C语言,其实上学的时候只学过C语言,C++只是看过一些视频,了解了面向对象的思想,再有就是上家公司做项目的实践了,在这一周中看了将近200页的书,电脑上装了visual studio 2017,把书上的程序也敲在电脑上了不少,算是试验课吧。
在第二周,组长给了我一个任务,他给了我一块STM32的板子,在我这算实验板吧,里面有程序,可以串口向板子发命令,板子会回复相应的数据,用的格式可能是标准的shell,对这个格式我现在还不用太明白,只是把它当串口用就可以了,这个串口在板子上应该是调试用的。我要做的是下一个PC上的程序,访问配置文件,获取配置信息,按照配置信息的要求给板子发命令,再把接收到的板子的回复数据显示出来,程序有没有界面都可以,可以是控制台的程序。
这个任务做完后回想起来很简单,串口在Windows中相当于文件,使用文件读写函数就可以访问,网上关于这方面的例子很多。再有就是配置文件的操作,我使用的是ini的配置文件,Windows中有操作ini配置文件的API,网上讲这些API的文章也不少,拿过来做几个试验,成功后攒成一个程序,按我想要的方式调取即可。
我用了两天完成了第一个版本,实现了预期的功能,在第一天中,网上的串口读写函数封装的很好,使用重叠方式,但是在我这读取串口的函数总是无法退出,第一天很多时间浪费在此,我问组长这个事怎么弄,组长说问题应该在超时的设置,或者使用同步IO方式即可,我在第一天调试无果的情况下,第二天果断使用同步IO的方式处理,使用读写文件的底层API,抛弃了例子中封装好的读写函数,使用字符数组进行数据的筛选,顺利完成任务。我把这个好消息告诉组长。
现在来简单介绍一下我的组长,接触时间太短,也不知道人家出自哪个名校,也不知道人家擅长啥,只知道他工作十多年了,一直都是做开发,我看过公司之前几个项目的开发过程,大多都是由他主做或者负责,我的直接领导。他看了我的程序,提出了以下几个问题1.程序分文件分块来写,这样主要是以后用着方便,比如以后再做一个用到串口的项目,我只要把现在这个程序的串口的文件复制过去就可以,像我现在所有程序都在一个文件中,以后再去择需要的程序就很麻烦了。2.通信与数据无关。这样可以使程序更加方便管理,把数据通过参数传入到函数中去执行,可以有效的对数据进行控制,减少错误的发生。减小了各块功能间的耦合程度。这让我想到了考C语言二级时的一个考点“高内聚,低耦合”,在当时只是记住了,原来真正的含义是这个。3.命名规范。给我推荐的是Google C++ Style Guide。第二天我在网上找到了这个文章,这个文档在业界影响力很大,但是我现在的知识储备还不够,上面的好多东西还看不太懂,收藏下来慢慢看http://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/。
从第三天到第五天三天的时间完成了我认为的程序的规范化,还没给组长看,不知道还有什么问题。这三天主要把程序分成各个文件来写,弄清楚.cpp和.h文件的调用关系,使用string这个类来解析收到的数据,使解析程序更加通用。创建了结构体来保存配置信息和数据,相当于减少了数据量,方便管理。在这个过程中,离不开同事们的热心帮助。
在编程的时候经常参考前辈们共享出来的帖子,收获不少,有时间我也把我理解的串口和配置文件的操作专门写个帖子整理一下,并配上我的示例程序。
各位看到我的帖子欢迎留言,相互交流!