128 lines
4.4 KiB
C++
128 lines
4.4 KiB
C++
// 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_)
|