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

📄 gsmcomm.h

📁 MDF监控源码2
💻 H
字号:
// GsmComm.h: interface for the CGsmComm class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GSMCOMM_H__9F1C755D_F179_45BD_BDF1_7B8BF256FC0A__INCLUDED_)
#define AFX_GSMCOMM_H__9F1C755D_F179_45BD_BDF1_7B8BF256FC0A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <Afxtempl.h>

//#include "media.h"
#include "scom.h"


// 用户信息编码方式
#define GSM_7BIT		0
#define GSM_8BIT		4
#define GSM_UCS2		8

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

// 短消息参数结构,编码/解码共用
// 其中,字符串以'\0'结尾
//##ModelId=465286A30011
typedef struct {
	char SCA[16];			// 短消息服务中心号码(SMSC地址)
	char TPA[16];			// 目标号码或回复号码(TP-DA或TP-RA)
	char TP_PID;			// 用户信息协议标识(TP-PID)
	char TP_DCS;			// 用户信息编码方式(TP-DCS)
	char TP_SCTS[16];		// 服务时间戳字符串(TP_SCTS), 接收时用到
	char TP_UD[200];		// 原始用户信息(编码前或解码后的TP-UD)
	short index;			// 短消息序号,在读取时用到
} SM_PARAM;


//##ModelId=465286A30020
typedef struct{
	UINT unID ;			//短信内容号
	CString strName ;	//接收电话语音的人的姓名
	CString	strPhone ;	//电话号码
	CString strEQName ;	//设备名称
	CString strEQAddr ;	//设备地址
	int nFault ;		//拨打失败次数
	int nEQPort ;		//设备端口
	HWND hWnd ;			//通讯窗口
	//UINT unState ;//使用状态 0 - 未使用, 1 - 已使用 ;
}sVoice ;

//##ModelId=465286A3002F
typedef struct{
	UINT unID ;			//短信内容号
	int nFault ;		//发送失败次数
	CString strName ;	//发送的接收人姓名
	CString strMsg ;	//发送的短信PDU格式
	CString strSend ;	//发送的短信内容
	CString strPhone ;	//接收短信的手机号码
	LPVOID	pSock  ;	//用于Web短信响应返回
	UINT unState ;		//使用状态 0 - 未使用, 1 - 已使用 ;
}sSIM ;

//##ModelId=465286A3007D
class __declspec(dllimport) CGsmComm :public CSerialComm
{
public:
	
	//##ModelId=465286A3008C
	BOOL GetGsmRun();
	
	//##ModelId=465286A3008D
	int CloseGsm();
	
	//##ModelId=465286A3008E
	CString m_strMsgError;
	
	//##ModelId=465286A3009C
	int m_nFMsgTime;				//发送短信次数 
	
	//##ModelId=465286A3009D
	int m_nFCallTime;				//拨打电话次数
	
	//##ModelId=465286A300AB
	int GetFMsgTime();
	//##ModelId=465286A300AC
	int StartVoiceThe();
	//##ModelId=465286A300AD
	BOOL m_bVoiceIsOpen;			//语音启用标志
	//##ModelId=465286A300BB
	BOOL m_bMsgIsOpen ;				//短信启用标志
	//##ModelId=465286A300BC
	BOOL m_bVoiceRun ;				//语音运行标志
	//##ModelId=465286A300CB
	BOOL m_bEnd ;					//通话结束标志
	//##ModelId=465286A300CC
	HANDLE hGsm ;
	//##ModelId=465286A300CD
	HANDLE hVoice ;
	//##ModelId=465286A300DA
	HANDLE hMsg ;
	//##ModelId=465286A300DB
	int HangUp();
	//##ModelId=465286A300EA
	int Dail(CString strNumber);
	//##ModelId=465286A300EC
	virtual void DataProcess(UCHAR *buf, DWORD len);
	//##ModelId=465286A300FB
	int GsmSendMessage(SM_PARAM* pSrc,CString strName,CString strPhone,CString strSend,LPVOID pSock,int nType);
	//##ModelId=465286A3010A
	int GsmAddMsg(CString strSend,CString strNumber,CString strName,LPVOID pSock,int nType) ;
	//##ModelId=465286A3011B
	int m_nCount;
	//##ModelId=465286A30128
	int m_nMsgMax;
	//##ModelId=465286A30129
	int ReadMsg(int nNo,CString &strMsg);
	//##ModelId=465286A3012C
	BOOL AT(CString strCmd);
	//##ModelId=465286A30139
	CString m_strMsgCenter;
	//##ModelId=465286A3013A
	BOOL InitGSM(UINT unPort);

	

	//##ModelId=465286A3013C
	CGsmComm();



	BOOL m_bGsm,m_bThread;
	//##ModelId=465286A30148
	int m_ulTime;


	//短信相关函数
	//##ModelId=465286A30149
	int AddSim(sSIM f_Sim);
	//##ModelId=465286A30157
	int InsertAfterMsg(CString strMsg,CString strName,CString strSend,LPVOID pSock);
	//##ModelId=465286A30168
	int GetMsg(sSIM &f_Sim) ;
	//##ModelId=465286A3016A
	int GetCount() ;
	//##ModelId=465286A30177
	int GetMax() ;
	//##ModelId=465286A30178
	int DelMsg() ;
	//##ModelId=465286A30179
	int AddMsg(CString strMsg,CString strName,CString strPhone,CString strSend,LPVOID pSock) ;
	
