Simplify file names

This commit is contained in:
tmpbci 2018-12-21 17:23:43 +01:00
parent b6909e4490
commit a806fabf5c
7 changed files with 163 additions and 49 deletions

View File

@ -2,7 +2,7 @@
set = 5 set = 5
curve = 0 curve = 0
lasernumber = 3 lasernumber = 3
debug = 0 debug = 1
ljayserverip = 127.0.0.1 ljayserverip = 127.0.0.1
nozoscip = 127.0.0.1 nozoscip = 127.0.0.1
bhoroscip = 127.0.0.1 bhoroscip = 127.0.0.1

View File

@ -1,7 +1,7 @@
# coding=UTF-8 # coding=UTF-8
""" """
LJ OSC handler LJ OSC and Websockets laser commands
v0.7.0 v0.7.0

View File

@ -11,7 +11,7 @@ from /team/laser
''' '''
#ConfigName = "setexample.conf" #ConfigName = "setexample.conf"
ConfigName = "mainy.conf" ConfigName = "LJ.conf"
debug = 2 debug = 2

View File

@ -1,5 +1,5 @@
''' '''
LJ Servers v0.8 LJ Laser Server v0.8
Laser server + webUI servers (ws + OSC) Laser server + webUI servers (ws + OSC)
@ -30,9 +30,9 @@ settings.Write()
from multiprocessing import Process, Queue, TimeoutError from multiprocessing import Process, Queue, TimeoutError
import random, ast import random, ast
import newdacp import tracer
import homographyp import homographyp
import las import commands
import font1 import font1
@ -48,7 +48,7 @@ args =[0,0]
def dac_process(number, pl): def dac_process(number, pl):
while True: while True:
try: try:
d = newdacp.DAC(number,pl) d = tracer.DAC(number,pl)
d.play_stream() d.play_stream()
except Exception as e: except Exception as e:
@ -176,7 +176,7 @@ def handler(path, tags, args, source):
print "default handler" print "default handler"
print "OSC said : ", path, oscpath, args print "OSC said : ", path, oscpath, args
sendWSall(path + " " + str(args[0])) sendWSall(path + " " + str(args[0]))
las.handler(oscpath,args) commands.handler(oscpath,args)
# RAW OSC Frame available ? # RAW OSC Frame available ?
@ -288,7 +288,7 @@ def message_received(client, server, message):
oscpath = message.split(" ") oscpath = message.split(" ")
args[0] = str(oscpath[1]) args[0] = str(oscpath[1])
#print oscpath[0].split("/"),oscpath[1] #print oscpath[0].split("/"),oscpath[1]
las.handler(oscpath[0].split("/"),args) commands.handler(oscpath[0].split("/"),args)
# current UI has no dedicated off button so /on 0 trigs /off to bhorosc # current UI has no dedicated off button so /on 0 trigs /off to bhorosc
if oscpath[0] == "/on": if oscpath[0] == "/on":
@ -367,7 +367,7 @@ try:
print "Launching OSC server..." print "Launching OSC server..."
print "at", bhoroscIPin, "port",str(bhoroscPORTin) print "at", bhoroscIPin, "port",str(bhoroscPORTin)
print "Will update webUI dac status every second" print "Will update webUI dac status every second"
oscserver.addMsgHandler( "/noteon", las.NoteOn ) oscserver.addMsgHandler( "/noteon", commands.NoteOn )
# Default OSC handler for all OSC incoming message # Default OSC handler for all OSC incoming message
oscserver.addMsgHandler("default", handler) oscserver.addMsgHandler("default", handler)
thread.start_new_thread(osc_thread, ()) thread.start_new_thread(osc_thread, ())

View File

@ -1,12 +1,11 @@
#!/usr/bin/python2.7 #!/usr/bin/python2.7
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# -*- mode: Python -*- # -*- mode: Python -*-
''' '''
LJay/LJ v0.8.0 LJay/LJ v0.8.0
newdacp.py tracer.py (was newdacp.py)
Enhanced version (redis and process style) of the etherdream python library from j4cDAC. Enhanced version (support for several lasers) of the etherdream python library from j4cDAC.
LICENCE : CC LICENCE : CC
Sam Neurohack, pclf Sam Neurohack, pclf
@ -18,6 +17,7 @@ Uses redis keys value for live inputs/outputs
These redis keys are read and set at each main loop. These redis keys are read and set at each main loop.
Live inputs : Live inputs :
/order select some change to adjust
/pl/lasernumber [(x,y,color),(x1,y1,color),...] A string of list of pygame points list. /pl/lasernumber [(x,y,color),(x1,y1,color),...] A string of list of pygame points list.
/resampler/lasernumber [(1.0,8), (0.25,3),(0.75,3),(1.0,10)] : a string for resampling rules. /resampler/lasernumber [(1.0,8), (0.25,3),(0.75,3),(1.0,10)] : a string for resampling rules.
the first tuple (1.0,8) is for short line < 4000 in etherdream space the first tuple (1.0,8) is for short line < 4000 in etherdream space
@ -30,9 +30,6 @@ Live ouputs :
/lack/lasernumber value "a": ACK "F": Full "I": invalid. 64 or 35 for no connection. /lack/lasernumber value "a": ACK "F": Full "I": invalid. 64 or 35 for no connection.
Geometric corrections : Geometric corrections :
''' '''
import socket import socket

