主要用於解析通訊模塊回傳的AT指令寫的通用方法,可以在不修改代碼的情況下自動匹配指定的關鍵詞,並將關鍵詞後的字符串回傳志屏幕(用於回傳指令的抓取),可以移植到51/32等單片機
主要方法
int TryToCatch(int Type)//參數是希望匹配的指令編號
{
if (ch == SampleStr[Type][0])
{
i = 0;
do
{
ch = cin.get();
i++;
if (ch != SampleStr[Type][i] || ch == '\n')
break;
} while (SampleStr[Type][i] != '\0');
}
if (SampleStr[Type][i] == '\0')
{
return 1;
}
return 0;
}
全局變量
char SampleStr[][10] = { "AT:","Error" };//匹配的指令表
char ch;
int i = 1;
主程序
int flag = 0;
int type;
cout << "輸入你想檢測的信號" << endl;
cin >> type;
while (1)
{
do
{
ch = cin.get();
flag = TryToCatch(type);
if (flag == 1)
cout << ch;
} while (ch != '\n');
}
測試結果如下: