📄 unit1.~cpp
字号:
if(Form1->CheckBox2->Checked)
Temp=Temp|0x2;
//'2路开
if(Form1->CheckBox3->Checked)
Temp=Temp|0x4;
// If (ChkFreeHold.Value) Then Temp = Temp Or &H8 '慢引燃
// If (OptCurr.Value) Then Temp = Temp Or &H10 '稳流模式
// If (OptFreq.Value) Then Temp = Temp Or &H20 '稳压模式
if(Form1->CheckBox4->Checked)
Temp=Temp|0x10;
// If (ChkFreq.Value) Then Temp = Temp Or &H20 '稳频模式
// If (Shift.Value) Then
// Temp = Temp|0x40|0x80;
if(Form1->CheckBox5->Checked)// If (Shift.Value) Then
{
Temp = (Temp | 0x40 | 0x80);// Temp = (Temp Or &H40 Or &H80)
IsShift = true;// IsShift = True '换档
}
else// Else
IsShift = false;// IsShift = False
return Temp;
}
//---------------------------------------------------------------------------
int combine(BYTE H,BYTE L)
{
return H*256+L;
}
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Timer1->Enabled=!Timer1->Enabled;
if(Timer1->Enabled)
{
Label19->Caption="正在自动采集数据";
Button1->Enabled=false;
Button2->Enabled=false;
Button4->Enabled=false;
Edit1->Enabled=false;
Edit2->Enabled=false;
Edit3->Enabled=false;
Edit4->Enabled=false;
GroupBox1->Enabled=false;
}
else
{
Label19->Caption="自动采集关闭";
Button1->Enabled=true;
Button2->Enabled=true;
Button4->Enabled=true;
Edit1->Enabled=true;
Edit2->Enabled=true;
Edit3->Enabled=true;
Edit4->Enabled=true;
GroupBox1->Enabled=true;
}
}
int dangerous=1;
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(Timer1->Enabled)
{
Button1Click(Sender);
if(ShutDown)
if(Edit5->Text.ToDouble()<100)
{
Label30->Caption="可以安全关闭激光器电源!";
}
else
{
Label30->Caption="正在降阴极电压......";
}
}
if(!ShutDown)
if(Edit9->Color==clRed||Edit10->Color==clRed)
{
if(dangerous%8<4)
Label30->Caption="调节阴极偏压";
else
Label30->Caption="";
}
dangerous++;
}
//---------------------------------------------------------------------------
AnsiString myError()
{
AnsiString ERROR_Code;
switch(My_SI_STATUS){
case 0xFF:
ERROR_Code="0xFF SI_DEVICE_NOT_FOUND";
break;
case 0x01:
ERROR_Code="0x01 SI_INVALID_HANDLE";
break;
case 0x02:
ERROR_Code="0x02 SI_READ_ERROR";
break;
case 0x03:
ERROR_Code="0x03 SI_RX_QUEUE_NOT_READY";
break;
case 0x04:
ERROR_Code="0x04 SI_WRITE_ERROR";
break;
case 0x05:
ERROR_Code= "0x05 SI_RESET_ERROR";
break;
case 0x06:
ERROR_Code= "0x06 SI_INVALID_PARAMETER";
break;
case 0x07:
ERROR_Code= "0x07 SI_INVALID_REQUEST_LENGTH";
break;
case 0x08:
ERROR_Code= "0x08 SI_DEVICE_IO_FAILED";
break;
case 0x09:
ERROR_Code= "0x09 SI_INVALID_BAUDRATE";
break;
case 0x00:
ERROR_Code= "0x00 SI_SUCCESS";
break;
case 0x0a:
ERROR_Code= "0x0A SI_FUNCTION_NOT_SUPPORTED";
break;
case 0x0b:
ERROR_Code= "0x0B SI_GLOBAL_DATA_ERROR";
break;
case 0x0c:
ERROR_Code= "0x0C SI_SYSTEM_ERROR_CODE";
break;
case 0x0d:
ERROR_Code= "0x0D SI_READ_TIMED_OUT";
break;
case 0x0e:
ERROR_Code= "0x0E SI_WRITE_TIMED_OUT";
break;
case 0x0f:
ERROR_Code= "0x0F SI_IO_PENDING";
break;
}
return ERROR_Code;
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
SI_Close(hUSBDevice);
}
//---------------------------------------------------------------------------
float CnvLight1(float data)//光强信号1
{
return CnvVolt(data)*3;
}//End Function
float CnvLight2(float data)
{
return CnvVolt(data) * 3;
}
//偏置电压回采转换(2,3)
float CnvVoffset(float data)//Public Function CnvVoffset(data As Long)
{
float temp;
temp=CnvVolt(data);
return temp*19;
}
//VHV1(4)
float CnvVHV1(float data)
{
float CnvVHV10=CnvVolt(data);
if(IsShift)
CnvVHV10= CnvVHV10 * 5490 / 82 - 5 + II1 * 2.824561;
else//Else
CnvVHV10=CnvVHV10 * 5490 / 82 - 5 + II1 * 6.7;//59
return CnvVHV10;
}
//'IHV1(5)
float CnvIHV1(float data)
{
float CnvIHV10 = CnvVolt(data) / 4.7;//7.186
if(IsShift)
CnvIHV10 = CnvVolt(data) / 0.824561;
II1 = CnvIHV10;
return CnvIHV10;
}
//'VHV2(6)
float CnvVHV2(float data)
{
float CnvVHV20 = CnvVolt(data);
if(IsShift)
CnvVHV20 = CnvVHV20 * 5490 / 82 - 5 + II2 * 2.824561;
else//Else
CnvVHV20 = CnvVHV20 * 5490 / 82 - 5 + II2 * 6.7;// 59
return CnvVHV20;
}
//'IHV2(7)
float CnvIHV2(float data)
{
float CnvIHV20 = CnvVolt(data) / 4.7;
if(IsShift)
CnvIHV20 = CnvVolt(data) / 0.824561;
II2 = CnvIHV20;
return CnvIHV20;
}
//'LightVibrate1'光强振荡信号1采样(8)
float CnvLighVibrate1(float data)
{
return CnvVolt(data);
}
//'LightVibrate2'光强振荡信号2采样(9)
float CnvLighVibrate2(float data)
{
return CnvVolt(data);
}
//'BeatBreadth1 '拍频幅值1采样(10)
float CnvBeatBreadth1(float data)
{
return CnvVolt(data);
}
//'BeatBreadth2 '拍频幅值2采样(11)
float CnvBeatBreadth2(float data)
{
return CnvVolt(data);
}
//'Temp = '温度信号采样(12)
float CnvTemp(float data)
{
return CnvVolt(data);
}
//'CathodeOffset '阴极偏压采样(13)
float CnvCathodeOffset(float data)
{
return CnvVolt(data) * 54.9 / 0.2;//500/2 '为什么要除2
}
//'VIgnite ='引燃高压采样(14)
float CnvVIgnite(float data)
{
return CnvVolt(data) * 549;
}
//'None = Combine(InArray(30), InArray(31)) '保留*************
//'交流幅值'暂不能用
float CnvACBreadth(float data)
{
return CnvVolt(data) * 20000 / 470 * 10 / 11 / 2;
}
//'交流电压有效值回采转换
float CnvVACVirtual(float data)
{
return CnvVolt(data) * 20;
}
//'交流电流有效值回采转换
float CnvIACVirtual(float data)
{
return CnvVolt(data);/// 200
}
//'内部电源回采转换
float CnvVolt(float data)
{
float Temp;
//If Data > 32767 Then Data = Data - 65535
Temp = (data - 0x7FFF) * 10.24 / 0x7FFF;
return Temp;
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Series1->Clear();
Series2->Clear();
Series3->Clear();
Series4->Clear();
Series5->Clear();
Series6->Clear();
X_0=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
int V=Edit1->Text.ToInt();
if(V>2500|V<0)
{
ShowMessage("阴极偏压范围为0~2500V!");
Edit1->Undo();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
int V=Edit2->Text.ToInt();
if(V>3000|V<0)
{
ShowMessage("阴极偏压范围为0~3000V!");
Edit2->Undo();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
if(Edit1->Text.ToInt()>700)
{
CheckBox1->Checked=true;
CheckBox1->State=cbChecked;
Button2Click(Sender);
Button3Click(Sender);
// do
// {
// Label30->Caption="升压中......";
// }
//while(Edit5->Text.ToDouble()<700);
Button2Click(Sender);
CheckBox1->Checked=false;
CheckBox1->State=cbUnchecked;
Label30->Caption="";
}
else
{
ShowMessage("重新设定初值");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
Timer1->Enabled=false;
Edit1->Text="0";
Edit2->Text="0";
Edit3->Text="0";
Edit4->Text="0";
Button2Click(Sender);
Button3Click(Sender);
Button1->Enabled=false;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;
Button5->Enabled=false;
Button6->Enabled=false;
ShutDown=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit9Change(TObject *Sender)
{
if(Edit9->Text.ToDouble()>300||Edit9->Text.ToDouble()<100)
Edit9->Color=clRed;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit10Change(TObject *Sender)
{
if(Edit10->Text.ToDouble()>300||Edit9->Text.ToDouble()<100)
Edit10->Color=clRed;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -