📄 gsmcomm.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 + -