📄 dido_def.cpp
字号:
//---------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include "main.h"
#include "DIDO_Def.h"
#include "WinCONSYS.h" // common variable define
#include "STD_SUB.h"
#include "TAGDef.h"
//---------------------------------------------------------------------
#pragma resource "*.dfm"
TDIDODefDlg *DIDODefDlg;
//---------------------------------------------------------------------
__fastcall TDIDODefDlg::TDIDODefDlg(TComponent* AOwner)
: TForm(AOwner)
{
}
//---------------------------------------------------------------------
int __fastcall TDIDODefDlg::Execute(int type, int idx)
{
int i, rc, bytes, bitno;
char buff[80];
m_type= type;
m_idx= idx;
// current value
Label2->Visible= false;
ComboBox1->Visible= false;
if(m_type==0)
{
sprintf(buff, "Input Coil, Modbus Address: %06d", DI_BARE_PTR+m_idx+100001);
Label1->Caption= buff;
bytes= m_idx/8;
bitno= m_idx%8;
rc= Coil_Bit_Read(&Coil_Def.DI_BARE[bytes], bitno);
ComboBox1->ItemIndex= rc;
bytes= m_idx/8;
bitno= m_idx%8;
rc= Coil_Bit_Read(&Coil_Def.DI_INIT[bytes], bitno);
ComboBox2->ItemIndex= rc;
}
else if(m_type==1)
{
sprintf(buff, "Output Coil, Modbus Address: %06d", DO_BARE_PTR+m_idx+1);
Label1->Caption= buff;
bytes= m_idx/8;
bitno= m_idx%8;
rc= Coil_Bit_Read(&Coil_Def.DO_BARE[bytes], bitno);
ComboBox1->ItemIndex= rc;
bytes= m_idx/8;
bitno= m_idx%8;
rc= Coil_Bit_Read(&Coil_Def.DO_INIT[bytes], bitno);
ComboBox2->ItemIndex= rc;
}
else if(m_type==4)
{
sprintf(buff, "Input Coil Soft, Modbus Address: %06d", DI_SOFT_PTR+m_idx+100001);
Label1->Caption= buff;
bytes= m_idx/8;
bitno= m_idx%8;
rc= Coil_Bit_Read(&Coil_Def.DI_SOFT[bytes], bitno);
ComboBox1->ItemIndex= rc;
bytes= (m_idx+DD_MAX_BIT)/8;
bitno= (m_idx+DD_MAX_BIT)%8;
rc= Coil_Bit_Read(&Coil_Def.DI_INIT[bytes], bitno);
ComboBox2->ItemIndex= rc;
}
else if(m_type==5)
{
sprintf(buff, "Output Coil Soft, Modbus Address: %06d", DO_SOFT_PTR+m_idx+1);
Label1->Caption= buff;
bytes= m_idx/8;
bitno= m_idx%8;
rc= Coil_Bit_Read(&Coil_Def.DO_SOFT[bytes], bitno);
ComboBox1->ItemIndex= rc;
bytes= (m_idx+DD_MAX_BIT)/8;
bitno= (m_idx+DD_MAX_BIT)%8;
rc= Coil_Bit_Read(&Coil_Def.DO_INIT[bytes], bitno);
ComboBox2->ItemIndex= rc;
}
rc= ShowModal(); // display Form
if(rc==mrOk)
{
return(0);
}
return(-1);
}
//---------------------------------------------------------------------
void __fastcall TDIDODefDlg::OKBtnClick(TObject *Sender)
{
int bytes, bitno;
int new_dd2;
// get new value
// new_dd1= ComboBox1->ItemIndex; // current value
new_dd2= ComboBox2->ItemIndex;
// get current value
if(m_type==0)
{
bytes= m_idx/8;
bitno= m_idx%8;
Coil_Bit_Write(&Coil_Def.DI_INIT[bytes], bitno, new_dd2);
display_listview_TAG_Def(Form2->ListView1, m_type, m_idx);
}
else if(m_type==4)
{
bytes= (m_idx+DD_MAX_BIT)/8;
bitno= (m_idx+DD_MAX_BIT)%8;
Coil_Bit_Write(&Coil_Def.DI_INIT[bytes], bitno, new_dd2);
display_listview_TAG_Def(Form2->ListView1, m_type, m_idx);
}
else if(m_type==1)
{
bytes= m_idx/8;
bitno= m_idx%8;
Coil_Bit_Write(&Coil_Def.DO_INIT[bytes], bitno, new_dd2);
display_listview_TAG_Def(Form2->ListView1, m_type, m_idx);
}
else if(m_type==5)
{
bytes= (m_idx+DD_MAX_BIT)/8;
bitno= (m_idx+DD_MAX_BIT)%8;
Coil_Bit_Write(&Coil_Def.DO_INIT[bytes], bitno, new_dd2);
display_listview_TAG_Def(Form2->ListView1, m_type, m_idx);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -