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

📄 testdlg.h

📁 CAN网测试工具的源代码
💻 H
字号:
// testDlg.h : header file
//

#if !defined(AFX_TESTDLG_H__0B453A60_AE2F_4119_AF51_CC52D47F30DF__INCLUDED_)
#define AFX_TESTDLG_H__0B453A60_AE2F_4119_AF51_CC52D47F30DF__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CTestDlg dialog
#include "TestListBox.h"
#include "CommPort.h"
#include "ControlCAN.h"

enum FuncCode 
{
	REQUEST_SOFT_VER         = 193,
	ACT_REQUEST_SOFT_VER     = 129,     

    REQUEST_FAILURE_INFO     = 194,
	ACT_REQUEST_FAILURE_INFO = 130, 
    
    REQUEST_WATCH_PARA       = 198,
	ACT_REQUEST_WATCH_PARA   = 134,

    REQUEST_CTRL_NODERUN     = 195,
	ACT_REQUEST_CTRL_NODERUN = 131, 
    SEND_DATA_CTRL_NODERUN   = 196,    
	ACT_DATA_CTRL_NODERUN    = 132,
    
    REQUEST_PROGRAM_DOWN     = 199,
	ACT_REQUEST_PROGRAM_DOWN = 135, 
    SEND_DATA_PROGRAM_DOWN   = 200,    
	ACT_DATA_PROGRAM_DOWN    = 136,

    REQUEST_MODIFY_PARA      = 210,
	ACT_REQUEST_MODIFY_PARA  = 146, 
    SEND_PARA1_DATA          = 211,    
	ACT_PARA1_DATA           = 147,
	SEND_PARA2_DATA          = 212,  
	ACT_SUCCESS_MODIFY       = 148,  
	
	REQUEST_RESERVED         = 192,	
    ACT_REQUEST_RESERVED     = 128
};


typedef struct
{
	union
	{
		BYTE  NODE;
		struct
		{
			BYTE  nodebit0   :1;
			BYTE  nodebit1   :1;
		    BYTE  nodebit2   :1;
			BYTE  nodebit3   :1;
			BYTE  nodebit4   :1;
		    BYTE  nodebit5   :1;
			BYTE  nodebit6   :1;
			BYTE  nodebit7   :1;
		};
	};

}CANNODE,*PCANNODE;

class CTestDlg : public CDialog
{
	// Construction
public:
    
	bool m_bIsOnNode0,m_bIsOnNode1,m_bIsOnNode2,m_bIsOnNode3,m_bIsOnNode4,m_bIsOnNode5,m_bIsOnNode6,m_bIsOnNode7;
	CString m_strSdVoltage1,m_strSdVoltage2;

	bool m_bCheckDataType;

	BYTE  m_byteNodeNo;
	bool  m_bProgramDown;
	int   m_iActFuncCodeProgramDown;
	BYTE  m_byteActStatusPragramDown;
	CArray<VCI_CAN_OBJ,VCI_CAN_OBJ&> m_ArrayActCanFrame;

	COleDateTime  m_timeConnect;
	bool  m_bSendTimer;
	bool  m_bExtendWindow;
	bool  m_bAutoSaveCan;
	bool  m_bSourceDataViewEnable;
	unsigned char  m_bufFrame[13];
	CString m_strAppPath;

    long	m_iFrameCount;
	int m_cannum;
	int m_devtype;
	DWORD m_devind;

    CString m_strBaudRate;
	int		m_iRevPort;
	int		m_iSndPort;
	BYTE  m_byteIP[4];

    static UINT ReceiveThread(void *param);
    static UINT ProgramDownThread(void *param);
	static UINT ProcessActFrameThread(void *param);

	void ProcessActFrame(VCI_CAN_OBJ frameinfo);

	void   SaveFrame(VCI_CAN_OBJ* pFrameinfo,int iSize,CFile* pFile);
	
