|
@@ -3,6 +3,7 @@
|
|
|
import json
|
|
|
import time
|
|
|
import sys
|
|
|
+import copy
|
|
|
import os
|
|
|
import tkinter as tk
|
|
|
import traceback
|
|
@@ -37,6 +38,14 @@ import tool.movewin as movewin
|
|
|
movewin.check_is_started("FX3","/opt/LibreLight/Xdesk/tkgui/FX3.py")
|
|
|
|
|
|
|
|
|
+console = chat.Client() #port=50001)
|
|
|
+def jsend(jdatas):
|
|
|
+ jtxt = jdatas
|
|
|
+ #jtxt = json.dumps(jtxt)
|
|
|
+ #jtxt = jtxt.encode()
|
|
|
+ console.send( jtxt ) #b"\00 ")
|
|
|
+
|
|
|
+
|
|
|
def _add_space(frame,r,c):
|
|
|
b = tk.Canvas(frame,bg="black", height=2,bd=0,width=6,highlightthickness=0) #,bd="black")
|
|
|
b.grid(row=r, column=c, sticky=tk.W+tk.E)
|
|
@@ -140,17 +149,47 @@ class tk_event_fx():
|
|
|
out = []
|
|
|
FIX=3001
|
|
|
z=0
|
|
|
+
|
|
|
+ xxxyyy = {}
|
|
|
for i in _fx3_jdata: #info
|
|
|
#i["event"] = "FX3"
|
|
|
- if i["ATTR"].strip():
|
|
|
- out.append( {"event":"FX3","DMX":"123","VALUE":"","FIX":str(FIX+z),"FX3":i} )
|
|
|
- print(i)
|
|
|
- z+=1
|
|
|
+ attr = i["ATTR"].strip()
|
|
|
+ if attr:
|
|
|
+ #out.append(
|
|
|
+ xxxyyy[attr] = {"event":"FX3","MODE":"FX","DMX":176+z,"DMX-FINE":-199,"FIX":"","ATTR":"","VALUE":None,"FX2":i}
|
|
|
|
|
|
+ #print(i)
|
|
|
+ z+=1
|
|
|
+
|
|
|
+ patch = get_patch()
|
|
|
+ programmer=get_programmer()
|
|
|
+ out=[]
|
|
|
+ z=106
|
|
|
+ for k,v in enumerate(programmer):
|
|
|
+ attr = v["ATTR"]
|
|
|
+ if attr in xxxyyy:
|
|
|
+ tmp = copy.deepcopy(xxxyyy[attr])
|
|
|
+ tmp["ATTR"] = attr
|
|
|
+ ID = v["ID"]
|
|
|
+ tmp["FIX"] = ID
|
|
|
+ tmp["DMX"] = 0
|
|
|
+ for p in patch:
|
|
|
+ print(p)
|
|
|
+ if ID == p["FIX"]:
|
|
|
+ if attr in p["ATTR"]:
|
|
|
+ tmp["DMX"]=p["ATTR"][attr]-1
|
|
|
+ out.append(tmp)
|
|
|
+ cprint("432 FX3:",xxxyyy[attr],color="yellow")
|
|
|
+ z+=1
|
|
|
|
|
|
msg=json.dumps(out).encode("utf-8")
|
|
|
- cprint("SEND FX3:",msg,color="green")
|
|
|
- cmd_client.send(msg)
|
|
|
+ cprint("SEND FX3:",color="green")
|
|
|
+ for i in out:
|
|
|
+ cprint(" ", i,color="green")
|
|
|
+ #msg=json.dumps([i]).encode("utf-8")
|
|
|
+ #jsend(msg)
|
|
|
+ #cmd_client.send(msg)
|
|
|
+ jsend(msg)
|
|
|
|
|
|
if self.attr not in fx3_grid:
|
|
|
fx_data = {}
|
|
@@ -253,9 +292,9 @@ def motion(code="circle"):
|
|
|
|
|
|
if code == "circle":
|
|
|
k = "TYPE:1"
|
|
|
- MAIN.meta.fx3_grid[k].val("SIN")
|
|
|
+ MAIN.meta.fx3_grid[k].val("sinus")
|
|
|
k = "TYPE:2"
|
|
|
- MAIN.meta.fx3_grid[k].val("COS")
|
|
|
+ MAIN.meta.fx3_grid[k].val("cosinus")
|
|
|
|
|
|
k = "SIZE:1"
|
|
|
MAIN.meta.fx3_grid[k].val(100)
|
|
@@ -267,11 +306,16 @@ def motion(code="circle"):
|
|
|
k = "BASE:2"
|
|
|
MAIN.meta.fx3_grid[k].val(0)
|
|
|
|
|
|
+ k = "WIDTH:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(255)
|
|
|
+ k = "WIDTH:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(255)
|
|
|
+
|
|
|
if code == "pan":
|
|
|
k = "TYPE:1"
|
|
|
- MAIN.meta.fx3_grid[k].val("SIN")
|
|
|
+ MAIN.meta.fx3_grid[k].val("sinus")
|
|
|
k = "TYPE:2"
|
|
|
- MAIN.meta.fx3_grid[k].val("COS")
|
|
|
+ MAIN.meta.fx3_grid[k].val("cosinus")
|
|
|
k = "TYPE:3"
|
|
|
MAIN.meta.fx3_grid[k].val("-")
|
|
|
k = "TYPE:4"
|
|
@@ -286,11 +330,16 @@ def motion(code="circle"):
|
|
|
MAIN.meta.fx3_grid[k].val(0)
|
|
|
k = "BASE:2"
|
|
|
MAIN.meta.fx3_grid[k].val(0)
|
|
|
+
|
|
|
+ k = "WIDTH:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(255)
|
|
|
+ k = "WIDTH:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(255)
|
|
|
if code == "tilt":
|
|
|
k = "TYPE:1"
|
|
|
- MAIN.meta.fx3_grid[k].val("SIN")
|
|
|
+ MAIN.meta.fx3_grid[k].val("sinus")
|
|
|
k = "TYPE:2"
|
|
|
- MAIN.meta.fx3_grid[k].val("COS")
|
|
|
+ MAIN.meta.fx3_grid[k].val("cosinus")
|
|
|
k = "TYPE:3"
|
|
|
MAIN.meta.fx3_grid[k].val("-")
|
|
|
k = "TYPE:4"
|
|
@@ -306,6 +355,10 @@ def motion(code="circle"):
|
|
|
k = "BASE:2"
|
|
|
MAIN.meta.fx3_grid[k].val(0)
|
|
|
|
|
|
+ k = "WIDTH:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(255)
|
|
|
+ k = "WIDTH:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(255)
|
|
|
|
|
|
def size(val=255):
|
|
|
for i in range(4):
|
|
@@ -362,19 +415,19 @@ def rgb(code="red"):
|
|
|
|
|
|
if code == "red":
|
|
|
k = "TYPE:1"
|
|
|
- MAIN.meta.fx3_grid[k].val("FD")
|
|
|
+ MAIN.meta.fx3_grid[k].val("fade")
|
|
|
if code == "green":
|
|
|
k = "TYPE:2"
|
|
|
- MAIN.meta.fx3_grid[k].val("FD")
|
|
|
+ MAIN.meta.fx3_grid[k].val("fade")
|
|
|
if code == "blue":
|
|
|
k = "TYPE:3"
|
|
|
- MAIN.meta.fx3_grid[k].val("FD")
|
|
|
+ MAIN.meta.fx3_grid[k].val("fade")
|
|
|
if code == "blue":
|
|
|
k = "TYPE:3"
|
|
|
- MAIN.meta.fx3_grid[k].val("FD")
|
|
|
+ MAIN.meta.fx3_grid[k].val("fade")
|
|
|
if code == "blue":
|
|
|
k = "TYPE:3"
|
|
|
- MAIN.meta.fx3_grid[k].val("FD")
|
|
|
+ MAIN.meta.fx3_grid[k].val("fade")
|
|
|
|
|
|
__refresh_fx3()
|
|
|
|
|
@@ -710,7 +763,7 @@ class Gui(): # DUMMY
|
|
|
data = json.loads(data)
|
|
|
self.METAS[nr] = data #.append(data)
|
|
|
#print(time.time())
|
|
|
- print(" _REFRESH_EXEC_SINGLE",nr,b,data["LABEL"])
|
|
|
+ print(" _REFRESH_EXEC_sinusGLE",nr,b,data["LABEL"])
|
|
|
except Exception as e:
|
|
|
print(" ER1R mc...",e)
|
|
|
|
|
@@ -784,6 +837,69 @@ def focus_out(event=None):
|
|
|
root.bind("<FocusIn>", focus_in)
|
|
|
root.bind("<FocusOut>", focus_out)
|
|
|
|
|
|
+import memcache
|
|
|
+try:
|
|
|
+ mc = memcache.Client(['127.0.0.1:11211'], debug=0)
|
|
|
+except:
|
|
|
+ mc = None
|
|
|
+
|
|
|
+def get_programmer():
|
|
|
+ if mc is None:
|
|
|
+ return
|
|
|
+
|
|
|
+ DATA=mc.get("fix")#cmd)
|
|
|
+ out=[]
|
|
|
+ for k,v in DATA.items():
|
|
|
+ ok=0
|
|
|
+ for kk,vv in v["ATTRIBUT"].items():
|
|
|
+ if kk.startswith("_"):
|
|
|
+ #print(":",k,v,kk,vv)
|
|
|
+ continue
|
|
|
+ if vv["ACTIVE"]:
|
|
|
+ #print(":",k,v,kk,vv)
|
|
|
+ #print(k,v,v["NAME"],kk,vv)
|
|
|
+ tmp={"ID":k,"NAME":v["NAME"],"ATTR":kk,"NR":vv["NR"]} #,"FX3":vv["FX2"]}
|
|
|
+ print("tmp",tmp)
|
|
|
+ out.append(tmp)
|
|
|
+ ok=1
|
|
|
+ if ok:
|
|
|
+ print()
|
|
|
+ return out
|
|
|
+
|
|
|
+#import memcache
|
|
|
+#import json
|
|
|
+#mc = memcache.Client(['127.0.0.1:11211'], debug=0)
|
|
|
+def get_patch():
|
|
|
+ if mc is None:
|
|
|
+ return
|
|
|
+ index=mc.get("PATCH-INDEX") #index")#cmd)
|
|
|
+ index=json.loads(index)
|
|
|
+ out = []
|
|
|
+ for v in index:
|
|
|
+ #print()
|
|
|
+ patch=mc.get("PATCH-"+str(v)) #index")#cmd)
|
|
|
+ patch=json.loads(patch)
|
|
|
+ u = patch["UNIVERS"] #* 512
|
|
|
+ d = patch["DMX"]
|
|
|
+ attr = {}
|
|
|
+ for a in patch["ATTRIBUT"]:
|
|
|
+ nr =patch["ATTRIBUT"][a]["NR"]
|
|
|
+ if nr <= 0:
|
|
|
+ continue
|
|
|
+ #print(v,u,d,nr,a)
|
|
|
+ if a == "END":
|
|
|
+ continue
|
|
|
+ if a.startswith("_"):
|
|
|
+ continue
|
|
|
+ nr = nr + d + u*512
|
|
|
+ attr[a] = nr
|
|
|
+ tmp = {"FIX":v,"UNI":u,"DMX":d,"NR":nr,"ATTR":attr}
|
|
|
+ out.append(tmp )
|
|
|
+ print(tmp)
|
|
|
+
|
|
|
+ return out
|
|
|
+
|
|
|
+
|
|
|
|
|
|
def _refr_loop():
|
|
|
time.sleep(3)
|