?? commport.h
字號:
// CommPort.h: interface for the CCommPort class.
//
//////////////////////////////////////////////////////////////////////
#ifndef _CLASS_CCommPort_H
#define _CLASS_CCommPort_H
#include <dos.h>
/*--------------------------------------------------------------------
先入先出隊列模板類CFifoQueue
--------------------------------------------------------------------*/
template <class T,unsigned short int MaxBuf> class CFiFoQueue
{
public:
CFiFoQueue() {mHead=mTail=0;}
void EmptyAll() {mHead=mTail=0;}
void operator +=(T Tdata){Add(Tdata);}
void AddData(T Tdata){Add(Tdata);}
char GetData(T &Tdata)
{
if(mHead==mTail) return 0;
Tdata=mData[mHead++];
if(mHead==MaxBuf) mHead=0;
return 1;
}
private:
void Add(T Tdata)
{
mData[mTail++]=Tdata;
if(mTail==MaxBuf) mTail=0;
if(mHead==mTail)
{ mHead++;
if(mHead==MaxBuf) mHead=0;
}
}
private:
T mData[MaxBuf];
unsigned short int mHead,mTail;
};
/*--------------------------------------------------------------------
端口通訊基類CCommPortBasicClass
--------------------------------------------------------------------*/
class CCommPortBasicClass
{
protected:
void EmptySendRecvBuffer();
virtual void ReceiveNewChar(unsigned char ch);
CCommPortBasicClass();
~CCommPortBasicClass();
void ActiveSendInterrupt();
void OpenCommPort(unsigned short int mPortBasicAddr,unsigned char mInterruptNo,unsigned short int BaudRate,void interrupt (*PortNewIntHandle)(...));
unsigned short int m_PortBasicAddr;//端口基地址
unsigned char m_InterruptNo; //端口中斷號
void interrupt (*m_PortOldIntHandle)(...);//舊的中斷函數
char m_BeSendingMark;
CFiFoQueue<char,(unsigned short int)1024> RecvQueue;//接受數據隊列。沒有幀頭
CFiFoQueue<char,(unsigned short int)256> SendQueue; //發送數據隊列。
public:
virtual int OpenPort(unsigned short tPortBasicAddr, unsigned char tInterruptIRQNo, unsigned short tBaudRate)=0;
void PortIntHandleFunction();
void WriteStringToBuffer(char *str, unsigned short Len=0);
void WriteCharToBuffer(char ch);
void WriteStringToPort(char *str, unsigned short Len=0);
void WriteCharToPort(char ch);
int ReadChar(char &ch);
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -