Como empaquetar lecturas de señales y enviarlas por ethernet a interfaz en C

Buen día les comento, estoy en un proyecto en el que tengo que leer variables de diferentes sistemas, procesarlas y enviarlas por cable ethernet a una interfaz en C la cual tendrá que leer la información que yo le envíe por dirección IP, el día de ayer logré comunicar mi arduino con el shield W5500 (solo como prueba leyendo 2 variables en un navegador).

#include <SPI.h>
#include <Ethernet.h>

// Escriba una dirección MAC y la dirección IP para el controlador.
// La dirección IP será dependiente de la red local:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(169,254,111,68);

// Inicializar la libreria de servidor Ethernet
// Con la dirección IP y el puerto que desee utilizar
// (Puerto 80 es el valor predeterminado para HTTP):
EthernetServer server(80);
void setup() {

  // Abre el puero serie de cmunicacion y espera:
Serial.begin(9600);
while (!Serial) {
; // poner aqui un delay de espera para que se conecte el puerto. Solo necesario para
// Arduino Leonardo
}

// inicia la conexion y el servidor:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {

// Detectar los clientes entrantes
EthernetClient client = server.available();
if (client) {
Serial.println("Nuevo cliente");

// Una petición http termina con una línea en blanco
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);

// Si se ha llegado al final de la línea (recibirá una nueva línea
// con un Caracter en blanco, la petición http ha terminado,
// Para que pueda enviar una respuesta
if (c == '\n' && currentLineIsBlank) {{

  // send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Conexion Cerrada: cerrada");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("VALORES DE ENTRADAS ANALOGICAS ");
client.println("
");

// Añadir una etiqueta para conseguir que el navegador se actualice cada 5 segundos:
client.println("<meta http-equiv=\"refresh\" content=\"1\">");

client.print("Entrada digital "); //Imprimir valor entrada digital
client.print("2");
client.print(" es ");
client.print(digitalRead(2)); // Lectura del pin 2 (digital)
client.println("
");
client.println("
");
client.print("Entrada analoga"); //Imprimir valor entrada análoga
client.print("0");
client.print(" es ");
client.print(analogRead(0)); // Lectura del pin 0 (analogo)
client.println("
");
client.println("
");
break;
}

}
if (c == '\n') {

// se inicia una nueva linea
currentLineIsBlank = true;
}
else if (c != '\r') {

// ha llegado a un caracter en la línea actual
currentLineIsBlank = false;
}
}
}
// facilita al navegador web un tiempo para recibir los datos
delay(1);
// cierra la conexión:
client.stop();
Serial.println("Cliente desconectado");
}
}

En la interfaz en C++ se tienen los cuadros de texto donde se supone se deben desplegar los valores (analógicos y digitales) que yo leeré con el arduino, pero como saber que señal corresponde a cada cuadro texto o a cada indicador. En el código anterior lo que puedo entender es que imprime de golpe todos como texto ya que yo estoy programando el servidor en el mismo sketch.

¿Que tendría que hacer para poder asignar a cada cuadro de texto su respectiva señal en la interfaz en C?

¿Se puede empaquetar las señales en una trama o un paquete de datos desde el scketch con algún tipo de identificador o codificación para después leer esa trama y decodificarla en la interfaz? o cual es su sugerencia.

Espero haberme explicado lo mejor posible, cualquier aclaración estoy al pendiente.

Hay un tutorial de Metaconta en Documentacion, buscalo.

surbyte

Gracias por la información, me podrías indicar el nombre del documento para buscarlo, encontré algunos con visual basic y el puerto serie, funciona igual para cable ethernet?

Otra cosa el video que me mandarías no llego.

Buen día

Disculpa crees que me se los nombres de todos los tutoriales publicados?
Busca en Search Metaconta y analiza los que esten en Documentacion.

Pensé que lo recordabas, gracias

como te dije Metaconta usando Search

No se si te servirá pero habla con el que le encanta este tema.