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

📄 sms.h

📁 封装的了SMS发短信的类
💻 H
字号:
// SMS.h: interface for the CSMS class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SMS_H__A8154538_7014_4C2E_8D45_F128C4727744__INCLUDED_)
#define AFX_SMS_H__A8154538_7014_4C2E_8D45_F128C4727744__INCLUDED_

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


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

// 应答状态
#define GSM_WAIT		0		// 等待,不确定
#define GSM_OK			1		// OK
#define GSM_ERR			-1		// ERROR



// 短消息参数结构,编码/解码共用
// 其中,字符串以'\0'结尾

typedef struct {
	char TPA[16];			// 目标号码或回复号码(TP-DA或TP-RA)
	char TP_UD[160];		// 原始用户信息(编码前或解码后的TP-UD)
	short index;			// 短消息序号,在读取时用到
} SM_PARAM;


typedef struct {
	int len;
	char data[16384];
} SM_BUFF;



class CSMS  
{
public:

	
	HANDLE m_hComm;		// 串口设备句柄
	
	int m_nSendIn;		// 发送队列的输入指针
	int m_nSendOut;		// 发送队列的输出指针
	int m_nRecvIn;		// 接收队列的输入指针
	int m_nRecvOut;		// 接收队列的输出指针

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

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

	HANDLE m_hKillThreadEvent;		// 通知子线程关闭的事件
	HANDLE m_hThreadKilledEvent;	// 子线程宣告关闭的事件
	
	CWinThread*		m_Thread;		//
public:
	int smsDeleteMessage(int index);
	int smsDecodeTEXT(const char* pSrc, SM_PARAM* pDst);
	int smsParseMessageList(SM_PARAM* pMsg, SM_BUFF* pBuff);
	int smsGetResponse(SM_BUFF* pBuff);
	int smsReadMessageList();
	int smsSendMessage(SM_PARAM* pparam);
	
	BOOL GetRecvMessage(SM_PARAM* pparam);
	void PutRecvMessage(SM_PARAM* pparam,int nCount);
	BOOL GetSendMessage(SM_PARAM* pparam);
	void PutSendMessage(SM_PARAM* pparam);

	BOOL OpenComm(const char* pPort, int nBaudRate=57600, int nParity=NOPARITY, int nByteSize=8, int nStopBits=ONESTOPBIT);
	BOOL RestartMonitoring();
	BOOL StopMonitoring();
	CSMS();
	virtual ~CSMS();
	
	static UINT SMSThread(LPVOID lpParam);	// 短消息收发处理子线程
	
	BOOL StartMonitoring();
	BOOL CloseComm();
	int WriteComm(void* pData, int nLength);
	int ReadComm(void* pData, int nLength);
	
	
	BOOL smsInit(CString strCSCA=_T(""));
protected:
	
};

#endif // !defined(AFX_SMS_H__A8154538_7014_4C2E_8D45_F128C4727744__INCLUDED_)

⌨️ 快捷键说明

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