OpenCV(在C ++中)到MQTT代理

时间:2017-05-15 21:13:04

标签: python c++ json opencv

我的目标是从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发布者脚本之间工作。

感谢您的指导。谢谢。

2 个答案:

答案 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()