	void ShowInfo(CString str,int code);
	int m_connect;
	CTestDlg(CWnd* pParent = NULL);	// standard constructor
	int  strtodata(unsigned char *str, unsigned char *data,int len,int flag);
	int  chartoint(unsigned char chr, unsigned char *cint);
	void GetBaudRateCtrReg(int iBaudRate,UINT &uBTR0,UINT &uBTR1);

	void UpdateIDRadio();
	void ConvertVoltageString();
	void SetSendDataEdit();
	void SetSendFrameIDEdit();

	void ReadConfig();
	void WriteConfig();

	void ConnectUSBCAN();
	void ConnectCANET();
	void UpdateUserInputWindow();

	void EnableWindowRadioNode(bool bEnable);

	void ListFileName(CString strPathName);
	void AddActCanFrame(VCI_CAN_OBJ canFrame);

	void SDOMessageAddString(CString strMessage);

	void StopAllNodeRun();
	void ResumeAllNodeRun();

	// Dialog Data
	//{{AFX_DATA(CTestDlg)
	enum { IDD = IDD_TEST_DIALOG };
	CComboBox	m_cmbNodeNo;
	CButton	m_butConnect;
	CButton	m_butProgramDown;
	CListBox	m_listSelectingFile;
	CListBox	m_listSDOOutMessage;
	CProgressCtrl	m_progressProgramDown;
	CComboBox	m_cmbDevType;
	CIPAddressCtrl	m_IPAddress;
	CEdit	m_editFrameSum;
	CButton	m_button_extendwindow;
	CProgressCtrl	m_progressSysRunStatus;
	CComboBox	m_ComboAdChannel;
	CListBox	m_listAdjustMessage;
	CComboBox	m_ComboBaudRate;
	CTestListBox	m_ListInfo;
	CComboBox	m_ComboSendFrmType;
	CComboBox	m_ComboSendFrmFmt;
	CString	m_EditSendData;
	CString	m_EditSendFrmID;
	CString	m_EditCode;
	CString	m_EditMask;
	float	m_fStandardVoltage1;
	float	m_fStandardVoltage2;
	int		m_iTimePre;
	CString	m_strPathName;
	int		m_iNodeNo;
	//}}AFX_DATA
	
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTestDlg)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL
	
	// Implementation
protected:
	HICON m_hIcon;
	CRITICAL_SECTION m_Section;
	// Generated message map functions
	//{{AFX_MSG(CTestDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	virtual void OnCancel();
	virtual void OnOK();
	afx_msg void OnButtonConnect();
	afx_msg void OnButtonSend();
	afx_msg void OnMenuRefresh();
	afx_msg void OnButtonClose();
	afx_msg void OnButtonAutoAdjust();
	afx_msg void OnSelectMessage();
	afx_msg void OnRadioNode0On();
	afx_msg void OnRadioNode1On();
	afx_msg void OnRadioNode2On();
	afx_msg void OnRadioNode3On();
	afx_msg void OnRadioNode4On();
	afx_msg void OnRadioNode5On();
	afx_msg void OnRadioNode6On();
	afx_msg void OnRadioNode7On();
	afx_msg void OnRadioNode0Off();
	afx_msg void OnRadioNode1Off();
	afx_msg void OnRadioNode2Off();
	afx_msg void OnRadioNode3Off();
	afx_msg void OnRadioNode4Off();
	afx_msg void OnRadioNode5Off();
	afx_msg void OnRadioNode6Off();
	afx_msg void OnRadioNode7Off();
	afx_msg void OnCheckAutoSaveCan();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnCheckSourceDataView();
	afx_msg void OnButtonExtendWindow();
	afx_msg void OnButtonCalculate();
	afx_msg void OnCheckTimerSend();
	afx_msg void OnCheckDataType();
	afx_msg void OnSelchangeCmbDevtype();
	afx_msg void OnButProgramdown();
	afx_msg void OnButBrowse();
	afx_msg void OnSelchangeCmbNodeno();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

#endif // !defined(AFX_TESTDLG_H__0B453A60_AE2F_4119_AF51_CC52D47F30DF__INCLUDED_)

⌨️ 快捷键说明

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