View File

@ -403,10 +403,10 @@
<!-- mg run icons grid --> <!-- mg run icons grid -->
<div id="mgrun"class="mgrun"> <!-- Laser Client selection grid --> <div id="mgrun"class="mgrun"> <!-- Laser Client selection grid -->
<div><img src="knobs/iconljay2.png" alt=" " class="icongrid" /></div> <div><img src="knobs/client.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconljay2.png" alt=" " class="icongrid" /></div> <div><img src="knobs/client.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconljay2.png" alt=" " class="icongrid" /></div> <div><img src="knobs/client.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconljay2.png" alt=" " class="icongrid" /></div> <div><img src="knobs/client.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/client.png" alt=" " class="icongrid" /></div> <div><img src="knobs/client.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/client.png" alt=" " class="icongrid" /></div> <div><img src="knobs/client.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/client.png" alt=" " class="icongrid" /></div> <div><img src="knobs/client.png" alt=" " class="icongrid" /></div>
@ -420,10 +420,10 @@
<div><button id ="noteon 6" onclick ="buttonClicked(this.id)" class="button">6</button></div> <div><button id ="noteon 6" onclick ="buttonClicked(this.id)" class="button">6</button></div>
<div><button id ="noteon 7" onclick ="buttonClicked(this.id)" class="button">7</button></div> <div><button id ="noteon 7" onclick ="buttonClicked(this.id)" class="button">7</button></div>
<!-- Simulator PL selection grid --> <!-- Simulator PL selection grid -->
<div><img src="knobs/iconpl.png" alt=" " class="icongrid" /></div> <div><img src="knobs/iconljay2.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconpl.png" alt=" " class="icongrid" /></div> <div><img src="knobs/iconljay2.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconpl.png" alt=" " class="icongrid" /></div> <div><img src="knobs/iconljay2.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconpl.png" alt=" " class="icongrid" /></div> <div><img src="knobs/iconljay2.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconblack.png" alt=" " class="icongrid" /></div> <div><img src="knobs/iconblack.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconblack.png" alt=" " class="icongrid" /></div> <div><img src="knobs/iconblack.png" alt=" " class="icongrid" /></div>
<div><img src="knobs/iconblack.png" alt=" " class="icongrid" /></div> <div><img src="knobs/iconblack.png" alt=" " class="icongrid" /></div>
@ -546,37 +546,63 @@
// Store Reference To The Canvas & Set Context // Store Reference To The Canvas & Set Context
var canvas = document.getElementById("canvas"); var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d"); var ctx = canvas.getContext("2d");
var lastpoint = { x: 0, y: 0 }; var lastpoint = { x: 0, y: 0, color: 0};
function draw() {
// Clear Canvas At The Start Of Every Frame // Todo : laser point will have black points to go from a polyline to another. Need to discard those black points.
ctx.clearRect(0,0,400,400); function draw() {
if (pl2.length > 0)
{
ctx.beginPath();
ctx.moveTo(lastpoint.x , lastpoint.y );
// Draw Lines // Clear Canvas At The Start Of Every Frame
for (var i = 0; i < pl2.length/3; i++) { ctx.clearRect(0,0,400,400);
ctx.lineTo(pl2[i*3]*0.7, pl2[1+(i*3)]*0.7); if (pl2.length > 0)
//ctx.strokeStyle = "#"+(pl2[2+(i*3)]).toString(16); {
// Begin a new path
// 0.7 reduces max coordinates in a more browser compatible resolution.
ctx.beginPath();
ctx.moveTo(pl2[0]*0.7, pl2[1]*0.7);
lastpoint.color = pl2[2];
// Draw n Lines
for (var i = 0; i < pl2.length/3; i++)
{
// New point has the same color -> add a new line to new point
if (pl2[2+(i*3)] === lastpoint.color)
{
ctx.lineTo(pl2[i*3]*0.7, pl2[1+(i*3)]*0.7);
}
// New point has different color -> stroke with previous color
if (pl2[2+(i*3)] != lastpoint.color)
{
ctx.strokeStyle = "#"+(lastpoint.color + Math.pow(16, 6)).toString(16).slice(-6);
ctx.stroke();
ctx.beginPath();
ctx.moveTo(pl2[i*3]*0.7, pl2[1+(i*3)]*0.7);
}
// Last point -> stroke with current color
if (i === (pl2.length/3)-1 )
{
ctx.moveTo(pl2[i*3]*0.7, pl2[1+(i*3)]*0.7);
ctx.strokeStyle = "#"+((pl2[2+(i*3)]) + Math.pow(16, 6)).toString(16).slice(-6); ctx.strokeStyle = "#"+((pl2[2+(i*3)]) + Math.pow(16, 6)).toString(16).slice(-6);
ctx.stroke(); ctx.stroke();
} }
//ctx.strokeStyle = "#888";
//ctx.stroke();
lastpoint.x = pl2[i*3];
lastpoint.y = pl2[1+(i*3)];
}
// Call Draw Function Again To Create Animation
window.requestAnimationFrame(draw);
}
// Initialize The Draw Function
draw();
// store point for comparison
lastpoint.x = pl2[i*3];
lastpoint.y = pl2[1+(i*3)];
lastpoint.color = pl2[2+(i*3)];
}
}
// Call Draw Function Again To Create Animation
window.requestAnimationFrame(draw);
}
// Initialize The Draw Function
draw();
</script> </script>
</body> </body>

