Browse Source

fix: nodescanner and tk-nodescanner set sname,lname,univ OK!

micha 2 years ago
parent
commit
3630240800
4 changed files with 505 additions and 339 deletions
  1. 314 314
      tool/mini-scan.py
  2. 85 7
      tool/nodescan_v6_2.py
  3. 57 0
      tool/test_ArtAddress.py
  4. 49 18
      tool/tk-nodescan_v7.3.py

+ 314 - 314
tool/mini-scan.py

@@ -162,318 +162,318 @@ import _thread as thread
 thread.start_new_thread(loop, () )
 
 time.sleep(2)
+if __name__ == "__main__":
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    print()
+    print()
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+    print()
+    print()
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
 
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-print()
-print()
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-print()
-print()
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
-ArtNet_poll("10.0.0.255")
-time.sleep(0.5)
-ArtNet_poll("2.255.255.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.2.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.1.255")
-time.sleep(0.5)
-ArtNet_poll("192.168.0.255")
-time.sleep(0.5)
-
-
-while 1:
-    time.sleep(1)
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)
+    ArtNet_poll("10.0.0.255")
+    time.sleep(0.5)
+    ArtNet_poll("2.255.255.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.2.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.1.255")
+    time.sleep(0.5)
+    ArtNet_poll("192.168.0.255")
+    time.sleep(0.5)
+
+
+    while 1:
+        time.sleep(1)

+ 85 - 7
tool/nodescan_v6_2.py

@@ -26,6 +26,7 @@ import sys
 import _thread as thread
 import copy
 import random
+import traceback
 
 sys.stdout.write("\x1b]2;Nodescan\x07")
 
@@ -37,7 +38,7 @@ try:
     sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
 except socket.error as e:
     print("Socket 6454 ", "ERR: {0} ".format(e.args))
-    sys.exit()
+    #sys.exit()
     
     
     
@@ -46,8 +47,8 @@ try:
     sock2.bind(('', 6455))
     sock2.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
 except socket.error as e:
-    print("Socket2 6454 ", "ERR: {0} ".format(e.args))
-    sys.exit()
+    print("Socket2 6455 ", "ERR: {0} ".format(e.args))
+    #sys.exit()
 
 
 print(socket.AF_INET)
@@ -69,6 +70,7 @@ if __name__ == "__main__":
 
 def ArtNet_poll(ip,port=6454):
     print("POLL",[ip,port],end="")
+    #traceback.print_exception()
     #try:
     if 1:
         sock.sendto(b'Art-Net\x00\x00 \x00\x0e\x06\x00',(ip,port)) # ArtPol / ping
@@ -192,6 +194,7 @@ class ArtNetNodes():
     def __init__(self):
         print("CONSTRUCKT:",self)
         self.__nodes = []
+        self.__nodes_mac = []
         self.__lock = thread.allocate_lock()
         self.__tick = 0
         #self.__lock.acquire()
@@ -215,6 +218,7 @@ class ArtNetNodes():
             else:
                 BOOT = 0            
         
+            #self.__nodes_mac = []
             for node in self.__nodes:
                 info = node["MAC"],node["IP"].ljust(16," "),[node["SwIn"],node["SwOut"],node["PortTypes"]]
                 
@@ -293,7 +297,7 @@ class ArtNetNodes():
         return out
 
     def recive(self):
-        print("-- NODE SCAN START ---")
+        print("-- NODE READ LOOP START ---")
         print()
         while 1:
             data, addr = sock.recvfrom(500)
@@ -303,13 +307,13 @@ class ArtNetNodes():
                 #print("rcv 333",new_node)
                 self.add(new_node)
             time.sleep(0.001)
-        print("-- NODE SCAN STOP ---")
+        print("-- NODE READ LOOP END ---")
         print()
         
     def loop(self):
         thread.start_new_thread(self.recive, () )
         time.sleep(5)
-        poll()
+        #poll()
         
 Reciver = ArtNetNodes
 
@@ -436,6 +440,81 @@ def ArtNet_decode_pollreplay(data):
                 print(opcode, len(data))
     return node
 
