600分,MOTO手机发短信编程或相关AT指令(300分)

  • 主题发起人 主题发起人 gear1023
  • 开始时间 开始时间
G

gear1023

Unregistered / Unconfirmed
GUEST, unregistred user!
手上有一古董 MOTO-C266,想接到电脑上发短信!

连接线,驱动都已经OK. 用移动提供的一下免费短信软件,已经可以发了.

GOOGLE了一下,都是介绍的西门子的35i之类的模块的,用它的发一下,不行.
求一段代码(语言不限,DELPHI最好)或MOTO相关的AT指令介绍也可.
 
BOOL gsmSendMessage(const SM_PARAM* pSrc)
{
int nPduLength; // PDU串长度
unsigned char nSmscLength; // SMSC串长度
int nLength; // 串口收到的数据长度
char cmd[16]; // 命令串
char pdu[512]; // PDU串
char ans[128]; // 应答串

nPduLength = gsmEncodePdu(pSrc, pdu); // 根据PDU参数,编码PDU串
strcat(pdu, "/x01a/x00"); // 以Ctrl-Z结束

gsmString2Bytes(pdu, &nSmscLength, 2); // 取PDU串中的SMSC信息长度
nSmscLength++; // 加上长度字节本身

// 命令中的长度,不包括SMSC信息长度,以数据字节计
sprintf(cmd, "AT+CMGS=%d/r", nPduLength / 2 - nSmscLength); // 生成命令

printf("发送短消息:%s/r/n%s/r/n",cmd,pdu);


WriteComm(cmd, strlen(cmd)); // 先输出命令串

if( commwaitdata(smscommfd,100*2,20)<=0)
return FALSE;
// taskDelay(100*2);

nLength = ReadComm(ans, 128); // 读应答数据
ans[127]=0;
printf(&quot;>/r/n&quot;);
// 根据能否找到&quot;/r/n> &quot;决定成功与否
if(nLength == 4 && strncmp(ans, &quot;/r/n> &quot;, 4) == 0)
{
WriteComm(pdu, strlen(pdu)); // 得到肯定回答,继续输出PDU串

// taskDelay(100*5);
if( commwaitdata(smscommfd,100*5,20)<=0)
return FALSE;

nLength = ReadComm(ans, 128); // 读应答数据

ans[127]=0;

// 根据能否找到&quot;+CMS ERROR&quot;决定成功与否
if(nLength > 0 && strncmp(ans, &quot;+CMS ERROR&quot;, 10) != 0)
{
printf(&quot;sms send ok/r/n&quot;);
return TRUE;
}
}

printf(&quot;sms send err/r/n&quot;);

return FALSE;
}



不知道你的能用不
 
http://www.sms2008.net/download/
 
此问题结束,谢谢各位参与.
 

Similar threads

回复
0
查看
863
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部