This commit is contained in:
nrhck 2019-03-17 04:19:57 +01:00
parent c27151ec62
commit 798ac06fd1
14 changed files with 299 additions and 158 deletions

View file

@ -607,9 +607,16 @@ def OSCrun(value):
print("I got /run with value", value)
doit = value
# /quit
def OSCquit():
WebStatus("Bank0 stopping")
print("Stopping OSC...")
lj3.OSCstop()
sys.exit()
def WebStatus(message):
lj3.Send("/status",message)
lj3.SendLJ("/status",message)
#doit = Starfield
@ -629,6 +636,7 @@ osc_udp_server("127.0.0.1", OSCinPort, "InPort")
osc_method("/bank0/run*", OSCrun)
osc_method("/bank0/ping*", lj3.OSCping)
osc_method("/bank0/ljclient", OSCljclient)
osc_method("/quit", OSCquit)
import pygame

View file

@ -69,15 +69,7 @@ def OSCframe():
def OSCstop():
osc_terminate()
# Answer to LJ pings
def OSCping(value):
# Will receive message address, and message data flattened in s, x, y
print("I got /ping with value", value)
Send("/pong",value)
def Send(oscaddress,oscargs=''):
def SendLJ(oscaddress,oscargs=''):
try:
msg = oscbuildparse.OSCMessage(oscaddress, None, [oscargs])
@ -87,6 +79,15 @@ def Send(oscaddress,oscargs=''):
except:
print ('Connection to LJ refused : died ?')
pass
# Answer to LJ pings
def OSCping(value):
# Will receive message address, and message data flattened in s, x, y
print("I got /ping with value", value)
SendLJ("/pong",value)
'''
def handlerfunction(s, x, y):
# Will receive message data unpacked in s, x, y

View file

@ -20,10 +20,10 @@ duration = 300
OSCinPort = 8006
Word0 = "0"
Word1 = "1"
Word2 = "2"
Word3 = "3"
Word0 = "LASER"
Word1 = "LASER"
Word2 = "LASER"
Word3 = "LASER"
'''
is_py2 = sys.version[0] == '2'
@ -32,8 +32,7 @@ if is_py2:
else:
from queue import Queue
'''
print ("")
print ("Arguments parsing if needed...")
print ("Words is checking arguments parsing if needed...")
argsparser = argparse.ArgumentParser(description="Text Cycling for LJ")
argsparser.add_argument("-r","--redisIP",help="IP of the Redis server used by LJ (127.0.0.1 by default) ",type=str)
argsparser.add_argument("-c","--client",help="LJ client number (0 by default)",type=int)
@ -65,55 +64,74 @@ lj3.Config(redisIP,ljclient)
def OSCword0(value):
global Word0
# Will receive message address, and message data flattened in s, x, y
print("I got /words with value", value)
print("Words 0 got /words/text/0 with value", value)
Word0 = value
def OSCword1(value):
global Word1
# Will receive message address, and message data flattened in s, x, y
print("I got /words with value", value)
print("Words 1 got /words/text/1 with value", value)
Word1 = value
def OSCword2(value):
global Word2
# Will receive message address, and message data flattened in s, x, y
print("I got /words with value", value)
print("Words 2 got /words/text/2 with value", value)
Word3 = value
def OSCword3(value):
global Words3
# Will receive message address, and message data flattened in s, x, y
print("I got /words with value", value)
print("Words 3 got /words/text/3 with value", value)
Word3 = value
def OSCljclient(value):
# Will receive message address, and message data flattened in s, x, y
print("I got /words/ljclient with value", value)
print("Words got /words/ljclient with value", value)
ljclient = value
lj3.LjClient(ljclient)
def WebStatus(message):
lj3.Send("/status",message)
# /ping
def OSCping():
lj3.OSCping("words")
lj3.SendLJ("words/text/0",Word0)
lj3.SendLJ("words/text/1",Word1)
# /quit
def OSCquit():
lj3.OSCquit("Words")
def Run():
WebStatus("Load Words")
# OSC Server callbacks
print("Starting OSC at 127.0.0.1 port",OSCinPort,"...")
print("Words starting its OSC server at 127.0.0.1 port",OSCinPort,"...")
osc_startup()
osc_udp_server("127.0.0.1", OSCinPort, "InPort")
osc_method("/words/0*", OSCword0)
osc_method("/words/1*", OSCword1)
osc_method("/words/2*", OSCword2)
osc_method("/words/3*", OSCword3)
osc_method("/ping*", lj3.OSCping)
osc_method("/words/text/0*", OSCword0)
osc_method("/words/text/1*", OSCword1)
osc_method("/words/text/2*", OSCword2)
osc_method("/words/text/3*", OSCword3)
osc_method("/ping*", OSCping)
osc_method("/words/ljclient", OSCljclient)
osc_method("/quit", OSCquit)
color = lj3.rgb2int(255,255,255)
WebStatus("Words ready.")
lj3.WebStatus("Loading Words...")
lj3.WebStatus("Words ready.")
lj3.SendLJ("/words/start 1")
lj3.SendLJ("words/text/0",Word0)
lj3.SendLJ("words/text/1",Word1)
try:
@ -142,8 +160,8 @@ def Run():
finally:
WebStatus("Words Exit")
print("Stopping OSC...")
lj3.WebStatus("Words Exit")
print("Stopping Words OSC...")
lj3.OSCstop()
print ("Words Stopped.")

View file

@ -1,7 +1,9 @@
# coding=UTF-8
'''
LJ v0.8.1 in python3
lj3 v0.8.1
Some LJ functions useful for python clients (was framy.py)
OSC functions commented, waiting working on OSC in python3
@ -11,24 +13,25 @@ PolyLineOneColor
rPolyLineOneColor
Text(word, color, PL, xpos, ypos, resize, rotx, roty, rotz) : Display a word
Send(adress,message) : remote control. See commands.py
WebStatus(message) : display message on webui
SendLJ(adress,message) : LJ remote control. See commands.py
WebStatus(message) : display message on webui
DrawPL(point list number) : once you stacked all wanted elements, like 2 polylines, send them to lasers.
rgb2int(r,g,b)
OSCstart(): Start the OSC system.
OSCframe():
OSCstop(): Properly close the OSC system
OSCping(value): Answer to LJ pings
OSCstart(): Start the OSC system.
OSCframe(): Handle incoming OSC message. Calling the right callback
OSCstop(): Properly close the OSC system
OSCping(value): Answer to LJ pings by sending /pong value
OSCquit(name): Exit calling script using name in terminal
setup_controls(joystick)
XboxController : getLeftHori, getLeftVert, getRightHori, getRightVert, getLeftTrigger, getRightTrigger
Ps3Controller : getLeftHori, getLeftVert, getRightHori, getRightVert, getLeftTrigger, getRightTrigger, getUp, getDown, getLeft, getRight, getFire1, getFire2(self):
XboxController : getLeftHori, getLeftVert, getRightHori, getRightVert, getLeftTrigger, getRightTrigger
Ps3Controller : getLeftHori, getLeftVert, getRightHori, getRightVert, getLeftTrigger, getRightTrigger, getUp, getDown, getLeft, getRight, getFire1, getFire2(self):
MySaitekController : getLeftHori,getLeftVert, getRightHori,getRightVert, getLeftTrigger,getRightTrigger
MyThrustController : getLeftHori, getLeftVert, getRightHori, getRightVert, getLeftTrigger, getRightTrigger
CSLController : getLeftHori,getLeftVert,getRightHori, getRightVert,getLeftTrigger,getRightTrigger,getFire1,getFire2
my USB Joystick : getUp,getDown,getLeft,getRight,etLeftTrigger, getRightTrigger,getFire1, getFire2
CSLController : getLeftHori,getLeftVert,getRightHori, getRightVert,getLeftTrigger,getRightTrigger,getFire1,getFire2
my USB Joystick : getUp,getDown,getLeft,getRight,etLeftTrigger, getRightTrigger,getFire1, getFire2
LICENCE : CC
@ -72,14 +75,7 @@ def OSCstop():
osc_terminate()
# Answer to LJ pings
def OSCping(value):
# Will receive message address, and message data flattened in s, x, y
print("I got /ping with value", value)
Send("/pong",value)
def Send(oscaddress,oscargs=''):
def SendLJ(oscaddress,oscargs=''):
try:
msg = oscbuildparse.OSCMessage(oscaddress, None, [oscargs])
@ -89,6 +85,26 @@ def Send(oscaddress,oscargs=''):
except:
print ('Connection to LJ refused : died ?')
pass
def WebStatus(message):
SendLJ("/status", message)
# Answer to LJ pings
def OSCping(value):
# Will receive message address, and message data flattened in s, x, y
print("Got /ping with value", value)
SendLJ("/pong",value)
# /quit
def OSCquit(name):
WebStatus(name + " quit.")
print("Stopping OSC...")
OSCstop()
sys.exit()
'''
def handlerfunction(s, x, y):
# Will receive message data unpacked in s, x, y
@ -321,7 +337,6 @@ def ResetPL(self, PL):
pl[PL] = []
def DigitsDots(number,color):
dots =[]
for dot in ASCII_GRAPHICS[number]:
@ -330,6 +345,7 @@ def DigitsDots(number,color):
#self.point_list.append((xy + (c,)))
return dots
def CharDots(char,color):
dots =[]
@ -337,6 +353,7 @@ def CharDots(char,color):
dots.append((dot[0],dot[1],color))
return dots
def Text(message,c, PL, xpos, ypos, resize, rotx, roty, rotz):
dots =[]

View file

@ -54,7 +54,7 @@ def OSCstop():
osc_terminate()
def Send(oscaddress,oscargs=''):
def SendLJ(oscaddress,oscargs=''):
try:
msg = oscbuildparse.OSCMessage(oscaddress, None, [oscargs])
@ -64,6 +64,13 @@ def Send(oscaddress,oscargs=''):
except:
print ('Connection to LJ refused : died ?')
pass
# Answer to LJ pings
def OSCping(value):
# Will receive message address, and message data flattened in s, x, y
print("I got /ping with value", value)
SendLJ("/pong",value)
'''
def handlerfunction(s, x, y):
# Will receive message data unpacked in s, x, y

View file

@ -581,18 +581,20 @@ def NewTime(timeshift):
if DisplayAnything:
UpdateAnything()
# /quit
def OSCquit():
def OSCstart(value):
# Will receive message address, and message data flattened in s, x, y
print("Planetarium OSC server got /planet/start with value", value)
WebStatus("Planet stopping")
print("Stopping OSC...")
lj3.OSCstop()
sys.exit()
def OSCUI(value):
# Will receive message address, and message data flattened in s, x, y
print("Planetarium OSC server got /planet/planetUI with value", value)
def WebStatus(message):
lj3.Send("/status",message)
lj3.SendLJ("/status",message)
#
# Main part
@ -606,8 +608,9 @@ try:
print("Starting OSC at 127.0.0.1 port",OSCinPort,"...")
osc_startup()
osc_udp_server("127.0.0.1", OSCinPort, "InPort")
osc_method("/planet/start*", OSCstart)
osc_method("/planet/planetUI*", OSCUI)
osc_method("/ping*", lj3.OSCping)
osc_method("/quit", OSCquit)
WebStatus("Load Cities.")
ts = load.timescale()
@ -635,7 +638,7 @@ try:
UpdateStars(ts)
WebStatus("Ready")
lj3.Send("/planet/start",1)
lj3.SendLJ("/planet/start",1)
print ("Done.")
# UpdateStars() Todo

