📄 tmcndlg.cpp
字号:
// TMCNDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Demo8000.h"
#include "TMCNDlg.h"
#include "MBDLLTool.h" // add by Yeh
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTMCNDlg dialog
CTMCNDlg::CTMCNDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTMCNDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTMCNDlg)
m_cont_text = _T("");
m_curr_text = _T("");
m_curr = 0;
m_pset_text = _T("");
m_pset = 0;
//}}AFX_DATA_INIT
}
CTMCNDlg::CTMCNDlg(int type, int addr, CWnd* pParent /*=NULL*/)
: CDialog(CTMCNDlg::IDD, pParent)
{
m_type= type;
m_idx= addr;
}
void CTMCNDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTMCNDlg)
DDX_Control(pDX, IDC_CONT_ONOFF, m_cont_ctrl);
DDX_Text(pDX, IDC_CONT_TEXT, m_cont_text);
DDX_Text(pDX, IDC_CURR_TEXT, m_curr_text);
DDX_Text(pDX, IDC_CURR_VALUE, m_curr);
DDX_Text(pDX, IDC_PSET_TEXT, m_pset_text);
DDX_Text(pDX, IDC_PSET_VALUE, m_pset);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTMCNDlg, CDialog)
//{{AFX_MSG_MAP(CTMCNDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTMCNDlg message handlers
BOOL CTMCNDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
int rc, bytes, bitno;
switch(m_type)
{
case TM_PSET_TYPE:
m_pset_text.Format(_T("Timer Preset, Modbus Address: %06d"), TM_PSET_PTR+m_idx+400001);
m_curr_text.Format(_T("Timer Current, Modbus Address: %06d"), TM_CURR_PTR+m_idx+400001);
m_cont_text.Format(_T("Timer Contact, Modbus Address: %06d"), TM_BIT_PTR+m_idx+1);
m_pset= Reg.TM_PSET[m_idx];
m_curr= Reg.TM_CURR[m_idx];
bytes= m_idx/8;
bitno= m_idx%8;
rc= Coil_Bit_Read(&Coil.TM_BIT[bytes], bitno);
if(rc==0)
m_cont_ctrl.SetCurSel(0);
else
m_cont_ctrl.SetCurSel(1);
break;
case CN_PSET_TYPE:
m_pset_text.Format(_T("Counter Preset, Modbus Address: %06d"), CN_PSET_PTR+m_idx+400001);
m_curr_text.Format(_T("Counter Current, Modbus Address: %06d"), CN_CURR_PTR+m_idx+400001);
m_cont_text.Format(_T("Countr Contact, Modbus Address: %06d"), CN_BIT_PTR+m_idx+1);
m_pset= Reg.CN_PSET[m_idx];
m_curr= Reg.CN_CURR[m_idx];
bytes= m_idx/8;
bitno= m_idx%8;
rc= Coil_Bit_Read(&Coil.CN_BIT[bytes], bitno);
if(rc==0)
m_cont_ctrl.SetCurSel(0);
else
m_cont_ctrl.SetCurSel(1);
break;
}
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTMCNDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
int rc, bytes, bitno;
switch(m_type)
{
case TM_PSET_TYPE:
Reg.TM_PSET[m_idx]= m_pset;
Reg.TM_CURR[m_idx]= m_curr;
bytes= m_idx/8;
bitno= m_idx%8;
rc= m_cont_ctrl.GetCurSel();
Coil_Bit_Write(&Coil.TM_BIT[bytes], bitno, rc);
break;
case CN_PSET_TYPE:
Reg.CN_PSET[m_idx]= m_pset;
Reg.CN_CURR[m_idx]= m_curr;
bytes= m_idx/8;
bitno= m_idx%8;
rc= m_cont_ctrl.GetCurSel();
Coil_Bit_Write(&Coil.CN_BIT[bytes], bitno, rc);
break;
}
UpdateData(FALSE);
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -