我們先來談一談設計at lib的一些考慮。
畢竟和串列埠通訊這樣的硬體打交道,我們需要支援非同步呼叫嗎?
我覺得一般在軟體的高層會去實現非同步呼叫(一般通過開啟乙個單獨執行緒),所以at lib在設計的時候只支援同步呼叫。
傳送at command後,等待modem的response肯定需要超時管理。例如modem死掉了,這樣at lib在同步呼叫的時候不至於一直卡死在**。
我們會設計乙個at command類。為什麼不直接用字串而用乙個專門的類呢?
- 有些response有result code,有些沒有
- 我們需要期望什麼樣的response呢,需要把這樣的期望加入到at command類中
我們會設計乙個at response類。
- 包含當時傳送的at command字串是什麼
- 傳送的at command字串有沒有echo(如果modem開啟echo,modem會把at command放到response中)
- result code是什麼
- cme extended reason code是什麼
- cms extended reason code是什麼
- urc是什麼
- data lines是什麼
整個at lib設計的難點就是
- 發完at command之後,at response是不是完整的和是不是我們想要的
- 怎樣解析出at response的各部分資訊
一些設計思想的匯集 2
關於畫面內容的check的設計 首先定義介面 public inte ce ivalidator 及虛類public abstract class abstractvalidator set protected bool isemptystring object obj else public ab...
一些設計的guidline
1.ocp原則 開放閉合原則 模組的設計,應該對擴充套件是開放的,但是對於修改是閉合的,即易於擴充套件,而不做額外的修改。通常有兩種手段來達到這樣的效果,即動態多型和靜態多型 多型和模板 2.lsp原則 置換原則 子類必須能夠替換其基型別。任何子類的行為和功能都要保持和父類一致。3.dip原則 依賴...
一些設計思路
智慧型裝置 1.s2c 介面,在 裡新增 system cmd 然後就可以進行伺服器遠端除錯啦。這樣做可以縮短終端裝置開發時間 智慧型裝置往往要求是終端提供穩定可靠的介面給伺服器統一呼叫,因為終端公升級太麻煩啦 2.同樣的需要,終端功能夠強壯,伺服器進行控制。尤其是前期,強制公升級很需要 3.昨天討...