📄 polingrrcdialog.cpp
字号:
// PolingRRCDialog.cpp : implementation file
//
#include "stdafx.h"
#include "fert2000.h"
#include "PolingRRCDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern RTU Rtus[MAX_RTU_NUM];
IMPLEMENT_DYNCREATE(CPolingRRCDialog, CDialog)
/////////////////////////////////////////////////////////////////////////////
// CPolingRRCDialog dialog
CPolingRRCDialog::CPolingRRCDialog()
:CDialog(CPolingRRCDialog::IDD)
{
//{{AFX_DATA_INIT(CPolingRRCDialog)
m_Cao0 = 0;
m_Cao9 = 0;
m_Cao10 = 0;
m_Cao11 = 0;
m_Cao12 = 0;
m_Cao13 = 0;
m_Cao14 = 0;
m_Cao15 = 0;
m_Cao1 = 0;
m_Cao2 = 0;
m_Cao3 = 0;
m_Cao4 = 0;
m_Cao5 = 0;
m_Cao6 = 0;
m_Cao7 = 0;
m_Cao8 = 0;
m_WaitTime = 0;
m_DeadArea = 0;
m_AnswerWaitTime = 0;
//}}AFX_DATA_INIT
for (int i = 0;i < 16;i++)
CaoConfig[i] = 0;
}
void CPolingRRCDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPolingRRCDialog)
DDX_CBIndex(pDX, IDC_COMBO1, m_Cao0);
DDX_CBIndex(pDX, IDC_COMBO10, m_Cao9);
DDX_CBIndex(pDX, IDC_COMBO11, m_Cao10);
DDX_CBIndex(pDX, IDC_COMBO12, m_Cao11);
DDX_CBIndex(pDX, IDC_COMBO13, m_Cao12);
DDX_CBIndex(pDX, IDC_COMBO14, m_Cao13);
DDX_CBIndex(pDX, IDC_COMBO15, m_Cao14);
DDX_CBIndex(pDX, IDC_COMBO16, m_Cao15);
DDX_CBIndex(pDX, IDC_COMBO2, m_Cao1);
DDX_CBIndex(pDX, IDC_COMBO3, m_Cao2);
DDX_CBIndex(pDX, IDC_COMBO4, m_Cao3);
DDX_CBIndex(pDX, IDC_COMBO5, m_Cao4);
DDX_CBIndex(pDX, IDC_COMBO6, m_Cao5);
DDX_CBIndex(pDX, IDC_COMBO7, m_Cao6);
DDX_CBIndex(pDX, IDC_COMBO8, m_Cao7);
DDX_CBIndex(pDX, IDC_COMBO9, m_Cao8);
DDX_Text(pDX, IDC_EDIT1, m_WaitTime);
DDX_Text(pDX, IDC_EDIT2, m_DeadArea);
DDX_Text(pDX, IDC_ANSWER_TIME, m_AnswerWaitTime);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPolingRRCDialog, CDialog)
//{{AFX_MSG_MAP(CPolingRRCDialog)
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO10, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO11, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO12, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO13, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO14, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO15, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO16, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO3, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO4, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO5, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO6, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO7, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO8, OnSelchangeCombo)
ON_CBN_SELCHANGE(IDC_COMBO9, OnSelchangeCombo)
ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
ON_EN_CHANGE(IDC_EDIT2, OnChangeEdit2)
ON_EN_CHANGE(IDC_ANSWER_TIME, OnChangeAnswerTime)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPolingRRCDialog message handlers
void CPolingRRCDialog::OnSelchangeCombo()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CComboBox *Wnd = (CComboBox*)GetFocus();
CaoConfig[Wnd->GetDlgCtrlID()-IDC_COMBO1] = Wnd->GetCurSel();
RtuPara->m_KwhNum = 0;
RtuPara->m_YcNum = 0;
RtuPara->m_YxNum = 0;
for (int i = 0;i < 16;i++)
{
switch (CaoConfig[i])
{
case 1:
RtuPara->m_YxNum += 24;
break;
case 2:
RtuPara->m_YcNum += 12;
break;
case 5:
RtuPara->m_KwhNum += 8;
break;
default:
break;
}
}
UpdateData(FALSE);
Rtus[CurRtu].ModifyFlag=1;
}
void CPolingRRCDialog::DispARtuRRC()
{
m_WaitTime=Rtus[CurRtu].WaitTime;
m_AnswerWaitTime = Rtus[CurRtu].AnswerWaitTime;
m_DeadArea=Rtus[CurRtu].DeadArea;
// m_ComboProtocol.SetCurSel(Rtus[CurRtu].Protocol);
for (int i = 0;i < 16;i++)
{
switch (Rtus[CurRtu].RRC[i])
{
case 0x0:
CaoConfig[i] = 0;
break;
case 0x11:
CaoConfig[i] = 1;
break;
case 0x32:
CaoConfig[i] = 2;
break;
case 0x14:
CaoConfig[i] = 3;
break;
case 0x05:
CaoConfig[i] = 4;
break;
case 0x3B:
CaoConfig[i] = 5;
break;
case 0x26:
CaoConfig[i] = 6;
break;
case 0x30:
CaoConfig[i] = 7;
break;
default:
CaoConfig[i] = 0;
break;
}
}
m_Cao0 = CaoConfig[0];
m_Cao1 = CaoConfig[1];
m_Cao2 = CaoConfig[2];
m_Cao3 = CaoConfig[3];
m_Cao4 = CaoConfig[4];
m_Cao5 = CaoConfig[5];
m_Cao6 = CaoConfig[6];
m_Cao7 = CaoConfig[7];
m_Cao8 = CaoConfig[8];
m_Cao9 = CaoConfig[9];
m_Cao10 = CaoConfig[10];
m_Cao11 = CaoConfig[11];
m_Cao12 = CaoConfig[12];
m_Cao13 = CaoConfig[13];
m_Cao14 = CaoConfig[14];
m_Cao15 = CaoConfig[15];
// OnSelchangeCombo1();
if (ProtocolType == 1)
{
RtuPara->m_KwhNum = 0;
RtuPara->m_YcNum = 0;
RtuPara->m_YxNum = 0;
for (i = 0;i < 16;i++)
{
switch (CaoConfig[i])
{
case 1:
RtuPara->m_YxNum += 24;
break;
case 2:
RtuPara->m_YcNum += 12;
break;
case 5:
RtuPara->m_KwhNum += 8;
break;
default:
break;
}
}
}
// ProtocolDo();//
UpdateData(FALSE);
}
BOOL CPolingRRCDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
DispARtuRRC();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPolingRRCDialog::SaveARtuRRC()
{
UpdateData(TRUE);
Rtus[CurRtu].WaitTime = m_WaitTime;
Rtus[CurRtu].AnswerWaitTime = m_AnswerWaitTime;
Rtus[CurRtu].DeadArea = m_DeadArea;
CaoConfig[0] = m_Cao0;
CaoConfig[1] = m_Cao1;
CaoConfig[2] = m_Cao2;
CaoConfig[3] = m_Cao3;
CaoConfig[4] = m_Cao4;
CaoConfig[5] = m_Cao5;
CaoConfig[6] = m_Cao6;
CaoConfig[7] = m_Cao7;
CaoConfig[8] = m_Cao8;
CaoConfig[9] = m_Cao9;
CaoConfig[10] = m_Cao10;
CaoConfig[11] = m_Cao11;
CaoConfig[12] = m_Cao12;
CaoConfig[13] = m_Cao13;
CaoConfig[14] = m_Cao14;
CaoConfig[15] = m_Cao15;
int YxNum=0,YcNum=0,KwhNum=0;
for (int i = 0;i < 16;i++)
{
switch (CaoConfig[i])
{
case 0:
Rtus[CurRtu].RRC[i] = 0;
break;
case 1:
Rtus[CurRtu].RRC[i] = 0x11;
YxNum += 24;
break;
case 2:
Rtus[CurRtu].RRC[i] = 0x32;
YcNum += 12;
break;
case 3:
Rtus[CurRtu].RRC[i] = 0x14;
break;
case 4:
Rtus[CurRtu].RRC[i] = 0x05;
break;
case 5:
Rtus[CurRtu].RRC[i] = 0x3B;
KwhNum += 8;
break;
case 6:
Rtus[CurRtu].RRC[i] = 0x26;
break;
case 7:
Rtus[CurRtu].RRC[i] = 0x30;
break;
default:
Rtus[CurRtu].RRC[i] = 0;
break;
}
}
Rtus[CurRtu].YcNum = YcNum;
Rtus[CurRtu].YxNum = YxNum;
Rtus[CurRtu].KwhNum = KwhNum;
}
void CPolingRRCDialog::OnChangeEdit1()
{
UpdateData();
if (m_WaitTime < 1 || m_WaitTime > 10)
{
AfxMessageBox("遥控等待时间范围不合适!",MB_OK + MB_ICONSTOP);
m_WaitTime = 5;
UpdateData(FALSE);
return;
}
Rtus[CurRtu].ModifyFlag=1;
}
void CPolingRRCDialog::OnChangeEdit2()
{
UpdateData();
if (m_DeadArea < 0 || m_DeadArea > 4096)
{
AfxMessageBox("死区值范围不合适!",MB_OK + MB_ICONSTOP);
m_DeadArea = 5;
UpdateData(FALSE);
return;
}
Rtus[CurRtu].ModifyFlag=1;
}
void CPolingRRCDialog::OnChangeAnswerTime()
{
UpdateData();
if (m_AnswerWaitTime < 5 || m_AnswerWaitTime > 60)
{
AfxMessageBox("死区值范围不合适!",MB_OK + MB_ICONSTOP);
m_AnswerWaitTime = 5;
UpdateData(FALSE);
return;
}
Rtus[CurRtu].ModifyFlag=1;
}
void CPolingRRCDialog::OnOK()
{
// TODO: Add extra validation here
SaveARtuRRC();
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -