微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于C++Builder的串口数据实时曲线绘制的实现

基于C++Builder的串口数据实时曲线绘制的实现

时间:11-02 来源:互联网 点击:

3 实时温盐曲线的绘制

3.1实时温盐曲线的绘制

C++ Builder自带的画图控件Tchart,它的功能十分强大,曲线的绘制也十分简单,它可以实现曲线的局部放大和缩小,不需要加入额外代码,大大加快了软件的开发时间。在实时数据处理过程中只需添加如下代码即可。

Form1->Series1->AddXY(b[0].ToDouble() ,FmatDepth[0].ToDouble(),b[0],clBlue);
//在Tchart中添加一条蓝色的曲线,表示温度
Form1->Series2->AddXY(a[0].ToDouble() ,FmatDepth[0].ToDouble() ,a[0],clRed);
//在Tchart中添加一条红色的曲线,表示电导率
Form1->Series1->YValues->Order=loAscending;
Form1->Series1->XValues->Order=loNone;
Form1->Series2->YValues->Order=loAscending;
Form1->Series2->XValues->Order=loNone

后面这几条的表示使曲线在Y轴上的值递增。如图3所示。


3.2 历史曲线的绘制

历史数据的显示同样使用Tchart控件,与实时数据曲线绘制不同的是,历史数据是从数据的存储文件中读取数据放入一自定义的数据结构中,利用该数据结构将数据添加到Tchart中,其温盐的效果与图3相同,另外还可以查看、盐度、密度、声速的曲线,还可以进行数据处理,如平滑、除噪等。代码实现片断如下:
OpenDialog1->InitialDir=ExtractFilePath(Application->ExeName);
OpenDialog1->Filter=数据文件|*.dtf;
for(int i=0;i文件中数据个数;i++)
if(ChartSort==wtcon) // 温度,电导
GoChart(depthvalue,wtvalue,condvalue);
else if(ChartSort==sl) //盐度
SlChart();
else if(ChartSort==den) //密度
DenChart();
else if(ChartSort==vel) //声速

VelChart()

4 数据的保存和浏览

测量说明和测量值存储在原始文件中,同时把内容保存在数据文件中。数据文件可以用记事本打开查看。
StatusBar1->Panels->Items[1]->Text=数据接收完毕!;
MemoCfg->Lines->LoadFromFile(configtemp.ini);
Memo1->Lines->Add(******);
//连同配置文件的内容一起存入文件
Memo2->Lines->Add(******);
Memo1->Lines->Add(MemoCfg->Text);
Memo2->Lines->Add(MemoCfg->Text);
//把配置文件的内容加到Memo中
Memo1->Lines->SaveToFile(savepath+\\+filename+.+rdf);
//把Memo中的内容存到原始文件中
Memo2->Lines->SaveToFile(savepath+\\+filename+.
+dtf); //把Memo中的内容存到数据文件中
浏览数据文件应该再加入一个OpenDialog模块
AnsiString st; OpenDialog1->InitialDir=ExtractFilePath(Application->ExeName);
OpenDialog1->Filter=数据文件|*.dtf;
if (OpenDialog1->Execute()) //执行OpenDialog选择
要打开的文件
{
replayNList->LoadFromFile(OpenDialog1->FileName);
RDFFileName=OpenDialog1->FileName;
iniComFileName=ExtractFileName(OpenDialog1->FileName);}

上面给出了C++ Builder中利用MSComm控件进行串行通信编程的实现和代码片断。C++ Builder是一种方便、高效的开发环境,其出色的窗体开发能力以及丰富的控件,大大缩短了系统的开发周期和代码量。实验者感到操作方便、数据处理快速准确,极大地减低了工作量,提高了工作效率。利用模拟现场数据通过串口传输到PC机中,本软件对接收到的数据进行处理。可以看到采集值更新及时、准确性高且绘图线条较为平滑。可以很直观地对相关参数进行分析,并且方便数据的保存与调用。具有在测量现场应用的可行性,稍加改进还可应用到其他数据采集的串口通信程序中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top