Browse Source

add: SDL-FIXTURE with real dmx feedback ;-)

micha 1 năm trước cách đây
mục cha
commit
f89ea8809b
2 tập tin đã thay đổi với 73 bổ sung2 xóa
  1. 69 0
      _LibreLightDesk.py
  2. 4 2
      tool/sdl_elm.py

+ 69 - 0
_LibreLightDesk.py

@@ -421,6 +421,35 @@ try:
     import memcache
 except Exception as e:
     cprint("Exception IMPORT ERROR",e)
+        
+class MC_FIX():
+    def __init__(self,server="127.0.0.1",port=11211):
+        cprint("MC.init() ----------" ,server,port,color="red")
+        try:
+            #self.mc = memcache.Client(['127.0.0.1:11211'], debug=0)
+            self.mc = memcache.Client(['{}:{}'.format(server,port)], debug=0)
+            #self.init()
+        except Exception as e:
+            cprint("-- Exception",e)
+
+    def set(self,index="fix",data=[]):
+        #time.sleep(5)
+
+        if 1: #while 1:
+            #print("MC.send",index) #,data) 
+            index = self.mc.get("index")
+            #if index:
+            #    for i in index:
+            #        print("  key",i)
+
+            self.mc.set("fix", data)
+
+        #examles
+        #self.mc.set("some_key", "Some value")
+        #self.value = mc.get("some_key")
+        #self.mc.set("another_key", 3)
+        #self.mc.delete("another_key")
+
 
 class MC():
     def __init__(self,server="127.0.0.1",port=11211):
@@ -4862,6 +4891,7 @@ if __run_main:
     data.append({"text":"SDL-CONFIG"})
     data.append({"text":"CLOCK"})
     data.append({"text":"SDL-DMX"})
+    data.append({"text":"SDL-FIX"})
 
     name="MAIN"
     args = {"title":"MAIN","master":1,"width":80,"height":H1,"left":L0,"top":TOP,"resize":1}
@@ -4956,6 +4986,32 @@ if __run_main:
         window_manager.top(name)
 
 
+    name="SDL-FIX"
+    def sdl_config():
+        cmd="/usr/bin/python3 /opt/LibreLight/Xdesk/tksdl/fix.py " #&"
+        print(cmd)
+        #os.popen(cmd)
+
+        def xyz123(cmd):
+            os.system(cmd)
+        thread.start_new_thread(xyz123,(cmd,))
+        return [None,None,None]
+    #class window_create_sdl_buffer():
+    args = {"title":name,"master":0,"width":W1,"height":H1,"left":L1,"top":TOP}
+    geo = split_window_position(pos_list,name)
+    if geo:
+        args.update(geo)
+
+    data = []
+    cls = sdl_config #: None #GUI_CONF
+    cb_ok = None
+
+    c = window_create_sdl_buffer(args=args,cls=cls,data=data,cb_ok=cb_ok,gui=master,scroll=1)
+    window_manager.new(None,name,wcb=c)
+    if split_window_show(pos_list,_filter=name):
+        window_manager.top(name)
+
+
     name="CONFIG"
     args = {"title":name,"master":0,"width":W1,"height":H1,"left":L1,"top":TOP}
     geo = split_window_position(pos_list,name)
@@ -5211,6 +5267,19 @@ if __run_main:
 
 
     thread.start_new_thread(loops,())
+    mc_fix = MC_FIX()
+    def mc_fix_loop():
+        time.sleep(5)
+        while 1:
+            try:
+                #print(1)
+                data = FIXTURES.fixtures 
+                mc_fix.set(index="fix",data=data)
+            except Exception as e:
+                print("MC_FIX EXCEPTION",e)
+            time.sleep(1/10)
+
+    thread.start_new_thread(mc_fix_loop,())
     
     try:
         window_manager.mainloop()

+ 4 - 2
tool/sdl_elm.py

@@ -218,7 +218,8 @@ class Button():
         self.btn1.name = "BUTTON BUF"
         self.btn1.nr_on  = [1,3]
         self.btn1.nr_off = [1,3]
-        self.btn1.color = LIGHTGRAY 
+        #self.btn1.color = LIGHTGRAY 
+        self.btn1.color = GRAY 
         self.btn1.color_on = RED 
 
         self.btn2 = ELEM_BUF() # sel elem
@@ -310,6 +311,7 @@ class Button():
 
     def _draw_fader(self):
         rgb = [0,200,0]
+        rgb = self.btn4.color_on
         pos2 = self.pos[:]
         v = self.btn4.val.get() #self.val.get()
         fh = get_font_hight(self.font0)
@@ -354,7 +356,7 @@ class Button():
 
     def _check_event(self):
         pass
-    def _draw_bd(self,delta=0,color=BLACK):
+    def _draw_bd(self,delta=0,color=GRAY):#BLACK):
         l_pos = draw_bd(pos=self.pos,delta=delta)
         for i in l_pos:
             pygame.draw.aaline(self.window,color,i[0],i[1],1)