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

📄 jhhbdoc.h

📁 串口调试助手的源代码
💻 H
字号:
// Written by JHCC

// JHHBDoc.h : interface of the CJHHBDoc class
// NOTE:Server Version !!! 1997.11.26 Update,Don't cover by client Version!!!

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

// DAO RecordSet
#include "DaoStationInfoSet.h"
#include "DaoHBRecSet.h"
#include "DaoHBDateDataSet.h"
#include "DaoAddHBDataSet.h"
#include "DaoShareHBDataSet.h"

// ODBC RecordSet
#include "StationInfoSet.h"
#include "HBRecSet.h"
#include "HBDateDataSet.h"
#include "AddHBDataSet.h"

#include "CtrlInfo.h"

#include "comm.h"
#include "tapix.h"

const int		nTimeSpan = 10;		// 10 minutes
const double	nPHBottom = 0.0;
const double	nPHTop = 14.0;

//------------------- ljh begin
const double	nCODBOT = 0.0;
const double	nCODTOP = 2000.0;
const double	nFLOWBOT = 0.0;
const double	nFLOWTOP = 10000.0;
const double	nNH4NBOT = 0.0;
const double	nNH4NTOP = 1000.0;
//------------------- ljh end

const int	cMaxReadCommBufLen = 4096 + sizeof(WORD);
const int	cMaxGetDataBufLen = 65536;

const int	cMaxReadModemBufLen = 4096 + sizeof(WORD);
const int	cMaxGetModemCmdBufLen = 4096;

class	CDataListView;
class	CJHHBView;
class	CLogView;
class	CRealDlg;

class CJHHBDoc : public CDocument
{
protected: // create from serialization only
	CJHHBDoc();
	DECLARE_DYNCREATE(CJHHBDoc)

// Attributes
public:
	BOOL	m_bUseDao;

	CDaoDatabase *			m_pDB;
	CDaoHBRecSet *			m_pDaoHBRecSet;
	CDaoHBDateDataSet *		m_pDaoHBDateDataSet;
	CDaoStationInfoSet *	m_pDaoStationInfoSet;
	CDaoAddHBDataSet *		m_pDaoAddDataSet;
	CDaoShareHBDataSet *	m_pDaoShareDataSet;

	CHBRecSet *			m_pHBRecSet;
	CHBDateDataSet *	m_pHBDateDataSet;
	CStationInfoSet *	m_pStationInfoSet;
	CAddHBDataSet *		m_pAddDataSet;

	CCtrlInfoArray	m_ctrlInfoArray;
	COleDateTime	m_curSpyTime;

	int				m_nCurStation;
	CTime			m_timeLast;
	CRealDlg	*	m_pdlgReal;

public:
	UINT	m_nWorkTimerID;
	static void CALLBACK	TimerProc(HWND  hwnd,
		UINT  uMsg, UINT  uIDEvent, DWORD  dwTime);

	enum
	{
		DEFAULT_REFRESHTIMEOUT = nTimeSpan,
		DEFAULT_TRANCEDATATIMEOUT = 20,//2001年6月1日改,原20处为120
		DEFAULT_WAITREPLYTIMEOUT = 15,//2001年6月1日改,原15处为25
	};
	int	m_nRefreshTimeout;
	int	m_nWaitReplyTimeout;
	int	m_nTransDataTimeout;

	// add for speed update the samples data
public:
	class	CSpeedQueryUnit
	{
	public:
		int	m_nOrder;
		int	m_nPos;
	};
	CSpeedQueryUnit	* m_pSpeedQueryArray;
	int				m_nSpeedQueryArrayUnit;
	int				m_nCurQuerySetPos;

	static int	CompareTwoQueryUnit(CSpeedQueryUnit*  arg1, CSpeedQueryUnit*  arg2);
	void			GenSpeedArray(void);
	BOOL			LookupSeepdArray(int  nOrder, int&  nPos);
	class	CPrintRecUnit
	{
	public:
		CString		str_NO;
		CString		str_Time;
		CString		str_PH;
	};

