全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:9913
推到 Plurk!
推到 Facebook!

GSM之SMS的AT COMMAND ?

答題得分者是:Clarinet
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-17 02:14:59 IP:203.70.xxx.xxx 未訂閱
請教大家幾個問題: 1.市場上一些不同品牌之手機其發簡訊之機制是否介由送出發簡訊之AT COMMAND給手機而完成? 這些不同品牌之手機及GSM MODEM之發簡訊之AT COMMAND是否都一樣 ? 2.若手機有連接線可以接到電腦之COM PORT,是否可經由送出發簡訊之AT COMMAND到該COM PORT以使手機發簡訊? 是所有有連接線之手機都是如此還是不一定? 3.那裡有發簡訊之AT COMMAND之中文文件? 4.除了送出發簡訊之AT COMMAND到該電腦之COM PORT以使手機(或GSM MODEM)發簡訊之方法外,有無其他方法可完成類似工作比如呼叫發簡訊之API,目前我知道有一個元件軟體蠻不錯(TOXYGENSMS),但缺點是該軟體僅支援NOKIA手機,其他廠牌就沒辦法 ?
AB
高階會員


發表:166
回覆:262
積分:125
註冊:2003-08-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-17 02:25:02 IP:61.64.xxx.xxx 未訂閱
1 簡訊目前使用e-mail to xml沒有限制把 不過有文字限制 中文70 英文140字 目前我知道有一個元件軟體蠻不錯(TOXYGENSMS),但缺點是該軟體僅支援NOKIA手機 http://www.oxygensoftware.com/products/tsms/index.shtml http://delphi.ktop.com.tw/topic.php?TOPIC_ID=14068 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=14067 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=14073 就算如此 他能不經過 電信交換機制嗎 所以無法一魚通ㄘ 是無法達成目前 手機普遍性的認同 如果是 自己機房自己轉 點對點 可以 不過沒有數量 = 無商機 日本目前已有 多頻機種 GSM GPRS VOIP 籃芽 不但做成手機 更做盤點機 與 衛星定位系統整合 不過嗎 是使用 Linux為核心 發表人 - ab 於 2003/11/17 02:38:56
Clarinet
高階會員


發表:9
回覆:97
積分:126
註冊:2002-05-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-17 10:52:47 IP:61.66.xxx.xxx 未訂閱
引言: 請教大家幾個問題: 1.市場上一些不同品牌之手機其發簡訊之機制是否介由送出發簡訊之AT COMMAND給手機而完成? 這些不同品牌之手機及GSM MODEM之發簡訊之AT COMMAND是否都一樣 ? 2.若手機有連接線可以接到電腦之COM PORT,是否可經由送出發簡訊之AT COMMAND到該COM PORT以使手機發簡訊? 是所有有連接線之手機都是如此還是不一定? 3.那裡有發簡訊之AT COMMAND之中文文件? 4.除了送出發簡訊之AT COMMAND到該電腦之COM PORT以使手機(或GSM MODEM)發簡訊之方法外,有無其他方法可完成類似工作比如呼叫發簡訊之API,目前我知道有一個元件軟體蠻不錯(TOXYGENSMS),但缺點是該軟體僅支援NOKIA手機,其他廠牌就沒辦法 ?
1.各品牌之手機應該都有遵照標準之GSM MODEM的AT COMMAND ,除了自己本身增加的之外,應該都有按標準的走! 2.可由Com port下AT Command給手機,前提是手機需有支援,如我目前用的A263即是透過傳輸線。我也寫了一個簡單的控制手機的程式,目前都是在測試和研發中,所以是可行的!我還沒全部測試過所有標準的AT COMMAND。 其它的手機,若有支援和電腦溝通的話,應該都是可行的! 3.AT Command 的文件去搜尋一下就很多了!若你不想找的話,直接跟我要好了! 4.其它的方法,我另有做過的是透過http和業者溝通,由系統業者代發。 GPS(全球衛星定位系統) http://www.allgps.com
------
GPS(全球衛星定位系統)
http://www.allgps.com
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-25 01:35:04 IP:211.74.xxx.xxx 未訂閱
引言: 1.各品牌之手機應該都有遵照標準之GSM MODEM的AT COMMAND ,除了自己本身增加的之外,應該都有按標準的走! 2.可由Com port下AT Command給手機,前提是手機需有支援,如我目前用的A263即是透過傳輸線。我也寫了一個簡單的控制手機的程式,目前都是在測試和研發中,所以是可行的!我還沒全部測試過所有標準的AT COMMAND。 其它的手機,若有支援和電腦溝通的話,應該都是可行的! 3.AT Command 的文件去搜尋一下就很多了!若你不想找的話,直接跟我要好了! 4.其它的方法,我另有做過的是透過http和業者溝通,由系統業者代發。 GPS(全球衛星定位系統) http://www.allgps.com
請問A263是什麼
Clarinet
高階會員


