導航:首頁 > 程序命令 > 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命令簡訊相關的資料

熱點內容
配音秀app怎麼誦讀 瀏覽:748
sparkcore源碼 瀏覽:98
程序員中年生活 瀏覽:353
讀取加密信息失敗怎麼回事 瀏覽:508
編譯過程之後是預處理嗎 瀏覽:349
安卓是基於什麼做出來 瀏覽:598
視頻字幕提取APP怎麼使用 瀏覽:57
js通過ip地址連接伺服器嗎 瀏覽:846
java數字金額大寫金額 瀏覽:856
人人影視路由器固件編譯 瀏覽:965
照片通訊錄簡訊怎麼從安卓到蘋果 瀏覽:456
邏輯開發編譯環境 瀏覽:670
ce自己編譯 瀏覽:896
javaexe進程 瀏覽:478
電腦wechat是什麼文件夾 瀏覽:956
單片機moc3041 瀏覽:786
at命令串口助手 瀏覽:749
吸血app怎麼關閉 瀏覽:35
雲伺服器地圖不見了怎麼辦 瀏覽:240
mc伺服器應該叫什麼名字 瀏覽:607