3

我正在寻找一种修改 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 的实时多页面更新,我不会反对。虽然我很喜欢龙卷风。

4

2 回答 2

1

由于您对其他方法持开放态度,因此您可能会对这个完整的工作示例感兴趣,该示例在浏览器实例中通过串行和 WebSocket演示从 Arduino 传感器板驱动的实时图表。这使用高速公路和扭曲。

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

于 2012-10-02T08:15:56.813 回答
1

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

树莓派 + 龙卷风 + Arduino

于 2013-02-27T23:38:06.667 回答