+
+def ArtAddress(ip="192.168.0.99" ,ShortName="ShortName", LongName="LongName",Port="",Universes=0,raw=0):
+    node_nr = 1
+
+    #send port
+    port = 7600
+    port = 6454
+
+    print( ip)
+    data = [] # [struct.pack('<B', 0)]*150
+    header = []
+    # Name, 7byte + 0x00
+    header.append(b"Art-Net\x00")
+    # OpCode ArtDMX -> 0x6000, Low Byte first
+    header.append(struct.pack('<H', 0x6000))
+    # Protocol Version 14, High Byte first
+    header.append(struct.pack('>H', 14))
+
+    data = header[:]
+    # NetSwitch
+    data.append(struct.pack('<B',128)) # no change 0x7f
+    data.append(struct.pack('<B', 0))     # filler
+
+    #Short Name
+    sname = ShortName[:17] 
+    sname = sname.ljust(18,"\x00")
+    data.append( sname )
+
+    lname = LongName[:63] 
+    lname = lname.ljust(64,"\x00") 
+    #lname = lname[:-2]+"X\x00"
+    data.append( lname )
+
+    print( "len sname:lname",len(sname),len(lname))
+
+    #SwIn 4; Port-Adress
+    # univers 0-f == \x80 - \x8f
+    i = 4
+    i=int(Universes)+1 #random.randint(0,99)
+    data.append(struct.pack('<B', 127+i))
+    data.append(struct.pack('<B', 127+i))
+    data.append(struct.pack('<B', 127+i))
+    data.append(struct.pack('<B', 127+i))
+
+
+    #SwOut 4; Port-Adress
+    data.append(struct.pack('<B', 127+i))
+    data.append(struct.pack('<B', 127+i))
+    data.append(struct.pack('<B', 127+i))
+    data.append(struct.pack('<B', 127+i))
+
+    #SubSwitch comination with Swin[] SwOut[]
+    data.append(struct.pack('<B', 0)) # SubSwitch Write 128
+    data.append(struct.pack('<B', 255))
+    data.append(struct.pack('<B', 0))
+    data.append(struct.pack('<B', 0))
+
+    #data.append("\xf4")
+
+    #print( ["ArtAdress SEND:",data,(ip,port)] )
+    data2 = b""
+    for d in data:
+        #print(d,type(d))
+        if type(d) is str:
+            data2+=bytes(d,"utf-8")
+        elif type(d) is bytes:
+            data2+=d
+        else:
+            data2+=bytes(str(d),"ascii")
+    print(data2)
+    if raw:
+        return data2,(ip,port)
+    sock.sendto(data2 ,(ip,port))
+
+
 def set_ip4(cur_ip=(2,0,0,91),new_ip=(2,0,0,201),new_netmask=(255,0,0,0)):
     
     #send ip
@@ -669,4 +748,3 @@ if __name__ == "__main__":
     print("time out")
     raw_input("ENDE")
 
-

+ 57 - 0
tool/test_ArtAddress.py

@@ -0,0 +1,57 @@
+from nodescan_v6_2  import *
+
+import time
+import _thread as thread
+
+import socket, struct
+print(socket.AF_INET)
+
+sock.close()
+print("start")
+try:
+    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    sock.bind(('', 6454))
+    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
+    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+
+except socket.error as e:
+    print("Socket 6454 ", "ERR: {0} ".format(e.args))
+    sys.exit()
+
+def recive():
+    print("-- NODE READ LOOP START ---")
+    print()
+    while 1:
+        data, addr = sock.recvfrom(500)
+        print("\e[1;33;4;44m",end="")
+        print(">>",addr,data,end="")
+        print("\e[0m")
+        time.sleep(0.001)
+
+    print("-- NODE READ LOOP END ---")
+    print()
+
+#thread.start_new_thread(recive, () )
+import random
+x=random.randint(0,99)
+sn = "ShortName"+str(x)
+ln = "LongName"+str(x)
+
+print(sn,ln)
+
+#rx = ArtNetNodes()
+#rx.loop()
+#time.sleep(4)
+univ = random.randint(0,16)
+
+x=ArtAddress(ip="2.0.0.99" ,ShortName=sn, LongName=ln,Port="",Universes=univ,raw=1)
+sock.sendto(x[0] ,x[1])
+x=ArtAddress(ip="2.0.0.4"  ,ShortName=sn, LongName=ln,Port="",Universes=univ,raw=1)
+sock.sendto(x[0] ,x[1])
+x=ArtAddress(ip="2.0.0.15" ,ShortName=sn, LongName=ln,Port="",Universes=univ,raw=1)
+sock.sendto(x[0] ,x[1])
+
+time.sleep(1)
+#poll()
+#while 1:
+#    input("ende")

