es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo publicar un mensaje de matriz de bytes con mosquitto_pub en bash.

Tengo un script de bash que recibe un bytearray del script de Python y lo publica a través de mosquitto_pub, pero de alguna manera bash está corrompiendo estos datos y del lado del cliente estoy recibiendo datos incorrectos.

BashScript:

#!/bin/bash

echo -ne $(python Status.py) | mosquitto_pub -h localhost -t “component_status” -s

Fragmento de Python:
Estas son las últimas líneas del script de Python

print( bytearray(myobj.SerializeToString()) )
sys.exit(0)

Lo mismo funciona bien si lo envío desde el cliente mqtt de Python, pero necesito usar shell para este propósito.

También intenté la opción de archivos de mosquitto_pub de la siguiente manera, pero obtengo el mismo resultado:

echo -ne $(python Status.py) > status.bin
mosquitto_pub -h localhost -t “component_status” -f status.bin

Parece que bash no puede entender bytearray.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la forma en que estás enviando los datos desde el script bash. Podrías intentar usar la opción --stdin-file de mosquitto_pub para enviar los datos desde el script de Python. Esto asegurará que los datos se envíen correctamente.

    Por ejemplo:

    python Status.py | mosquitto_pub -h localhost -t "component_status" --stdin-file
    

Comments are closed.