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

📄 faketolcanview.h

📁 功能主要是串口通信和网络通信方面的
💻 H
字号:
// FakeTolcanView.h : interface of the CFakeTolcanView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_FAKETOLCANVIEW_H__69627C3D_DCE4_4EB0_AB59_222118709FDD__INCLUDED_)
#define AFX_FAKETOLCANVIEW_H__69627C3D_DCE4_4EB0_AB59_222118709FDD__INCLUDED_

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

#include "SerialPort.h"
//#include "GridList.h"
#include "ComboListCtrl.h"
#include "NodeData.h"

/*
#define	WM_RECVDATA		WM_USER+1
struct RECVPARAM
{
	SOCKET sock;
	HWND hwnd;
};
*/
#define MAX_SOCKET 200	// 定义此服务器所能接受的最大客户量
// 定义网络事件通知消息
#define WM_SOCKET WM_USER + 8

class CFakeTolcanView : public CFormView
{
protected: // create from serialization only
	CFakeTolcanView();
	DECLARE_DYNCREATE(CFakeTolcanView)

public:
	//{{AFX_DATA(CFakeTolcanView)
	enum { IDD = IDD_FAKETOLCAN_FORM };
//	CGridList	m_NodeList;
	CComboListCtrl	m_NodeList;
	CString	m_strCmd;
	//}}AFX_DATA

// Attributes
public:
	CFakeTolcanDoc* GetDocument();

// Operations
public:
	int m_nBaud;       //波特率
	int m_nCom;        //串口号
	char m_cParity;    //校验
	int m_nDatabits;   //数据位
	int m_nStopbits;   //停止位
	int m_nBufferSize;
	BOOL m_bConfig;	   //串口是否配置好
	CSerialPort m_SerialPort;
	BOOL m_bPortOpened;
	BOOL m_bClosePort;
//	TNodeCollection m_Nodes;
	int m_iIndex;
	CString m_strRecvData; // 数据接收区接收数据
	int m_NodeNum;
	//	m_pNodeArray m_pNodes;
	//	CNode *pMyNode;
	DWORD m_dwPackId;
	static DWORD m_dwPackNo;
	BYTE m_PackType;
	BYTE m_PackCheck;
	USHORT m_PackInterval; //数据包间隔
	USHORT m_PackHeadLen;
	USHORT m_DataLen;
	BYTE m_NodeType; //判断节点类型

	//绞车, 是不是为深度节点
	int m_Min;
	int m_Max;
	int m_Step;
	int m_FirstValue;

	//4-20 mA 模拟节点
	USHORT m_BaseVal;
	USHORT m_Bound;

	//泵冲节点
	int m_PumpBaseValue;
	int m_PumpBound;
	USHORT m_PumpDot;
//	int m_PumpStep2;

	BOOL m_bNodeChange;
	CString m_strNodeInfo; //存储PC机发过来的节点信息
	int m_iItem;
	USHORT m_NodeNO;
	int m_iNodeType;
	BOOL m_bCollectData;
	int m_nCollectCmd;

	int m_nCollectNum;
	BOOL m_bCollectFirst;
	CStringArray m_SampleNum;
	USHORT m_SampleDot;
	USHORT m_CurrenVal;
	USHORT m_SVal;
	int m_iNodeNum;
	BOOL m_bModifyNode;
	CString m_strLocalIp; //保存本机IP地址
	SOCKET m_socket;
	int m_iPort;
//	static SOCKET m_SockConn; //等待客户连接返回的套接字
//	static CString strData;
	int m_iFlag; //串口采集数据标志
//	int m_iFlag1; //网络采集数据标志
	CString m_strRecvData1;
	BOOL m_bSP;//
	BOOL m_bNW;//

	// 客户连接列表
	SOCKET m_arClient[MAX_SOCKET];	// 套节字数组
	int m_nClient;			// 上述数组的大小

	CStringArray m_SockArray0; //89 00
	CStringArray m_SockArray7; // 89 07
	CStringArray m_SockArray9; //89 09

	TNodeDataCollection m_NodeDatas;
	CStringArray m_NodeNoArray;
//	CArray<CString, CString&> m_NodeNos;
	CStringArray m_NodeTypes;
//	int m_iRow;
/*	CString m_strNodeType;
	CString m_strBase;
	CString m_strBound;
	CString m_strMinValue;
	CString m_strMaxValue;
	CString m_strFirstValue;
	CString m_strStep;*/
	
	BOOL CanSerialize();
	void LoadParamInfo();
	void SaveParamInfo();
	void ReturnNodeId(int flag = 0);
	void ReturnNodeInfo(int flag = 0);
	void SendCollectionData(int flag = 0);
	void UpdateNodeList();
	int ReturnNodeNum();
	void SaveNodes();
	void AddNode();
	void ModifyNodesOrder();
	void ModifyBigInterval();
	void ModifyNode();
	void GetLocalIP();
	BOOL InitSocket();
//	static DWORD WINAPI RecvProc(LPVOID lpParameter);
//	static void RecvData(CString &strData, int len);
	void PumpData(int flag = 0);
	// 创建套节字,并设置为监听状态,准备接受客户的连接
	BOOL CreateAndListen(int nPort);
	// 关闭所有套节字,包括监听套节字和所有accept函数返回的套节字
	void CloseAllSocket();
	// 向客户连接列表中添加一个客户
	BOOL AddClient(SOCKET s);
	// 从客户连接列表中移处一个客户
	void RemoveClient(SOCKET s);

	void SetWinchCurrentData();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFakeTolcanView)
	public:
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	virtual void Serialize(CArchive& ar);
	virtual BOOL DestroyWindow();
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	virtual void OnInitialUpdate(); // called first time after construct
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CFakeTolcanView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CFakeTolcanView)
	afx_msg LONG OnComm(WPARAM ch, LPARAM port);
	afx_msg void OnConfigSerialPort();
	afx_msg void OnPackInfoConfig();
	afx_msg void OnBtnSave();
	afx_msg void OnButton1();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnRclickNodeList(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnAddNode();
	afx_msg void OnDeleteNode();
	afx_msg void OnModifyNode();
	afx_msg void OnUpdateAddNode(CCmdUI* pCmdUI);
	afx_msg void OnUpdateDeleteNode(CCmdUI* pCmdUI);
	afx_msg void OnUpdateModifyNode(CCmdUI* pCmdUI);
	afx_msg void OnBtnAddNode();
	afx_msg void OnBtnDeleteAllNodes();
	afx_msg void OnBtnClerarRecvdata();
	afx_msg void OnDblclkNodeList(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnDestroy();
	afx_msg void OnClose();
	afx_msg void OnNetWorkConfig();
	afx_msg void OnBtnStartService();
	afx_msg void OnClickList1(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnBtnModifyNode();
	afx_msg void OnBtnDeleteNode();
	//}}AFX_MSG
	afx_msg LRESULT OnEndLabelEditVariableCriteria(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT PopulateComboList(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnEndItemEdit(WPARAM wParam, LPARAM lParam);

//	afx_msg void OnRecvData(WPARAM wParam,LPARAM lParam);
	afx_msg long OnSocket(WPARAM wParam, LPARAM lParam);
	DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in FakeTolcanView.cpp
inline CFakeTolcanDoc* CFakeTolcanView::GetDocument()
   { return (CFakeTolcanDoc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

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

#endif // !defined(AFX_FAKETOLCANVIEW_H__69627C3D_DCE4_4EB0_AB59_222118709FDD__INCLUDED_)

⌨️ 快捷键说明

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