Bladeren bron

extend: PATCH-WINDOW DMX-Collision check

micha 2 jaren geleden
bovenliggende
commit
bb1364b6bb
1 gewijzigde bestanden met toevoegingen van 58 en 25 verwijderingen
  1. 58 25
      _LibreLightDesk.py

+ 58 - 25
_LibreLightDesk.py

@@ -2157,7 +2157,8 @@ def draw_sub_dim(gui,fix,data,c=0,r=0,frame=None):
 
 
 class _SET_PATCH():
-    def __init__(self,k,v,fix,data):
+    def __init__(self,k,v,fix,data,_cb=None):
+        self._cb = _cb
         self.v = v
         self.button = None
         self.k = k
@@ -2204,6 +2205,8 @@ class _SET_PATCH():
                 else:
                     self.button["bg"] = "#fff"
                     self.button["text"] = "{}".format(v)
+                    if self._cb:
+                        self._cb()
         print( "row data",self.data)
 
     def set_button(self,button):
@@ -2253,10 +2256,25 @@ class GUI_PATCH():
         b = tk.Button(xframe,bg="#ddd", text="CH's",width=1)
         b.grid(row=r, column=c, sticky=tk.W+tk.E)
         c+=1
+        b = tk.Button(xframe,bg="#ddd", text="from - to",width=1)
+        b.grid(row=r, column=c, sticky=tk.W+tk.E)
+        c+=1
+        b = tk.Button(xframe,bg="#ddd", text="DMX-SUM",width=1)
+        b.grid(row=r, column=c, sticky=tk.W+tk.E)
+        c+=1
+        b = tk.Button(xframe,bg="#ddd", text="DMX Collision!",width=12)
+        b.grid(row=r, column=c, sticky=tk.W+tk.E)
+        c+=1
 
         c=0
         r+=1
+
+        dmx_ch_sum = 0
+        dmx_collision = []
+        z=0
         for fix in FIXTURES.fixtures:
+            z+=1
+            collision = []
             i+=1
             data = FIXTURES.fixtures[fix]
                             
@@ -2300,7 +2318,7 @@ class GUI_PATCH():
                 v=data[k]
                 #b = tk.Button(xframe,bg="grey", text=str(k)+' '+str(v),width=8)
 
-                command = _SET_PATCH(k,v,fix,data)
+                command = _SET_PATCH(k,v,fix,data,_cb=self.draw)
                 b = tk.Button(xframe,bg="grey", text=str(v),width=2,command=command.attr)
                 command.set_button(b)
                 
@@ -2310,31 +2328,46 @@ class GUI_PATCH():
                 if c >=8:
                     c=start_c
                     r+=1
-            b = tk.Button(xframe,bg="grey", text="{}".format(len(data["ATTRIBUT"])),width=3)
+
+            max_dmx = 0
+            for a in data["ATTRIBUT"]:
+                attr = data["ATTRIBUT"][a]
+                if "NR" in attr:
+                    try:
+                        _n = int(attr["NR"])
+                        if _n > max_dmx:
+                            max_dmx=_n
+                    except ValueError:pass
+            
+            dmx_ch_sum += max_dmx
+            for i in range(data["DMX"],data["DMX"]+max_dmx):
+                if i in dmx_collision:
+                    collision.append(i)
+                else:
+                    dmx_collision.append(i)
+            b = tk.Button(xframe,bg="grey", text="{:3} ({})".format(max_dmx , len(data["ATTRIBUT"])),width=4) #a,anchor="w")
             b.grid(row=r, column=c, sticky=tk.W+tk.E)
             c+=1
-            b = tk.Button(xframe,bg="#aaa", text="{:03}-{:03}".format(data["DMX"],len(data["ATTRIBUT"])+(data["DMX"])-1),width=6,anchor="w")
+            #b = tk.Button(xframe,bg="#aaa", text="{:03}-{:03}".format(data["DMX"],len(data["ATTRIBUT"])+(data["DMX"])-1),width=6,anchor="w")
+            b = tk.Button(xframe,bg="#aaa", text="{:03} - {:03}".format(data["DMX"],max_dmx+(data["DMX"]-1)),width=8,anchor="w")
             b.grid(row=r, column=c, sticky=tk.W+tk.E)
-            if 0: #for attr in data["ATTRIBUT"]:
-                
-                if attr not in gui.all_attr:
-                    gui.all_attr.append(attr)
-                if attr not in gui.elem_attr[fix]:
-                    gui.elem_attr[fix][attr] = []
-                if attr.endswith("-FINE"):
-                    continue
-                v= data["ATTRIBUT"][attr]["VALUE"]
-                
-                b = tk.Button(xframe,bg="grey", text=str(attr)+' '+str(round(v,2)),width=8)
-                #gui.elem_attr[fix][attr] = b
-                #b.bind("<Button>",Xevent(fix=fix,elem=b,attr=attr,data=data).cb)
-                b.grid(row=r, column=c, sticky=tk.W+tk.E)
-                c+=1
-                if c >=8:
-                    c=start_c
-                    r+=1
+
+            c+=1
+            b = tk.Button(xframe,bg="#aaa",fg="#225", text="{} : {:03}".format(z,dmx_ch_sum),width=6,anchor="w")
+            b.grid(row=r, column=c, sticky=tk.W+tk.E)
+
+            c+=1
+            bg = "#252"
+            if collision:
+                bg = "#f22"
+            else: 
+                collision = ""
+            b = tk.Button(xframe,bg=bg, text="{}".format(str(collision)),width=14,anchor="w")
+            b.grid(row=r, column=c, sticky=tk.W+tk.E)
+
             c=0
             r+=1
+
            
 
 class GUI_FIX():
@@ -2452,9 +2485,9 @@ def draw_enc(gui,xframe):
             continue
         v=0
         
-        b = tk.Button(frame,bg="#6e6e6e", text=str(attr)+'',width=6, anchor="w")
+        b = tk.Button(frame,bg="#6e6e6e", text=str(attr)+'',width=7)#, anchor="w")
         if attr == "DIM":
-            b = tk.Button(frame,bg="#ff7f00", text=str(attr)+'',width=6, anchor="w")
+            b = tk.Button(frame,bg="#ff7f00", text=str(attr)+'',width=7)#, anchor="w")
         b.bind("<Button>",Xevent(fix=0,elem=b,attr=attr,data=gui,mode="ENCODER").cb)
         b.grid(row=r, column=c, sticky=tk.W+tk.E ,ipadx=0,ipady=0,padx=0,pady=0)#,expand=True)
         c+=1
@@ -4928,7 +4961,7 @@ if __run_main:
 
 
     name="ENCODER"
-    w = GUIWindow(name,master=0,width=560,height=113,left=L0+770,top=TOP+H1+HTB*2)
+    w = GUIWindow(name,master=0,width=620,height=113,left=L0+710,top=TOP+H1+HTB*2)
     _ENCODER_WINDOW = w
     draw_enc(master,w.tk)#Xroot)