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

📄 smstraffic.h

📁 多线程串口接受程序,通过异步接受处理程序能对大数据量传输的串口,比如大型电信交换机计费系统,进行快速稳定的处理.
💻 H
字号:
// SmsTraffic.h: interface for the CSmsTraffic class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SMSTRAFFIC_H__3A4D81DE_C363_42D6_8A47_3BA017BFBF56__INCLUDED_)
#define AFX_SMSTRAFFIC_H__3A4D81DE_C363_42D6_8A47_3BA017BFBF56__INCLUDED_

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

#include "Comm.h"

#define MAX_SM_SEND		128		// 发送队列长度
#define MAX_SM_RECV		128		// 接收队列长度

typedef struct 
{
	char szTime[32];			//消息接受时间	
	char szBuf[1024];			//消息内容
} SM_PARAM;


class CSmsTraffic  
{
public:
	CSmsTraffic();
	virtual ~CSmsTraffic();

	int m_nSendIn;		// 发送队列的输入指针
	int m_nSendOut;		// 发送队列的输出指针

	int m_nRecvIn;		// 接收队列的输入指针
	int m_nRecvOut;		// 接收队列的输出指针

	SM_PARAM m_SmSend[MAX_SM_SEND];		// 发送消息队列
	SM_PARAM m_SmRecv[MAX_SM_SEND];		// 接收消息队列

	CRITICAL_SECTION m_csSend;		// 与发送相关的临界段
	CRITICAL_SECTION m_csRecv;		// 与接收相关的临界段

	HANDLE m_hKillThreadEvent;		// 通知子线程关闭的事件
	HANDLE m_hThreadKilledEvent;	// 子线程宣告关闭的事件

	void PutSendMessage(SM_PARAM* pSmParam);	// 将一条消息放入发送队列
	BOOL GetSendMessage(SM_PARAM* pSmParam);	// 从发送队列中取一条消息
	void PutRecvMessage(SM_PARAM* pSmParam);	// 将一条消息放入接收队列
	BOOL GetRecvMessage(SM_PARAM* pSmParam);	// 从接收队列中取一条消息

	static UINT SmThread(LPVOID lpParam);	// 消息收发处理子线程
};

//////////////////////////////////////////////////////////////////////////
//发送和接受数据全局函数
int gReadMessage(SM_PARAM * pMsg);
int gSendMessage(SM_PARAM *pMsg);

#endif // !defined(AFX_SMSTRAFFIC_H__3A4D81DE_C363_42D6_8A47_3BA017BFBF56__INCLUDED_)

⌨️ 快捷键说明

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