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

📄 tagdef.cpp

📁 《WinCE.NET嵌入式工业用控制器及自动控制系统设计》的源代码
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include  <stdio.h>
#include <stdlib.h>
#include <process.h>
#include  <string.h>
#include  <memory.h>
#include  <fcntl.h>
#include  <sys\types.h>
#include  <sys\stat.h>
#include  <share.h>
#include  <io.h>

#include "WinCONSYS.h"   // common variable define
#include "TAGDef.h"
#include "std_sub.h"
#include "AIAO_Def.h"
#include "DIDO_Def.h"
#include "TMCN_Def.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormActivate(TObject *Sender)
{
   OutputCoil1Click(Sender);
   SAVE_FLAG= 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormCreate(TObject *Sender)
{
   OutputCoil1Click(Sender);
   SAVE_FLAG= 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Cancelnosave1Click(TObject *Sender)
{
// cancel and not save
   Form2->Close();
   SAVE_FLAG= 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::ExitandSave1Click(TObject *Sender)
{
// Exit and save
   Form2->Close();
   SAVE_FLAG= 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
// From Close
  int fd, pos;

  if(SAVE_FLAG==0) // read back old define
  {
     fd= sopen(DEMO_SYS_TBL, O_RDWR | O_BINARY, SH_DENYNO);
     pos= 0;
     lseek(fd, pos, SEEK_SET);
     read(fd, (char *)&Reg_Def, sizeof(Reg_Def));
     read(fd, (char *)&Coil_Def, sizeof(Coil_Def));
     close(fd);
  }
  else if(SAVE_FLAG==1) // save new define
  {
     fd= sopen(DEMO_SYS_TBL, O_RDWR | O_BINARY, SH_DENYNO);
     pos= 0;
     lseek(fd, pos, SEEK_SET);
     write(fd, (char *)&Reg_Def, sizeof(Reg_Def));
     write(fd, (char *)&Coil_Def, sizeof(Coil_Def));
     close(fd);
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm2::OutputCoil1Click(TObject *Sender)
{
   Label1->Caption= "Input Coil";
   display_listview_title(ListView1, 0);
   display_listview_fix_item(ListView1, 0);
   display_listview_data_Def(ListView1, 0);
   DISP_FLAG= 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::OutputCoil2Click(TObject *Sender)
{
   Label1->Caption= "Output Coil";
   display_listview_title(ListView1, 1);
   display_listview_fix_item(ListView1, 1);
   display_listview_data_Def(ListView1, 1);
   DISP_FLAG= 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::InputCoilSoft1Click(TObject *Sender)
{
   Label1->Caption= "Input Coil Soft";
   display_listview_title(ListView1, 4);
   display_listview_fix_item(ListView1, 4);
   display_listview_data_Def(ListView1, 4);
   DISP_FLAG= 4;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::OutputCoilSoft1Click(TObject *Sender)
{
   Label1->Caption= "Output Coil Soft";
   display_listview_title(ListView1, 5);
   display_listview_fix_item(ListView1, 5);
   display_listview_data_Def(ListView1, 5);
   DISP_FLAG= 5;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::InputRegister1Click(TObject *Sender)
{
   Label1->Caption= "Input Register";
   display_listview_title(ListView1, 2);
   display_listview_fix_item(ListView1, 2);
   display_listview_data_Def(ListView1, 2);
   DISP_FLAG= 2;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::HoldingRegister1Click(TObject *Sender)
{
   Label1->Caption= "Holding Register";
   display_listview_title(ListView1, 3);
   display_listview_fix_item(ListView1, 3);
   display_listview_data_Def(ListView1, 3);
   DISP_FLAG= 3;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::InputRegisterSoft1Click(TObject *Sender)
{
   Label1->Caption= "Input Register Soft";
   display_listview_title(ListView1, 6);
   display_listview_fix_item(ListView1, 6);
   display_listview_data_Def(ListView1, 6);
   DISP_FLAG= 6;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::HoldingRegisterSoft1Click(TObject *Sender)
{
   Label1->Caption= "Holding Register Soft";
   display_listview_title(ListView1, 7);
   display_listview_fix_item(ListView1, 7);
   display_listview_data_Def(ListView1, 7);
   DISP_FLAG= 7;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::TimerTable1Click(TObject *Sender)
{
   Label1->Caption= "Timer Table";
   display_listview_title(ListView1, 8);
   display_listview_fix_item(ListView1, 8);
   display_listview_data_Def(ListView1, 8);
   DISP_FLAG= 8;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::CounterTable1Click(TObject *Sender)
{
   Label1->Caption= "Counter Table";
   display_listview_title(ListView1, 9);
   display_listview_fix_item(ListView1, 9);
   display_listview_data_Def(ListView1, 9);
   DISP_FLAG= 9;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::ListView1DblClick(TObject *Sender)
{
// set data
   int i, idx;

  for(i=0, idx=-1; i<ListView1->Items->Count; i++)
  {
     if(ListView1->Items->Item[i]->Selected == false) continue;
     idx= i;
     break;
  }
  if(idx == -1) return;  // no selected

  switch(DISP_FLAG)
  {
    case 0:  // Input Coil
      DIDODefDlg->Execute(DISP_FLAG, idx);
      break;
    case 1:  // Output Coil
      DIDODefDlg->Execute(DISP_FLAG, idx);
      break;
    case 2:  // Input Register
      AIAODefDlg->Execute(DISP_FLAG, idx);
      break;
    case 3:  // Holding Register
      AIAODefDlg->Execute(DISP_FLAG, idx);
      break;
    case 4:  // Input Coil Soft
      DIDODefDlg->Execute(DISP_FLAG, idx);
      break;
    case 5:  // Output Coil Soft
      DIDODefDlg->Execute(DISP_FLAG, idx);
      break;
    case 6:  // Input Register Soft
      AIAODefDlg->Execute(DISP_FLAG, idx);
      break;
    case 7:  // Output Register Soft
      AIAODefDlg->Execute(DISP_FLAG, idx);
      break;
    case 8:  // Timer Table
      TMCNDefDlg->Execute(DISP_FLAG, idx);
      break;
    case 9:  // Counter Table
      TMCNDefDlg->Execute(DISP_FLAG, idx);
      break;
  }

}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -