Browse Source

add HTP_MASTER

micha 2 years ago
parent
commit
18b04aa1f6
2 changed files with 145 additions and 29 deletions
  1. 52 7
      _console.py
  2. 93 22
      console_test.py

+ 52 - 7
_console.py

@@ -276,17 +276,62 @@ class _MASTER():
 
         return _value /100.
         
-class SPEED_MASTER(_MASTER):
-    def __init__(self):
-        super().__init__("SPEED")
 
-class SIZE_MASTER(_MASTER):
+size_master  = _MASTER("SIZE")
+speed_master = _MASTER("SPEED")
+
+
+class HTP_MASTER():
+    """functional implementation as class for namespace encapsulation
+
+    """
     def __init__(self):
-        super().__init__("SIZE")
+        self.data = OrderedDict() 
+        #self.data[1] = {"DMX":[22,23,24],"VALUE":80}
+        #self.data[2] = {"DMX":[42,43,44],"VALUE":70}
+        #self.data[3] = {"DMX":[22,23,24],"VALUE":99}
+
+    def _list_by_dmx(self,_dmx=0):
+        data = OrderedDict()
+        for i,link in self.data.items(): # enumerate(self.data):
+            if _dmx in link["DMX"]:
+                #print( "_list_by_dmx",i,link)
+                data[i] = link
+        return data
+
+
+    def dmx_by_id(self,_id=0):
+        #print("dmx by master-id:",_id)
+
+        if _id in self.data:
+            for i,link in self.data[_id].items():
+                #print("dmx_by_id", i,link)
+                return (i,link)
+
+        return 0,{}
+
+    def master_by_dmx(self,dmx=0):
+        #print("master of dmx:",dmx)
+        val=0
+        flag = 0
+        data = self._list_by_dmx(dmx)
+        for i,link in data.items():
+
+            #print("master_by_dmx", i,link)
+            if link["VALUE"] > val:
+                #print("master_by_dmx", i,link)
+                val = link["VALUE"]
+                flag=1
+        if flag:
+            return val
+        else:
+            return 100.  # default
+
+
+exe_master = []
+exe_master.append({"SIZE":100,"SPEED":100,"id":12,"link-ids":[2]})
 
 
-size_master  = SIZE_MASTER()
-speed_master = SPEED_MASTER()
 
 class MASTER_FX():
     def __init__(self):

+ 93 - 22
console_test.py

@@ -1,39 +1,110 @@
 
 import time
 
+print("====== IMPORT ======")
 import unittest
 import _console as console
 
-print(dir())
-
-
+#print(dir())
+print()
+print("====== TEST START ======")
 master_fx = console.MASTER_FX()
 
 clock = 0
 start = time.time()
 fx = []
-for i in range(100):
-    fx.append( console.FX(master=master_fx,offset=i) )
-    n = 0# fx[-1].next()
-    print("init",n,time.time()-start)
-print()
-for f in fx:
-    n=f.next(clock=1)
-    print("next",n,time.time()-start)
 
+i=20
+f= console.FX(master=master_fx,offset=i) 
+print(f)
+print()
+tick = 1
+n=f.next(clock=tick)
+print(f)
+if int(n*1000) == 3715:
+    print("TEST: fx.next",tick,n, "\tOK")
+else:
+    print("TEST: fx.next",tick,n, "\tfail")
 print()
-print(time.time()-start)
+#print("next",n,time.time()-start)
+tick=33
+n=f.next(clock=tick)
+print(f)
+if int(n*1000) == -4755:
+    print("TEST: fx.next",i*tick,n, "\tOK")
+else:
+    print("TEST: fx.next",i*tick,n, "\tfail")
 
-print(dir(fx))
 
-tick = 0.01
-for i in range(100):
 
-    #for f in fx:
-    f = fx[-1]
-    if 1:
-        n=f.next(clock=i*tick)
-        print("next {:0.04} {:0.04} ".format(n,time.time()-start))
-    time.sleep(tick)
-print()
+if 0: #simulation
+    for i in range(100):
+        fx.append( console.FX(master=master_fx,offset=i) )
+        n = 0# fx[-1].next()
+        print("init",n,time.time()-start)
+    print()
+    for f in fx:
+        n=f.next(clock=1)
+        print("next",n,time.time()-start)
+
+    print()
+    print(time.time()-start)
+
+    print(dir(fx))
+
+    tick = 0.01
+    for i in range(100):
+
+        #for f in fx:
+        f = fx[-1]
+        if 1:
+            n=f.next(clock=i*tick)
+            #print("next {:0.04} {:0.04} ".format(n,time.time()-start))
+        time.sleep(tick)
+    print()
+
+
+
+
+
+if 1: #test
+    time.sleep(0.1)
+    print()
+    print()
+    htp_master = console.HTP_MASTER()
+    htp_master.data[1] = {"DMX":[22,23,24],"VALUE":80}
+    htp_master.data[2] = {"DMX":[42,43,44],"VALUE":70}
+    htp_master.data[3] = {"DMX":[22,23,24],"VALUE":99}
+
+
+    for i in htp_master.data:
+         print("data",i,htp_master.data[i])
+    print()
+    m = 3
+    r = htp_master.dmx_by_id(3)
+    print("TEST: htp_master.dmx_by_id Master:",m,"is:",r,end="\t")
+    c = ('DMX', [22, 23, 24])
+    if r == c:
+        print("\tOK")
+    else:
+        print("(",r,"!=",c,")\tfail")
+
+    #print("htp_master r=",r)
+    #print()
 
+    m=22
+    r = htp_master.master_by_dmx(m)
+    print("TEST: the highes master-value of dmx:",m, "is:",r ,end="\t")
+    c=99
+    if r == c:# ('DMX', [22, 23, 24]):
+        #print("\\e[42m") #Red Text\e[0m")
+        print("\tOK")
+    else:
+        print("(",r,"!=",c,")\t\tfail")
+    print()
+    #print("the highes master-value of dmx",m, "is:",r)
+    #input("end")
+    #print()
+    #print()
+    #print()
+    #exit()