📄 itkplcdlg.h
字号:
// @dlg
//
// @module itkPlcDlg.h
//
//
// Maintenance:
//
// Version Date Who What
// ------- -------- --- -------------------------------------
// 7.0 06/01/97 jra Created
// 7.1 04/30/98 mvs Added TCP/IP Support
// 7.1 05/20/98 mvs Added UDP Support
//
// Prevent multiple inclusion
#if !defined(AFX_ITKPLCDLG_H__C8DD8F2B_038F_11D1_B77E_0060971E5E37__INCLUDED_)
#define AFX_ITKPLCDLG_H__C8DD8F2B_038F_11D1_B77E_0060971E5E37__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include <Serial.h>
#include <WinSock2.h>
#include <TcpIp.h>
#include "SettingsDlg.h"
#include "TriggerDlg.h"
#include "CommStatsDlg.h"
#include "ItkProtocol.h"
#include <ItkErr.h>
#define RECEIVE_BUFFER_SIZE 2048
class CItkPlcDlg : public CDialog
{
// Construction
public:
CItkPlcDlg(CWnd* pParent = NULL); // standard constructor
~CItkPlcDlg();
BOOL IsUsingTimers() { return (this->m_bTimerFlag); }
void IsUsingTimers(BOOL bFlag) {this->m_bTimerFlag = bFlag;}
void ParseTcpMsg(SOCKET, DWORD);
void ParseUdpMsg(SOCKADDR ClientSockAddr, DWORD dwSize);
// Dialog Data
//{{AFX_DATA(CItkPlcDlg)
enum { IDD = IDD_ITKPLC_DIALOG };
CListBox m_DataList;
int m_datatype;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CItkPlcDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CItkPlcDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnExit();
afx_msg void OnSettingsButton();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnTriggers();
afx_msg void OnDblclkPlcData();
afx_msg void OnDatatypeFloat();
afx_msg void OnDatatypeHex();
afx_msg void OnDatatypeLong();
afx_msg void OnDatatypeSigned();
afx_msg void OnDatatypeUnsigned();
afx_msg void OnClearMemory();
afx_msg void OnDatatypeAscii();
afx_msg void OnShowStats();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
unsigned short int PlcMemory[PLC_MEMORY_SIZE],
m_cBCCMask,
rcv_state,
m_nTransactionNumber;
CRITICAL_SECTION m_Lock;
DWORD m_dwProtocol,
m_dwTransmitIndex,
m_dwRemoteStation,
m_dwLocalStation,
m_dwUnsolFrequency,
m_dwUnsolicitedSentCount;
UINT m_nTimerRefreshRate,
m_uPortNumber;
CString m_szPortName,
m_szPortMode,
m_szIpAddress;
HANDLE m_hIoThread,
m_hUnsolThread,
m_hNotifyEvt;
BOOL m_bShutdown,
m_bUnsolicited,
m_bTimerFlag,
m_bSourceStn,
m_bTransNum;
unsigned char m_nTransmitBuffer[TRANSMIT_BUFFER_SIZE];
unsigned char m_chReceiveBuffer[RECEIVE_BUFFER_SIZE];
CSerial *m_pIo;
CTcpIp *m_pTcp;
int m_nTimerMap[PLC_MEMORY_SIZE],
m_DataTypeView;
CTriggerDlg *m_pdlgTriggers;
CSettingsDlg *m_pdlgSettings;
CCommStatsDlg *m_pdlgCommStats;
void UpdateRow(int);
void UpdateMemoryMap(unsigned char bClear = UPDATE_ONLY);
void ParseMsg(unsigned char [], DWORD);
void AnswerRead(unsigned short int, unsigned short int,
unsigned short int, unsigned short int,
unsigned short int, unsigned short int,
OPTIONAL IN SOCKET Socket = INVALID_SOCKET,
OPTIONAL IN LPSOCKADDR SockAddr = NULL);
void PutSend(unsigned char);
void PutSendBcc(unsigned char, short int *);
void SendDLE(unsigned char,
OPTIONAL IN SOCKET = INVALID_SOCKET);
DWORD BuildWriteMsg(DWORD, unsigned char *);
unsigned short int GetBCCMask();
unsigned short int GetDataBits();
static UINT IoHandler(LPVOID);
static UINT UnsolIoHandler(LPVOID);
};
#endif // !defined(AFX_ITKPLCDLG_H__C8DD8F2B_038F_11D1_B77E_0060971E5E37__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -