| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /************************************************************************/
- /* 函数:[12/26/2017 Home];
- /* 描述:;
- /* 参数:;
- /* [IN] :;
- /* [OUT] :;
- /* [IN/OUT] :;
- /* 返回:void;
- /* 注意:;
- /* 示例:;
- /*
- /* 修改:;
- /* 日期:;
- /* 内容:;
- /************************************************************************/
- #ifndef __SMS_HEADER__
- #define __SMS_HEADER__
- #include "SynSerial.h"
- #pragma once
- // 用户信息编码方式;
- #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
- // 编码常量;
- #define CONST91 "91"
- #define CONSTF "F"
- #define CONSTLEN 1024
- #define CONST0 0
- // 短信消息结构,编码/解码使用;
- typedef struct
- {
- // 短信消息服务中心号码(SMSC地址);
- BYTE SCA[16];
- // 目标号码或回复号码(TP-DA或TP-RA)
- BYTE TPA[16];
- // 用户信息协议标识(TP-PID);
- BYTE TP_PID;
- // 用户编码方式(TP-DCS);
- BYTE TP_DCS;
- // 服务时间戳字符串(TP-SCTS),接收时用到;
- BYTE TP_SCTS[16];
- // 原始用户信息(编码前或解码后的TP-UD);
- BYTE TP_UD[161];
- // 短信消息序号,在读取时用到;
- BYTE nIndex;
- }SM_PARAM;
- typedef struct {
- int len;
- char data[16384];
- }SM_BUFF;
- class CShortMessageService:public CSynSerial
- {
- public:
- CShortMessageService(void);
- virtual ~CShortMessageService(void);
- public:
- // 初始化pdu环境;
- BOOL InitGSM();
- // 发送短信;
- BOOL SendShortMessage(IN SM_PARAM *sm_param);
- int SendShortMessage(IN LPCTSTR lpSentPhone, IN LPCTSTR lpSendMsg);
- // 接收短信;
- int ReceiveMessage(SM_PARAM *sm_param, int nIndex);
- // 接收所有未读新短信;
- int ReceiveUnreadMessage(SM_PARAM *sm_param);
- // 接收所有未读新短信;
- int ReceiveAllMessage(SM_PARAM *sm_param);
- // 删除所有短信;
- bool DeleteAllMessage();
- // 删除指定序号短信;
- bool DeleteMessage(int nIndex);
- // 设置是否关回显,并缺省设置为PDU模式;
- bool SetSendModule(BOOL bLoopback);
- // 设置短信中心号码;
- BOOL SetCenterNumber(IN LPCTSTR lpCenterNumber);
- // 获取短信中心号码;
- BOOL GetCenterNumber(OUT LPTSTR lpCenterNumber);
- public:
- // 手机号码奇偶对换;
- int InvertNumbers(IN LPCTSTR lpSrcTelephone, OUT LPTSTR lpDstTelephone, IN int nTelephoneLen = 0);
- // 手机号码序列化;
- int SerializeNumbers(IN LPCTSTR lpSrcTelephone, OUT LPTSTR lpDstTelephone, IN int nTelephoneLen = 0);
- // 编码Ucs2;
- int EncodeUcs2(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- // 解码Ucs2;
- int DecodeUcs2(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- // 将字节转成16进制字符;
- int Byte2HexString(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- // 将16进制字符串转成字节;
- int HexString2Byte(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- // 编码7Bit
- int Encode7bit(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- int Decode7bit(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- int Encode8bit(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- int Decode8bit(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- int EncodePdu(IN const SM_PARAM *pSMParam, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- int DecodePdu(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT SM_PARAM *pSMParam);
- int EncodePdu(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- int DecodePdu(IN LPCTSTR lpSrcText, IN const int &nSrcTextLen, OUT LPBYTE lpDstText, IN const int& nDstTextLen);
- };
- #endif // __SMS_HEADER__
|