For the complete documentation index, see llms.txt. This page is also available as Markdown.

Serial Write

Este bloque de función envía datos crudos a través de una conexión serial seleccionada. Está pensado para transmisiones simples y no bloqueantes, y ofrece opciones en la UI para convertir tipos de datos comunes, añadir finales de línea y controlar el comportamiento de reenvío.

📥 Entradas

Enable Usar para habilitar o deshabilitar el envío. Cuando es false, el bloque no envía datos.

Data La carga (payload) a enviar. Acepta números, texto, listas, booleanos o valores tipo byte según los controles seleccionados.

ConnId Identificador de la conexión serial a usar. Proporciona el ConnId generado por un bloque gestor de conexiones.

📤 Salidas

Este bloque de función no produce salidas.

🕹️ Controles

Data Type Elige cómo se convertirá el valor de Data antes de enviarlo. Opciones comunes: string, integer, float, boolean y formatos byte/hex.

Line ending Selecciona una secuencia final para añadir al payload. Normalmente incluye opciones como LF, CRLF, CR o ninguno.

Send policy Elige cuándo transmitir:

  • On change: solo envía cuando el payload final (en bytes) difiere del último enviado.

  • Always: envía cada vez que el bloque se evalúa y está habilitado.

🎨 Características

  • Conversión de tipos de datos para formatos comunes: puedes introducir valores legibles y el bloque enviará la secuencia de bytes correspondiente.

  • Final de línea configurable para ajustarse a las expectativas del dispositivo remoto.

  • Política de envío para evitar repetir mensajes idénticos cuando no es necesario.

  • Escritura no bloqueante para que el flujo siga funcionando mientras se transmite la información.

  • Funciona junto con bloques gestores de conexión que proporcionan valores ConnId.

📊 Mecanismo de ejecución

Cuando el bloque se evalúa:

  1. Si la entrada Enable está inactiva o vacía, no se envía nada.

  2. Si hay Data y ConnId válidos, el bloque convierte Data según el Data Type seleccionado y añade el Line ending elegido.

  3. Si la Send policy es On change, el bloque compara el payload preparado con el payload previo y omite el envío si son idénticos.

  4. El payload en bytes preparado se envía a la conexión serial referenciada por ConnId sin bloquear el resto del sistema.

📝 Instrucciones de uso

  1. Crea o selecciona una conexión serial y toma nota de su identificador de conexión.

  2. Proporciona ese id en la entrada ConnId.

  3. Alimenta el valor que deseas enviar en la entrada Data.

  4. Ajusta el control Data Type para que coincida con tu dato (por ejemplo, usa HexBytes para cadenas hex o Bytes para listas de bytes).

  5. Elige el Line ending deseado si el dispositivo receptor lo espera.

  6. Usa Send policy para evitar reenvíos innecesarios cuando transmites valores constantes.

  7. Activa o desactiva el envío con Enable.

💡 Consejos y trucos

  • Combínalo con Serial Connect / bloques gestores de conexión (el connection manager del sistema) para obtener y gestionar valores ConnId.

  • Usa String Input o Number Input para preparar y validar Data antes de enviarlo.

  • Preformatea payloads complejos con String Merge o Data to JSON cuando necesites cadenas estructuradas (por ejemplo, mensajes JSON).

  • Si necesitas registrar o exportar los datos enviados, añade CSV Export o Image Logger (para registros visuales) aguas abajo en tu flujo.

  • Para envíos condicionales, combínalo con Logic Input, And, Or o Greater para controlar las transmisiones.

  • Para puentes de protocolo, empareja con MQTT Publish o REST API - Post para reenviar datos seriales a servicios de red.

  • Usa Debug Input para inspeccionar los payloads salientes durante el desarrollo.

🛠️ Resolución de problemas

  • No se envía nada: verifica que Enable esté activo, que Data no esté vacío y que ConnId haga referencia a una conexión activa.

  • El dispositivo receptor ignora los mensajes: comprueba el Line ending y prueba diferentes opciones (LF, CRLF, CR o ninguno).

  • Mensajes idénticos no se envían cuando se espera: confirma que la Send policy esté en Always si necesitas reenvíos constantes.

  • Bytes inesperados en la línea serial: asegúrate de que el Data Type coincida con el formato del valor que proporcionas (por ejemplo, usa HexBytes para cadenas hex o Bytes para listas numéricas).

Última actualización