⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scommtestdlg.h

📁 非常实用的串口通信程序 并且在中间使用了托盘技术 (站长,源程序个数怎么计算啊,其实这里面含有两个源程序,一个是串口通信,一个是托盘程序 )
💻 H
字号:
// SCommTestDlg.h : header file
//
//{{AFX_INCLUDES()
#include "mscomm.h"
//}}AFX_INCLUDES

#if !defined(AFX_SCOMMTESTDLG_H__185098A9_8B9D_4BD3_88E6_3DEC1C36B426__INCLUDED_)
#define AFX_SCOMMTESTDLG_H__185098A9_8B9D_4BD3_88E6_3DEC1C36B426__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <comdef.h>
#include <afxcoll.h>
//static int count=0;
/////////////////////////////////////////////////////////////////////////////
// CSCommTestDlg dialog
// Define the two struction of data
//PLC-->PC
struct PLC2PC
{
	BYTE bNewData;
	BYTE bShutterOpen;
	BYTE bDataError;
	float fSpeed;
};
//PC-->PLC
struct PC2PLC
{
	BYTE bNewData;
	BYTE bShutterOpen;
    BYTE nCTCount;
	DWORD nCTPos[20];
};

struct ControlData
{
	PLC2PC RXData;
	PC2PLC SXData;
};

class CSCommTestDlg : public CDialog
{
// Construction
public:
	CSCommTestDlg(CWnd* pParent = NULL);	// standard constructor
// Dialog Data
	//{{AFX_DATA(CSCommTestDlg)
	enum { IDD = IDD_SCOMMTEST_DIALOG };
	CButton	m_ctrlShutterOpen;
	CButton	m_ctrlSendAgain;
	CButton	m_ctrlCTPoint;
	CStatic	m_cnRXDataShow;
	CEdit	m_ClearRecord;	
	CButton	m_ctrlHexDisplay;
	CButton	m_ctrlHexSend;
	CComboBox	m_BaudRateCombo;
	CComboBox	m_StopBitsCombo;
	CComboBox	m_ParityCombo;
	CComboBox	m_DataBitsCombo;
	CComboBox	m_ComCombo;
	CMSComm	m_CtrlComm;
	CString	m_StrRXData;
	CString	m_StrTXData;
	CString	m_strBaudRate;
	CString	m_strComm;
	CString	m_strDataBits;
	CString	m_strParity;
	CString	m_strStopBits;
	BOOL	m_bShutterOpen;
	BOOL	m_bCTPoint;
	BOOL	m_bSendAgain;
	int		m_nCTPoint;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSCommTestDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL
	private:
		bool m_bAutoSend;
		//static int m_ByteCount;//计算收到的字节数

       
// Implementation
protected:
	NOTIFYICONDATA tnid;
	void showfuc();
	void hidefuc();
	void quitfuc();
	HICON m_hIcon;	
	HICON hIcon[2];

	// Generated message map functions
	//{{AFX_MSG(CSCommTestDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnComm();
	afx_msg void OnButtonManualsend();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnCheckAutosend();
	afx_msg void OnPortOk();
	afx_msg void OnPortdefault();
	afx_msg void OnClearRecord();
	afx_msg void OnSelchangeComcombo();
	afx_msg void OnSelchangeBaudratecombo();
	afx_msg void OnSelchangeDatabitscombo();
	afx_msg void OnSelchangeParitycombo();
	afx_msg void OnSelchangeStopbitscombo();
	afx_msg void OnButtonSXDemandOk();
	afx_msg void OnCheckSendagain();
	afx_msg void OnClose();
	virtual void OnCancel();
	virtual void OnOK();
	DECLARE_EVENTSINK_MAP()
	//}}AFX_MSG
public:
	int OnCreate(LPCREATESTRUCT lpCreateStruct);
	void OnSysCommand(UINT nID, LPARAM lParam);
	void MyFuc(DWORD lp, DWORD wp);
	
	CString m_SXSelDemand;//可视区内发的命令字节;
	float m_DynShowSpeed;
	CString m_ForDynShow;
	void DynShowRXData(CString str);
	ControlData* ReadMemoryFile();
	void CheckSXData(ControlData* controldata);
	void CheckRXData();
	//static int GetByteCount();
	void ConvertData();
	CString m_SXDataArray[20];
	CString Byte2CString(BYTE bt);
	void PC2PLCDataHandle(ControlData* lpcontroldata);
	CString ChangetoByteLength(CString str,int nLength);
	CString Decimal2Binary(CString strDecimal);
	CString Binary2Decimal(CString strBinary);
	void PLC2PCDataHandle();
	CString m_strDataLength;
	CString m_strDataDemand;
	CString m_strDataDR;
	CString m_strDataChecksum;	
	char m_CTCountOrNot;
	int m_RXDataByteCount;
	ControlData m_ControlData;
	//ControlData* m_lpControlData;
	bool m_RXDataFlag;//接收到新数据flag
	bool m_RXDataSuccess;//接收数据成功
	bool m_SXDataSuccess;//发送数据成功
	CString m_SXDataAgain;//数据不完整,请求PC重发“0”,“1”;
	CString m_RXDataAgain;//数据不完整,请求PLC重发“0”,“1”;
	CString m_SXDataAgainByte;//数据不完整,请求PLC重发;
	CString m_RXDataAgainByte;//要求重新收的送出去的命令
	char ConvertHexChar(char ch);
	int String2Hex(CString str, CByteArray &senddata);
	void Config();	
	bool m_AutoSendFlag;
	CSpinButtonCtrl* pSpin;
	
	CString	m_StrRXData1;
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SCOMMTESTDLG_H__185098A9_8B9D_4BD3_88E6_3DEC1C36B426__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -