Browse Source

extract: dmx value to fix_data merge

micha 1 year ago
parent
commit
81449786cc
1 changed files with 66 additions and 46 deletions
  1. 66 46
      tksdl/fix.py

+ 66 - 46
tksdl/fix.py

@@ -140,6 +140,59 @@ def read_dmx():
             dmx[u] = x
     return dmx
             
+def read_fix(dmx):
+    y=mc.get("fix")#cmd)
+    key=y.keys()
+    key = list(key)
+    key.sort()
+    for k in key:#y.items():
+        v = y[k]
+        #print(k,v)
+        x=mc.get(k)
+        dmx_start = 0
+        if "DMX" in v:
+            dmx_start = v["DMX"]
+
+        univ_start = 0
+        if "UNIVERS" in v:
+            univ_start = v["UNIVERS"]
+
+        if "ATTRIBUT" in v: # and 10: 
+            ATTR = v["ATTRIBUT"]
+            for k2 in ATTR:
+                k2_ATTR = ATTR[k2]
+
+                #print(ATTR) #[k2_ATTR]) #["VALUE2"] = -2
+                k2_ATTR["VALUE2"] = -2
+
+                #if k2.endswith("-FINE"):
+                #    continue
+                if k2.startswith("_"):
+                    continue
+                k3 = k+"-"+k2
+                
+                dmx_nr = 0
+                if "NR" in k2_ATTR:
+                    if k2_ATTR["NR"] >= 1:
+                        dmx_nr = k2_ATTR["NR"]+1
+                
+                val2 = ""
+                if "VALUE" in k2_ATTR:
+                    val2 = k2_ATTR["VALUE"]
+
+                dmx_val=-1
+                dmx_x=-1
+                if dmx_nr > 0 and dmx_start > 0:
+                    try:
+                        dmx_x = dmx_start-1+dmx_nr-1
+                        dmx_val = dmx[str(univ_start)][dmx_x-1]
+                    except:pass
+
+                k2_ATTR["VALUE2"] = dmx_val
+    return y
+
+def add_dmx(data,dmx):
+    pass
 
 table={}
 table_grid={}
@@ -187,6 +240,10 @@ while 1:
 
     rgb = (0xff,0,0xaa,0)
 
+    data = read_fix(dmx)
+    #data = add_dmx(data,dmx)
+
+
     i = 0
     r=40
     if 1:
@@ -194,7 +251,7 @@ while 1:
         send = 0
         #cmd="stats items" 
         #if not y:
-        y=mc.get("fix")#cmd)
+        y=data #mc.get("fix")#cmd)
         if y:
             iii = 0
             key=y.keys()
@@ -219,9 +276,6 @@ while 1:
                 txt = str([k,v,ch,"=",cccount]) #x[ch-1]])
 
                 rgb = (0xaa,0xaa,0xaa,0)
-                #fr = font22.render(str(txt) ,1, rgb) #(200,200,200))
-                #window.blit(fr,(30,40+iii))
-
                 
                 i += 1
                 if k not in table:
@@ -237,16 +291,6 @@ while 1:
                 bx.data = v
                 bxc.data = {}
 
-                dmx_start = 0
-                if "DMX" in v:
-                    dmx_start = v["DMX"]
-
-                univ_start = 0
-                if "UNIVERS" in v:
-                    univ_start = v["UNIVERS"]
-                
-                #dmx_start += univ_start*512 
-
                 active = 0
                 if "ATTRIBUT" in v:
                     if "_ACTIVE" in v["ATTRIBUT"]:
@@ -256,10 +300,8 @@ while 1:
 
                 bx.btn1.val.set(active)
                 bx.text = "ID:"+ k #str(txt) #+"\n<val>\n" #.format(i+1)
-                #bx.font0 = pygame.font.SysFont("freesans-bold",20)
                 bx.font0 = bx_font0 #pygame.font.SysFont("freesans-bold",20)
                 bx.btn1.bg_on = [0,255,255]
-                #bx.dbg = 1
                 bx.btn1.type = "toggle"
                 bx.pos  = [10,r,70,20]
 
@@ -301,37 +343,25 @@ while 1:
                         k2_ATTR = ATTR[k2]
                         #if k2.endswith("_color"):
                         #    continue
-                        if k2.endswith("-FINE"):
-                            continue
+                        #if k2.endswith("-FINE"):
+                        #    continue
                         if k2.startswith("_"):
                             continue
                         k3 = k+"-"+k2
                         
-                        dmx_nr = 0
-                        if "NR" in k2_ATTR:
-                            if k2_ATTR["NR"] >= 1:
-                                dmx_nr = k2_ATTR["NR"]+1
-                        
 
                         val2 = ""
                         if "VALUE" in k2_ATTR:
                             val2 = k2_ATTR["VALUE"]
 
-                        dmx_val=-1#0
-                        dmx_x=-1
-                        if dmx_nr > 0 and dmx_start > 0:
-                            try:
-                                dmx_x = dmx_start-1+dmx_nr-1
-                                dmx_val = dmx[str(univ_start)][dmx_x-1]
-                                #dmx_val = dmx_x
-                                #val2 += " :"+str(dmx_val)
-                            except:pass
-                        #bx.data["rDMX"] = dmx_val
                         virt = 1
                         if "NR" in k2_ATTR:
                             if k2_ATTR["NR"] > 0:
                                 virt = 0
 
+                        dmx_val = -3
+                        if "VALUE2"in k2_ATTR:
+                            dmx_val = k2_ATTR["VALUE2"]
 
                         if k3 not in table_grid:
                             bx = sdl_elm.Button(window,pos=[300,rr,60,20])
@@ -349,35 +379,26 @@ while 1:
 
                         try:val = v
                         except:pass
-                        #print(k,k2,val2)
-                        #bx.text = k3 +" "+str(val2) #str(txt) #+"\n<val>\n" #.format(i+1)
-                        bx.text = k2 +" "+str(val2)+" "+str(dmx_val) #str(txt) #+"\n<val>\n" #.format(i+1)
-                        bx.font0 = bx_font0 #pygame.font.SysFont("freesans-bold",20)
+
+                        bx.text = k2 +" "+str(val2)+" "+str(dmx_val) 
+                        bx.font0 = bx_font0 
                         if k2 == "RED":
                             bx.btn4.color_on = [255,0,0]
                         elif k2 == "GREEN":
                             bx.btn4.color_on = [0,255,0]
                         elif k2 == "BLUE":
                             bx.btn4.color_on = [0,0,255]
-                        #else:
-                        #    bx.btn4.color_on = [0,255,255]
 
 
                         if virt == 1:
-                            #bx.btn2.color= [125,120,122]
-                            #bx.btn3.color= [125,120,122]
                             bx.btn3.color= [0,0,0]
-                            #bx.btn3.color_on= [0,120,122]
 
-                        #bx.dbg = 1
                         bx.btn1.type = "toggle"
-                        #bx.btn4.val.set(val2) # "toggle"
                         if type(dmx_val) == int:
                             bx.btn4.val.set(dmx_val) # "toggle"
                         bx.pos  = [100+rr,r,120,20]
                         bx.draw()
                         rr+=bx.get_rect()[2]+2
-                        #rr += 25
                         if rr > 1000:
                             break
 
@@ -385,7 +406,6 @@ while 1:
                 if r > 800:
                     break
 
-            #print(k,v)
 
 
     if 0:#kill: