|
@@ -120,6 +120,92 @@ def basic():
|
|
MAIN.meta.fx3_grid[k].data["min"] = -1
|
|
MAIN.meta.fx3_grid[k].data["min"] = -1
|
|
basic()
|
|
basic()
|
|
|
|
|
|
|
|
+def get_fx3_grid():
|
|
|
|
+ fx3_grid = MAIN.meta.fx3_grid # OptionBuffer()
|
|
|
|
+ out = []
|
|
|
|
+ for k,v in fx3_grid.items(): # re-order fx3_grid to command
|
|
|
|
+ vv = v.val()
|
|
|
|
+ kk,ii = k.split(":")
|
|
|
|
+ ii = int(ii)-1
|
|
|
|
+ if len(out) <= ii: #extand list
|
|
|
|
+ out.append({})
|
|
|
|
+ out[ii][kk] = vv
|
|
|
|
+ return out
|
|
|
|
+
|
|
|
|
+def reshape_grid_to_jdata(grid_data1):
|
|
|
|
+ grid_data2 = {}
|
|
|
|
+ for i in grid_data1:
|
|
|
|
+ attr = i["ATTR"].strip()
|
|
|
|
+ if attr:
|
|
|
|
+ grid_data2[attr] = {"event":"FX3","MODE":"FX","DMX":-11,"DMX-FINE":-99,"FIX":"","ATTR":"","VALUE":None,"FX2":i}
|
|
|
|
+ return grid_data2
|
|
|
|
+
|
|
|
|
+def patch_order_by_fix(patch):
|
|
|
|
+ out={}
|
|
|
|
+ for p in patch:
|
|
|
|
+ ID = p["FIX"]
|
|
|
|
+ out[ID] = p
|
|
|
|
+ #print("patch_order",[ID,p])
|
|
|
|
+ return out
|
|
|
|
+
|
|
|
|
+def update_dmx_adresses(grid_data2):
|
|
|
|
+ patch = get_patch()
|
|
|
|
+ patch = patch_order_by_fix(patch)
|
|
|
|
+ out=[]
|
|
|
|
+ offset = 0
|
|
|
|
+ for i in grid_data2:
|
|
|
|
+ ID = i["FIX"]
|
|
|
|
+ attr = i["ATTR"]
|
|
|
|
+ #print("address",[ID,attr,i,ID in patch])
|
|
|
|
+ if ID in patch:
|
|
|
|
+ v = patch[ID]
|
|
|
|
+ if attr in v["ATTR"]:
|
|
|
|
+ dmx = v["ATTR"][attr]
|
|
|
|
+ i["DMX"]=dmx
|
|
|
|
+
|
|
|
|
+ attr += "-FINE"
|
|
|
|
+ if attr in v["ATTR"]:
|
|
|
|
+ dmx = v["ATTR"][attr]
|
|
|
|
+ i["DMX-FINE"]=dmx
|
|
|
|
+
|
|
|
|
+ #cprint("333-- FX3:",i,color="yellow")
|
|
|
|
+ return grid_data2
|
|
|
|
+
|
|
|
|
+def calculate_offset():
|
|
|
|
+ pass
|
|
|
|
+
|
|
|
|
+def merge_grid_and_programmer(programmer,grid_data2):
|
|
|
|
+ out=[]
|
|
|
|
+ offset = {}
|
|
|
|
+ offset_len = len(programmer)
|
|
|
|
+
|
|
|
|
+ for k,v in enumerate(programmer):
|
|
|
|
+ attr = v["ATTR"]
|
|
|
|
+ ID = v["ID"]
|
|
|
|
+ if attr not in offset:
|
|
|
|
+ offset[attr] = 0
|
|
|
|
+ print("v",v)
|
|
|
|
+ _offset = 0
|
|
|
|
+ if attr in grid_data2:
|
|
|
|
+ tmp = copy.deepcopy(grid_data2[attr])
|
|
|
|
+ print(" ",tmp,_offset,offset_len)
|
|
|
|
+ _offset = tmp["FX2"]["OFFSET"]
|
|
|
|
+ tmp["ATTR"] = attr
|
|
|
|
+ tmp["FIX"] = ID
|
|
|
|
+ tmp["FX2"]["OFFSET"] = round( offset[attr],2 ) # ID
|
|
|
|
+ out.append(tmp)
|
|
|
|
+ offset[attr] += _offset/offset_len
|
|
|
|
+ return out
|
|
|
|
+
|
|
|
|
+def log(x,name="log",color="yellow"):
|
|
|
|
+ print()
|
|
|
|
+ if type(x) in [dict]: #,OrderedDict]:
|
|
|
|
+ for k,v in x.items():
|
|
|
|
+ cprint(name,[k,v],color=color)
|
|
|
|
+ else:
|
|
|
|
+ for k,v in enumerate(x):
|
|
|
|
+ cprint(name,[k,v],color=color)
|
|
|
|
+
|
|
class tk_event_fx():
|
|
class tk_event_fx():
|
|
""" global input event Handeler for short cut's ... etc
|
|
""" global input event Handeler for short cut's ... etc
|
|
"""
|
|
"""
|
|
@@ -138,56 +224,27 @@ class tk_event_fx():
|
|
fx3_grid = MAIN.meta.fx3_grid # OptionBuffer()
|
|
fx3_grid = MAIN.meta.fx3_grid # OptionBuffer()
|
|
if self.attr == "START":
|
|
if self.attr == "START":
|
|
|
|
|
|
- _fx3_jdata = []
|
|
|
|
- for k,v in fx3_grid.items(): # re-order fx3_grid to command
|
|
|
|
- vv = v.val()
|
|
|
|
- kk,ii = k.split(":")
|
|
|
|
- ii = int(ii)-1
|
|
|
|
- if len(_fx3_jdata) <= ii: #extand list
|
|
|
|
- _fx3_jdata.append({})
|
|
|
|
- _fx3_jdata[ii][kk] = vv
|
|
|
|
|
|
+ grid_data1 = get_fx3_grid()
|
|
|
|
+
|
|
out = []
|
|
out = []
|
|
FIX=3001
|
|
FIX=3001
|
|
- z=0
|
|
|
|
-
|
|
|
|
- xxxyyy = {}
|
|
|
|
- for i in _fx3_jdata: #info
|
|
|
|
- #i["event"] = "FX3"
|
|
|
|
- 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()
|
|
|
|
|
|
+
|
|
|
|
+ grid_data2 = reshape_grid_to_jdata(grid_data1)
|
|
|
|
+ log(grid_data2,name="0:")
|
|
|
|
+
|
|
programmer=get_programmer()
|
|
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
|
|
|
|
|
|
+ log(programmer,name="A:")
|
|
|
|
+
|
|
|
|
+ grid_data3 = merge_grid_and_programmer(programmer,grid_data2)
|
|
|
|
+ log(grid_data3,name="B:")
|
|
|
|
+
|
|
|
|
+ out = update_dmx_adresses(grid_data3)
|
|
|
|
+ log(out,name="C:")
|
|
|
|
|
|
msg=json.dumps(out).encode("utf-8")
|
|
msg=json.dumps(out).encode("utf-8")
|
|
cprint("SEND FX3:",color="green")
|
|
cprint("SEND FX3:",color="green")
|
|
for i in out:
|
|
for i in out:
|
|
cprint(" ", i,color="green")
|
|
cprint(" ", i,color="green")
|
|
- #msg=json.dumps([i]).encode("utf-8")
|
|
|
|
- #jsend(msg)
|
|
|
|
#cmd_client.send(msg)
|
|
#cmd_client.send(msg)
|
|
jsend(msg)
|
|
jsend(msg)
|
|
|
|
|
|
@@ -859,7 +916,7 @@ def get_programmer():
|
|
#print(":",k,v,kk,vv)
|
|
#print(":",k,v,kk,vv)
|
|
#print(k,v,v["NAME"],kk,vv)
|
|
#print(k,v,v["NAME"],kk,vv)
|
|
tmp={"ID":k,"NAME":v["NAME"],"ATTR":kk,"NR":vv["NR"]} #,"FX3":vv["FX2"]}
|
|
tmp={"ID":k,"NAME":v["NAME"],"ATTR":kk,"NR":vv["NR"]} #,"FX3":vv["FX2"]}
|
|
- print("tmp",tmp)
|
|
|
|
|
|
+ print("get_programmer:",tmp)
|
|
out.append(tmp)
|
|
out.append(tmp)
|
|
ok=1
|
|
ok=1
|
|
if ok:
|
|
if ok:
|
|
@@ -892,10 +949,10 @@ def get_patch():
|
|
if a.startswith("_"):
|
|
if a.startswith("_"):
|
|
continue
|
|
continue
|
|
nr = nr + d + u*512
|
|
nr = nr + d + u*512
|
|
- attr[a] = nr
|
|
|
|
|
|
+ attr[a] = nr-1
|
|
tmp = {"FIX":v,"UNI":u,"DMX":d,"NR":nr,"ATTR":attr}
|
|
tmp = {"FIX":v,"UNI":u,"DMX":d,"NR":nr,"ATTR":attr}
|
|
out.append(tmp )
|
|
out.append(tmp )
|
|
- print(tmp)
|
|
|
|
|
|
+ #print("get_patch",tmp)
|
|
|
|
|
|
return out
|
|
return out
|
|
|
|
|