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

📄 communicationctrl.h

📁 这个是无线网卡WirelessLAN 测试程序NDIS
💻 H
字号:
// CommunicationCtrl.h: interface for the CCommunicationCtrl class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COMMUNICATIONCTRL_H__6ECCC929_FDDA_42DB_ADD5_3C702833C5BE__INCLUDED_)
#define AFX_COMMUNICATIONCTRL_H__6ECCC929_FDDA_42DB_ADD5_3C702833C5BE__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define CMD_HAND			0x55

#define CMD_CLASS_SEND		0x01
#define CMD_CLASS_REPLY		0x02
#define CMD_CLASS_BINDWITH	0x03
#define CMD_CLASS_TEST		0x04

typedef struct __CMD_HANDLE{
	CHAR	cHANDLE;			//CMD_HANDLE
	CHAR	cClass;				//CMD_CLASS_SEND
								//CMD_CLASS_REPLY
								//CMD_CLASS_BINDWITH
}CMD_HANDLE, *PCMD_HANDLE;

#define CMD_SNED_TX			0x1
#define CMD_SNED_RX			0x2

#define CMD_SNED_CHANNEL1	0x1
#define CMD_SNED_CHANNEL2	0x2
#define CMD_SNED_CHANNEL3	0x3
#define CMD_SNED_CHANNEL4	0x4
#define CMD_SNED_CHANNEL5	0x5
#define CMD_SNED_CHANNEL6	0x6
#define CMD_SNED_CHANNEL7	0x7
#define CMD_SNED_CHANNEL8	0x8
#define CMD_SNED_CHANNEL9	0x9
#define CMD_SNED_CHANNEL10	0xA
#define CMD_SNED_CHANNEL11	0xB
#define CMD_SNED_CHANNEL12	0xC
#define CMD_SNED_CHANNEL13	0xD
#define CMD_SNED_CHANNEL14	0xE

#define CMD_SNED_TXPOWER_1	0x1
#define CMD_SNED_TXPOWER_2	0x2
#define CMD_SNED_TXPOWER_3	0x3
#define CMD_SNED_TXPOWER_4	0x4
#define CMD_SNED_TXPOWER_5	0x5
#define CMD_SNED_TXPOWER_6	0x6
#define CMD_SNED_TXPOWER_7	0x7
#define CMD_SNED_TXPOWER_8	0x8
#define CMD_SNED_TXPOWER_9	0x9
#define CMD_SNED_TXPOWER_A	0xA
#define CMD_SNED_TXPOWER_B	0xB
#define CMD_SNED_TXPOWER_C	0xC
#define CMD_SNED_TXPOWER_D	0xD
#define CMD_SNED_TXPOWER_E	0xE
#define CMD_SNED_TXPOWER_F	0xF

#define CMD_SNED_ANTENNA_A	0x1
#define CMD_SNED_ANTENNA_B	0x2

typedef struct __SNED_COMMAND{
	CMD_HANDLE	mHand;
	CHAR	cCmd;				//1-TX; 2-RX
	CHAR	cChannel;			//1-14
	CHAR	cTXPower;			//1-F
	CHAR	cAntenna;			//1-2
	CHAR	cwInterval[5];		//DWORD >=1
	CHAR	cLength[5];			//DWORD 46-1500
	CHAR	cTXAmount[5];		//DWORD Default=3000
}SNED_COMMAND, *PSNED_COMMAND;

#define CMD_REPLY_STATE		0x2
#define CMD_REPLY_SUCCESS	0x1
#define CMD_REPLY_FAIL		0x0

#define CMD_REPLY_VALUE_NULL				0x00
#define CMD_REPLY_VALUE_CMDFAIL_RESEND		0x01
#define CMD_REPLY_VALUE_CMDFAIL_MORETIMES	0x02
#define CMD_REPLY_VALUE_TXFINISH			0x03
#define CMD_REPLY_VALUE_RXFINISH			0x04
#define CMD_REPLY_VALUE_TIMEOUT				0x05
#define CMD_REPLY_VALUE_FAIL_PER			0x06

typedef struct __REPLY_COMMAND{
	CMD_HANDLE	mHand;
	CHAR	bIsSuccess;			//1-Success(Ready) ;0-Fail
	CHAR	cValue;				//0-Null; for bind with command
								//1-Command fail; resend
								//2-Command fail more then 10 times; don't resend
								//3-TX finish
								//4-RX finish
								//5-Time out; Golden sample does not to do anything
}REPLY_COMMAND, *pREPLY_COMMAND;

#define CMD_BINDWITH_QUEST_CONNECT	0x01
#define CMD_BINDWITH_QUEST_OFFLINE	0x02

#define CMD_BINDWITH_QUEST_VALUE	0x55

typedef struct __BINDWITH_COMMAND{
	CMD_HANDLE	mHand;
	CHAR	cRequest;			//1-Connect
								//2-Off line
	CHAR	cTestValues[10];	//Always 0x55*10 when request is 1 or 2.
}BINDWITH_COMMAND, *PBINDWITH_COMMAND;

#define COM_PARA		"19200,n,8,1"
#define TIMEOUT			10000 //10 sec
#define TIMES			10

class CCommunicationCtrl  
{
public:
	void ClearBindwithCmd();
	void ClearReplyCmd();
	void ClearSendCmd();

	bool CheckBindwithCmd(char cQue);
	bool GetBindwithCmd(char* cQue);
	void SetBindwithCmd(char cQue);
	BINDWITH_COMMAND mBindwithCmd;

	bool CheckReplyCmd(char cResult, char cValue);
	bool GetReplyCmd(char* cResult, char* cValue);
	void SetReplyCmd(char cResult, char cValue);
	REPLY_COMMAND mReplyCmd;

	bool CheckSendCmd(char cCmd, int dCh, int dPower, int dAnt, DWORD dwInterval, DWORD dwLength, DWORD dwTXAmount);
	bool GetSendCmd(char* cCmd, int* dCh, int* dPower, int* dAnt, DWORD* dwInterval, DWORD* dwLength, DWORD* dwTXAmount);
	void SetSendCmd(char cCmd, int dCh, int dPower, int dAnt, DWORD dwInterval, DWORD dwLength, DWORD dwTXAmount);
	SNED_COMMAND mSendCmd;
	
	bool CheckHandle(CMD_HANDLE mhCmd);
	bool GetHandle(CMD_HANDLE* mhCmd);
	bool SetHandle(char	cClass);
	CMD_HANDLE mCmdHandle;

	void ClearReceiverBuff();
	void ClearSendBuff();
	char InBuff[25];
	char OutBuff[25];

	void SetConnectPort(int dPort);
	void SetTimeout(DWORD dwTime);
	DWORD dTimeout;
	int	dTimes;
	INT ConnectPort;

	CCommunicationCtrl();
	virtual ~CCommunicationCtrl();

};

#endif // !defined(AFX_COMMUNICATIONCTRL_H__6ECCC929_FDDA_42DB_ADD5_3C702833C5BE__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -