
需要去掉標簽(AA AA 04 80 02),保留標簽后兩位資料,大佬們有什么思路嗎? 求代碼
uj5u.com熱心網友回復:
真懶。這都是固定模式,按照協議直接對號入座就行。。uj5u.com熱心網友回復:
#include <stdio.h>
#include <string.h>
int main() {
unsigned char s[24]={
0xAA,0xAA,0x04,0x80,0x02,0x12,0x34,0x99,
0xAA,0xAA,0x04,0x80,0x02,0x56,0x78,0x99,
0xAA,0xAA,0x04,0x80,0x02,0x12,0x34,0x99,
};
unsigned char m[5]={0xAA,0xAA,0x04,0x80,0x02};
unsigned char d[6];
unsigned char *ps,*pd;
ps=s;
pd=d;
while (1) {
if (0==memcmp(ps,m,5)) {
pd[0]=ps[5];
pd[1]=ps[6];
ps+=8;
pd+=2;
if (ps-s>=24 || pd-d>=6) break;
} else break;
}
for (int i=0;i<6;i++) printf("0x%02X ",d[i]);
return 0;
}
//0x12 0x34 0x56 0x78 0x12 0x34
uj5u.com熱心網友回復:
通訊協議應該是這樣的:頭+資料長度+資料正文+校驗
例如:AA 44 05 01 02 03 04 05 EA
這里我假設的一條資料,協議如下:
資料頭:AA 44
資料長度: 05
資料正文: 01 02 03 04 05
校驗:EA
現在我有一個這樣的txt檔案,想把里面的資料正文決議出來,請問有代碼 嗎?
uj5u.com熱心網友回復:
根據協議格式,定義一個結構體,對號入座,接下來就是memcpy了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/235158.html
標籤:C語言
