📄 ca2ipro.h
字号:
#if !defined(AFX_CA2IPRO_H__9F80E2D8_7B9A_4A92_AEE7_67E39C3F8C8F__INCLUDED_)
#define AFX_CA2IPRO_H__9F80E2D8_7B9A_4A92_AEE7_67E39C3F8C8F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// CA2IPro.h : header file
//
#include "IComPro.h"
#include "datatype.h"
#include "reg.h"
/////////////////////////////////////////////////////////////////////////////
// CCA2IPro command target
class CCA2IPro : public CCmdTarget
{
DECLARE_DYNCREATE(CCA2IPro)
CCA2IPro(); // protected constructor used by dynamic creation
// Attributes
public:
int m_nLastErrorCode;
int m_nTimeOut;
int m_nSleepTime[64];
int m_nLastLoopNum; //最近一次读取数据的回路号,默认值-1.
int m_nLastRegType; //最近一次读取数据的寄存器,默认值-1.
int m_nLastDataLen; //最近一次读取数据的长度, 默认值-1.
BYTE LoopNum[256]; //存放轮询的回路号的状态1有效
BYTE DKSFlag[256]; //是否读取灯坑水数据标志.
BYTE DKGFlag[256]; //是否读取灯坑盖数据标志.
//BYTE m_nData[10000]; //存放回路的数据
char m_nData[1024]; //存放回路的数据
BYTE m_nSelectLoopNo[8]; //存放选中的回路号
BYTE m_nHaveSensor[2048];//存放子站检测器的数据
BYTE m_nMaxNo[64]; //最大检测器编号
BOOL m_bOn;
HANDLE m_hComm;
// Operations
public:
BYTE m_bData34;
BYTE m_bData33;
BYTE m_bData0;
BYTE GetOnePos(BYTE bVal);
BYTE GetData(char *pBuf, int nNo, int nRegType, int nLen);
void SetLoopNum(BYTE *pData);
BYTE GetByte(BYTE *Val);
BOOL InitLoopNoAndNum();
WORD MyConvert(LPVOID lpDbItem, LPVOID lpVar, LPVOID lRegInfos, int reg_type_num);
BOOL InitialComm(LPVOID pcc);
BOOL Transmission(BYTE *buf, int &nLen, int nReceLen,PPACKET pPac/*, int SleepTime*/);
BOOL GetSendString(PPACKET pPac, BYTE *buf, int &nLen, int &nReceLen);
BOOL ReadPacket(PPACKET pPac);
BYTE CRC_ADD(BYTE *buf, int nLen);
BOOL CheckDigit(PPACKET pPac, BYTE *buf, int nLen);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCA2IPro)
public:
virtual void OnFinalRelease();
//}}AFX_VIRTUAL
// Implementation
protected:
virtual ~CCA2IPro();
// Generated message map functions
//{{AFX_MSG(CCA2IPro)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
DECLARE_OLECREATE(CCA2IPro)
// Generated OLE dispatch map functions
//{{AFX_DISPATCH(CCA2IPro)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_DISPATCH
DECLARE_DISPATCH_MAP()
DECLARE_INTERFACE_MAP()
BEGIN_INTERFACE_PART(ProtocolImp, IProtocolImp)
STDMETHOD_(BOOL,GetRegisters)( char *szDeviceName, LPVOID *ppReg, int *pRegNum );
STDMETHOD_(BOOL,TryConnect)(char *devName,int nAddr,LPVOID lpDevAddr ) ;
STDMETHOD_(WORD,ConvertUserConfigToVar)(LPVOID lpDbItem, LPVOID lpVar);
STDMETHOD_(int, LoadDeviceInfo)(const char *sProd, const char *sDevName, int nType);
STDMETHOD_(BOOL,OpenComDevice)(int nDevType,LPVOID lpInitData);
STDMETHOD_(BOOL,CloseComDevice)();
STDMETHOD_(BOOL,InitialDevice)(char *DevName,int nUnitAddr,LPVOID pDevAddr);
STDMETHOD_(BOOL,AddVarToPacket)(LPVOID lpVar, int nVarAccessType, LPVOID lpPacket);
STDMETHOD_(int, ProcessPacket)(LPVOID lpPacket);
STDMETHOD_(BOOL,StrToDevAddr)( const char * str, LPVOID lpDevAddr );
STDMETHOD_(PCHAR,GetLastError)();
END_INTERFACE_PART(ProtocolImp)
BEGIN_INTERFACE_PART(ProtocolImp2,IProtocolImp2)
STDMETHOD_(int, ProcessPacket2)(LPVOID lpPacket);
STDMETHOD_(BOOL,SetTrans)( LPVOID* lpHcomm );
STDMETHOD_(BOOL,SetInitialString)(char* pDeviceName, LPVOID lpDevAddr,LPVOID InitialString);
STDMETHOD_(BOOL,GetTrans)(LPVOID* lpHcomm );
END_INTERFACE_PART(ProtocolImp2)
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CA2IPRO_H__9F80E2D8_7B9A_4A92_AEE7_67E39C3F8C8F__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -