使用CGI / AJAX序列化结构

时间:2019-05-21 13:32:15

标签: c arm stm32 keil

我正在STM32F4 MCU上设置嵌入式Web服务器。

我的程序变量存储在一个大数据结构中。例如,如果需要访问板的温度,只需检查Variables.Temperatures.BoardTemperature的值即可。

我以ad.cgi示例(可在https://www.keil.com/pack/doc/mw/Network/html/group__ws__ajax.html中找到)为基础,从我的软件变量中提取数据并将其存储在Web服务器上。这是我进行操作的示例:

在.cgi文件中,我将调用CGI函数:

c g 1 size=’10’ id=’TempValue’ value=’%1d’>

在我的HTTP_Server_CGI.c中,我使用netCGI_Script函数处理数据:

Switch (env[0]) {

          case 'g' : 

              len = (uint32_t)sprintf(buf, &env[4], Variables.Temperatures.BoardTemperature);

}

我将使用.cgx文件更新此值:

     t <form> 

     t <text> 

     t <id>TempValue</id>

     c <value>TempValue</value>

     t </form> 

最后,使用已经编写的updateForm函数,我将每500毫秒更新一次表单的值。

尽管此方法可以正常工作,但由于生成的代码数量惊人,我不愿意使用它。我有800多个变量需要不断更新。编写2400行代码以进行简单的数据传输似乎很奇怪。

我想从服务器中获取整个Acquisition结构到我的网页中,并使用JavaScript处理传入的数据,以便在MCU和Web服务器之间使用最少的HTTP请求。如何使用CGI和AJAX序列化该结构,以便之后可以对其进行处理?

0 个答案:

没有答案