📄 interfacetoboard.h
字号:
// InterfaceToBoard.h: interface for the CInterfaceToBoard class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_INTERFACETOBOARD_H__161E7783_1DC3_11D3_A15C_000021E14ED5__INCLUDED_)
#define AFX_INTERFACETOBOARD_H__161E7783_1DC3_11D3_A15C_000021E14ED5__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afxmt.h>
#include <conio.h>
#define INTERRUPT_NUMBER 10
#define READ_PORT 0x3b01
#define WRITE_PORT 0x3b01
#define CONTROL_PORT 0x3b00
#define STATE_PORT 0x3b00
#define RATE_PORT 0x3b02
#define RATE_RESET 0x1
#define RATE_16K 0x0
#define RATE_32K 0x2
#define RATE_64K 0x4
#define DEFAULT_RATE RATE_32K
#define READ_MASK 0x4
#define WRITE_MASK 0x2
#define START_COMMAND 0x1
#define RESET_COMMAND 0x0
#define READ_BLOCK_LENGTH 1024
#define WRITE_BLOCK_LENGTH 1024
#define WATCH_THREAD_POLL_INTERVAL 5 //ms
class CInterfaceToBoard;
class CInterfaceToBoard
{
friend UINT ReadThreadProc(LPVOID pParam);
friend UINT WriteThreadProc(LPVOID pParam);
friend UINT WatchThreadProc(LPVOID pParam);
private:
BOOL m_bBegin;
CWinThread * m_pWatchThread;
CWinThread * m_pWriteThread;
CWinThread * m_pReadThread;
CEvent m_ReadEvent;
CEvent m_WriteEvent;
CEvent m_RequestWatchQuitEvent;
CEvent m_WatchQuitEvent;
CEvent m_RequestReadQuitEvent;
CEvent m_ReadQuitEvent;
CEvent m_RequestWriteQuitEvent;
CEvent m_WriteQuitEvent;
void ResetBoard()
{
_outp(CONTROL_PORT,RESET_COMMAND);
_outp(RATE_PORT,RATE_RESET);
Sleep(500);
}
void StartBoard(DWORD dwRate)
{
_outp(CONTROL_PORT,START_COMMAND);
_outp(RATE_PORT,dwRate);
Sleep(500);
}
void BeginBoard(DWORD dwRate);
BOOL BeginThread();
void EndThread();
void EndBoard();
void ReadThreadFunc();
void WriteThreadFunc();
void WatchThreadFunc();
void ReadBlock();
void WriteBlock();
protected:
virtual int Input(BYTE * pbyBuffer,int nBufferLength);
virtual void Output(BYTE * pbyBlock,int nBlockLength);
public:
CInterfaceToBoard();
virtual ~CInterfaceToBoard();
BOOL Begin(DWORD dwRate=DEFAULT_RATE);
void End();
};
#endif // !defined(AFX_INTERFACETOBOARD_H__161E7783_1DC3_11D3_A15C_000021E14ED5__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -