2012-10-01 2 views
3

채팅을 통해 서버의 직렬 포트와 통신하기 위해 Tornado 웹 소켓 채팅 데모를 수정할 방법을 찾고 있습니다. 다음은 메시지를 보낼 때 호출되는 메서드 (?)입니다. serial.write()에 메시지의 본문을 보내서 serial fine에 쓸 수 있습니다. 그러나 문제는 한 번만 직렬 피드백을 얻을 수 있다는 것입니다. 그러나 현재의 응용 프로그램에서는 직렬로 데이터를 보낼 때보 다 더 많은 데이터를 보낼 수 있습니다.파이썬 토네이도 채팅을 통한 서버 쪽 시리얼

... 
    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) 

동시에 시리얼을 폴링하고 동시에 웹 소켓 IO를 처리하는 방법이 있습니까? 또한 실시간 다중 페이지 업데이트로 토네이도에 대한 쉬운 대안이 있다면 나는 반대하지 않을 것입니다. 나는 토네이도를 좋아하지만. 당신이 다른 방법을 드실 수 있습니다 때문에

답변

1

, 당신은 브라우저에서 직렬 및 웹 소켓를 통해 아두 이노 센서 보드에서 구동 인스턴스를 실시간 차트를 보여,이 complete working example에 관심이있을 수 있습니다. 이것은 Autobahn과 Twisted를 사용합니다.

공개 사항 : 저는 Autobahn의 원작자이며 Tavendo에서 일합니다.

+0

재미 나는 아우토반 발견이 게시하고 많은 행운이 있었다 몇 시간 후. 나도 그걸 권할거야. 고맙습니다. –

1

저는 Tornado와 Python의 다중 처리 라이브러리를 사용하여 다른 접근법을 사용했습니다. 자세한 내용은 여기를 사용할 수 있습니다 충분한

Raspberry Pi + Tornado + Arduino