+ 49 - 18
tool/tk-nodescan_v7.3.py

@@ -54,11 +54,24 @@ def load(event):
     e_mac2.delete("0","end")
     e_mac2.insert("end",node_list[sel]["MAC"].split(":")[-1])
     
-    
-    #print(dir(event))
-    #print(node_list)
-    #for i in node_list:
-    #    print(i)
+    print("load",node_list[sel])
+    e_lname.delete("0","end")
+    e_lname.insert("end",node_list[sel]["lname"]) 
+    e_sname.delete("0","end")
+    e_sname.insert("end",node_list[sel]["sname"]) 
+
+    e_artnet_uni1.delete("0","end")
+    univ = "0"
+    print("tttttttttttttttttttttttttttttttttttttttt")
+    try:
+        if node_list[sel]["PortTypes"][0] == "@":
+            univ = ord(node_list[sel]["SwIn"][0]) 
+        else:
+            univ = ord(node_list[sel]["SwOut"][0]) 
+    except Exception as e:
+        print("load Exception",e)
+    e_artnet_uni1.insert("end",univ) 
+
     
 def clear_entry_ip():
     e_ip.configure(state='normal')
@@ -159,7 +172,7 @@ def _scan():
                 inout = " UNIVERS OUT="+ str(ord(node["SwOut"][0]))+" IN="+ str(ord(node["SwIn"][0]))
                 li_nodes.insert("end",str(node_nr).rjust(3," ") + inout)
                 
-                li_nodes.insert("end",str(node_nr).rjust(3," ") +" "+ node["MAC"])
+                li_nodes.insert("end",str(node_nr).rjust(3," ") +" MAC:"+ node["MAC"])
                 
                 timeline = ""
                 timeline += " LASTCHANGE:%0.1f"% (time.time()-float(node["UPDATESTAMP"]) )
@@ -210,6 +223,22 @@ def get_new_ip_str(event=None):
     print( "get_new_ip_str",x)
     return x
     
+def send_artaddr(event=None):
+    ln = e_lname.get()
+    sn = e_sname.get()
+
+    ip = e_ip_new.get()
+    ip = ip.replace(" ","")
+    ip = ip.replace(",",".")
+
+    univ = e_artnet_uni1.get()
+
+    print("SEND ArtAddress:",[ln,sn,ip,univ])
+
+    if ln and sn and ip and univ:
+        nodscaner.ArtAddress(ip=ip ,ShortName=sn, LongName=ln,Port="",Universes=univ)
+
+
 def send_none(event=None):
     pass
     
@@ -373,7 +402,7 @@ eframe1.pack(side="left",expand=0,fill="y")
 line_frame = Tkinter.Frame(eframe)
 line_frame.pack(side="top",expand=0,fill="x")
 Tkinter.Label(line_frame,text="OLD IP:",font=font3,width=6).pack(side="left",expand=0,fill="y")
-e_ip = Tkinter.Entry(line_frame,font=font20,width=13)
+e_ip = Tkinter.Entry(line_frame,font=font20,width=13,state="disabled")
 e_ip["bg"] = "lightgrey"
 e_ip.pack(side="left")
 #b_scan = Tkinter.Button(line_frame,width=14,font=font3)
@@ -454,30 +483,30 @@ e_cmd.pack(side="left")
 #-------------------------------------------- line
 line_frame = Tkinter.Frame(eframe)
 line_frame.pack(side="top",expand=0,fill="x")