發表:9
回覆:97
積分:126
註冊:2002-05-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-25 09:28:30 IP:61.66.xxx.xxx 未訂閱
引言: 請問A263是什麼
A263==>我目前用的手機 OK WAP A263,有傳輸線可和電腦連線。也有支援GSM Modem的功能! GPS(全球衛星定位系統) http://www.allgps.com
------
GPS(全球衛星定位系統)
http://www.allgps.com
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-25 21:29:20 IP:211.74.xxx.xxx 未訂閱
引言:
引言: 請問A263是什麼
A263==>我目前用的手機 OK WAP A263,有傳輸線可和電腦連線。也有支援GSM Modem的功能! GPS(全球衛星定位系統) http://www.allgps.com
謝謝: 那再請教你一個問題,是否可直接使用com port 有關之api與OK WAP A263溝通,還是要另安裝OK WAP A263所提供之軟體或驅動程式之後才可以.
solnone
中階會員


發表:2
回覆:97
積分:69
註冊:2003-05-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-26 02:47:14 IP:203.66.xxx.xxx 未訂閱
…插個花… 可直接使用com port 有關之 api,不過太累人了 找 com port 的元件來用比較好吧 http://vcl.vclxx.org/delphi/default.htm 有很多com port 元件可以用 使用時要注意連的速率等設定是否正確…
Clarinet
高階會員