View file

@ -1,8 +1,12 @@
# coding=UTF-8
'''
LJ v0.8.1
Cycling text on one LJ laser.
LICENCE : CC
'''
import redis
@ -27,7 +31,7 @@ if is_py2:
else:
from queue import Queue
'''
print ("")
print ("Arguments parsing if needed...")
argsparser = argparse.ArgumentParser(description="Text Cycling for LJ")
argsparser.add_argument("-r","--redisIP",help="IP of the Redis server used by LJ (127.0.0.1 by default) ",type=str)
@ -70,7 +74,7 @@ def rgb2int(r,g,b):
def WebStatus(message):
lj3.Send("/status",message)
lj3.SendLJ("/status",message)
def OSCljclient(value):
# Will receive message address, and message data flattened in s, x, y
@ -79,14 +83,26 @@ def OSCljclient(value):
lj3.LjClient(ljclient)
# /ping
def OSCping():
lj3.OSCping("cycl")
# /quit
def OSCquit():
lj3.OSCquit("Cycl")
osc_startup()
osc_udp_server("127.0.0.1", OSCinPort, "InPort")
osc_method("/ping*", lj3.OSCping)
osc_method("/ping*", OSCping)
osc_method("/quit", OSCquit)
osc_method("/cycl/ljclient", OSCljclient)
WebStatus("Textcycl")
WebStatus("Textcycl Ready")
lj3.SendLJ("/cycl/start 1")
def Run():