⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dido_def.cpp

📁 《WinCE.NET嵌入式工业用控制器及自动控制系统设计》的源代码
💻 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 + -