發表:9
回覆:97
積分:126
註冊:2002-05-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-26 09:30:50 IP:61.66.xxx.xxx 未訂閱
引言: 謝謝: 那再請教你一個問題,是否可直接使用com port 有關之api與OK WAP A263溝通,還是要另安裝OK WAP A263所提供之軟體或驅動程式之後才可以.
我的手機 OK WAP A263是透過USB傳輸線的,所以有附一個驅動程式,來把USB虛擬成COM Port。安裝該驅動程式之後,即可以一般的COM Port處理方式來處理,所以可用相關之API。 可如"solnone"大大所說,用現有的COM Port元件即可,不需再自己寫! 連接成功之後,就可用一些標準的AT Command來對手機下指令,前題是該手機需有支援! GPS(全球衛星定位系統) http://www.allgps.com
------
GPS(全球衛星定位系統)
http://www.allgps.com
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-27 15:45:21 IP:211.96.xxx.xxx 未訂閱
不好意思,我這是在大陸的網站上挖到的東西(台灣的網站怎麼也找不到),我轉了碼並做點慣用詞語轉換,但不完美,圖也沒抓下來,忍耐點加減看 轉載出處: 忘了 ************************************************************ 目前手機短資訊的應用越來越廣泛,互聯網上提供短資訊發送的站點也越來越多,但一些站點的服務並不盡如人意,往往發出去的短資訊石沉大海。最可靠的發送方法當然是用手中的手機了,如果設置了狀態報告,更能確切知道對方是否收到了此條資訊。手機發送儘管比較可靠, 但也存在輸入麻煩、效率低的問題。本文介紹一種方法,只要手機能夠與電腦相連(通過紅外埠或用手機資料線連接串列口,同時手機支援GSM AT指令集),就可以通過自行編制的短資訊發送軟體,實現短資訊的發送。 現在市場上的大多數手機均支持類似於Modem控制的GSM AT指令集,該指令集是由諾基亞、愛立信、摩托羅拉和HP等廠家共同為GSM系統研製的,其中包含了對SMS(Short Message Service)的控制。 GSM AT相關指令的介紹 與SMS有關的GSM AT指令如表1所示: 表1 相關的GSM AT指令 對SMS的控制共有三種實現途徑: Block Mode; 基於AT命令的Text Mode; 基於AT命令的PDU Mode。 Text Mode比較簡單,多款諾基亞手機均支援該模式。西門子的手機大多只支援PDU模式,PDU模式是發送或接收手機SMS資訊的一種方法,短資訊正文經過十六進位編碼後被傳送。目前,PDU已取代Block Mode,因此本文主要探討PDU模式的發送。 電腦和手機的通信 本文以西門子 S3568i為例,介紹如何實現短資訊的發送。 資料線連接 首先,通過S3525資料線將手機與電腦串列口相連。然後,打開超級終端,選擇直接串列口連接,埠參數設為19200速率、無校驗、資料位元8、停止位元1。 紅外線連接 如果使用帶紅外埠的電腦,可以設置與手機的無線連接。首先確認電腦紅外埠已打開,並將手機的紅外線和收傳真資料功能打開,對接紅外埠,電腦系統託盤上應當出現一個紅外設備西門子S35(如果沒有安裝紅外監視器,則不顯示)。然後,打開超級終端,選擇IrDa上的串列口。 連接測試 點擊超級終端工具條上的呼叫按鈕,輸入AT並回車,螢幕上如果出現OK則表明電腦與手機的連接成功,這時就可以輸入各類GSM AT指令了。 如:查詢手機廠家,輸入AT+CGMI=,螢幕顯示Siemens。 通常情況下,執行測試命令AT+CMGS=?,如果返回OK,表明手機支援此指令。該指令的完整語法格式如下: If PDU mode (+CMGF=0)+CMGS=PDU is given 如果短資訊格式指令AT+CMGF返回的是0,則SMS格式為PDU模式,再執行AT+CMGS=<資料長度>命令後,手機返回“>”符號並等待輸入,輸入PDU資料並以^Z或Esc鍵結束。 如果資訊發送成功,則返回OK,並顯示資訊號: +CMGS: 如果發送失敗,則返回如下資訊: +CMS ERROR: PDU資料格式的分析 下面通過對存儲在手機中的待發資訊的分析,來介紹SMS PDU的資料格式。首先,用手機寫一條短資訊,發送手機號碼為13605696031,資訊內容為“Hello World!”。通過執行AT+CMGL=2可以讀出此條資訊。 操作過程如下(斜體字元為回應資訊,{}內為注釋): AT OK AT+CMGL=2 {讀未發短信息} +CMGL: 1,2,,24 {1表示資訊個數,2表示未發資訊,24表示資訊總容量} 08 91 683108501505F0 11 00 0B 81 3106656930F1 0000A7 0B E8329BFD06DDDF723619 OK 下面分析這條資訊: 08:短資訊中心位址長度。 91:短資訊中心號碼類型,91是TONNPI。TONNPI遵守InternationalE.164標準,指在號碼前需加‘+’號;此外還可有其他數值,但91最常用。 683108501505F0:短資訊號碼,是所使用的服務中心位址。由於位置上略有處理,實際號碼應為:8613805515500(字母F意指長度減1),這是作者所在地GSM短資訊中心的號碼。 11:檔頭位元組(header byte,是一種bitmask)。這裏11指正常地發送短資訊。 00:資訊類型。 0B:被叫號碼長度。 81:被叫號碼類型。 3106656930F1:被叫號碼,也經過了移位處理,實際號碼為13605696031。 0000A7:短資訊編碼類型GSM Default Alphabet,如為中文則是000010。 0B:短資訊長度。 E8329BFD06DDDF723619:短資訊內容“Hello World!”。 短資訊的編碼方法及編程實現 下面我們介紹純英文和純中文的資訊編碼方法。通過測試我們發現,每條發送的短資訊前面部分均相同,只是被叫號碼和短資訊內容有變化。 1.英文編碼 參見表2,設短資訊內容為“Hello World!”。缺省的GSM 字元集為7位元編碼,可以簡單地理解為ASCII碼(ASCII值小於80Hex,因此,Bit8被忽略),依次將下一7位元編碼的後幾位元逐次移至前面,形成新的8位元編碼,參見表2箭頭指示。需要注意的是第9行,移位計數已達7位,則直接將本編碼前加0。GSM並非支持所有的ASCII字元顯示。 表2 英文編碼的實現過程 下面是實現英文編碼的部分Delphi 5代碼: //英文格式編碼,s為String function Encode1(var s:String):String; var i,j,len:Integer; cur:Integer; t:String; begin Result:=‘’; len:=Length(s); //j 用於移位計數 i:=1;j:=0; while i<=len do begin if i//數據變換 cur:=(ord(s[i]) shr j) or ((ord(s[i+1]) shl (7-j)) and $ff) else cur:=(ord(s[i]) shr j) and $7f; FmtStr(t,‘%2.2X’,[cur]); Result:=Result+t; inc(i); //移位計數達到7位的特別處理 j:=(j+1) mod 7;if j=0 then inc(i); end; end; 2.中文編碼 參見表3,設短資訊內容為“中文短資訊”。中文短資訊的實現較簡單,只需將GB2312的中文編碼轉換為內碼表為CP936的Unicode編碼即可。 表3 中文編碼的實現過程 通過Delphi的WideString類型轉換,可以巧妙地實現GB2312到Unicode的編碼轉換(注意內碼表和作業系統相關聯)。下面是實現中文編碼的部分Delphi 5代碼: // 中文格式編碼,s為Unicode String function Encode2(var s:WideString):String; var i,len:Integer; cur:Integer; t:String; begin Result:=‘’; len:=Length(s); i:=1; while i<=len do begin cur:=ord(s[i]); //BCD轉換 FmtStr(t,‘%4.4X’,[cur]); Result:=Result+t; inc(i); end; end; 小 結 以上介紹了PDU格式的短資訊編碼。建議英文資訊長度不超過140個字元,中文資訊不要超過54個漢字。如果使用能夠支援文本方式的手機進行發送,實現起來更簡單。如發送“Hello World!”,用如下的AT指令即可: AT+CGMF=1AT+CGMS=“13650246680”,129 >Hello World!<^Z> 左邊的照片是我兒子哩
kadlac
一般會員


