Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

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_)