📄 aiao_def.cpp
字号:
//---------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include "main.h"
#include "AIAO_Def.h"
#include "WinCONSYS.h" // common variable define
#include "STD_SUB.h"
#include "TAGDef.h"
//---------------------------------------------------------------------
#pragma resource "*.dfm"
TAIAODefDlg *AIAODefDlg;
//---------------------------------------------------------------------
__fastcall TAIAODefDlg::TAIAODefDlg(TComponent* AOwner)
: TForm(AOwner)
{
}
//---------------------------------------------------------------------
int __fastcall TAIAODefDlg::Execute(int type, int idx)
{
int i, rc, addr_1;
char buff[80];
m_type= type;
m_idx= idx;
ExitFlag= 0;
if(m_type==2)
{
sprintf(buff, "Input Register, Modbus Address: %d", AI_BARE_PTR*2+m_idx*2+300001);
Label1->Caption= buff;
Edit1->Visible= true;
Edit2->Visible= true;
Edit3->Visible= true;
Edit4->Visible= true;
Edit5->Visible= true;
Label2->Visible= true;
Label3->Visible= true;
Label4->Visible= true;
Label5->Visible= true;
Label6->Visible= true;
Label14->Visible= true;
// it Current value
Edit6->Visible= false;
Label7->Visible= false;
sprintf(buff, "%10g", Reg_Def.AI_RH[m_idx]);
Edit1->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_RL[m_idx]);
Edit2->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_BH[m_idx]);
Edit3->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_BL[m_idx]);
Edit4->Text= buff;
sprintf(buff, "%5.3f", Reg_Def.AI_FL[m_idx]);
Edit5->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_ENG[m_idx]);
Edit6->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_HH[m_idx]);
Edit7->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_H[m_idx]);
Edit8->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_L[m_idx]);
Edit9->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_LL[m_idx]);
Edit10->Text= buff;
sprintf(buff, "%5.3f", Reg_Def.AI_DEAD[m_idx]);
Edit11->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_INIT[m_idx]);
Edit12->Text= buff;
}
else if(m_type==3)
{
sprintf(buff, "Holding Register, Modbus Address: %d", AO_BARE_PTR*2+m_idx*2+400001);
Label1->Caption= buff;
Edit1->Visible= true;
Edit2->Visible= true;
Edit3->Visible= true;
Edit4->Visible= true;
Edit5->Visible= true;
Label2->Visible= true;
Label3->Visible= true;
Label4->Visible= true;
Label5->Visible= true;
Label6->Visible= true;
Label14->Visible= true;
// it Current value
Edit6->Visible= false;
Label7->Visible= false;
sprintf(buff, "%10g", Reg_Def.AO_RH[m_idx]);
Edit1->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_RL[m_idx]);
Edit2->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_BH[m_idx]);
Edit3->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_BL[m_idx]);
Edit4->Text= buff;
sprintf(buff, "%5.3f", Reg_Def.AO_FL[m_idx]);
Edit5->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_ENG[m_idx]);
Edit6->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_HH[m_idx]);
Edit7->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_H[m_idx]);
Edit8->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_L[m_idx]);
Edit9->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_LL[m_idx]);
Edit10->Text= buff;
sprintf(buff, "%5.3f", Reg_Def.AO_DEAD[m_idx]);
Edit11->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_INIT[m_idx]);
Edit12->Text= buff;
}
else if(m_type==6)
{
addr_1= m_idx + ED_MAX;
sprintf(buff, "Input Register Soft, Modbus Address: %d", AI_SOFT_PTR*2+m_idx*2+300001);
Label1->Caption= buff;
Edit1->Visible= false;
Edit2->Visible= false;
Edit3->Visible= false;
Edit4->Visible= false;
Edit5->Visible= false;
Label2->Visible= false;
Label3->Visible= false;
Label4->Visible= false;
Label5->Visible= false;
Label6->Visible= false;
Label14->Visible= false;
// it Current value
Edit6->Visible= false;
Label7->Visible= false;
Edit1->Text= "0";
Edit2->Text= "0";
Edit3->Text= "0";
Edit4->Text= "0";
Edit5->Text= "0";
sprintf(buff, "%10g", Reg_Def.AI_SOFT[m_idx]);
Edit6->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_HH[addr_1]);
Edit7->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_H[addr_1]);
Edit8->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_L[addr_1]);
Edit9->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_LL[addr_1]);
Edit10->Text= buff;
sprintf(buff, "%5.3f", Reg_Def.AI_DEAD[addr_1]);
Edit11->Text= buff;
sprintf(buff, "%10g", Reg_Def.AI_INIT[addr_1]);
Edit12->Text= buff;
}
else if(m_type==7)
{
addr_1= m_idx + ED_MAX;
sprintf(buff, "Holding Register Soft, Modbus Address: %d", AO_SOFT_PTR*2+m_idx*2+400001);
Label1->Caption= buff;
Edit1->Visible= false;
Edit2->Visible= false;
Edit3->Visible= false;
Edit4->Visible= false;
Edit5->Visible= false;
Label2->Visible= false;
Label3->Visible= false;
Label4->Visible= false;
Label5->Visible= false;
Label6->Visible= false;
Label14->Visible= false;
// it Current value
Edit6->Visible= false;
Label7->Visible= false;
Edit1->Text= "0";
Edit2->Text= "0";
Edit3->Text= "0";
Edit4->Text= "0";
Edit5->Text= "0";
sprintf(buff, "%10g", Reg_Def.AO_SOFT[m_idx]);
Edit6->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_HH[addr_1]);
Edit7->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_H[addr_1]);
Edit8->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_L[addr_1]);
Edit9->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_LL[addr_1]);
Edit10->Text= buff;
sprintf(buff, "%5.3f", Reg_Def.AO_DEAD[addr_1]);
Edit11->Text= buff;
sprintf(buff, "%10g", Reg_Def.AO_INIT[addr_1]);
Edit12->Text= buff;
}
rc= ShowModal(); // display Form
if(rc==mrOk)
{
return(0);
}
return(-1);
}
//---------------------------------------------------------------------------
void __fastcall TAIAODefDlg::FormClose(TObject *Sender, TCloseAction &Action)
{
if(ExitFlag == 1) Action= caNone;
ExitFlag= 0;
}
//---------------------------------------------------------------------
void __fastcall TAIAODefDlg::OKBtnClick(TObject *Sender)
{
int addr_1;
float new_val[12];
if(check_data()!=0)
{ ExitFlag=1; return; }
// get current value
new_val[0]= atof(Edit1->Text.c_str());
new_val[1]= atof(Edit2->Text.c_str());
new_val[2]= atof(Edit3->Text.c_str());
new_val[3]= atof(Edit4->Text.c_str());
new_val[4]= atof(Edit5->Text.c_str());
new_val[5]= atof(Edit6->Text.c_str());
new_val[6]= atof(Edit7->Text.c_str());
new_val[7]= atof(Edit8->Text.c_str());
new_val[8]= atof(Edit9->Text.c_str());
new_val[9]= atof(Edit10->Text.c_str());
new_val[10]= atof(Edit11->Text.c_str());
new_val[11]= atof(Edit12->Text.c_str());
if(m_type==2)
{
Reg_Def.AI_RH[m_idx]= new_val[0];
Reg_Def.AI_RL[m_idx]= new_val[1];
Reg_Def.AI_BH[m_idx]= new_val[2];
Reg_Def.AI_BL[m_idx]= new_val[3];
Reg_Def.AI_FL[m_idx]= new_val[4];
Reg_Def.AI_BARE[m_idx]= new_val[5];
Reg_Def.AI_HH[m_idx]= new_val[6];
Reg_Def.AI_H[m_idx]= new_val[7];
Reg_Def.AI_L[m_idx]= new_val[8];
Reg_Def.AI_LL[m_idx]= new_val[9];
Reg_Def.AI_DEAD[m_idx]= new_val[10];
Reg_Def.AI_INIT[m_idx]= new_val[11];
display_listview_TAG_Def(Form2->ListView1, m_type, m_idx);
}
else if(m_type==3)
{
Reg_Def.AO_RH[m_idx]= new_val[0];
Reg_Def.AO_RL[m_idx]= new_val[1];
Reg_Def.AO_BH[m_idx]= new_val[2];
Reg_Def.AO_BL[m_idx]= new_val[3];
Reg_Def.AO_FL[m_idx]= new_val[4];
Reg_Def.AO_BARE[m_idx]= new_val[5];
Reg_Def.AO_HH[m_idx]= new_val[6];
Reg_Def.AO_H[m_idx]= new_val[7];
Reg_Def.AO_L[m_idx]= new_val[8];
Reg_Def.AO_LL[m_idx]= new_val[9];
Reg_Def.AO_DEAD[m_idx]= new_val[10];
Reg_Def.AO_INIT[m_idx]= new_val[11];
display_listview_TAG_Def(Form2->ListView1, m_type, m_idx);
}
else if(m_type==6)
{
addr_1= m_idx + ED_MAX;
Reg_Def.AI_HH[addr_1]= new_val[6];
Reg_Def.AI_H[addr_1]= new_val[7];
Reg_Def.AI_L[addr_1]= new_val[8];
Reg_Def.AI_LL[addr_1]= new_val[9];
Reg_Def.AI_DEAD[addr_1]= new_val[10];
Reg_Def.AI_INIT[addr_1]= new_val[11];
display_listview_TAG_Def(Form2->ListView1, m_type, m_idx);
}
else if(m_type==7)
{
addr_1= m_idx + ED_MAX;
Reg_Def.AO_HH[addr_1]= new_val[6];
Reg_Def.AO_H[addr_1]= new_val[7];
Reg_Def.AO_L[addr_1]= new_val[8];
Reg_Def.AO_LL[addr_1]= new_val[9];
Reg_Def.AO_DEAD[addr_1]= new_val[10];
Reg_Def.AO_INIT[addr_1]= new_val[11];
display_listview_TAG_Def(Form2->ListView1, m_type, m_idx);
}
}
//---------------------------------------------------------------------------
void __fastcall TAIAODefDlg::Edit5Exit(TObject *Sender)
{
float val;
val= atof(Edit5->Text.c_str());
if(check_Filter_value(val)!=0)
{
Edit5->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TAIAODefDlg::Edit11Exit(TObject *Sender)
{
float val;
val= atof(Edit11->Text.c_str());
if(check_Dead_value(val)!=0)
{
Edit11->SetFocus();
}
}
//---------------------------------------------------------------------------
int __fastcall TAIAODefDlg::check_data(void)
{
float val, rh, rl, bh, bl;
float alm_hh, alm_h, alm_l, alm_ll;
int rc;
rc= 0;
val= atof(Edit5->Text.c_str());
if(check_Filter_value(val)!=0)
{
Edit5->SetFocus();
rc=-1;
}
val= atof(Edit11->Text.c_str());
if(check_Dead_value(val)!=0)
{
Edit11->SetFocus();
rc= -1;
}
rh= atof(Edit1->Text.c_str());
rl= atof(Edit2->Text.c_str());
bh= atof(Edit3->Text.c_str());
bl= atof(Edit4->Text.c_str());
if(rl >rh)
{
MessageBox(NULL, "Range Low can't large than Range High", WinCON8000, MB_OK);
rc= -1;
}
if(bl >bh)
{
MessageBox(NULL, "Bare Low can't large than Bare High", WinCON8000, MB_OK);
rc= -1;
}
alm_hh= atof(Edit7->Text.c_str());
alm_h= atof(Edit8->Text.c_str());
alm_l= atof(Edit9->Text.c_str());
alm_ll= atof(Edit10->Text.c_str());
if(alm_h >alm_hh)
{
MessageBox(NULL, "Alarm High Limit can't large than Alarm High High Limit", WinCON8000, MB_OK);
rc= -1;
}
if(alm_l >alm_h)
{
MessageBox(NULL, "Alarm Low Limit can't large than Alarm High Limit", WinCON8000, MB_OK);
rc= -1;
}
if(alm_ll >alm_l)
{
MessageBox(NULL, "Alarm Low Low Limit Low can't large than Alarm Low Limit", WinCON8000, MB_OK);
rc= -1;
}
return(rc);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -