Эх сурвалжийг харах

fix: vpu_live.py countdown, reset,pause,play

micha 3 сар өмнө
parent
commit
d9aba47a76
1 өөрчлөгдсөн 19 нэмэгдсэн , 8 устгасан
  1. 19 8
      vpu/vpu_live.py

+ 19 - 8
vpu/vpu_live.py

@@ -112,7 +112,7 @@ if options.countdown:
             _tmp={"DMX":cdmx,"DIM":0,"PAN":127,"TILT":127
                     ,"CONTROL":0,"SEC":10
                     ,"RED":255,"GREEN":255,"BLUE":255
-                    ,"_time":time.time(),"_RUN":0
+                    ,"_time":time.time(),"_RUN":0,"_pause":0,"_start":0
                     ,"_SEC":">{}<".format(cdmx)
                     }
             COUNTER.append(_tmp)
@@ -1959,9 +1959,18 @@ def counter_dmx(COUNTER,dataA):
             count["PAN"]   = dataA[cDMX+1]
             count["TILT"]  = dataA[cDMX+2]
             count["CONTROL"] = dataA[cDMX+3]
+            count["SIZE"]  = dataA[cDMX+4]
+            count["SEC"]   = dataA[cDMX+5]
+            count["RED"]   = dataA[cDMX+6]
+            count["GREEN"] = dataA[cDMX+7]
+            count["BLUE"]  = dataA[cDMX+8]
 
             if count["CONTROL"] >= 10 and count["CONTROL"] < 20:
-                count["_SEC"] = int(count["SEC"] - (time.time() - count["_time"]))
+                count["_RUN"]   = 0 
+                count["_pause"] = 0
+                count["_time"]  = time.time()
+                count["_start"] = int(count["SEC"])
+                count["_SEC"]   = int(count["_start"]) 
             if count["CONTROL"] >= 20 and count["CONTROL"] < 30:
                 count["_RUN"] = 0 
             if count["CONTROL"] >= 30 and count["CONTROL"] < 40:
@@ -1969,13 +1978,18 @@ def counter_dmx(COUNTER,dataA):
 
 
 
-            count["SIZE"]  = dataA[cDMX+4]
-            count["SEC"]   = dataA[cDMX+5]
             if count["_RUN"]:
                 try:
-                    count["_SEC"] = int(count["SEC"] - (time.time() - count["_time"]))
+                    if count["_pause"] > 0:
+                        count["_time"] += time.time()-count["_pause"]
+                        count["_pause"] = 0
+                    count["_SEC"] = int(count["_start"] - (time.time() - count["_time"]))
+
                 except Exception as e:
                     pass
+            else:
+                if count["_pause"] == 0:
+                    count["_pause"] = time.time()
             if type(count["_SEC"]) is int:
                 if count["_SEC"] < 0:
                     count["_SEC"] = 0
@@ -1991,9 +2005,6 @@ def counter_dmx(COUNTER,dataA):
             if count["CONTROL"] >= 250 and count["CONTROL"] < 256:
                 count["_SEC"] = "DMX:{}-{}".format(cDMX+1,cDMX+8+1)
 
-            count["RED"]   = dataA[cDMX+6]
-            count["GREEN"] = dataA[cDMX+7]
-            count["BLUE"]  = dataA[cDMX+8]
         except Exception as e:
             print("EXC FUNC",e,count)
         #print(count)