Merge branch 'master' of git://github.com/r0ket/r0ket
This commit is contained in:
commit
1d6915538c
|
@ -0,0 +1,88 @@
|
|||
import time
|
||||
import Queue
|
||||
import tornado.escape
|
||||
import tornado.ioloop
|
||||
import tornado.options
|
||||
import tornado.web
|
||||
import tornado.websocket
|
||||
import os.path
|
||||
import logging
|
||||
import threading
|
||||
import socket
|
||||
|
||||
from tornado.options import define, options
|
||||
|
||||
define("port", default=8888, help="run on the given port", type=int)
|
||||
|
||||
pong=None
|
||||
pos=0.5
|
||||
|
||||
def sendpos():
|
||||
if pong:
|
||||
pong.write_message("{ \"right\": "+str(pos)+" }")
|
||||
threading.Timer(.5,sendpos).start()
|
||||
|
||||
sendpos()
|
||||
|
||||
def receivedPacket(packet):
|
||||
global pos
|
||||
if isinstance(packet,r0ketrem0te.packets.Button):
|
||||
if packet.button == 2:
|
||||
pos+=.01
|
||||
if packet.button == 1:
|
||||
pos-=.01
|
||||
if pos <0:
|
||||
pos=0
|
||||
if pos >1:
|
||||
pos=1
|
||||
|
||||
def workPacket(data, addr):
|
||||
print "new packet:", list(data), addr
|
||||
|
||||
def readerThread():
|
||||
sock = socket.socket( socket.AF_INET, # Internet
|
||||
socket.SOCK_DGRAM ) # UDP
|
||||
sock.bind(("0.0.0.0", 2342))
|
||||
|
||||
while 1:
|
||||
data, addr = sock.recvfrom(1024)
|
||||
workPacket(data, addr)
|
||||
|
||||
reader = threading.Thread(target = readerThread)
|
||||
reader.daemon = True
|
||||
|
||||
reader.start()
|
||||
|
||||
class Application(tornado.web.Application):
|
||||
def __init__(self):
|
||||
handlers = [
|
||||
(r"/data", DataSocketHandler),
|
||||
]
|
||||
settings = dict(
|
||||
cookie_secret="43oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",
|
||||
template_path=os.path.join(os.path.dirname(__file__), "templates"),
|
||||
static_path=os.path.join(os.path.dirname(__file__), "static"),
|
||||
xsrf_cookies=True,
|
||||
autoescape=None,
|
||||
)
|
||||
tornado.web.Application.__init__(self, handlers, **settings)
|
||||
|
||||
class DataSocketHandler(tornado.websocket.WebSocketHandler):
|
||||
waiters = set()
|
||||
def open(self):
|
||||
global pong
|
||||
print "WebSocket: Open"
|
||||
DataSocketHandler.waiters.add(self)
|
||||
pong=self
|
||||
|
||||
def on_close(self):
|
||||
print "WebSocket: Close"
|
||||
DataSocketHandler.waiters.remove(self)
|
||||
|
||||
def on_message(self, message):
|
||||
print "Got message: ",message
|
||||
|
||||
tornado.options.parse_command_line()
|
||||
app = Application()
|
||||
app.listen(options.port,'127.0.0.1')
|
||||
tornado.ioloop.IOLoop.instance().start()
|
Loading…
Reference in New Issue