📄 usbad1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "usbad1.h"
#include "cbw.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TUsbad *Usbad;
float S[2410],S1[2410],X[2410],X0[2410];
float W[1210][2410];W1[1210][2410];
int k0=0,Max,Maxf,Py=0,Qc=50,Qc1=1200;
int i=0,tao,fz,Moni=0,Sav=0,ch=0,hf=0;
double c1,c2,c3,c4,c5,c30,c31,pj,sp,Zroe=200,At=0,Af=8000,mm=0,Pz;
int Row,Col,j,k,k1,n;
int Row2,Col2;
int BoardNum = 0;
// int UDStat = 0;
int ULStat = 0;
// int Chan=0;
int LowChan = 0;
int HighChan =0;
int Gain =BIP5VOLTS ;//BIP5VOLTS ;//BIP10VOLTS ; // BIPPT005VOLTS
long Count = 2400;
long Rate = 9600; // long Rate = 3125;
WORD ADData[2450];
WORD DataValue = 0;
// float EngUnits;
unsigned Options;
float RevLevel = (float)CURRENTREVNUM;
//---------------------------------------------------------------------------
__fastcall TUsbad::TUsbad(TComponent* Owner)
: TForm(Owner)
{
Edit2->Text=Rate;
for(k=0;k<1200;k++){
for(n=1;n<2400;n++){
W[k][n]=-(cos(2*3.1415926*k*n/2400.0)+sin(2*3.1415926*k*n/2400.0));
}
}
for(k=0;k<1200;k++){
for(n=1;n<2400;n++){
W1[k][n]=(cos(2*3.1415926*k*n/2400.0)+sin(2*3.1415926*k*n/2400.0));
}
}
Edit5->Text=Zroe;
Edit11->Text=Py;
// Chart2->BottomAxis->;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button1Click(TObject *Sender)
{
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Timer1Timer(TObject *Sender)
{
ch=StrToInt(Edit6->Text);
if(ch==0){ LowChan = 0; HighChan =0; }
if(ch==1){ LowChan = 1; HighChan =1; }
if(ch==2){ LowChan = 2; HighChan =2; }
if(ch==3){ LowChan = 3; HighChan =3; }
Edit6->Text=LowChan;
/* ULStat = cbDeclareRevision(&RevLevel);
cbErrHandling (PRINTALL, DONTSTOP);
Options = CONVERTDATA;
ULStat = cbAInScan (BoardNum, LowChan, HighChan, Count, &Rate,
Gain, ADData, Options);
*/
pj=0;
for(i=0;i<2400;i++){ pj+=ADData[i]-32768.0; } // 32786
Edit1->Text=pj/2400.0;
for(i=0;i<2400;i++){
if(Moni==0){S[i]=(ADData[i]-32768-pj/2400.0)-Zroe;
}
}
//=============数据回放==================================
if(Moni==1){
for(i=0;i<2400;i++){
S[i]=Table1->FieldValues["立管压力"];
if(Table1->Eof){Moni=0 ;Timer1->Enabled=false; }
else {Table1->MoveBy(1); }
}
}
//=============保存数据==================================
if(Sav==1){
for(i=0;i<2400;i++){
Table1->Append();
Table1->FieldValues["立管压力"]=S[i];
Table1->Post();
}
}
k=1;
for(n=0;n<2400;n++){
S[n]=10000*cos(2*3.1415926*k*n/240.0)+10000*cos(2*3.1415926*k*n/24.0) ;
}
//===========================================
for(k=0;k<1200;k++){
c3=0;
for(n=1;n<2400;n++){
c3+=S[n]*W[k][n];
sp+=abs(S[n]);
}
if(c3<0){c3=-1*c3;}
X[k]=c3/2400;
sp=sp/2400.0 ;
}
//=========================================================
Qc=StrToInt(Edit12->Text);
Qc1=StrToInt(Edit14->Text);
for(k=0;k<Qc;k++){
X[k]=0;
}
for(k=Qc1;k<1200;k++){
X[k]=0;
}
//===========================================
// X[500]=10000;
for(n=1;n<2400;n++){
c3=0;
for(k=0;k<1200;k++){
c3+=X[k]*W1[k][n];
}
// if(c3<0){c3=-1*c3;}
S1[n]=c3/2400.0;
// S1[n]=(S[n]+8000)*(8000+c3/2400.0)/3600.0;
}
/*
for(n=1;n<800;n++){
mm=S1[n];
if(mm<10){tao=n-1;goto EN;}
}
EN:
Edit15->Text=tao;
At=S1[tao*4+2];
if(tao==0) {tao=1;}
k=1;
for(n=1;n<2400;n++){
S1[n]=At*sin(2*3.1415926*k*n/(tao*4)) ;;
}
*/
//=========================================================
Qc=StrToInt(Edit12->Text);
Qc1=StrToInt(Edit14->Text);
for(k=0;k<Qc;k++){
X[k]=0;
}
for(k=Qc1;k<1200;k++){
X[k]=0;
}
//===========================================
/* for(k=0;k<1200;k++){
c3=0;
for(n=1;n<2400;n++){
c3+=S1[n]*W[k][n];
}
if(c3<0){c3=-1*c3;}
X[k]=c3;
}
//=========================================================
*/
Py=StrToInt(Edit11->Text);
for(k=0;k<1200;k++){
X0[k]=X[k+Py];
}
k0++;
if(k0>=2400){k0=0;}
Series1->Clear();
Series2->Clear();
// Series3->Clear();
Series4->Clear();
k1=0;//+1;
for(k=0;k<2400;k++){
if(k1==2400){k1=0;}
if(CheckBox1->Checked==true){Series1->Add(S1[k1]*2400,1,clBlue);}
if(CheckBox2->Checked==true){Series2->Add(S[k1],4,RGB(255,50,0));}
// if(CheckBox1->Checked==true){Series3->Add(W[k1]*10,1,RGB(0,255,0));}
if(CheckBox3->Checked==true){Series4->Add(X0[k1],1,RGB(255,0,0));}
k1++;
}
Max=0; Maxf=0;
for(k=0;k<2400;k++){
if(S[k]>Max){Max=S[k];}
}
for(k=0;k<1200;k++){
if(X[k]>Maxf){Maxf=X[k];fz=k;Pz=X[k];}
}
Edit13->Text=Pz;
Edit3->Text=fz*Rate/Count;
Edit4->Text=Max-Zroe;
Edit10->Text=Table1->RecNo;
//=============保存数据==================================
// Pz=StrToInt(Edit13->Text);
if(Sav==1){
Table2->Append();
Table2->FieldValues["立管压力"]=Pz;
Table2->Post();
}
if(hf==1){ Timer1->Enabled=false; }
if(hf==0) {Timer1->Enabled=true; }
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button2Click(TObject *Sender)
{
Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::ScrollBar1Change(TObject *Sender)
{
Rate =ScrollBar1->Position;
Edit2->Text=Rate;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::ScrollBar2Change(TObject *Sender)
{
Zroe =ScrollBar2->Position;
Edit5->Text=Zroe;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button3Click(TObject *Sender)
{
Moni=0;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button4Click(TObject *Sender)
{
if(Sav==1){Sav=0;Button4->Caption="保存";}
else {Sav=1;Button4->Caption="不存";}
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button5Click(TObject *Sender)
{
hf=0;
Table1->First();
Moni=1;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button6Click(TObject *Sender)
{
ch=0;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button7Click(TObject *Sender)
{
ch=1;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::ScrollBar3Change(TObject *Sender)
{
At =ScrollBar3->Position;
Edit7->Text=At;
Chart1->LeftAxis->AutomaticMaximum=false;
Chart1->LeftAxis->Maximum=At;
Chart1->LeftAxis->Minimum=-At;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::ScrollBar4Change(TObject *Sender)
{
Af =ScrollBar4->Position;
Edit8->Text=Af;
Chart2->LeftAxis->AutomaticMaximum=false;
Chart2->LeftAxis->Maximum=Af;
Chart2->LeftAxis->Minimum=-Af;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button8Click(TObject *Sender)
{
Chart2->LeftAxis->AutomaticMaximum=true;
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button9Click(TObject *Sender)
{
//<<<<
hf=1;
Table1->MoveBy(-4800);
if(hf==1){Timer1->Enabled=true; }
// else {hf=1;Timer1->Enabled=false;}
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Button10Click(TObject *Sender)
{
//>>>>
hf=1;
// Table1->MoveBy(2400);
if(hf==1){ Timer1->Enabled=true; }
// else {hf=1;Timer1->Enabled=false;}
}
//---------------------------------------------------------------------------
void __fastcall TUsbad::Edit9Change(TObject *Sender)
{
BoardNum=StrToInt(Edit9->Text);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -