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

📄 ca2ipro.h

📁 民航二所单片机驱动开发
💻 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 + -