📄 dialphone.cpp
字号:
#include "stdafx.h"
#include "DialPhone.h"
#include "Comm.h"
int gsmSendPhone(char* pSrc)
{
char cmd[128]; // 命令串
int ret ;
sprintf(cmd,"AT+CKPD=\"#31#%s\"\r",pSrc);
TRACE(cmd);
ret = WriteComm(cmd, strlen(cmd));
return 0;
}
int gsmSendDtmf(char* pSrc)
{
char ans[128]; // 命令串
sprintf(ans,"AT+VTS=%s\r",pSrc);
WriteComm(ans, 26);
sprintf(ans,"AT+VTS=%s\n",pSrc);
TRACE(ans);
Sleep(100);
ReadComm(ans, 128);
return 0;
}
int gsmSendHungup()
{
char ans[128];
WriteComm("ATH\r", 26);
Sleep(100);
ReadComm(ans, 128);
TRACE("ATH\n");
return 0;
}
// 读取GSM MODEM的应答,可能是一部分
// 输出: pBuff - 接收应答缓冲区
// 返回: GSM MODEM的应答状态, GSM_WAIT/GSM_OK/GSM_ERR
// 备注: 可能需要多次调用才能完成读取一次应答,首次调用时应将pBuff初始化
int gsmGetResponse(SM_BUFF* pBuff)
{
int nLength; // 串口收到的数据长度
int nState;
// 从串口读数据,追加到缓冲区尾部
nLength = ReadComm(&pBuff->data[pBuff->len], 128);
pBuff->len += nLength;
// 确定GSM MODEM的应答状态
nState = GSM_WAIT;
if ((nLength > 0) && (pBuff->len >= 4))
{
if (strstr(pBuff->data, "OK\r\n") != NULL)
nState = GSM_OK;
else
if (strstr(pBuff->data, "+NO CARRIER") != NULL)
nState = GSM_ERR;
}
TRACE(pBuff->data);
return nState;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -