我的目标是从OpenCV(C ++)向(x,y)坐标发布JSON流到MQTT代理。我很担心从OpenCV传输JSON数据到MQTT的好方法。
我目前有一个MQTT代理,它管理计算机1上的Python发布者脚本和计算机2上的Javascript客户端脚本之间的JSON消息队列。我有计算机3运行OpenCV并需要发送许多小的JSON blob(x, y)近乎实时地与MQTT代理协调。
我最初考虑将OpenCV中的坐标连续写入本地文本文件,然后由并行运行的Python MQTT发布者脚本连续读取。但是,文件锁定存在问题,似乎不必写入磁盘。
理想情况下,我希望坐标流保留在内存中并经常发布到MQTT代理,比如说每10ms。我正在努力找到一种方法来使用stdin / stdout在OpenCV代码和Python发布者脚本之间工作。
感谢您的指导。谢谢。
答案 0 :(得分:1)
不确定您缺少哪些部分,但您基本上想要:
import someData from '../data/someData'
答案 1 :(得分:0)
您提到了发布商的python脚本。
这是发布者:
#!/usr/bin/env python3
import paho.mqtt.client as mqtt
# This is the Publisher
client = mqtt.Client()
client.connect("localhost",1883,60)
client.publish("topic/test", "Hello world!", qos=0, retain=False)
client.disconnect()
这里是订户: #!/ usr / bin / env python3 将paho.mqtt.client导入为mqtt
# This is the Subscriber
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("topic/test")
def on_message(client, userdata, msg):
if msg.payload.decode() == "Hello world!":
print("Yes!")
client.disconnect()
client = mqtt.Client()
client.connect("localhost",1883,60)
client.on_connect = on_connect
client.on_message = on_message
client.loop_forever()