發表:18
回覆:30
積分:9
註冊:2004-07-23

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-07-23 11:05:16 IP:61.219.xxx.xxx 未訂閱
我試過用AT command 傳送簡訊 實際測試 Motorola A6288 及 Panasonic GD88 都能正常傳送簡訊, 不論是中文或是英文 但是換成 GPRS PCMCIA 卡(包括Merlin及Sierra兩張卡) 時就無法 傳送簡訊, 他們同樣都接受AT command , 照理來說應該都遵照標準 才對, 可就是沒辦法發送簡訊, 不知是何原因? 發表人 - kadlac 於 2004/07/23 11:15:21
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-07-23 12:05:46 IP:219.133.xxx.xxx 未訂閱
GSM手机发送 SMS,手机和交换机之间的通信协议(空中的协议)肯定是相同的,不管什么牌子的手机。 我们可以通过手机的COM PORT,用电脑发送 AT COMMAND来控制手机发送SMS。但这里就有问题了。不同牌子的手机,甚至同一个牌子不同型号的手机,它的 AT COMMAND 都可能有点不同。 至于电脑和手机想连,可能有这样几种: 1. 电脑的 COM PORT 通过手机的数据线连接手机。实际上一般手机的数据线的端口就是一个RS232端口,只是它支持的电压是5V(TTL)而不是RS232标准的12V,所以电脑连接手机的数据线里用了一片TTL/232 电平转换芯片。 2. 电脑通过红外 IRDA 和手机相连。好多笔记本电脑都有 IRDA。对于IRDA来说,它其实也是一个 COM PORT。 3. 电脑通过USB和手机相连。这种方式我还没试过。应该是通过手机提供的DRIVER,把USB模拟成COM PORT 如果是直接用RS232连接,找一个DELPHI的COM PORT 元件就可以了。比如SPCOM32那个元件。 如果是用IRDA连接,在WIN9X下,IRDA就是一个COM PORT,直接用COM PORT元件来读手机。在WIN2K下,DELPHI需要用另外一个元件来和IRDA通讯。因为 WIN2K 下的IRDA通讯是建立在 SOCKET 的基础上的。基本上就是 SOCKET 通讯。 不管什么通讯方式,只要你的程式和手机连接上了,你发送一个字符串 AT 过去,手机应答给你的程序“OK”,就说明连接上了。 对于普通基本的AT COMMAND 来说,手机都相同。但在 SMS 以及PHONE BOOK来说,不同的手机都有差异。尤其是有些手机支持用TEXT模式发中文,而有些手机只支持用 PDU编码来发中文。而不同的手机,它的 PDU 编码的格式又不完全相同。如果你只针对一款手机写,就没太大问题。 我曾经写过一个,可以收/发SMS,可以把PHONE BOOK读进电脑,变成一个数据库,方便查找/排序,也可以在电脑上编辑 PHONE BOOK 后再写回手机。但只支持MOTOROLA和西门子的。对NOKIA的也能操作,但就有一些问题了。 至于NOKIA,它自己提供了API,也就是自己把AT COMMAND封装在API里了。你也可以安装它的DRIVER到WINDOWS里,然后通过用程式调用它的API的方式来操纵手机。不过这就不是通用的做法了。
系統時間:2024-05-17 4:14:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!