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

📄 serialtestdlg.h

📁 MDF监控源码2
💻 H
字号:
// SerialTestDlg.h : 头文件
//


#pragma once
#include "serialport.h"
#include "socketcomm.h"
/*
#include <afxcoll.h>
#include <afxsock.h>
#include <afxwin.h>
#include <afxcmn.h>
#include <afxext.h>
#include <afxtempl.h>
#include "afxwin.h"
*/
extern CMDFApp theApp;


//##ModelId=4652869D0292
typedef struct {
	double iStartCarrent;
	double iEndCarrent;
	double iStartSampe;
	double iEndSampe;
	int iRate;
	double dPer;

} CSample ;

//##ModelId=4652869D02AF
typedef struct {
	double maxCarrent;
	double srCarrent;
	double srRate;
	double srVoltage;
	double iCarrent;
	double iRate;
	double iVoltage;
	int iLevel;
	CTime tmStartTime;
	CTime tmEndTime;
	double dwSeconds;
	double dwVolSeconds;
	int		iOne;
	double dBaseTime;
	

} CCircleStatus;


// CSerialTestDlg 对话框
class CSerialTestDlg : public CDialog
{
// 构造
public:
	CSerialTestDlg(CWnd* pParent = NULL);	// 标准构造函数

// 对话框数据
	enum { IDD = IDD_SERIALTEST_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持


// 实现
protected:
	BOOL blStop;
	HICON m_hIcon;
	CFile fileLog;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	CSerialPort m_Port;
	CSocketComm* sockServer;
	afx_msg void OnBnClickedBtnopen();
	afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);



protected:
	//{{AFX_MSG_MAP(CSerialTestDlg)
	afx_msg LRESULT onCOMM_RXCHAR(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT onSockReadString(WPARAM wParam, LPARAM lParam);
	//}}AFX_MSG_MAP
	CByteArray m_btArray;
	//int iBuf;
	//char lbBuf[6];
	int arIni[6];			//初始电流
	int iCount;
	int arrCarrent[4];

public:
	afx_msg void OnBnClickedBtnclose();
	afx_msg void OnBnClickedBtnsend();
	afx_msg void OnBnClickedBtnsock();

	afx_msg void OnBnClickedBtntest();
	CSocket m_socket;
	BOOL blTimerOpen;
	// Socket接收消息
	int Writelog(CString strSource);	
	afx_msg void OnBnClickedOk();
	afx_msg void OnClose();
	afx_msg void OnDestroy();
	afx_msg void OnTimer(UINT nIDEvent);

	CString m_IP;			//当前要发送的IP地址
	int		m_PortNum;			//端口
	
	afx_msg void OnBnClickedChkshow();
	afx_msg void OnBnClickedCancel();
	afx_msg void OnLbnSelchangeLstinfo();
	afx_msg void OnLbnDblclkLstinfo();
	CListBox m_listInfo;
	afx_msg void OnEnChangeEdtportserver();
	afx_msg void OnBnClickedBtnclear();
	//afx_msg void OnBnClickedCheck1();
	// 电流校验对照表
	CListCtrl m_listCarrent;
	int WriteData(void);
	afx_msg void OnBnClickedChkauto();
	afx_msg void OnEnChangeEdtrate();
	CString m_rate;
	CButton m_chkAutoSend;
	// 询问电流电压数据 
	int AskData();

	_ConnectionPtr m_ConPtr ;

	BOOL ExecuteSQL(CString strSQL);
	BOOL GetFieldValue(const CString strField, _RecordsetPtr& pRsPtr, int & iValue);
	BOOL GetFieldValue(const CString strField, _RecordsetPtr& pRsPtr, double & iValue);
	BOOL GetFieldValue(const CString strField, _RecordsetPtr& pRsPtr, CString & iValue);
	int ReadDB(CString strSQL , _RecordsetPtr& pRsPtr,CString strTip);

	BOOL IniDB(void);
	int LoadItem(void);
	int IniControl(void);
	CTabCtrl m_tabAlarm;
	CEdit m_SendInfo;
	afx_msg void OnTcnSelchangeTabalarm(NMHDR *pNMHDR, LRESULT *pResult);
	CListCtrl m_listAlarm;
	// 装载告警记录
	int LoadAlarmItem(void);
	CComboBox m_listCom;
	int IniSampleTable(void);
	CArray< CSample ,CSample >  m_arraySample ;
	int DataAnalyse(char * lpBuf, int iLen);
	CString ToHexString(char * cBuf, int iLen);
	
	static UINT Asking(LPVOID lpWnd);	
	CWinThread *m_pThread;
	

	BOOL blOpen;
	BOOL blMonitor;
private:
	// 当前模式
	int m_curModel;
	CCircleStatus *m_CirStatus;
	int m_inCount,m_outCount;
	int iInterval ;
	BOOL bAsking ;
	CImageList m_imgList;
	CImageList m_imgList32;

	CTime tmAlarm;
	BOOL blOneLevel;

public:
	afx_msg void OnBnClickedChkconfig();
	// 当前标定电流
	CEdit m_ConfigNum;
	CButton m_Config;
	// 存储标定记录值
	BOOL WriteConfig(int iCarrent, int iSample, int iRate);
	// 分析计算级别及时间
	int Analyse(CCircleStatus * rscStatus);
	int WriteAlarm(CCircleStatus * m_curStatus);
	afx_msg void OnNMDblclkListtable(NMHDR *pNMHDR, LRESULT *pResult);
	afx_msg void OnBnClickedBtnset();
	afx_msg void OnNMRclickListtable(NMHDR *pNMHDR, LRESULT *pResult);
	afx_msg void OnNMDblclkListalarm(NMHDR *pNMHDR, LRESULT *pResult);
	CButton m_hex;
	int GetRange(double iValue);
	CButton m_source;
	CString GetAlarmName(int iLevel);
	afx_msg void OnEnChangeEdtport();
	afx_msg void OnEnChangeEdtip();
	// 滤除杂波
	char FilterNum(char cSample);
	int SetIniSample(int iValue);
	// 获得曲线特征
	int GetFlag(void);
	// 取得警的最低间
	double GetBaseAlarm(double iValue);
};



⌨️ 快捷键说明

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