代码理解
IEC104NASlaveDlg.h窗口头文件
已注释过内容不再注释,请参考
C++代码审阅–ice104协议从站(1)
C++代码审阅–ice104协议从站(2)
C++代码审阅–ice104协议从站(3)
// IEC104NASlaveDlg.h : header file
//
#if !defined(AFX_IEC104NASLAVEDLG_H__76F8CBDC_BEBC_42FD_920C_759778DCC183__INCLUDED_)
#define AFX_IEC104NASLAVEDLG_H__76F8CBDC_BEBC_42FD_920C_759778DCC183__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// #include "Slave104.h"
#include <winsock2.h>
#define WM_MYMESSAGE WM_USER+100 //自定义消息
/
// CIEC104NASlaveDlg dialog
class Slave104;
class CIEC104NASlaveDlg : public CDialog
{
// Construction
public:
CIEC104NASlaveDlg(CWnd* pParent = NULL); // standard constructor ,标准构造函数CIEC104NASlaveDlg
virtual ~CIEC104NASlaveDlg(); //定义析构函数~CIEC104NASlaveDlg
// Dialog Data
//{{AFX_DATA(CIEC104NASlaveDlg)
enum { IDD = IDD_IEC104NASLAVE_DIALOG }; //枚举资源视图成员
CButton m_startListen; // 启动监听按钮
CButton m_stopListen; // 停止监听按钮
CListBox m_revList; //接收列表框
CListBox m_sendList; //接收列表框
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CIEC104NASlaveDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support ,定义DoDataExchange函数
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon; //窗口图标
public:
void SetButtonState(BOOL state);
void SetRemainTimeCtrl(int nType, int nRemainSecond, BOOL isInvalid);
void SetTimeCtrl(int nType, BOOL isInvalid);
void MyMemcpy(void *, void *, int len);
BOOL StartListen();
Slave104 *slave;
// static DWORD WINAPI ClientThread(LPVOID lpParam);
// int GetIp();
// SOCKET client;
// sockaddr_in from;
BYTE YXData[288]; //遥信数组 288
// BYTE YCData[6000];
DWORD YMData[20]; //遥脉数组 20
WORD YCData[2951]; //遥测数组2951
// Generated message map functions
//{{AFX_MSG(CIEC104NASlaveDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnButtonStart();
afx_msg LRESULT OnRevMsg(WPARAM wParam,LPARAM lParam);
afx_msg void OnButtonDeflectionyx();
afx_msg void OnButtonSoe();
afx_msg void OnButton1();
afx_msg void OnButtonStoplisten();
afx_msg void OnButtonClearlist();
afx_msg void OnButtonSavemsg();
//}}AFX_MSG ,此块定义了一些消息标识
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_IEC104NASLAVEDLG_H__76F8CBDC_BEBC_42FD_920C_759778DCC183__INCLUDED_)
文件含义
IEC104NASlaveDlg.h这个文件主要定义了窗口界面里面的一些元素和消息的定义,在IEC104NASlaveDlg.cpp里实现界,可以看下图界面。
附上dialog所有界面元素属性表
元素名称 | 对象名 |
---|---|
启动侦听 | IDC_BUTTON_START |
停止侦听 | IDC_BUTTON_STTOPLISTEN |
不回复启动帧 | IDC_CHECK_NORESPONSESTART |
变位遥信 | IDC_BUTTON_DEFLECTIONYX |
SOE | IDC_BUTTON_SOE |
SOE | IDC_BUTTON1 |
SOE | IDC_BUTTON1 |
T1起始示例编辑框 | IDC_TIME_T1 |
T2起始示例编辑框 | IDC_TIME_T2 |
T3起始示例编辑框 | IDC_TIME_T3 |
T1剩余示例编辑框 | IDC_REMAIN_T1 |
T2剩余示例编辑框 | IDC_REMAIN_T2 |
T3剩余示例编辑框 | IDC_REMAIN_T3 |
发送数据区 | IDC_LIST_SENDMSG |
接收数据区 | IDC_LIST_MSG |
保存报文 | IDC_BUTTON_SAVEMSG |
清空数据区 | IDC_BUTTON_CLEARLIST |
确定 | IDOK |
取消 | IDCANCLE |
相关基础知识
1.计算机网络中拥塞窗口:CWnd
2.指针:https://www.cnblogs.com/tongye/p/9650573.html
3.构造函数和析构函数:https://www.runoob.com/cplusplus/cpp-constructor-destructor.html
4.自定义消息:MFC自定义消息
5.枚举:https://www.runoob.com/cprogramming/c-enum.html
6.MFC窗口控件C++/MFC-几种常用控件
7.关键字:https://www.runoob.com/w3cnote/cpp-keyword-intro.html
8.MFC函数DoDataExchange:DoDataExchange
9.比特、字节、字:https://blog.csdn.net/qq_43152052/article/details/86751717