httpdynamicembedded-control

Display dynamic content from embedded web server


I have an embedded device running a slimmed down version of a HTTP server. Currently, it can display static HTML pages. Here is an example of how it displays a static HTML page:

   char *text="HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n"
          "<html><body>Hello World!</body></html>";
   IPWrite(socket, (uint8*)text, (int)strlen(text));
   IPClose(socket);

What I'd like to do is display dynamic content, e.g. a reading from a sensor. What I thought of so far is to have the page refresh every once in awhile with

<meta http-equiv="refresh" content="600">

and use sprintf() to attach the sensor reading to the text variable for the response.

Is there a way I can do this without having to refresh the page constantly?


Solution

  • You can try the following (from my experience) approach: - Divide static and dynamic content, minimize dynamic content.

    sprintf(cgi_str, "HTTP/1.0 200 OK\r\nContent-Type: text\r\nContent-Length: %d\r\n\r\nvalue=%02d", 8, sensor_value);

    or just (that's all about your design considerations):

    sprintf(cgi_str, "HTTP/1.0 200 OK\r\nContent-Type: text\r\nContent-Length: %d\r\n\r\n%02d", 2, sensor_value);

    This allows to organize communication in very efficient way, instead of reloading of the full page: part of code - user front end - will be executed in browser, other part - back end - on the embedded device.