0
我正在使用MSP430F5529LP和CC3100Boost開發IOT項目。硬件成功連接到雲並交換數據。對IOT設備的響應是基於XML的。我試圖解析數據。以下printf("\n%.*s\n", pch2-pch1-8, pch1 +8);
提取數據並打印到控制檯。現在需要將這些數據保存到一個變量中。這是我的代碼片段。答案可能很明顯,不幸的是我沒有看到它。解析MSP430F5529LP + CC3100Boost平臺上的XML文本
_i8 * databuffer;
char * pch0;
char * pch1;
char * pch2;
char data[7];
pch0 = strstr((char *)dataBuffer,"textResponse");
pch1 = strstr(pch0,"<text_1>");
pch2 = strstr(pch1,"</text_1>");
printf("\n%.*s\n", pch2-pch1-8, pch1 +8);
參考文獻:
- Extract data between two delimiters
- parsing the value in between two XML tags
- MSP430G2121: looking for a xml library to parse xml text
請注意,在低端微控制器上使用stdio.h是一個壞主意,因爲它非常耗費資源。我猜想它會在MSP430F5529上吹走大約5%的MCU資源(RAM +閃存)。通常它會吃掉大約1-2kb的RAM和16kb的閃存2-4kb。 – Lundin
@Lundin,這是一個概念設計的證明。但是,如果要實現相同的目標,你將如何使用stdio.h。處理每個字節而不是使用庫是典型情況。 –
編寫一個向UART發送字符的函數或者MCU上的任何標準輸出都相當容易。我們正在談論的是<100字節代碼大小的函數,而不是> 2kb,因爲執行完全相同的事情。另外,stdio.h因缺乏類型安全而臭名昭着。 – Lundin