导航:首页 > 程序命令 > at命令短信

at命令短信

发布时间:2022-05-26 13:51:14

❶ 如何用AT命令发送短信

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<termios.h>
#include<errno.h>
#include<iconv.h>//编码转换

#defineSTTY_DEV"/dev/ttyS0"
#defineBUFF_SIZE512
#defineMSG_SIZE140//一条短信的容量

charphone[20]="+8613476090094";//定义短信发送的目标手机号码
charsms_number[20]="+8613800200500";//定义短消息服务中心号码
charsms_gb2312[MSG_SIZE]="BestRegards!";//定义短消息内容
charsms_utf8[MSG_SIZE];
char*sms_in=sms_gb2312;//要把输入的gb2312编码转换成unicode编码
char*sms_out=sms_utf8;
intgb2312_len,utf8_len;

intSetOption(intfd);//设置串口通信的参数
voidTransPhone();//转换手机号码格式
voidTransSmsc();//转换SMSC号码
intTransMsg();//转换短信消息内容

intmain()
{
intstty_fd,n;
charbuffer[BUFF_SIZE];

//打开串口
stty_fd=open(STTY_DEV,O_RDWR);
if(-1==stty_fd){
perror("opendevice");
return0;
}
printf("Opendevicesuccess! ");

//设置串口参数
if(0!=SetOption(stty_fd)){
close(stty_fd);
return0;
}
printf("SetSerialoptionsuccess! ");

TransPhone();
TransSmsc();
if(1!=TransMsg()){
perror("ConvertShortMsg");
close(stty_fd);
return0;
}
printf("Messageconvertsuccess! ");

//设置使用PDU模式
strcpy(buffer,"AT+CMGF=0 ");//0表示PDU模式,1表示文本模式
write(stty_fd,buffer,strlen(buffer));//写入配置命令
n=read(stty_fd,buffer,BUFF_SIZE);//向串口写入AT+CMGF=0后,如果系统支持PDU模式,返回向串口返回“OK"
if(n<=0){
perror("setpmode");
close(stty_fd);
return0;
}
if(0!=strncmp(buffer,"OK",2)){
perror("setpmode");
close(stty_fd);
return0;
}

//发送消息
sprintf(buffer,"AT+CMGS=%d ",utf8_len);//写入发送消息命令
write(stty_fd,buffer,strlen(buffer));
write(stty_fd,sms_utf8,utf8_len);//写入消息内容
printf("SendmessageOK! ");

close(stty_fd);
}

intSetOption(intfd)
{
structtermiosopt;

//获取当前串口配置
tcgetattr(fd,&opt);
tcflush(fd,TCIOFLUSH);

//设置波特率
cfsetispeed(&opt,B19200);
cfsetospeed(&opt,B19200);

//设置数据位--8位数据位
opt.c_cflag&=~CSIZE;
opt.c_cflag|=CS8;

//设置奇偶位--无奇偶校验
opt.c_cflag&=~PARENB;
opt.c_iflag&=~INPCK;

//设置停止位--1位停止位
opt.c_cflag&=~CSTOPB;

//设置超时时间--15秒
opt.c_cc[VTIME]=150;
opt.c_cc[VMIN]=0;

//设置写入设备
if(0!=tcsetattr(fd,TCSANOW,&opt)){
perror("setbaudrate");
return-1;
}
tcflush(fd,TCIOFLUSH);
return0;
}
voidTransPhone()
{
inti,str_len,tmp;
if(phone[0]='+'){//去掉号码开头的‘+’
for(i=0;i<strlen(phone)-1;i++)//strlen函数得到的是字符数组的真实长度,不包括后面的''
phone[i]=phone[i+1];
phone[i]='';
}
str_len=strlen(phone);//如果号码(不包括‘+’)是奇数,在最后加'F'
if((strlen(phone)%2)!=0){
phone[str_len]='F';
phone[str_len+1]='';
}
for(i=0;i<strlen(phone);i+=2){//把号码的奇偶位掉换
tmp=phone[i];
phone[i]=phone[i+1];
phone[i+1]=tmp;
}
}
voidTransSmsc()
{
inti,str_len,tmp;
TransPhone(sms_number);
str_len=strlen(sms_number);//所有字符向后移动两个字节
for(i=strlen(sms_number)+2;i!=0;i--)
sms_number[i]=sms_number[i-2];
sms_number[str_len+3]='';
strncpy(sms_number,"91",2);//开头写入字符“91”
tmp=strlen(sms_number)/2;
str_len=strlen(sms_number);//所有字符向后移动两个字节
for(i=strlen(sms_number)+2;i!=0;i--)
sms_number[i]=sms_number[i-2];
sms_number[str_len+3]='';
sms_number[0]=(char)(tmp/10)+0x30;//将字符串长度值由整形转换为字符型并写入短信字符串的开头部分
sms_number[1]=(char)(tmp%10)+0x30;
}
intTransMsg()
{
iconv_tcd=iconv_open("utf-8","gb2312");//设置类型转换gb2312==>utf-8
if(0==cd){
perror("createiconvhandle!");
return0;
}
gb2312_len=strlen(sms_gb2312);
utf8_len=MSG_SIZE;
if(-1==iconv(cd,&sms_in,&gb2312_len,&sms_out,&utf8_len)){
perror("convertcode");
return0;
}
iconv_close(cd);
return1;
}

