From b6909e44905584158107d52e8d842e3c633f63fd Mon Sep 17 00:00:00 2001 From: nrhck Date: Wed, 19 Dec 2018 12:39:54 +0100 Subject: [PATCH] webui simu with colors --- clients/nodeclient.js | 3 +++ clients/pyclient.py | 4 ++++ gstt.py | 7 ++++++- las.py | 10 +++++----- mainy.conf | 14 +++++++------- mainyservers.py | 33 +++++++++++++++++---------------- webui/LJ.js | 16 ++++++---------- webui/index.html | 7 +++++-- 8 files changed, 53 insertions(+), 41 deletions(-) diff --git a/clients/nodeclient.js b/clients/nodeclient.js index 6398f68..9cecabd 100644 --- a/clients/nodeclient.js +++ b/clients/nodeclient.js @@ -83,6 +83,9 @@ console.log(pl0); console.log(pl1); // Send points lists to redis server +// /pl/clientnumber/lasernumber pointlist +// you're client 0 and want to send points to laser 0 and 1 + client.set("/pl/0/0",pl0); client.set("/pl/0/1",pl1); diff --git a/clients/pyclient.py b/clients/pyclient.py index 5eff9ca..49f7e60 100644 --- a/clients/pyclient.py +++ b/clients/pyclient.py @@ -25,6 +25,10 @@ def rgb2int(r,g,b): # White rectangular shape pl1 = [(100,300,rgb2int(255,255,255)),(200,300,rgb2int(255,255,255)),(200,200,rgb2int(255,255,255)),(100,200,rgb2int(255,255,255))] + +# /pl/clientnumber/lasernumber pointlist + +# Consider you're client 0 # Send to laser 0 (see mainy.conf) r.set('/pl/0/0', str(pl0)) diff --git a/gstt.py b/gstt.py index 408c65c..d103a02 100644 --- a/gstt.py +++ b/gstt.py @@ -19,6 +19,11 @@ anims= [[],[],[],[]] # How many lasers are connected. Different that "currentlaser" used by bhorosc LaserNumber = 2 + +# What laser client to listen at launch +LasClientNumber = 0 +MaxLasClient = 3 + screen_size = [800,600] xy_center = [screen_size[0]/2,screen_size[1]/2] @@ -38,7 +43,7 @@ simuPL = 1 # gstt.laserIPS. Will be overridden by the ConfigName (see below) file values lasersIPS = ['192.168.1.5','192.168.1.6','192.168.1.3','192.168.1.4'] -ClientNumber = 1 + # gstt.kpps stores kpps for each laser. # ** Will be overridden by the ConfigName (see below) file values ** diff --git a/las.py b/las.py index b09fdd7..90537bb 100644 --- a/las.py +++ b/las.py @@ -88,13 +88,13 @@ def LasClientChange(clientnumber): if r.get("/pl/"+str(clientnumber)+"/0") != None: print "Switching to laser client", clientnumber - gstt.ClientNumber = clientnumber + gstt.LasClientNumber = clientnumber r.set('/clientkey', "/pl/"+str(clientnumber)+"/") print "clientkey set to", "/pl/"+str(clientnumber)+"/" for laserid in xrange(0,gstt.LaserNumber): r.set('/order/'+str(laserid), 5) else: - print "Error : new laser client",clientnumber,"must send points first to","/pl/"+str(clientnumber)+"/0" + print "ERROR : MaxLasClient is set to ", gstt.MaxLasClient @@ -105,14 +105,14 @@ def NoteOn(note): if note < 8: LasClientChange(note) - # New PL displayed + # Change PL displayed on webui if note > 23 and note < 32: if note - 24 > gstt.LaserNumber -1: - print "Only",gstt.LaserNumber,"asked, you dum ass !" + print "Only",gstt.LaserNumber,"lasers asked, you dum ass !" else: gstt.Laser = note -24 print "Current Laser switched to",gstt.Laser - #LasClientChange(gstt.Laser) + diff --git a/mainy.conf b/mainy.conf index eecaab5..f791359 100644 --- a/mainy.conf +++ b/mainy.conf @@ -1,7 +1,7 @@ [General] set = 5 curve = 0 -lasernumber = 2 +lasernumber = 3 debug = 0 ljayserverip = 127.0.0.1 nozoscip = 127.0.0.1 @@ -18,8 +18,8 @@ zoomy = 29.0 sizex = 31450 sizey = 32000 finangle = 17.0 -swapx = 1 -swapy = 1 +swapx = -1 +swapy = -1 lsteps = [ (1.0, 8),(0.25, 3), (0.75, 3), (1.0, 10)] warpdest = [[-1500., 1500.], [ 1500., 1500.], @@ -31,7 +31,7 @@ color = -1 ip = 192.168.1.5 kpps = 25000 centerx = -506 -centery = -357 +centery = -413 zoomx = 81.5 zoomy = 50.1 sizex = 32000 @@ -60,9 +60,9 @@ swapx = 1 swapy = 1 lsteps = [(1.0, 8),(0.25, 3), (0.75, 3), (1.0, 10)] warpdest = [[-1500., 1500.], - [ 1500., 1500.], - [ 1500.,-1500.], - [-1500.,-1500.]] + [ 1500., 1500.], + [ 1500.,-1500.], + [-1500.,-1500.]] [laser3] color = -1 diff --git a/mainyservers.py b/mainyservers.py index e4f7367..888e6f0 100644 --- a/mainyservers.py +++ b/mainyservers.py @@ -70,7 +70,7 @@ def dac_process(number, pl): # webUI server # -print "Laser client number :",gstt.ClientNumber +print "Laser client number :",gstt.LasClientNumber serverIP = gstt.LjayServerIP print "Redis IP :", serverIP @@ -212,7 +212,8 @@ def osc_thread(): lack= r.get('/lack/'+str(laserid)) - print "laserid", laserid,"lack",lack + if gstt.debug >0: + print "laserid", laserid,"lack",lack if lack == 'a': # Dac sent ACK ("a") -> led is green (1) sendWSall("/lack/" + str(laserid) +" 1") if lack == 'F': # Dac sent FULL ("F") -> led is orange (5) @@ -231,8 +232,8 @@ def osc_thread(): # last number of points sent to etherdream buffer sendWSall("/points/" + str(laserid) + " " + str(r.get('/cap/'+str(laserid)))) - print "Sending simu frame from",'/pl/'+str(gstt.ClientNumber)+'/'+str(gstt.Laser) - sendWSall("/plframe" +" "+ r.get('/pl/'+str(gstt.ClientNumber)+'/'+str(gstt.Laser))) + print "Sending simu frame from",'/pl/'+str(gstt.LasClientNumber)+'/'+str(gstt.Laser) + sendWSall("/simul" +" "+ r.get('/pl/'+str(gstt.LasClientNumber)+'/'+str(gstt.Laser))) except Exception as e: @@ -311,23 +312,23 @@ def sendWSall(message): -# Some random lists for all lasers at launch for laser client gstt.ClientNumber +# Creating a startup point list for each client : 0,1,2,... + print "" -print "Creating startup point lists for client",gstt.ClientNumber,"..." +for clientid in range(0,gstt.MaxLasClient): + print "Creating startup point lists for client",clientid,"..." + digit_points = font1.DigitsDots(clientid,65280) + # Order all lasers to show the laser client number at startup -> tell all 4 laser process to USER PLs + for laserid in range(0,gstt.LaserNumber): -digit_points = font1.DigitsDots(gstt.ClientNumber,16711935) + if r.set('/pl/'+str(clientid)+'/'+str(laserid), str(digit_points)) == True: + print "/pl/"+str(clientid)+"/"+str(laserid)+" ", ast.literal_eval(r.get('/pl/'+str(clientid)+'/'+str(laserid))) -# Order all lasers to show the laser client number at startup -> tell all 4 laser process to USER PLs -for laserid in range(0,gstt.LaserNumber): + r.set('/order/'+str(laserid), 0) - if r.set('/pl/'+str(gstt.ClientNumber)+'/'+str(laserid), str(digit_points)) == True: - print "/pl/"+str(gstt.ClientNumber)+"/"+str(laserid)+" ", ast.literal_eval(r.get('/pl/'+str(gstt.ClientNumber)+'/'+str(laserid))) - - r.set('/order/'+str(laserid), 0) - -if r.set("/clientkey","/pl/"+str(gstt.ClientNumber)+"/")==True: - print "sent clientkey : /pl/"+str(gstt.ClientNumber)+"/" +if r.set("/clientkey","/pl/"+str(gstt.LasClientNumber)+"/")==True: + print "sent clientkey : /pl/"+str(gstt.LasClientNumber)+"/" print "" print "Etherdream connection check is NOT DISPLAYED" diff --git a/webui/LJ.js b/webui/LJ.js index 5bd048e..be5fbcf 100644 --- a/webui/LJ.js +++ b/webui/LJ.js @@ -98,22 +98,18 @@ case "/statu": _WS.showstatus(e.data.slice(8)); break; - case "/plfra": - console.log(e.data.slice(11)); - pl = e.data.slice(9); - //console.log(pl); + case "/simul": + pl = e.data.slice(7); pl2 = eval(pl.replace(/[()]/g, '')); - //console.log(pl2); break; - case "/plpoi": + case "/plpoi": //console.log("plpoint"); break; - default: - //console.log(res[0] + " " + res[1]) - //console.log(res[1]) + default: document.getElementById(res[0].slice(1)).value = res[1]; + _WS.showin(e.data); } - _WS.showin(e.data); + }, onError: function (e) { _WS.showin('ERROR: ' + e.data); diff --git a/webui/index.html b/webui/index.html index 9687594..da4fddb 100644 --- a/webui/index.html +++ b/webui/index.html @@ -560,10 +560,13 @@ // Draw Lines for (var i = 0; i < pl2.length/3; i++) { ctx.lineTo(pl2[i*3]*0.7, pl2[1+(i*3)]*0.7); + //ctx.strokeStyle = "#"+(pl2[2+(i*3)]).toString(16); + ctx.strokeStyle = "#"+((pl2[2+(i*3)]) + Math.pow(16, 6)).toString(16).slice(-6); + ctx.stroke(); } - ctx.strokeStyle = "#888"; - ctx.stroke(); + //ctx.strokeStyle = "#888"; + //ctx.stroke(); lastpoint.x = pl2[i*3]; lastpoint.y = pl2[1+(i*3)]; }