// Device.h: interface for the CDevice class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_DEVICE_H__48E31879_2EDD_4069_B001_126D9CECFFBB__INCLUDED_) #define AFX_DEVICE_H__48E31879_2EDD_4069_B001_126D9CECFFBB__INCLUDED_ #include "SComPort.h" #include "ProgressDlg.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CSComPort; class COpDevPamModifyDlg; enum EN_CHECK_PASSWORD_RESULT { enPasswordError = 0, enPasswordSucc, enExecCmdError }; enum EN_CHECK_OTHER_DATA { enNotExistOtherData = 0, enExistOtherData, enNotExistCmd, enGetCmdResFailed }; class CDevice { public: //由于在win10的消息处理机制很接近真实的时间,所以将循环次数由原来的100改成500,每次循环休眠5毫秒, //这样总共的超时时间应该是在半分钟左右 BOOL ExecuteOrder(CString strOrder, CString strSign, CString *pStrResult, int nRepeatCnt = 3, int nPollCnt = 500); BOOL ExecuteSignleOrder(CString f_szOrder, CString f_szSign , CString *f_szResult, int nCmdPollCnt = 100); BOOL ModifyTimeWindow(); BOOL LockDevice(); CDevice(DWORD dwID, _ConnectionPtr& pConnection); virtual ~CDevice(); BOOL Reset(); //重置设备 BOOL DelSynInfo(); //删除同步信息 BOOL DelGRInfo(); //删除接地电阻信息 BOOL GetSynInfo(); //去同步信息 BOOL GetDevInfo(); //取设备信息 BOOL GetGRInfo(); //去接地电阻信息 int GetPoleCount(); //取电极总数 BOOL Register(); //注册 BOOL Unregister(); //取消注册 BOOL SendFile(const CString &szHostFilePath, const CString &szLocFilePath, const CString& szLocFileName); //发送文件(szHostFilePath---in:主机文件路径,szLocFilePath---in:本地文件路径,szLocFileName---in:本地文件名称) BOOL ReceiveFile(const CString &szLocFilePath, const CString& szHostFileName,int nRetryCnt = 3); //接收文件(szLocFilePath---in:本地文件路径,szHostFileName---in:主机文件名) bool ShowFLDetailInfo(CListCtrl& devDetailList); //显示离线详细信息(devDetailList---in:设备详情列表) bool ShowOLDetailInfo(CListCtrl& devDetailList); //显示在线详细信息(devDetailList---in:设备详情列表) bool ShowGRInfo(CListCtrl& devGRList); //显示接地电阻信息(devGRList---in:接地电阻列表) bool ShowACInfo(CListCtrl& devDetailList); //显示视极化率信息(devDetailList---in:视极化率列表) BOOL ModifyParameter(); //修改参数 BOOL ShowCableHeadInfoDlg(); //显示电缆头信息 BOOL IsTheNumofPoleChanged(); //电极是否已经发生改变 BOOL TestGRForPerPole(int iSN, CStringArray& strResArray); //为每一个电极测试接地电阻 BOOL TestGRForAllPole(); //为所有电极测试接地电阻 void SetState(UINT uState); //设置状态(uState---in:状态参数) void SetID(DWORD dwID); //设置ID(dwID---in:设备ID) void PrintLog(CString& strLog); //打印日志信息函数 int IsExistOtherUserData(); //查询下微机是否拥有除当前主机外其它用户的数据,有返回true,否则false int CheckGD10Password(CString strGD10Password); //在GD10上校验密码 DWORD m_dwID; UINT m_uState; UINT m_uType; BYTE m_ucDevType;//0 代表本地,1:代表远端的GD10, 2代表处于远端的PLC CSComPort m_sComPort; CString m_szDevSN; CString m_szDevName; CString m_szModelNO; CString m_szMDate; CString m_szHWV; CString m_szSWV; CString m_szMBatch; CString m_szMacAddress; _ConnectionPtr m_pConnection; FILE *m_pLogFile; private: BOOL GetTdSynInfo(); //取数据同步信息 BOOL GetSptSynInfo(); //取脚本同步信息 BOOL GenerateUserFile(CString& szFilePath, CString& szFileName); //生成用户文件(szFilePath---in:文件路径,szFileName---in:文件名称) bool InitialCableHeadDlg(CListCtrl& cableHeadList); //初始化电缆头对话框(cableHeadList---in:电缆头列表) BOOL InitialOpDevPamModifyDlg(COpDevPamModifyDlg* const pOpDevPamModifyDlg); //初始化修改设备参数对话框(pOpDevPamModifyDlg---in:设备参数对话框) //进行传送的终止操作 BOOL EndTransfer(); //获取子任务dat文件最大点数 UINT32 GetXmlMaxTestPoint(int iSubIndex,CString strPrCN, CString strTzCN,CString strXmlFile); }; #endif // !defined(AFX_DEVICE_H__48E31879_2EDD_4069_B001_126D9CECFFBB__INCLUDED_)