❷ 请教:怎么用AT指令获取短信中心号码

AT+CSCA?

这条指令即可

❸ AT命令如何删除所有短信

删除所有短信,可以使用指定删除标识4(为删除全部)(以下
表示回车符)
命令为AT+CMGD=1,4
本命令的详细解释如下:
使用设置命令,可删除优选消息存储器
中,位置号码参数为
的消息。
AT+CMGD操作命令语法
设置命令:AT+CMGD=
[,
]
返回结果:ERROR/+或CME
ERROR:
失败
OK
成功
测试命令
AT+CMGD=?
-
参数的详细说明
1~255
整数型;关联存储器支持的地址编号范围内的取值
-
删除
指定的短信
0
删除
指定的短信
1
全部删除存储器中的已读短信
2
全部删除存储器中的已读和已发送短信
3
全部删除存储器中的已读、已发送和未发送短信
4
全部删除存储器中的已读、未读、已发送和未发送短信

❹ AT指令是什么

AT
即Attention,AT指令集是从终端设备(Terminal
Equipment,TE)或数据终端设备(Data
Terminal
Equipment,DTE)向终端适配器(Terminal
Adapter,
TA)或数据电路终端设备(Data
Circuit
Terminal
Equipment,DCE)发送的。通过TA,TE发送AT指令来控制移动台(Mobile
Station,MS)的功能,与GSM
网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。90年代初,AT指令仅被用于Modem操作。没有控制移动电话文本消息的先例,只开发了一种叫SMS
BlockMode的协议,通过终端设备(TE)或电脑来完全控制

android平台用AT命令发短信

需要COM口连接短信猫,然后根据短信猫中的AT命令来操作。

❻ 什么是AT 命令 (手机)

手机上层比如查看sim卡联系人,发送短信等动作通过AT 命令传给modem,又modem发送到网络中去,AT 命令主要完成通讯任务

❼ C# at命令发短信 写AT命令失败 如何处理

如果普通的at可以返回,表示at通讯没有问题,那么需要看看发送短信的at命令是否格式不对,参数是否写对,有没有写成全角的符号等。

❽ 如何通过AT命令在华为GSM模块使用短信功能

华为的模块,带有AT指令集,检查他们的sdk文档,查找短信相关API即可。
相关的指令一般为:

+CPMS, +CMGF, +CMGS等。

❾ at指令超作GSM发送短信时怎么结束短信内容输入,文本输入完后按ctrl+z居然是撤销上次操作。

以16进制发送0x1a或者1a,一定一定要勾选16进制发送!
表示结束消息的输入。

❿ AT指令集的短消息

1、 AT+CSMS 选择消息服务。支持的服务有GSM-MO、SMS-MT、SMS-CB。
2、 AT+CNMA 新信息确认应答。
3、 AT+CPMS 优先信息存储。这个命令定义用来读写信息的存储区域。
4、 AT+CMGF 优先信息格式。执行格式有TEXT方式和PDU方式。
5、 AT+CSAS 保存设置。保存+CSAS和+CSMP的参数。
6、 AT+CRES 恢复设置。
7、 AT+CSDH 显示文本方式的参数。
8、 AT+CNMI 新信息指示。这个命令选择如何从网络上接收短信息。
9、 AT+CMGR 读短信。信息从+CPMS命令设定的存储器读取。
10、 AT+CMGL 列出存储的信息。
11、 AT+CMGS 发送信息。
12、 AT+CMGW 写短信息并存储。
13、 AT+CMSS 从存储器中发送信息。
14、 AT+CSMP 设置文本模式的参数。
15、 AT+CMGD 删除短信息。删除一个或多个短信息。
16、 AT+CSCA 短信服务中心地址。
17、 AT+CSCB 选择单元广播信息类型。
18、 AT+WCBM 单元广播信息标识。
19、 AT+WMSC 信息状态(是否读过、是否发送等等)修正。
20、 AT+WMGO 信息覆盖写入。
21、 AT+WUSS 不改变SMS状态。在执行+CMGR或+CMGL后仍保持UNREAD。

阅读全文

与at命令短信相关的资料

热点内容
外向式文件夹 浏览:225
dospdf 浏览:420
怎么修改腾讯云服务器ip 浏览:377
pdftoeps 浏览:483
为什么鸿蒙那么像安卓 浏览:726
安卓手机怎么拍自媒体视频 浏览:176
单片机各个中断的初始化 浏览:714
python怎么集合元素 浏览:470
python逐条解读 浏览:822
基于单片机的湿度控制 浏览:488
ios如何使用安卓的帐号 浏览:874
程序员公园采访 浏览:802
程序员实战教程要多长时间 浏览:965
企业数据加密技巧 浏览:125
租云服务器开发 浏览:804
程序员告白妈妈不同意 浏览:327
攻城掠地怎么查看服务器 浏览:592
android开机黑屏 浏览:568
mc纯生存服务器是什么意思 浏览:440
树莓派火焰蜂鸣器python 浏览:899