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

📄 digitaldongle.h

📁 eVCComm3.0.zip eVC3.0写的程序
💻 H
字号:
// DigitalDongle.h: interface for the CDigitalDongle class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DIGITALDONGLE_H__EEBA24BA_37A4_4BC1_AC94_4863AE4D0A63__INCLUDED_)
#define AFX_DIGITALDONGLE_H__EEBA24BA_37A4_4BC1_AC94_4863AE4D0A63__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "SerialPort.h"

#define OPERATE_TIMEOUT 3 //秒
#define MAX_RETRY_COUNT	1
#define STATUS_OPERATE_TIMEOUT 0xff

class CDigitalDongle  
{
public:
	void RedoLastOperator();
	void set_operate_complete_callback(void (*func)(BYTE, BYTE, unsigned long,BYTE,void *), void *context);
	BOOL SendReadCmd(unsigned long addr,int len);
	BOOL SendWriteCmd(unsigned long addr,LPBYTE data,int len);
	CDigitalDongle(int PortNum);
	virtual ~CDigitalDongle();

private:
	void Monitor_Operate();
	static DWORD WINAPI monitor_operate_thread(LPVOID arg);
	CSerialPort * m_pSerialPort;
	static void OnDataFromPort(void * data,DWORD nDataCount,void * context);
	BYTE CheckSum(LPBYTE data,int len);
	void ProcessPacket(LPBYTE data,int len);

	BYTE lastPacketType;//最后操作的类型
	unsigned long lastAddr;//最后超作的地址
	BYTE lastData[128];
	int lastDataLength;//最后操作的数据字节数
	int retryNum;//重试次数
	DWORD lastRetryTime;

	BOOL done;//最后一次操作是否已经完成
	BOOL monitor_operate_thread_terminate;

	/*回调函数指针*/
	void (*operate_done_func) (BYTE OperateType, BYTE Status, unsigned long OperateAddr,BYTE SuccessDataLength,void *context);
	void *operate_done_func_context;

};

#endif // !defined(AFX_DIGITALDONGLE_H__EEBA24BA_37A4_4BC1_AC94_4863AE4D0A63__INCLUDED_)

⌨️ 快捷键说明

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