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

📄 datacomm.h

📁 这是G.723和G.729的音频编解码的源代码
💻 H
字号:
// DataComm.h: interface for the CDataComm class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DATACOMM_H__2D1CCAE6_61A2_11D3_8ADD_000080014FC8__INCLUDED_)
#define AFX_DATACOMM_H__2D1CCAE6_61A2_11D3_8ADD_000080014FC8__INCLUDED_

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

#define USECOMM      // yes, we need the COMM API

#define MAXBLOCK        256
#define READ_BUFFER_SIZE	1024

#define ASCII_XON       0x11
#define ASCII_XOFF      0x13

class CDataComm;
DWORD FAR PASCAL DataCommWatchProc(CDataComm* pCommObject);
typedef int (DataServiceCallBackFunc)(BYTE* pbyContent,int nLength,DWORD dwUserData);
typedef DataServiceCallBackFunc * pDataServiceCallBackFunc;

class CDataComm  
{
	friend DWORD FAR PASCAL DataCommWatchProc(CDataComm* pCommObject);
	//friend DWORD FAR PASCAL DataWriteThreadProc(CDataComm* pCommObject);
	//friend DWORD FAR PASCAL DataReadThreadProc(CDataComm* pCommObject);

protected:
	HANDLE m_hComm;
	OVERLAPPED m_WriteOS;
	OVERLAPPED m_ReadOS;
	int m_nPort;
	BOOL m_bConnected;
	BOOL m_bDisplayError;
	int m_nBaudRate;
	int m_nInputBufferSize;
	int m_nOutputBufferSize;
	DWORD m_dwThreadID;
	HANDLE m_hThread;
	pDataServiceCallBackFunc m_pCallBackFunc;
	LPVOID m_lpUserInstance;
	
	HANDLE m_hWriteThread;
	DWORD m_dwWriteThreadID;

	HANDLE m_hReadThread;
	DWORD m_dwReadThreadID;
	
	HANDLE m_hQuitEvent;
	HANDLE m_hWriteEvent;
	HANDLE m_hCTSEvent;
	HANDLE m_hReadEvent;

	UINT m_uMiniBlockSize;
	UINT m_uBlockSize;
	//CMultiplex * m_pMultiplex;
	//CDemultiplex * m_pDemultiplex;
	DWORD m_dwUserData;
	CByteBuffer m_InputBuffer;

public:
	void WriteToSerial(BYTE* pbyTransferBlock,UINT nStreamLength);
	CDataComm(DWORD dwUserData,
		  pDataServiceCallBackFunc pCallBackFunc=NULL,
		  int nBaudRate=2400,
		  int nInputBufferSize=4096,
		  int nOutputBufferSize=4096,
		  BOOL bDisplayError=FALSE);
	virtual ~CDataComm(){CloseConnection();}

	BOOL WriteCommBlock(BYTE* lpByte , DWORD dwBytesToWrite);
	BOOL OpenComm(int nPortNumber=2,LPVOID lpUserInstance=NULL);
	BOOL SetRate(int nBaudRate);
	BOOL CloseConnection();

private:
	BOOL CreateTTYInfo();
	int ReadCommBlock(BYTE* lpszBlock, int nMaxLength );
	BOOL OpenConnection();
	BOOL SetupConnection();

};

#endif // !defined(AFX_DATACOMM_H__2D1CCAE6_61A2_11D3_8ADD_000080014FC8__INCLUDED_)

⌨️ 快捷键说明

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