📄 mainfun.~cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainFun.h"
#include "Setting.h"
#include "SettingSample.h"
#include "SettingSystem.h"
#include "SystemConfig.h"
#include "stdio.h"
#include "FFTDisp.h"
#include <math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
bool Saved=false;
bool CheckResult=false;
int chbuff[8]; //通道临时缓冲
int chbuffpos=0;
int RxCount=0;
FILE *fplog;
FILE *fptest;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
//syscfg.ComBaud="115200";
//Sampling=800;
syscfg.UpdateConfig();
}
//---------------------------------------------------------------------------
//消息的参数WParam就是接收到的字符
void __fastcall TfrmMain::OnComRx(TMessage &Message)
{
int i,j,k;
unsigned char ucRxData=(unsigned char)Message.WParam;
//ShowMessage( ucRxData);
Head0=Head1;
Head1=ucRxData;
//if(fplog!=NULL)
fprintf(fplog,"%d\n",Head1);
//return;
//如果是数据头
if(Head0==0xAA&&Head1==0x75)
{
RxCount=0;
tmct->Enabled=true;
return;
}
//不是数据头,但是不是整个数字
RxCount++;
//是整个数字
if(RxCount%2==0)
{
AdValue=Head1+256* Head0;
chbuff[chbuffpos]=AdValue;
chbuffpos++;
}
/*
if(RxCount==syscfg.ADChanelCount*2)
{
fprintf(fptest,"%d\n",chbuff[0]);
chbuffpos=0;
RxCount=0;
}
return; */
//是否多个通道数据都已经发送完毕
if(RxCount>=syscfg.ADChanelCount*2)
{
RxCount=0;
//采集到所有通道
if(chbuffpos>=(syscfg.ADChanelCount))
{
chbuffpos=0;
//保存到所有通道
for(i=0;i<syscfg.ADChanelCount;i++)
{
for(j=1;j<syscfg.DataBuffLength;j++)
syscfg.DataBuff[i][j-1]=syscfg.DataBuff[i][j];
syscfg.DataBuff[i][syscfg.DataBuffLength-1]=chbuff[i];
fprintf(fp[i],"%d\n",chbuff[i]);
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::tmctTimer(TObject *Sender)
{
int i,j;
for(i=0;i<syscfg.ADChanelCount;i++)
{
ct->Series[i]->Clear();
for(int j=0;j<syscfg.DispCount;j++)
ct->Series[i]->Add(syscfg.DataBuff[i][j],j);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::N9Click(TObject *Sender)
{
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::N2Click(TObject *Sender)
{
frmSettingDisp->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::N3Click(TObject *Sender)
{
frmSettingSample->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::N5Click(TObject *Sender)
{
frmSettingSystem->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::mnStartSampleClick(TObject *Sender)
{
int i,j,k;
SerialPort=new TSerialPort(); //实例化一个串口控制类
SerialPort->InitPort(this,syscfg.ComPort,StrToInt(syscfg.ComBaud));
//初始化串口,Baud:9600,DataBits:8,StopBits:1,无校验位
SerialPort->StartMonitoring(); //创建串口监控线程,开始监控
for(i=0;i<syscfg.ADChanelCount;i++)
fp[i]=fopen(syscfg.DataPath[i].c_str(),"w");
fplog=fopen("c:\\datalog.txt","w");
fptest=fopen("c:\\testlog.txt","w");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::mnEndSampleClick(TObject *Sender)
{
SerialPort->StopMonitoring();
for(int i=0;i<syscfg.ADChanelCount;i++)
fclose(fp[i]);
delete[] &SerialPort;
tmct->Enabled=false;
fprintf(fplog,"Storp Dataing\n");
fclose(fplog);
fclose(fptest);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormClose(TObject *Sender, TCloseAction &Action)
{
if(SerialPort!=NULL)
{
SerialPort->StopMonitoring();
delete[] &SerialPort;
for(int i=0;i<syscfg.ADChanelCount;i++)
fclose(fp[i]);
fclose(fplog);
tmct->Enabled=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
ct->Width=this->Width;
ct->Height=this->Height;
ct->Left=0;
ct->Top=0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormResize(TObject *Sender)
{
ct->Width=this->Width;
ct->Height=this->Height;
ct->Left=0;
ct->Top=0;
}
//---------------------------------------------------------------------------
//点开始上传
void __fastcall TfrmMain::N7Click(TObject *Sender)
{
int i,j,k;
SerialPort=new TSerialPort(); //实例化一个串口控制类
SerialPort->InitPort(this,syscfg.ComPort,StrToInt(syscfg.ComBaud));
//初始化串口,Baud:9600,DataBits:8,StopBits:1,无校验位
SerialPort->SendFrame(0x02,0,0,NULL);
SerialPort->StartMonitoring(); //创建串口监控线程,开始监控
for(i=0;i<syscfg.ADChanelCount;i++)
fp[i]=fopen(syscfg.DataPath[i].c_str(),"w");
fplog=fopen("c:\\datalog.txt","w");
fptest=fopen("c:\\testlog.txt","w");
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FFT1Click(TObject *Sender)
{
FFTform->Show();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -