解析MSP430F5529LP + CC3100Boost平台上的XML文本

解析MSP430F5529LP + CC3100Boost平台上的XML文本

问题描述:

我正在使用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); 

参考文献:

+0

请注意,在低端微控制器上使用stdio.h是一个坏主意,因为它非常耗费资源。我猜想它会在MSP430F5529上吹走大约5%的MCU资源(RAM +闪存)。通常它会吃掉大约1-2kb的RAM和16kb的闪存2-4kb。 – Lundin

+1

@Lundin,这是一个概念设计的证明。但是,如果要实现相同的目标,你将如何使用stdio.h。处理每个字节而不是使用库是典型情况。 –

+1

编写一个向UART发送字符的函数或者MCU上的任何标准输出都相当容易。我们正在谈论的是 2kb,因为执行完全相同的事情。另外,stdio.h因缺乏类型安全而臭名昭着。 – Lundin

  1. 确保接收到的数据是有效和适合的长度。
  2. 使用sprintf()或等效函数将其打印为字符串。
  3. 将此字符串打印到控制台puts(the_string)