海斯命令集
语言
此條目可參照英語維基百科相應條目來擴充。 |
海斯命令集(Hayes command set),又稱AT命令集(AT command set),原本是為了海斯智慧300數據機所開發的一種命令語言。這些命令集是由許多短的字串組成長的命令,用於代表撥號、掛號以及改變通訊參數的動作。大部分的數據機都跟隨海斯命令集所制定的規則。
歷史
1977年剛開始使用海斯命令通訊時,是數據機使用已存在的資料腳位而沒有做修改,取而代之的是使數據機可以自己切換在兩個模式之間
- 資料模式:用於傳送資料到遠端的數據機
- 命令模式:使本地端的數據機接收命令並執行
命令描述
下面的文字列出了一部分海斯命令集的命令,也叫AT命令,其中「AT」代表「注意(Attention)」。每個命令都以「AT」開頭,後面可以附加不定數量的命令。
海斯指令可以被區分為四組:
- 基本指令集:一個大寫字元跟著一個數值,例如:M1。
- 延伸指令集:一個"&"以及一個大寫字元跟著一個數值,這是基本指令集的延伸,例如:&M1。要注意的是,
M1
與&M1
是不同的命令。 - 私有指令集:通常用一個倒斜線("\")或一個百分比符號("%");這些命令在不同廠家之間有着很大的差別。
- 暫存器指令集:
Sr=n
,其中 r 代表要修改的暫存器的編號,n代表是要指定給暫存器的數值。一個寄存器代表內存中的一個特定的物理區域。寄存器指令集用於向一個特定的寄存器(即內存中的位置)輸入數據。舉例來說,S7=60
會指示調製解調器執行「將7號寄存器的值設為60」這個操作。寄存器通常可以控制調製解調器的運行細節(如傳輸強度、調製參數等),並且不同型號之間通常不能通用。
儘管海斯命令集的語法以字母和數字的組合來定義大多數的命令(L0、L1等),但是數字0在命令中不是必須的。舉例來說,L0
與L
是相同的命令。在閱讀後續的表格時要記住這一點。
在調製解調器處於數據模式時,使用轉義序列可以將調製解調器轉為命令模式。普遍來說會使用三個加號(+++)作為轉義序列,同時為了將它與數據區分開,在輸入它之前與之後必須有一次暫停,並且加號之間不允許有暫停。默認來說,一個暫停就是一秒鐘,更短的間隔則代表「沒有暫停」。
語法定義
<CR>
回車字符,用於當做命令或返回值的結尾,它的值以ASCII格式定義於S3寄存器,預設值為13。<LF>
換行字符,它的值以ASCII格式定義於寄存器S4,預設值為10。在開啟了詳細返回模式時(使用了V1選項),換行字符會在回車字符之後輸出;如果設定使用數字格式的返回碼(使用了V0選項),那麼它將不會在返回碼中出現。<...>
用角括號括起來的名稱是一個語法元素。它們不會出現在命令行中。[...]
可選的子參數或可選的AT命令響應會被方括號括起來。
數據機初始化
一個字符串可以包含多個海斯命令,以便讓調製解調器為撥號或應答做最佳的準備,如AT&F&D2&C1S0=0X4
。大多數調製解調器軟件都支持由用戶提供一個由數個AT命令組成的長字符串,稱為初始化字符串,它將在調製解調器開始工作時被發送過去。V.250標準要求所有DCE (頁面存檔備份,存於網際網路檔案館)都能接收至少40字符的命令體(AT之後的部分)。
一些重要的字元用於數據機初始化:
- AT - "Attention":告知數據機後面跟著是數據機指令,每一行以AT為起始
- Z - 重新設定(reset)數據機回到初始狀態
- ,(a comma) - 使軟體暫停一秒鐘,若有多個逗點則代表暫停許多秒
- ^M - 傳送一個結束字元(Carriage Return)給數據機,這是一個控制字元(當傳送此字元其實是傳送一個位元組,內容為ASCII的CR)