这个我的第一个真正意义上的VC项目。软件部分花了两个月下班和周末的部分时间完成。本来我还以为花了两年,翻开备份的程序最早版本修改时间,确实两个月。这倒不是说明快。而是这过程经历中的曲折迷茫,让时间在内心中被拉长了。它大概是在我真的花了两年时间,陆陆续续,断断续续,看了《C++沉思录》、《C++Primer》、《Visual C++ 2005入门经典》、《深入浅出MFC》(节选翻阅)之后的第一个尝试,当中更多实战知识是在一个个百度中发掘的。总算取得至少让自己感觉比较满意的效果。因为我觉得本来可以完成得更快,更胸有成竹,所以决定写个系列博客,把整个系统的骨架和肌肉记录下来,以备查看。
写之前,确实想了下,该怎么写--这也是第一次。还好一个问题给了我启发:“如果再做个新的项目,怎么做才是最好?”。之前的想到哪,写到哪,显然不是。
就像画人物素描,须先画骨,再画肌肉皮肤毛发。搭建一个系统,也应先有系统方框图,模块图,再到各模块实现方案,然后是各种方法和实施步骤。
先上系统图,由于项目是个需要软硬件配合的平台,虽然软件部分更另我兴奋,当然也少不了硬件这个基础。
待测系统是一个车身控制器,即汽车当中控制车窗灯活动的电子系统。为什么系统图是这样的?回答这个问题主要回答两个个为什么:1.为什么要用PC(即电脑),因为PC强大的计算、友好的互交和高性价比,使这个测试系统具有强大而灵活的处理能力。2.为什么把测试模块和负载及电源分开,而不是合在一起,因为分开之后,功能分配更清晰,测试模块、负载、电源可以方便拆开用在其他待测系统。
在设计软件部分之前,还需理清项目需求。从而推出各硬件模块的设计规格。见下图:
以上一些缩写含义:DIO(数字输入输出)、AO(模拟输出)、AI(模拟输入)、DWG(数字波形发生)、TMU(时间测量单元)。96DIO代表96个数字输入输出通道,如此等等。
先不多说,软件系统如下:
软件设计部分,关于界面,关于输入操作,执行流程等,开始设计时会有点不知所措。这时找张草稿纸来随心画画,是个不错的选择。
以上统领系列博客,后续文章将针对各个模块功能及实现方法一一展开。