📄 smsoperater.h
字号:
// SmsOperater.h: interface for the CSmsOperater class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SMSOPERATER_H__ECF4C822_ED04_4C10_AECD_31142A9D6385__INCLUDED_)
#define AFX_SMSOPERATER_H__ECF4C822_ED04_4C10_AECD_31142A9D6385__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/*
//存放短消息的结构体说明
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[160]; // 原始用户信息(编码前或解码后的TP-UD)
short index; // 短消息序号,在读取时用到
} SM_PARAM;
*/
typedef int (__stdcall *OPENCOM)(const char *pPort, int nBaudRate, int nParity, int nByteSize, int nStopBits);
typedef int (__stdcall *CLOSECOM)(int nHcom);
typedef int (__stdcall *SETINIT)(int nHcom);
typedef const char* (__stdcall *GETSERIALNO)(int nHcom);
typedef const char* (__stdcall *GETSMSCENTERNUM)(int nHcom);
typedef int (__stdcall *RECVSMSBUF)(int nHcom,const unsigned int nLenOutBuffer,const char *pchOutBuffer,bool bDel=true);
typedef int (__stdcall *RECVSMSSTRUCT)(int nHcom,SM_PARAM* pMsg);
typedef int (__stdcall *SENDSMSONE)(int nHcom,const char*pchSCA,const char*pchMobile, const char* pchSms);
typedef int (__stdcall *DELREADANDSEND)(int nHcom);
typedef int (__stdcall *DELAPPOINTED)(int nHcom,int nIndex);;
class CSmsOperater
{
public:
/******************************************************************************************
功能说明--打开串口
函数返回--如果大于0则为获取的com接口的句柄,小于0则为失败,为int型
输入参数--
const char *pPort 串口字符,如连接的是串口1,则为COM1
int nBaudRate 波特率,一般为9600
int nParity 奇偶校验,一般为0
int nByteSize 数据位, 一般为8
int nStopBits 停止位,一般位1
调用例子-- int nHcom=OpenCom("COM1",9600,0,8,1);如果nHcom大于0则为句柄,小于0则为打开串口失败
*******************************************************************************************/
int OpenCom(const char *pPort, int nBaudRate, int nParity, int nByteSize, int nStopBits);
/******************************************************************************************
功能说明--关闭指定的串口
函数返回--If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero
输入参数--
int nHcom 串口句柄,关闭指定串口,比如串口一(com1)
调用例子--
*******************************************************************************************/
int CloseCom(int nHcom);
/******************************************************************************************
功能说明--删除指定的消息
函数返回--如果大于等于0则成功,否则失败
输入参数--
int nHcom 串口句柄,表示删除那个串口的数据
int nIndex 消息索引,指哪条消息
调用例子--
*******************************************************************************************/
int DeleteAppointed(int nHcom,int nIndex);
/******************************************************************************************
功能说明--初始化at命令,一般要验证这个的话,则要调用这个
函数返回--如果大于0则为获取的com接口的句柄,小于0则为失败,为int型
输入参数--
int hCom 串口句柄
调用例子--
*******************************************************************************************/
int SetInit(int nHcom);
/******************************************************************************************
功能说明--获得modem的序列号
函数返回--如果失败则为NULL(空),成功则返回产品序列号码
输入参数--
int nHcom 串口句柄,从指定的串口读出产品序列号码,比如串口一(com1)
调用例子--
*******************************************************************************************/
const char* GetSerialNo(int nHcom);
/******************************************************************************************
功能说明--获取短消息中心号码
函数返回--如果失败则为NULL(空),成功则返回短消息中心号码
输入参数--
int nHcom 串口句柄,从哪个串口读出数据,比如串口一(com1)
调用例子--
*******************************************************************************************/
const char* GetSmsCenterNum(int nHcom);
/******************************************************************************************
功能说明--从sim卡中读出所有新的短信,然后放入pchOutBuffer
函数返回--大于0则为短消息条数,小于0则为读取消息失败
输入参数--
int nHcom 串口句柄,从哪个串口读出数据,比如串口一(com1)
const char *pchOutBuffer 存放消息的字符缓冲区,格式按照SM_PARAM依次存放,所以建议输出缓冲区尽量定义大一些
const unsigned int nLenOutBuffer 存放消息的字符缓冲区长度
bool bDel 读完新消息后,是否删除,如果为true则删除,缺省为删除
调用例子--
*******************************************************************************************/
int RecvSmsBuf(int nHcom,const unsigned int nLenOutBuffer,const char *pchOutBuffer,bool bDel=true);
/******************************************************************************************
功能说明--从sim卡中读出所有新的短信,然后放入SM_PARAM结构体中
函数返回--大于0则为短消息条数,小于0则为读取消息失败
输入参数--
int nHcom 串口句柄,从哪个串口读出数据,比如串口一(com1)
SM_PARAM* pMsg 存放消息的结构体指针
调用例子--
*******************************************************************************************/
int WINAPI RecvSmsStruct(int nHcom,SM_PARAM* pMsg);
/******************************************************************************************
功能说明--发送单条短消息
函数返回---1失败,0为成功
输入参数--
int nHcom 串口句柄,从哪个串口发送数据,比如串口一(com1)
const char*pchSCA 短信中心号码
const char* pchSms 要发送短消息
const char*pchMobile 对方的手机号码
调用例子--
*******************************************************************************************/
int SendSmsOne(int nHcom,const char*pchSCA,const char*pchMobile, const char* pchSms);
/******************************************************************************************
功能说明--删除所有的消息(// All READ, SENT and UNSENT messages are deleted)
函数返回--如果大于等于0则成功,否则失败
输入参数--
int nHcom 串口句柄,表示删除那个串口的数据
调用例子--
*******************************************************************************************/
int DeleteReadAndSend(int nHcom);
int OnInitSms();
CSmsOperater();
virtual ~CSmsOperater();
private:
OPENCOM OpenComOrg;
CLOSECOM CloseComOrg;
SETINIT SetInitOrg;
GETSERIALNO GetSerialNoOrg;
GETSMSCENTERNUM GetCenterNumOrg;
RECVSMSBUF RecvSmsBufOrg;
RECVSMSSTRUCT RecvSmsStructOrg;
SENDSMSONE SendSmsOneOrg;
DELREADANDSEND DelReadAndSendOrg;
DELAPPOINTED DeleteAppointedOrg;
};
#endif // !defined(AFX_SMSOPERATER_H__ECF4C822_ED04_4C10_AECD_31142A9D6385__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -