信息采集系统开发第一版

来源:互联网 发布:阿里云华北3是什么地方 编辑:程序博客网 时间:2024/05/17 05:07

   最近写了一个小的软件项目,主要目的是为了采集部分传感器的数据信息,并进行数据存储等工作。将开发的过程和一些感想写成博文,以供学习。

1:完成的主要功能

(1):完成串口的通信,数据接收

(2):对接受的数据实时进行采集,并绘制出实时的折线图,由于只需要绘制出5个通道的数据曲线,因此为了方便就直接在对话框上建立五个图(需要时可以任意扩展)。

(3):数据保存工作,要求者五个通道的数据要保存在其他的文本格式,例如Excel,txt等。

2:分析

  (1) 总体来说用户的要求不是很多,这个项目也很容易实现。为了程序开发的方便,采用了SerialPort 类来完成串口通信部分,这一部分相对比较简单,参照一些网络的例子可以比较容易的实现。

  (2)绘图这一部分也是写了一个类,其中参照了网络上的一些代码,在此表示感谢。总体还是对于网下载的一个类进行了改写。网上下载的这个类很明显是一个半成品,写到一半,结构和内容费非常不完善。我对这个类进行了完善和改进。

  (3)对数据的保存工作,由于数据保存的量可能不是特别的大,而且对于数据的采集保存不适合对硬盘进行频繁的读写操作,为了减少对于硬盘的读写,先将数据保存在C++的容器类当中,非常实用。

3:实现

(1)先对SerialPort进行配置,在实用这个类的时候费了一些周折,本来以为可以使用VC提供的控件直接来用,但是由于我使用的是VS2010,部分控件的使用不是很好,而且还需要注册,非常麻烦。然后换了思路,其实利用控件,也无非就是在工程中加入了某个或者某些类,然后可能自动的生成一些对象。

     然后我就在网上下载了SerialPort类,然后参考了龚建军的《串口通讯》的书,对这个类的应用有了基本的了解,根据这本书的一些思路,完成了串口通信的基本工作。

       上图是串口区的截图一部分。这里写了四个串口选择,和波特率的选择。


2:数据采集过程的基本思路是在串口响应函数中添加函数处理,主要是将采集的数据进行字符串保存,先保存数据包括字符的停止标志,然后取出有效的传感器数据的位数,对数据进行处理,处理完了就进行画图。

      画图采用了链表对数据进行绘制,还要实现折线图随时间的滚动效果,因此采用链表的方式,下图是采集图中的一个通道的图的基本内容,可以任意显示当前时间,当前采集值等。

3:数据存储部分,为了方便用户进行下一步的数据处理,我采用了Excel表格进行数据存储。Excel数据的存储需要解决几个主要的问题,一个是与Excel软件接口的设置问题,第二是写入数据表,还要注意数据表格存储完成后对于对于容器的释放和表格关闭,以避免内存溢出和表格进程不关闭的现象。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我14岁射精让我记忆力差了怎么办 qq闪退聊天记录全没了怎么办 木瓜奇迹忘记升级过头转职了怎么办 孩子进入青春期什么坏事都干怎么办 母狗狗第一次来月经应该怎么办图 社保断了想补缴怎么办?这些要知道 换工作社保断了一个月怎么办 北京社保中间断了几个月怎么办 农保和社保都交了医保怎么办 如果交了社保结婚生孩子断了怎么办 南京社保中间断了几个月怎么办 mu大师等级技能点加点太慢怎么办 永恒纪元戒不是本职业套装石怎么办 全民奇迹忘记在哪个区了怎么办 全民奇迹安卓的忘记那个区了怎么办 大天使之剑h5所在服人少怎么办 买的裙子因为好看没有勇气穿怎么办 魅蓝s6锁屏密码忘了怎么办 u盘被占用不能安全弹出怎么办 洛克王国得到了魔攻巨蟹座怎么办 在育碧下载游戏下一半不下了怎么办 轩辕传奇单机版忘记哪个区了怎么办 登腾讯游戏动态密码啥意思怎么办 说了不该说的话别人不原谅怎么办 轩辕传奇手游金币用错了怎么办 神秘时代4法杖按键冲突怎么办 孕2个月发烧38度怎么办 不知道怀孕喝了止咳糖浆怎么办? 小孩刮头发的备皮刀割住手怎么办? 天梭手表里面的刻度掉了怎么办 国战天下手游帐号丢失怎么办 肺力咳合剂一次喝了50多了怎么办 头孢和藿香正气水一起吃了怎么办 小儿胃蛋自酶合剂吃多了怎么办 刚出生的婴儿很容易被惊醒怎么办 1个多月的宝宝小腿不直怎么办 20个月宝宝腿不直小腿外八怎么办 小孩手青枝骨骨折拆石膏还弯怎么办 宝宝喝柴胡注射剂有不良反应怎么办 九个月宝宝便秘拉不出来怎么办 一岁四个月的宝宝便秘怎么办