-Tkinter.Label(line_frame,text="L-Name",font=font3,width=6).pack(side="left",expand=0,fill="y")
-e_lname = Tkinter.Entry(line_frame,font=font3,width=10)
+Tkinter.Label(line_frame,text="LName",font=font3,width=6).pack(side="left",expand=0,fill="y")
+e_lname = Tkinter.Entry(line_frame,font=font3,width=26)
 e_lname.pack(side="left")
 
 #-------------------------------------------- line
 line_frame = Tkinter.Frame(eframe)
 line_frame.pack(side="top",expand=0,fill="x")
-Tkinter.Label(line_frame,text="S-Name",font=font3,width=6).pack(side="left",expand=0,fill="y")
-e_sname = Tkinter.Entry(line_frame,font=font3,width=10)
+Tkinter.Label(line_frame,text="SName",font=font3,width=6).pack(side="left",expand=0,fill="y")
+e_sname = Tkinter.Entry(line_frame,font=font3,width=16)
 e_sname.pack(side="left")
 #-------------------------------------------- line
 line_frame = Tkinter.Frame(eframe)
 line_frame.pack(side="top",expand=0,fill="x")
 Tkinter.Label(line_frame,text="ArtNet",font=font3,width=6).pack(side="left",expand=0,fill="y")
 Tkinter.Label(line_frame,text="SUB:",font=font3,width=4).pack(side="left",expand=0,fill="y")
-e_artnet_uni1 = Tkinter.Entry(line_frame,font=font3,width=4)
+e_artnet_uni1 = Tkinter.Entry(line_frame,font=font3,width=4,state="disabled")
 e_artnet_uni1.pack(side="left")
 Tkinter.Label(line_frame,text="NET:",font=font3,width=4).pack(side="left",expand=0,fill="y")
-e_artnet_uni1 = Tkinter.Entry(line_frame,font=font3,width=4)
+e_artnet_uni1 = Tkinter.Entry(line_frame,font=font3,width=4,state="disabled")
 e_artnet_uni1.pack(side="left")
 Tkinter.Label(line_frame,text="UNI:",font=font3,width=4).pack(side="left",expand=0,fill="y")
 e_artnet_uni1 = Tkinter.Entry(line_frame,font=font3,width=4)
 e_artnet_uni1.pack(side="left")
-Tkinter.Button(line_frame,text="SEND TO NODE",command=send_none,width=14,font=font1).pack(side="left",expand=0)
+Tkinter.Button(line_frame,text="send ArtAddr",command=send_artaddr,width=14,font=font1).pack(side="left",expand=0)
 #-------------------------------------------- line
 
 b_scan = Tkinter.Text(eframe,width=20,font=font2)
@@ -485,9 +514,12 @@ b_scan.pack(side="top",expand=1,fill="x")
 
 
 
+
 #-------------------------------------------- line
 line_frame = Tkinter.Frame(eframe1)
 line_frame.pack(side="top",expand=0,fill="x")
+
+
 Tkinter.Label(line_frame,text="CMD",font=font3,width=6).pack(side="left",expand=0,fill="y")
 e_cmd2 = Tkinter.Entry(line_frame,font=font3,width=16)
 e_cmd2.insert("end","DMX ERASE ")
@@ -544,7 +576,7 @@ def read_cmd_buf():
 
 def _update():
     while 1:
-        time.sleep(10)
+        time.sleep(1)
         root.update_idletasks()
 
 def X():
@@ -553,14 +585,13 @@ def X():
     thread.start_new_thread(_update, () )
     #thread.start_new_thread(node_cmd_recive, () )
     #send_node_cmd(ip=(2,0,0,91),cmd="DMX OUT STORE")
-    nodscaner.send_node_cmd(ip=(2,255,255,255),cmd="CMD GT ")
+    ##nodscaner.send_node_cmd(ip=(2,255,255,255),cmd="CMD GT ")
     #nodscaner.send_node_cmd(ip,cmd=cmd)
    
 
-    rx = nodscaner.ArtNetNodes()
     #rx.loop()
     z = 0
-    poll()
+    #poll()
     while 1:
         
         nodes = rx.get()