📄 debugdialog.cpp
字号:
// DebugDialog.cpp : implementation file
//
#include "stdafx.h"
#include "fert2000.h"
#include "DebugDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern bool bStopFlag;
extern CHANNEL Channels[MAX_CHANNEL_NUM];
extern RTU Rtus[MAX_RTU_NUM];
extern SYSTEMCOUNT SystemCount;
//extern CDatabase Database;
extern BYTE DebugCommand[0x23];//当前调试的命令数组
extern char DebugRtuNo;
extern EVENT Events;
extern RecSendThread RecSendThread1;
extern long ProgramStartTime;
extern NetProcess NetProcess1;
extern char YKEchoFlag[MAX_RTU_NUM];
extern BYTE YKEcho[MAX_RTU_NUM][6];//?
extern BYTE YKReserved[24];//?
extern unsigned char TBCH0[];
/////////////////////////////////////////////////////////////////////////////
// CDebugDialog dialog
CDebugDialog::CDebugDialog(CWnd* pParent /*=NULL*/)
: CDialog(CDebugDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CDebugDialog)
m_Radio_shunxu = -1;
//}}AFX_DATA_INIT
}
void CDebugDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDebugDialog)
DDX_Radio(pDX, IDC_RADIO_SHUNXU, m_Radio_shunxu);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDebugDialog, CDialog)
//{{AFX_MSG_MAP(CDebugDialog)
ON_BN_CLICKED(IDC_BUTTON_RIGHT, OnButtonRight)
ON_BN_CLICKED(IDC_BUTTON_LEFT, OnButtonLeft)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDebugDialog message handlers
void CDebugDialog::OnButtonRight()
{
CListBox * SelectList = (CListBox*)GetDlgItem(IDC_LIST_SELECT_COMM);
CListBox * DebugList = (CListBox*)GetDlgItem(IDC_LIST_DEBUG_COMM);
int CurSel = SelectList ->GetCurSel();
if (CurSel == LB_ERR) return;
CString CurSelString;
SelectList->GetText(CurSel,CurSelString);
SelectList->DeleteString(CurSel);
DebugList->AddString(CurSelString);
}
void CDebugDialog::OnButtonLeft()
{
CListBox * SelectList = (CListBox*)GetDlgItem(IDC_LIST_SELECT_COMM);
CListBox * DebugList = (CListBox*)GetDlgItem(IDC_LIST_DEBUG_COMM);
int CurSel = DebugList ->GetCurSel();
if (CurSel == LB_ERR) return;
CString CurSelString;
DebugList->GetText(CurSel,CurSelString);
DebugList->DeleteString(CurSel);
SelectList->AddString(CurSelString);
}
BOOL CDebugDialog::OnInitDialog()
{
CDialog::OnInitDialog();
CListBox * SelectList = (CListBox*)GetDlgItem(IDC_LIST_SELECT_COMM);
m_Radio_shunxu = 0;
DebugFlag = false;
switch(Channels[Rtus[m_RtuNo].RtuChNo].Protocol)
{
case 1:
SelectList ->AddString("(01H)报告RTU配置");
SelectList ->AddString("(02H)报告全部数据");
SelectList ->AddString("(03H)报告全部变化的数据");
SelectList ->AddString("(04H)事件顺序记录");
SelectList ->AddString("(05H)报告脉冲累加器值");
SelectList ->AddString("(06H)脉冲累加器冻结并清零");
SelectList ->AddString("(07H)脉冲累加器冻结");
SelectList ->AddString("(08H)脉冲累加器解冻");
SelectList ->AddString("(09H)设置死区值");
SelectList ->AddString("(0AH)报告死区值");
SelectList ->AddString("(0DH)控制输出预设置");
SelectList ->AddString("(0EH)直接控制输出");
SelectList ->AddString("(11H)执行控制输出");
SelectList ->AddString("(15H)控制输出锁存");
SelectList ->AddString("(18H)报告锁存数据");
SelectList ->AddString("(19H)对钟");
SelectList ->AddString("(1AH)报告时钟值");
SelectList ->AddString("(1BH)报告端口接口方式");
SelectList ->AddString("(1CH)设置端口接口方式");
SelectList ->AddString("(1EH)复位");
break;
}
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDebugDialog::OnOK()
{
UpdateData();
CListBox * DebugList = (CListBox*)GetDlgItem(IDC_LIST_DEBUG_COMM);
int Count = DebugList->GetCount();
if (Count)
{
switch(Channels[Rtus[m_RtuNo].RtuChNo].Protocol)
{
case 1:
CString ListStr;
CString CommandNumber;
int Command;
for (int i =0; i<0x23;i++) DebugCommand[i] = 0;
for (i=0; i<Count;i++)
{
DebugList->GetText(i,ListStr);
ListStr.Delete(0,1);
CommandNumber = ListStr.Left(2);
sscanf(CommandNumber,"%x",&Command);
if (m_Radio_shunxu) DebugCommand[Command] = 1;
else DebugCommand[i] = Command;
}
if (m_Radio_shunxu) DebugCommand[0x20] = 1;
DebugCommand[0x21] = 0;
DebugCommand[0x22] = Count;
DebugRtuNo = m_RtuNo;
DebugFlag = true;
break;
}
}else DebugFlag = false;
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -