- SOCK_STREAM (TCP): Para comandos y autenticación (requiere confiabilidad)
- SOCK_DGRAM (UDP): Para telemetría (permite pérdida ocasional de paquetes)
Todos los mensajes siguen el formato: TIPO:DATOS\n
AUTH:ADMIN:password- Autenticación como administradorAUTH:OBSERVER:- Conexión como observadorPING:- Keepalive
AUTH:OK:ADMIN- Autenticación exitosa como adminAUTH:OK:OBSERVER- Autenticación exitosa como observerAUTH:FAIL:reason- Fallo en autenticaciónPONG:- Respuesta a ping
TELEMETRY:speed,battery,temperature,direction- speed: velocidad en km/h (0-120)
- battery: nivel de batería en % (0-100)
- temperature: temperatura en °C (-20 a 80)
- direction: FORWARD, LEFT, RIGHT, BACKWARD
Ejemplo: TELEMETRY:45.5,87,23.2,FORWARD
CMD:SPEED_UP- Aumentar velocidadCMD:SLOW_DOWN- Reducir velocidadCMD:TURN_LEFT- Girar a la izquierdaCMD:TURN_RIGHT- Girar a la derechaCMD:LIST_CLIENTS- Listar clientes conectados
CMD:OK:command_executed- Comando ejecutado exitosamenteCMD:FAIL:reason- Error en ejecuciónCLIENTS:count,client1_ip:port:type,client2_ip:port:type,...
DISCONNECT:- Cliente se desconectaDISCONNECT:reason- Servidor desconecta cliente
ERROR:INVALID_FORMAT- Formato de mensaje inválidoERROR:UNAUTHORIZED- Operación no autorizadaERROR:UNKNOWN_COMMAND- Comando desconocidoERROR:CONNECTION_LOST- Conexión perdida
- Cliente se conecta al servidor
- Cliente envía mensaje de autenticación
- Servidor responde con confirmación o error
- Si es exitoso:
- Observer: recibe telemetría cada 10s
- Admin: recibe telemetría + puede enviar comandos
- Cliente puede desconectarse enviando DISCONNECT