	struct Statistic
	{
		CString	m_StationName;
		double	m_nMAXPH;
		double	m_nMINPH;
		double	m_nOverTopRate,m_nOverBottomRate,m_nSuitTargeRate;
		UINT	m_nRecCount;
		UINT	m_nOverTopCount;
		UINT	m_nOverBottomCount;
		UINT	m_nSuitTargeCount;
	} MonthStatistic_Array[10];

public:
	enum
	{
		CM_COMM = 0x8000,
		CM_MODEM = 0x9000	//CM_COMM + CCommInfo::ID_COMM_EVENT_NUMBER,
	};

	CCommInfo			* m_pComm;
	CTAPIConnection		* m_pModem;
	int					m_nModemLine;
	int					m_nReceiveCount;
	int					m_nTotalReceive;
	BYTE				m_pReadCommBuf[cMaxReadCommBufLen];
	BYTE				m_pGetDataBuf[cMaxGetDataBufLen];

	int					m_nReceiveModemCount;
	BYTE				m_pReadModemBuf[cMaxReadModemBufLen];
	BYTE				m_pGetModemCmdBuf[cMaxGetModemCmdBufLen];
	CString				m_strSend;
	char				* m_pstrHead;		//	找到通讯命令的起始点
	BOOL				m_bAutoActivated;	//  自动转播等待接收标志
	BOOL				m_bRelayActivated;	//  定点转播等待接收标志
	BOOL				m_bModemConnected;	//	Modem 连接标志

	enum	ModemWorkstatus
	{
		MODEM_WORKSTATUS_NONE,
		MODEM_WORKSTATUS_WAIT,
		MODEM_WORKSTATUS_HAVENEW,
		MODEM_WORKSTATUS_TRANSDATA,
		MODEM_WORKSTATUS_IDLE
	}					m_ModemWorkStatus;

	long				m_lTotalNoSharedRecords;	//  未共享记录总数
	long				m_lSendRecordPosition;		//  已发送记录号
	long				m_lSharedRecordPosition;	//  已共享记录号

// Operations
public:
	static void	DisplayDaoException(CDaoException*  e);
	BOOL	InitDocument(void);

	void	RefreshData(COleDateTime&  time);
//	BOOL	AddSampleData(int  nStation, CTime&  time, WORD  nPHNumber); //BYTE  nPHNumber); ljh
BOOL	AddSampleData(int  nStation, CTime&  time, WORD  nPHNumber, WORD  nCODNumber, WORD  nFLOWNumber,WORD  nPH4NNumber); // ljh add
	double	CalcPHValue(int  nStation, WORD  nPHNubmer); //BYTE  nPHNubmer); ljh
	//--------------- ljh benin
    double	CalcCODValue(int  nStation, WORD  nCODNubmer);
    double	CalcFLOWValue(int  nStation, WORD  nFLOWNubmer);
    double	CalcNH4NValue(int  nStation, WORD  nNH4NNubmer);
	//--------------- ljh end
	void	ParseData(void);
	void	SendRequestString(int  nStation, CTime&  time);
	void	SendOKString(int  nStation);
	long	GetNoSharedRecordSet(void);
	long	SendToClientRecordSet(void);
	void	MarkSharedRecords(void);
	void	SendToClientOver(void);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CJHHBDoc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
	//}}AFX_VIRTUAL

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

public:
	CDataListView	* GetDataListView(void);
	CJHHBView		* GetJHHBView(void);
	CLogView		* GetLogView(void);

protected:

// Generated message map functions

public:
	//{{AFX_MSG(CJHHBDoc)
	afx_msg void OnDataHistory();
	afx_msg void OnUpdateDataRequestsend(CCmdUI* pCmdUI);
	afx_msg void OnDataRequestsend();
	afx_msg void OnCommSettings();
	afx_msg void OnStationSetup();
	afx_msg void OnDataPrintD();
	afx_msg void OnDataPrintM();
	afx_msg void OnDataRelayReal();
	afx_msg void OnUpdateDataRelayReal(CCmdUI* pCmdUI);
	afx_msg void OnDataPrintYear();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

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

⌨️ 快捷键说明

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