【问题标题】:Server side serial over python tornado chat服务器端串行通过 python 龙卷风聊天
【发布时间】:2012-10-01 21:50:33
【问题描述】:

我正在寻找一种修改 Tornado Websockets 聊天演示的方法,以便通过聊天与服务器上的串行端口进行通信。下面显示的是发送消息时调用的方法(?)。我可以写到串行发送消息的正文到serial.write()。但问题是我只能获得一次串行反馈。然而,在我当前的应用程序中,串行可能会发送更多的数据,而不仅仅是在被交谈时。

    ...
    import serial
    serial = serial.Serial("COM3", 57600)
    ...
    def on_message(self, message):
        test = ""
        logging.info("got message %r", message)
        parsed = tornado.escape.json_decode(message)

        serial.write(parsed["body"] + "\n")
        logging.info("SENT " + parsed["body"] + "\n")
        test = serial.readline()

        chat = {
            "id": str(uuid.uuid4()),
            "body": test,
            }

        chat["html"] = self.render_string("message.html", message=chat)

        ChatSocketHandler.update_cache(chat)
        ChatSocketHandler.send_updates(chat)

有没有办法不断轮询串行并同时处理 websockets IO?此外,如果有一个更简单的替代 Tornado 的实时多页面更新,我不会反对。虽然我很喜欢龙卷风。

【问题讨论】:

    标签: javascript python websocket serial-port tornado


    【解决方案1】:

    由于您对其他方法持开放态度,您可能对此complete working example 感兴趣,它展示了浏览器中的实时图表 实例驱动从 Arduino 传感器板通过串行和 WebSocket。这使用 Autobahn 和 Twisted。

    披露:我是 Autobahn 的原作者,为 Tavendo 工作。

    【讨论】:

    • 有趣的是,在我发布这篇文章几个小时后,我找到了 Autobahn 并且很幸运。我也会推荐它。谢谢。
    【解决方案2】:

    我使用了一种不同的方法来使用 Tornado 和 Python 的多处理库。详情可在此处获得:

    Raspberry Pi + Tornado + Arduino

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2018-05-04
      • 2014-08-02
      相关资源
      最近更新 更多