	//语音相关函数
	//##ModelId=465286A30188
	int AddSVoice(sVoice f_Voice);
	//##ModelId=465286A3018A
	int GetVoiceCount();
	//##ModelId=465286A30196
	int GetVoice(sVoice& f_Voice);
	//##ModelId=465286A30198
	int DelVoice();
	//##ModelId=465286A301A5
	int AddVoice(CString strEQName, CString strAddr,int nPort,HWND hWnd,CString strName,CString strPhone);

	//CMedia			*m_pMedia ;
	//##ModelId=465286A301B7
	CSerialComm		*m_pSerial; 
	//##ModelId=465286A301BB
	virtual ~CGsmComm();

	//##ModelId=465286A303B9
	enum  enumState{
		//##ModelId=465286A303BB
		AT_OK=0,					// GSM初始化成功
		//##ModelId=465286A303C8
		MSG_RUN,					// 发送短信中
		//##ModelId=465286A303C9
		MSG_RESET,					// 重置短信中心
		//##ModelId=465286A303D8
		CALL_DAIL,					// 拨打语音电话
		//##ModelId=465286A303D9
		CALL_CONNECT,				// 语音电话接通
		//##ModelId=465286A40000
		CALL_HANGUP,				// 挂断语音电话
		//##ModelId=465286A40001
		CALL_WAIT,
	};						// 处理过程的状态
	
	//##ModelId=465286A301C5
	int  nState; 

protected:
	//##ModelId=465286A301C6
	static UINT MsgThd(LPVOID pPara);
	//##ModelId=465286A301D4
	static UINT VoiceThd(LPVOID pPara);
	//##ModelId=465286A301E4
	BOOL m_bGsmRun ;
	//##ModelId=465286A301E6
	CWinThread *m_pMsgThread ;		//e负责短信发送线程
	//##ModelId=465286A301F5
	CWinThread *m_pVoiceThread ;	//负责电话语音线程

	//短信相关变量
	//##ModelId=465286A301FA
	CList< sSIM, sSIM& > m_MsgList ; //短信列表
	//##ModelId=465286A30203
	int m_nMax;						//最大短信熟练
	//##ModelId=465286A30213
	HANDLE hEvent;					//等候事件

	//语音相关变量
	//##ModelId=465286A30214
	int m_nMaxVoice;
	//##ModelId=465286A30222
	int m_nCountVoice;
	//##ModelId=465286A30233
	CList< sVoice, sVoice& > m_VoiceList ; //短信列表
	//##ModelId=465286A30242
	HANDLE hEventVoice;
	//CWinThread *m_pReadThread ;				//负责即时读串口线程
	//##ModelId=465286A30252
	CWnd *m_PWnd;


private:
	//##ModelId=465286A30256
	int GsmBytes2String(const unsigned char* pSrc, char* pDst, int nSrcLength);
	//##ModelId=465286A30271
	int GsmString2Bytes(const char* pSrc, unsigned char* pDst, int nSrcLength);
	//##ModelId=465286A30280
	int GsmEncode7bit(const char* pSrc, unsigned char* pDst, int nSrcLength);
	//##ModelId=465286A3029F
	int GsmDecode7bit(const unsigned char* pSrc, char* pDst, int nSrcLength);
	//##ModelId=465286A302B0
	int GsmEncode8bit(const char* pSrc, unsigned char* pDst, int nSrcLength);
	//##ModelId=465286A302C0
	int GsmDecode8bit(const unsigned char* pSrc, char* pDst, int nSrcLength);
	//##ModelId=465286A302DE
	int GsmEncodeUcs2(const char* pSrc, unsigned char* pDst, int nSrcLength);
	//##ModelId=465286A302EE
	int GsmDecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength);
	//##ModelId=465286A302FE
	int GsmInvertNumbers(const char* pSrc, char* pDst, int nSrcLength);
	//##ModelId=465286A3031C
	int GsmSerializeNumbers(const char* pSrc, char* pDst, int nSrcLength);
	//##ModelId=465286A3032D
	int GsmEncodePdu(const SM_PARAM* pSrc, char* pDst);
	//##ModelId=465286A3033C
	int GsmDecodePdu(const char* pSrc, SM_PARAM* pDst);
	//##ModelId=44B6F8860196


public:
	//##ModelId=465286A3034B
	BOOL SetServiceNum(CString strCenter);
	//##ModelId=465286A3034D
	BOOL SendMsgTo(CString phone, CString msg);
	//##ModelId=465286A3035D
	void SetParent(CWnd * pWnd);
	//##ModelId=465286A3036B
	virtual void onRing(char * m_phone);
	// 短消息到达
	//##ModelId=465286A3037A
	virtual void onMessageArrived(int iPos);
	//##ModelId=465286A3037D
	void onATError(char * lError);
	// 获得短消息数
	//##ModelId=465286A3038A
	int GetSMSCount(void);
	// 删除存储的短信息
	//##ModelId=465286A3039A
	BOOL DeleteSMS(int iNo);
	//##ModelId=465286A303A9
	void Answer(void);
};

#endif // !defined(AFX_GSMCOMM_H__9F1C755D_F179_45BD_BDF1_7B8BF256FC0A__INCLUDED_)

⌨️ 快捷键说明

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