missing www
This commit is contained in:
parent
5f7c61f616
commit
cfc7c70d16
131 changed files with 11126 additions and 661 deletions
273
clitools/exports/tosimu.py
Normal file
273
clitools/exports/tosimu.py
Normal file
|
|
@ -0,0 +1,273 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# -*- mode: Python -*-
|
||||
|
||||
'''
|
||||
tosimu
|
||||
exporter to simulocal page in www.
|
||||
v0.1b
|
||||
|
||||
'''
|
||||
from __future__ import print_function
|
||||
import websocket
|
||||
import time
|
||||
import argparse
|
||||
import traceback
|
||||
import sys
|
||||
from websocket_server import WebsocketServer
|
||||
|
||||
try:
|
||||
import thread
|
||||
except ImportError:
|
||||
import _thread as thread
|
||||
|
||||
name = "exports::tosimu"
|
||||
|
||||
def debug(*args, **kwargs):
|
||||
if( verbose == False ):
|
||||
return
|
||||
print(*args, file=sys.stderr, **kwargs)
|
||||
|
||||
|
||||
argsparser = argparse.ArgumentParser(description="toWS v0.1b help mode")
|
||||
argsparser.add_argument("-v","--verbose",action="store_true",help="Verbose output")
|
||||
argsparser.add_argument("-s","--server",help="WS server IP (127.0.0.1 by default)", type=str)
|
||||
argsparser.add_argument("-p","--port",help="WS port to bind to (9001 by default)", type=str)
|
||||
argsparser.add_argument("-k","--key",help="Redis key to update",default="0",type=str)
|
||||
args = argsparser.parse_args()
|
||||
|
||||
key = args.key
|
||||
|
||||
if args.verbose:
|
||||
verbose = True
|
||||
else:
|
||||
verbose = False
|
||||
|
||||
if args.server:
|
||||
serverIP = args.server
|
||||
else:
|
||||
serverIP = "127.0.0.1"
|
||||
|
||||
if args.port:
|
||||
wsPORT = args.port
|
||||
else:
|
||||
wsPORT = 9001
|
||||
|
||||
debug("")
|
||||
debug("tosimu v0.1b")
|
||||
|
||||
points0 = "[(150.0, 230.0, 65280), (170.0, 170.0, 65280), (230.0, 170.0, 65280), (210.0, 230.0, 65280), (150.0, 230.0, 65280)]"
|
||||
points1 = "[(180.0, 230.0, 65280), (200.0, 170.0, 65280), (180.0, 230.0, 65280)]"
|
||||
points2 = "[(170.0, 190.0, 65280), (200.0, 170.0, 65280), (230.0, 190.0, 65280), (230.0, 200.0, 65280), (170.0, 230.0, 65280), (230.0, 230.0, 65280)]"
|
||||
points3 = "[(170.0, 170.0, 65280), (200.0, 170.0, 65280), (230.0, 190.0, 65280), (200.0, 200.0, 65280), (230.0, 210.0, 65280), (200.0, 230.0, 65280), (170.0, 230.0, 65280)]"
|
||||
points = [points0, points1, points2, points3]
|
||||
|
||||
LaserNumber = 1
|
||||
SceneNumber = 0
|
||||
Laser = 0
|
||||
|
||||
|
||||
# Change current laser.
|
||||
def NoteOn(note):
|
||||
debug("NoteOn", note)
|
||||
|
||||
# Change laser client
|
||||
if note < 8:
|
||||
|
||||
Laser = note
|
||||
debug("Current Laser switched to", Laser)
|
||||
sendWSall("/status Laser " + str(Laser))
|
||||
sendWSall("/simul" +" "+ points[Laser])
|
||||
|
||||
# Change PL displayed on webui
|
||||
if note > 23 and note < 32:
|
||||
if note - 24 > LaserNumber -1:
|
||||
debug("Only",LaserNumber,"lasers asked, you dum ass !")
|
||||
sendWSall("/redstatus No Laser"+str(note-24))
|
||||
sendWSall("/laser "+str(LaserNumber-1))
|
||||
sendWSall("/simul" +" "+ points[LaserNumber-1])
|
||||
else:
|
||||
Laser = note -24
|
||||
debug("Current Laser switched to", Laser)
|
||||
sendWSall("/status Laser " + str(Laser))
|
||||
sendWSall("/simul" +" "+ points[Laser])
|
||||
|
||||
#
|
||||
# Websocket server
|
||||
#
|
||||
|
||||
|
||||
# Called for every WS client connecting (after handshake)
|
||||
def new_client(client, wserver):
|
||||
|
||||
|
||||
debug("WS server got new client connected and was given id %d" % client['id'])
|
||||
sendWSall("/status Hello " + str(client['id']))
|
||||
sendWSall("/laser "+str(0))
|
||||
sendWSall("/lack/" + str(0) + " 3")
|
||||
sendWSall("/lstt/" + str(0) + " 3")
|
||||
sendWSall("/simul" +" "+ points[0])
|
||||
|
||||
|
||||
# Called for every WS client disconnecting
|
||||
def client_left(client, wserver):
|
||||
|
||||
try:
|
||||
debug("WS server had client(%d) disconnected" % client['id'])
|
||||
|
||||
except:
|
||||
debug("Something weird is coming from",client,"on the wire...")
|
||||
pass
|
||||
|
||||
|
||||
|
||||
# Called for each WS received message.
|
||||
def message_received(client, wserver, message):
|
||||
|
||||
#if len(message) > 200:
|
||||
# message = message[:200]+'..'
|
||||
|
||||
oscpath = message.split(" ")
|
||||
#print "WS Client", client['id'], "said :", message, "splitted in an oscpath :", oscpath
|
||||
#if( verbose == True ):
|
||||
# debug("WS server's client", client['id'], "said :", message)
|
||||
|
||||
if message[0:5] == "/simu":
|
||||
debug("WS server sending to simu page :",message)
|
||||
sendWSall(message)
|
||||
|
||||
if message[0:7] == "/noteon":
|
||||
oscpath = message.split(" ")
|
||||
debug("WS server got new laser", int(oscpath[1]))
|
||||
NoteOn(int(oscpath[1]))
|
||||
|
||||
|
||||
def sendWSall(message):
|
||||
if ( verbose == True ):
|
||||
debug("WS server is sending to all : %s" % (message))
|
||||
wserver.send_message_to_all(message)
|
||||
|
||||
|
||||
def LaunchServer(*args):
|
||||
global wserver
|
||||
|
||||
try:
|
||||
|
||||
# Websocket server
|
||||
wserver = WebsocketServer(wsPORT,host=serverIP)
|
||||
|
||||
debug("Launching Websocket server...")
|
||||
debug("at", serverIP, "port",wsPORT)
|
||||
wserver.set_fn_new_client(new_client)
|
||||
wserver.set_fn_client_left(client_left)
|
||||
wserver.set_fn_message_received(message_received)
|
||||
debug("LJ local server running...")
|
||||
debug("")
|
||||
|
||||
# websocket server loop
|
||||
wserver.run_forever()
|
||||
|
||||
|
||||
except EOFError:
|
||||
debug("break")# no more information
|
||||
|
||||
finally:
|
||||
|
||||
debug("sendWS terminating...")
|
||||
|
||||
|
||||
|
||||
#
|
||||
# CLI websocket client -> WS server (nanoLJ) -> webpage
|
||||
#
|
||||
|
||||
def on_message(ws, message):
|
||||
pass
|
||||
#debug("CLI WS client received and dropped "+message)
|
||||
|
||||
def on_error(ws, error):
|
||||
debug("CLI WS client got error :"+error)
|
||||
|
||||
def on_close(ws):
|
||||
debug("### CLI WS client WS closed ###")
|
||||
|
||||
def on_open(ws):
|
||||
|
||||
def run(*args):
|
||||
|
||||
try:
|
||||
while True:
|
||||
line = sys.stdin.readline()
|
||||
if line == "":
|
||||
time.sleep(0.01)
|
||||
|
||||
#debug("CLI string", line)
|
||||
line = line.rstrip('\n')
|
||||
line=line[1:-1]
|
||||
line = line.replace("[",'(')
|
||||
line = line.replace("]",')')
|
||||
#debug(line)
|
||||
line = "[{}]".format(line)
|
||||
debug("CLI proccess sending : /simul" +" "+ line)
|
||||
#sendWSall("/simul" +" "+ str(points[laserid].decode('ascii')))
|
||||
ws.send("/simul "+line)
|
||||
#debug("exports::tosimuCLIent "+str(key)+" "+line)
|
||||
|
||||
except EOFError:
|
||||
debug("tosimu break")# no more information
|
||||
|
||||
finally:
|
||||
ws.close()
|
||||
debug("tosimu WS terminating...")
|
||||
|
||||
|
||||
thread.start_new_thread(run, ())
|
||||
|
||||
def handle_timeout(self):
|
||||
self.timed_out = True
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Launch WS server and CLI client
|
||||
#
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
try:
|
||||
|
||||
# Websocket server
|
||||
thread.start_new_thread(LaunchServer, ())
|
||||
|
||||
# CLI Websocket client
|
||||
debug("Launching tosimu CLI websocket client...")
|
||||
#websocket.enableTrace(True)
|
||||
websocket.enableTrace(False)
|
||||
ws = websocket.WebSocketApp("ws://"+str(serverIP)+":"+str(wsPORT),
|
||||
on_message = on_message,
|
||||
on_error = on_error,
|
||||
on_close = on_close)
|
||||
ws.on_open = on_open
|
||||
ws.run_forever()
|
||||
|
||||
except Exception:
|
||||
debug("tosimu Exception")
|
||||
traceback.print_exc()
|
||||
|
||||
'''
|
||||
if __name__ == "__main__":
|
||||
websocket.enableTrace(True)
|
||||
ws = websocket.WebSocketApp("ws://"+str(serverIP)+":"+str(wsPORT),
|
||||
on_message = on_message,
|
||||
on_error = on_error,
|
||||
on_close = on_close)
|
||||
ws.on_open = on_open
|
||||
ws.run_forever()
|
||||
'''
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue