AT指令框架的實現
AT指令概述
AT指令是應用於終端裝置與PC應用之間的連線與通訊的指令。AT 即Attention。每個AT命令列中只能包含一條AT指令;對於AT指令的傳送,除AT兩個字元外,最多可以接收1056個字元的長度。
AT指令的格式
命令格式如下所示:
AT[+CMD][=KEY]
CMD:命令;
KEY:引數的值,如果是?表示請求該引數的值,此處可有多個引數組成;
用到的API函式簡介
char *strtok(char s[], const char *delim);
分解字串為一組字串。s為要分解的字元,delim為分隔符字元(如果傳入字串,則傳入的字串中每個字元均為分割符)。首次呼叫時,s指向要分解的字串,之後再次呼叫要把s設成NULL。
int atoi(const char *nptr);
atoi (表示 ascii to integer)是把字串轉換成整型數的一個函式,應用在計算機程式和辦公軟體中。int atoi(const char *nptr) 函式會掃描引數 nptr字串,跳過前面的空白字元(例如空格,tab縮排)等,可以通過isspace( )函式來檢測),直到遇上數字或正負符號才開始做轉換,而在遇到非數字或字串結束符('\0')才結束轉換,並將結果返回。如果 nptr不能轉換成 int 或者 nptr為空字串,那麼將返回 0。特別注意,該函式要求被轉換的字串是按十進位制數理解的。
AT指令框架設計思路
好的程式碼應該具有良好的封裝和可讀性,AT指令直譯器的設計主要通過二級連結串列針對AT指令的特徵對指令進行分類,提高指令索引效率,通過回撥函式實現程式碼的良好封裝。其中一級資料結構如下所示:
typedef struct MemShell_t {//指令成員
char *Map;//指令儲存區域
uint16_t MapLength;//Map的長度
uint8_t begin;//指令的首地址
uint8_t end;//指令的結束地址
void(*CallBack)(char *,uint16_t);//回撥函式
struct MemShell_t *Next;//下一個節點
}MemShell_t, *MemShell_pt;
相關文章
- 基於 “typesys” 實現序列指令碼框架指令碼框架
- ETL指令碼的實現指令碼
- Vue指令實現原理Vue
- 實現springSecurity框架SpringGse框架
- http 框架的路由實現原理HTTP框架路由
- MIPS指令的CPU實現:ALU設計
- DIY 實現 ThinkPHP 核心框架(六)實現自己的 Composer 包PHP框架
- 模仿vue自己動手寫響應式框架(五)終章 - v-for指令實現Vue框架
- Locust 程式碼指令碼實現指令碼
- 【Linux】【Shell】主控指令碼實現Linux指令碼
- YUS框架之us指令框架
- 從零實現的瀏覽器Web指令碼瀏覽器Web指令碼
- elasticsearch實現簡單的指令碼排序(script sort)Elasticsearch指令碼排序
- 能用js實現的最終用js實現,Shell指令碼也不例外JS指令碼
- 實現指令碼自動部署docker指令碼Docker
- OpenMP 原子指令設計與實現
- shell指令碼實現DNS正向解析指令碼DNS
- Android 動畫框架實現Android動畫框架
- 實現MVC基礎框架MVC框架
- WebComponents框架direflow實現原理Web框架
- vue中點選空白處隱藏div的實現(用指令優雅的實現)Vue
- DIY 實現 ThinkPHP 核心框架(七)定義框架PHP框架
- redis執行lua指令碼的實現方法括饃Redis指令碼
- 用最短的javascript實現位址列載入指令碼JavaScript指令碼
- python指令碼實現開心消消樂的遊戲Python指令碼遊戲
- 基於Spring的流量拷貝框架實現Spring框架
- Vuetify+Laravel 實現的框架,有前途嗎?VueLaravel框架
- NetCore框架WTM的分表分庫實現NetCore框架
- 微服務框架的實現:舍與不捨微服務框架
- c++ web框架實現之靜態反射實現C++Web框架反射
- vue-自定義指令-實現提示功能Vue
- redis+lua指令碼實現介面限流Redis指令碼
- python實現自動搶課指令碼Python指令碼
- Python tkinter 實現 指令碼工具 GUI模版Python指令碼GUI
- PHP 框架中介軟體實現PHP框架
- Go 實現簡易 RPC 框架GoRPC框架
- Spark 框架安全認證實現Spark框架
- python的flask框架實現的小型二手商城PythonFlask框架