Protocolos

⌘K
  1. Inicio
  2. Protocolos
  3. Protocolo DTPM
  4. DESCRIPCIÓN
  5. Respuesta del dispositivo

Respuesta del dispositivo

Si la trama de comunicación enviada al dispositivo está construida correctamente, este devolverá una confirmación (ACK) para validar la recepción. Por el contrario, si la trama presenta fallos estructurales (por ejemplo, el Checksum no corresponde o la cabecera es incorrecta), el dispositivo la ignorará y no devolverá ninguna respuesta.

Como norma general, una trama de datos sólo debe reenviarse si se han producido errores en la transmisión y no se ha recibido ningún ACK.

Comportamientos especiales en envíos múltiples:

  • Broadcast (ID = 0xFF): Todos los dispositivos conectados admitirán y ejecutarán la orden, pero no devolverán respuesta.
  • LocalCast: Si el ID del paquete coincide con la dirección LocalCast de uno o varios dispositivos, éstos admitirán el paquete sin devolver respuesta, mientras que el resto de los dispositivos conectados simplemente lo ignorarán.

Estructura de la respuesta general

La respuesta de confirmación estándar del dispositivo es sumamente concisa y consta únicamente de 2 bytes:

#BYTE VALOR NOMBRE DESCRIPCIÓN
1 0x06 ACK Código de validación fijo (ACK)
2 ERROR_CODE CÓDIGO ERROR Código de error del dispositivo

Esta respuesta dispone de un código de validación fijo (ACK) y un código de error devuelto por el dispositivo. Si la operación se ha realizado de forma correcta, este código de error será 0x00. (Puedes consultar los distintos códigos de error en el apartado de Anexos).

Excepciones en el byte de respuesta

Existen órdenes específicas que, en lugar de devolver un código de error en el segundo byte, devuelven información solicitada:

  • CHECKSUM (0x07): Devuelve el byte bajo del último Checksum recibido correctamente.
  • GET NUM PACKET (0x21): Devuelve el número del último paquete SEND recibido correctamente por el dispositivo.
  • GET BAT LEVEL (0x96): Devuelve un byte que indica el nivel de la batería del dispositivo.