91
webui/indexgl.html Normal file
View File

@ -0,0 +1,91 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>LJ</title>
</head>
<body style="background-color:#222;">
<!-- mg : canvas to display point list as laser simulator -->
<div id = "mgcanvas" class="mgcanvas">
<canvas id="canvas" width="500" height="500"></canvas>
</div>
<!-- Point list draw -->
<script type="text/javascript">
// Store Reference To The Canvas & Set Context
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var lastpoint = { x: 0, y: 0, color: 0};
// 2 different shapes, one blue one green.
var LJ = "/plframe [(350, 330, 65280), (370, 270, 65280), (430, 270, 65280), (410, 330, 65280), (350, 330, 65280),(300, 300, 255), (350, 250, 255), (400, 250, 255), (400, 300, 255), (300, 300, 255)]";
var pl ="";
var pl2 = new Array();
pl = LJ.slice(9);
pl2 = eval(pl.replace(/[()]/g, ''));
// Todo : laser point will have black points to go from a polyline to another. Need to discard those black points.
function draw() {
// Clear Canvas At The Start Of Every Frame
ctx.clearRect(0,0,400,400);
if (pl2.length > 0)
{
// Begin a new path
// 0.7 reduces max coordinates in a more browser compatible resolution.
ctx.beginPath();
ctx.moveTo(pl2[0]*0.7, pl2[1]*0.7);
lastpoint.color = pl2[2];
// Draw n Lines
for (var i = 0; i < pl2.length/3; i++)
{
// New point has the same color -> add a new line to new point
if (pl2[2+(i*3)] === lastpoint.color)
{
ctx.lineTo(pl2[i*3]*0.7, pl2[1+(i*3)]*0.7);
}
// New point has different color -> stroke with previous color
if (pl2[2+(i*3)] != lastpoint.color)
{
ctx.strokeStyle = "#"+(lastpoint.color + Math.pow(16, 6)).toString(16).slice(-6);
ctx.stroke();
ctx.beginPath();
ctx.moveTo(pl2[i*3]*0.7, pl2[1+(i*3)]*0.7);
}
// Last point -> stroke with current color
if (i === (pl2.length/3)-1 )
{
ctx.moveTo(pl2[i*3]*0.7, pl2[1+(i*3)]*0.7);
ctx.strokeStyle = "#"+((pl2[2+(i*3)]) + Math.pow(16, 6)).toString(16).slice(-6);
ctx.stroke();
}
// store point for comparison
lastpoint.x = pl2[i*3];
lastpoint.y = pl2[1+(i*3)];
lastpoint.color = pl2[2+(i*3)];
}
}
// Call Draw Function Again To Create Animation
window.requestAnimationFrame(draw);
}
// Initialize The Draw Function
draw();
</script>
</body>
</html>