|
@@ -37,7 +37,6 @@ import curses
|
|
|
class Curses():
|
|
|
def __init__(self):
|
|
|
|
|
|
-
|
|
|
self.myscreen = curses.initscr()
|
|
|
print( dir(self.myscreen))
|
|
|
print( self.myscreen.getmaxyx() )
|
|
@@ -72,9 +71,12 @@ class Curses():
|
|
|
try:
|
|
|
for i,l in enumerate(lines):
|
|
|
#print(i,l)
|
|
|
- if i >= self.myscreen.getmaxyx()[0]-3:
|
|
|
- continue
|
|
|
+ if i >= self.myscreen.getmaxyx()[0]-2:
|
|
|
+ break
|
|
|
self.myscreen.addstr(i+1, 1, l ) #zeile,spalte,text
|
|
|
+
|
|
|
+ if i >= self.myscreen.getmaxyx()[0]-2:
|
|
|
+ self.myscreen.addstr(i+1, 1, "..." ) #zeile,spalte,text
|
|
|
self.myscreen.refresh()
|
|
|
|
|
|
except KeyboardInterrupt as e:
|
|
@@ -93,6 +95,9 @@ class Curses():
|
|
|
|
|
|
try:
|
|
|
self._inp=self.myscreen.getkey()
|
|
|
+
|
|
|
+ if not self._inp:
|
|
|
+ self._inp = self.myscreen.getch()
|
|
|
self.myscreen.addstr(0, 1, str(self._inp) ) #zeile,spalte,text
|
|
|
self.myscreen.refresh()
|
|
|
return self._inp
|
|
@@ -103,8 +108,8 @@ class Curses():
|
|
|
self.myscreen.clear()
|
|
|
self.myscreen.border(0)
|
|
|
curses.nocbreak();
|
|
|
- #self.myscreen.keypad(0);
|
|
|
- self.read()
|
|
|
+ self.myscreen.keypad(0);
|
|
|
+ #self.read()
|
|
|
curses.echo()
|
|
|
curses.resetty()
|
|
|
#self.myscreen.addstr(10, 2, x ) #zeile,spalte,text
|
|
@@ -130,13 +135,10 @@ class xUniversum():
|
|
|
self.__universes_info = {}
|
|
|
self.__univers_nr = univers_nr
|
|
|
self.__frame = 0
|
|
|
- def update(self,host,dmxframe):
|
|
|
- if type(dmxframe) != list:
|
|
|
- #print( "update ERROR dmxframe is not a list", host )
|
|
|
- return
|
|
|
+ def _add(self,host):
|
|
|
if host not in self.__hosts:
|
|
|
#print( "ADDING HOST:",host,"UNIV:",self.__univers_nr)
|
|
|
- self.__universes_dmx[host] = [0]*512
|
|
|
+ self.__universes_dmx[host] = ["ini"]*512
|
|
|
self.__universes_frames[host] = 0
|
|
|
self.__universes_x_frames[host] = 0
|
|
|
self.__universes_fps[host] = [99]*20
|
|
@@ -144,19 +146,9 @@ class xUniversum():
|
|
|
self.__universes_x_time[host] = time.time()
|
|
|
self.__universes_timer[host] = [0]*512
|
|
|
self.__universes_info[host] = {}
|
|
|
-
|
|
|
- while host in self.__hosts:
|
|
|
- self.__hosts.remove(host)
|
|
|
- self.__hosts.append(host) #re-order hosts list for LTP
|
|
|
- #print("U",host,self.__hosts)
|
|
|
- #print( len(dmxframe),len([0]*512), dmxframe[:10] )
|
|
|
|
|
|
+ def _next_frame(self):
|
|
|
self.__frame += 1
|
|
|
- update_matrix = [0]*512
|
|
|
- dmx=[0]*512
|
|
|
- update_flag = 0
|
|
|
- dmxframe_old = self.__universes_dmx[host]
|
|
|
-
|
|
|
self.__universes_frames[host] += 1
|
|
|
self.__universes_x_frames[host] += 1
|
|
|
if self.__universes_x_time[host]+10 < time.time():
|
|
@@ -169,41 +161,62 @@ class xUniversum():
|
|
|
self.__universes_x_time[host] = time.time()
|
|
|
self.__universes_x_frames[host] = 0
|
|
|
|
|
|
- if len(dmxframe) <= len(dmxframe_old):
|
|
|
+ def update(self,host,dmxframe):
|
|
|
+ if type(dmxframe) != list:
|
|
|
+ #print( "update ERROR dmxframe is not a list", host )
|
|
|
+ return
|
|
|
+
|
|
|
+ self._add(host)
|
|
|
+
|
|
|
+ while host in self.__hosts:
|
|
|
+ self.__hosts.remove(host)
|
|
|
+ self.__hosts.append(host) #re-order hosts list for LTP
|
|
|
+ #print("U",host,self.__hosts)
|
|
|
+ #print( len(dmxframe),len([0]*512), dmxframe[:10] )
|
|
|
+
|
|
|
+ update_matrix = [0]*512
|
|
|
+ dmx=["non"]*512
|
|
|
+ update_flag = 0
|
|
|
+ dmxframe_old = self.__universes_dmx[host]
|
|
|
+ #for i in dmxframe_old:
|
|
|
+ # dmx[i] = dmxframe_old[i]
|
|
|
+
|
|
|
+ self._next_frame()
|
|
|
+
|
|
|
+ if len(dmxframe) <= 512: #len(dmxframe_old):
|
|
|
for i,v in enumerate(dmxframe):
|
|
|
if dmxframe[i] != dmxframe_old[i]:
|
|
|
#print( i,v, self.__frame)
|
|
|
update_matrix[i] = self.__frame #LTP timing
|
|
|
update_flag += 1
|
|
|
- dmx[i] = v
|
|
|
+ dmx[i] = v
|
|
|
|
|
|
self.__universes_flag[host].pop(0)
|
|
|
self.__universes_flag[host].append( update_flag )
|
|
|
|
|
|
+ tmp = {}
|
|
|
+ tmp["flag"] =update_flag
|
|
|
+ tmp["flagx"] = self.__universes_flag[host]
|
|
|
+ tmp["fpsx"] = int(self.__universes_x_frames[host] / (time.time()-self.__universes_x_time[host]))
|
|
|
+ tmp["frame"] = self.__frame
|
|
|
+ #tmp["hosts"] = self.__hosts
|
|
|
+ tmp["uni"] = self.__univers_nr
|
|
|
+ tmp["fps"] = self.__universes_fps[host]
|
|
|
+ self.__universes_info[host] = tmp
|
|
|
if update_flag:
|
|
|
- tmp = {}
|
|
|
- tmp["flag"] =update_flag
|
|
|
- tmp["flagx"] = self.__universes_flag[host]
|
|
|
- tmp["fpsx"] = int(self.__universes_x_frames[host] / (time.time()-self.__universes_x_time[host]))
|
|
|
- tmp["frame"] = self.__frame
|
|
|
- #tmp["hosts"] = self.__hosts
|
|
|
- tmp["uni"] = self.__univers_nr
|
|
|
- tmp["fps"] = self.__universes_fps[host]
|
|
|
- self.__universes_info[host] = tmp
|
|
|
-
|
|
|
#print( "UPDATE HOST:",host, update_flag,"UNIV:",self.__univers_nr)
|
|
|
- self.__universes_dmx[host] = dmxframe
|
|
|
+ self.__universes_dmx[host] = dmx # dmxframe
|
|
|
self.__universes_timer[host] = update_matrix
|
|
|
|
|
|
def get(self,host=""):
|
|
|
|
|
|
- dmx = [-1]*512
|
|
|
+ dmx = ["-"]*512
|
|
|
timer = [0]*512
|
|
|
#print( "H",self.__hosts,self.__univers_nr )
|
|
|
if host and host in self.__hosts:
|
|
|
return self.__universes_dmx[host]
|
|
|
|
|
|
- for host in self.__hosts:
|
|
|
+ for host in self.__hosts: # <- LTP
|
|
|
#print( host )
|
|
|
dmxA = self.__universes_dmx[host]
|
|
|
timerA = self.__universes_timer[host]
|
|
@@ -212,9 +225,28 @@ class xUniversum():
|
|
|
timer[i] = timerA[i]
|
|
|
dmx[i] = dmxA[i]
|
|
|
return dmx
|
|
|
+ def get_mtx(self,host=""):
|
|
|
+
|
|
|
+ dmx = ["--"]*512
|
|
|
+ timer = [0]*512
|
|
|
+ hosts = self.__hosts[:]
|
|
|
+ hosts.sort()
|
|
|
+ for x,host in enumerate(hosts): # <- LTP
|
|
|
+ #print( host )
|
|
|
+ dmxA = self.__universes_dmx[host]
|
|
|
+ timerA = self.__universes_timer[host]
|
|
|
+ for i,t in enumerate(timerA):
|
|
|
+ if timer[i] < t:
|
|
|
+ timer[i] = timerA[i]
|
|
|
+ dmx[i] = x #dmxA[i]
|
|
|
+ return dmx
|
|
|
+
|
|
|
def info(self):
|
|
|
return self.__universes_info
|
|
|
-
|
|
|
+ def hosts(self):
|
|
|
+ x = self.__universes_dmx.keys()
|
|
|
+ x.sort()
|
|
|
+ return x
|
|
|
|
|
|
|
|
|
class Hosts():
|
|
@@ -226,8 +258,24 @@ class Hosts():
|
|
|
#dmxframe[15] = 6
|
|
|
#self.update(host="333.333.333.333",univ=8,dmxframe=dmxframe)
|
|
|
|
|
|
- def get(self,host="", univ=0):
|
|
|
+ def get_mtx(self,host="", univ=""):
|
|
|
+ return self.__universes[str(univ)].get_mtx(host)
|
|
|
+ def get(self,host="", univ=""):
|
|
|
return self.__universes[str(univ)].get(host)
|
|
|
+ def hosts(self):
|
|
|
+ hosts = []
|
|
|
+ for univ in self.__universes:
|
|
|
+ x=self.__universes[univ].hosts()
|
|
|
+ for y in x:
|
|
|
+ #x=univ.hosts()
|
|
|
+ if y not in hosts:
|
|
|
+ hosts.append(y)
|
|
|
+ hosts.sort()
|
|
|
+ return hosts
|
|
|
+ def univs(self):
|
|
|
+ x=self.__universes.keys()
|
|
|
+ x.sort()
|
|
|
+ return x
|
|
|
|
|
|
def update(self,host,univ, dmxframe):
|
|
|
#print( "update", host )
|
|
@@ -293,6 +341,50 @@ def unpack_art_dmx(data):
|
|
|
# pass
|
|
|
return dmx
|
|
|
|
|
|
+class Pager(): #scroll thru list
|
|
|
+ def __init__(self):
|
|
|
+ self.data = []
|
|
|
+ self.index = 0
|
|
|
+ self.wrap = 0
|
|
|
+ self.maxindex = 0
|
|
|
+ def append(self,val):
|
|
|
+ self.data.append(val)
|
|
|
+ self.check()
|
|
|
+
|
|
|
+ def set(self,nr):
|
|
|
+ self.index = nr
|
|
|
+ self.check()
|
|
|
+ def get(self):
|
|
|
+ self.check()
|
|
|
+ if self.data:
|
|
|
+ return self.data[self.index]
|
|
|
+
|
|
|
+ def next(self):
|
|
|
+ self.index += 1
|
|
|
+ self.check(flag=1)
|
|
|
+ def prev(self):
|
|
|
+ self.index -= 1
|
|
|
+ self.check(flag=1)
|
|
|
+ def check(self,flag=0):
|
|
|
+ if flag:
|
|
|
+ if self.maxindex and self.maxindex <= len(self.data):
|
|
|
+ max = self.maxindex
|
|
|
+ else:
|
|
|
+ max = len(self.data)
|
|
|
+ else:
|
|
|
+ max = len(self.data)
|
|
|
+
|
|
|
+
|
|
|
+ if self.wrap:
|
|
|
+ if self.index >= max:
|
|
|
+ self.index = 0
|
|
|
+ elif self.index < 0:
|
|
|
+ self.index = max-1
|
|
|
+ else:
|
|
|
+ if self.index >= max:
|
|
|
+ self.index = max-1
|
|
|
+ elif self.index < 0:
|
|
|
+ self.index = 0
|
|
|
|
|
|
|
|
|
|
|
@@ -331,11 +423,11 @@ if __name__ == "__main__":
|
|
|
fpst =int(time.time())
|
|
|
head= "XXX"
|
|
|
|
|
|
-
|
|
|
+ dmx_ch_buffer = []
|
|
|
|
|
|
screen=Curses()
|
|
|
- screen.init()
|
|
|
-
|
|
|
+ #screen.init()
|
|
|
+ screen.exit()
|
|
|
if 0: #testunivers
|
|
|
while 1:
|
|
|
|
|
@@ -350,8 +442,17 @@ if __name__ == "__main__":
|
|
|
univ_heads = [ ["none"]*2 ]*16
|
|
|
ttime = time.time()
|
|
|
counter = 0
|
|
|
- oohosts=[]
|
|
|
- oshost="xxx"
|
|
|
+ cmd=[]
|
|
|
+ mode=""
|
|
|
+ sel_host=Pager()
|
|
|
+ sel_host.wrap=1
|
|
|
+ sel_univ=Pager()
|
|
|
+ sel_univ.wrap=1
|
|
|
+ sel_mode=Pager()
|
|
|
+ sel_mode.wrap=1
|
|
|
+ sel_mode.data = ["dmx","ltp","mtx","main"] # mtx = matrix
|
|
|
+ sel_mode.maxindex = len( sel_mode.data )-1
|
|
|
+
|
|
|
try:
|
|
|
while 1:
|
|
|
dmx = univ_dmx[univers]
|
|
@@ -374,57 +475,110 @@ if __name__ == "__main__":
|
|
|
dmx = unpack_art_dmx(data)
|
|
|
|
|
|
ohost.update(host,head_uni,dmx)
|
|
|
+ #screen.exit()
|
|
|
+ if 0:# len(dmx):
|
|
|
+ print( host)
|
|
|
+ print( head_uni, data[:30] )#dmx[:10] )
|
|
|
+ print( head_uni, dmx[:10] )
|
|
|
+
|
|
|
+ #continue
|
|
|
+ # input command buffer
|
|
|
+ screen.read()
|
|
|
+ inp2=screen.inp()
|
|
|
+ if "q" == inp2:
|
|
|
+ inp2=""
|
|
|
+ screen.exit()
|
|
|
+ sys.exit()
|
|
|
+ elif "?" == inp2:
|
|
|
+ mode = "?"
|
|
|
+ elif "," == inp2:
|
|
|
+ sel_mode.next()
|
|
|
+ inp2=""
|
|
|
+ elif ";" == inp2:
|
|
|
+ sel_mode.prev()
|
|
|
+ inp2=""
|
|
|
+ elif "." == inp2:
|
|
|
+ sel_univ.next()
|
|
|
+ inp2=""
|
|
|
+ elif ":" == inp2:
|
|
|
+ sel_univ.prev()
|
|
|
+ inp2=""
|
|
|
+ elif "-" == inp2:
|
|
|
+ sel_host.next()
|
|
|
+ inp2=""
|
|
|
+ elif "_" == inp2:
|
|
|
+ sel_host.prev()
|
|
|
+ inp2=""
|
|
|
+ elif "#" == inp2:
|
|
|
+ if "main" in sel_mode.data:
|
|
|
+ x = sel_mode.data.index( "main")
|
|
|
+ sel_mode.index = x
|
|
|
+ sel_mode.check()
|
|
|
+ inp2=""
|
|
|
+
|
|
|
+ if inp2 == "\n":
|
|
|
+ cmd2 = "".join( cmd).split()
|
|
|
+ cmd=[]
|
|
|
+ if len(cmd2) < 2:
|
|
|
+ pass
|
|
|
+ elif "C^" in cmd2:
|
|
|
+ screen.exit()
|
|
|
+ sys.exit()
|
|
|
+ elif "univ" in cmd2 or "u" == cmd2[0]:
|
|
|
+ x=""
|
|
|
+ if cmd2[1] in sel_univ.data:
|
|
|
+ x = sel_univ.data.index( cmd2[1])
|
|
|
+ sel_univ.index = x
|
|
|
+ sel_univ.check()
|
|
|
+ elif "mode" in cmd2 or "m" == cmd2[0]:
|
|
|
+ if cmd2[1] in sel_mode.data:
|
|
|
+ x = sel_mode.data.index( cmd2[1])
|
|
|
+ sel_mode.index = x
|
|
|
+ sel_mode.check()
|
|
|
+
|
|
|
+ elif "host" in cmd2 or "h" == cmd2[0]:
|
|
|
+ try:
|
|
|
+ x=int(cmd2[1])
|
|
|
+ sel_host.set(x)
|
|
|
+ except:
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+ cmd.append(inp2)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ sel_univ.data = ohost.univs()
|
|
|
+ sel_univ.check()
|
|
|
+ sel_host.data = ohost.hosts()
|
|
|
+ sel_host.check()
|
|
|
+ host = sel_host.get()
|
|
|
+ univ2 = sel_univ.get()
|
|
|
+
|
|
|
+ mode = sel_mode.get()
|
|
|
|
|
|
-
|
|
|
-
|
|
|
if time.time()-0.2 > ttime:
|
|
|
- inp2=screen.inp()
|
|
|
- if inp2 in "0123456789" and inp2:
|
|
|
- univ2 = str(inp2)
|
|
|
- if inp2 in "asdfghjkl" and inp2:
|
|
|
- oshost = "asdfghjkl".index(inp2)
|
|
|
- if len(oohosts) > oshost:
|
|
|
- oshost = oohosts[oshost]
|
|
|
- elif inp2:
|
|
|
- inp=inp2
|
|
|
-
|
|
|
- lines = ["MENUE:"+str(inp)+" univ:"+str(univ2)+ " host:"+str(oshost)]
|
|
|
- a=inp
|
|
|
- if a=="q":
|
|
|
- ttime = time.time()
|
|
|
- x=ohost.get(univ=head_uni)
|
|
|
- #lines = []
|
|
|
- info=ohost.info()
|
|
|
- jinfo = ""
|
|
|
- for i in info:
|
|
|
- xl = json.dumps(i) + "======= "
|
|
|
- lines.append( xl )
|
|
|
- for j in info[i]:
|
|
|
- lines.append( " " + json.dumps([j,""]) )
|
|
|
- if j not in oohosts:
|
|
|
- oohosts.append(j)
|
|
|
- for k in info[i][j]:
|
|
|
- #lines.append( " " + json.dumps( info[i][j]) )
|
|
|
- lines.append( " "+str(k).ljust(5," ")+": " + json.dumps( info[i][j][k]) )
|
|
|
-
|
|
|
- lines.append(" ")
|
|
|
- lines.append(str(ttime))
|
|
|
|
|
|
- screen.draw_lines(lines)
|
|
|
- elif a=="w":
|
|
|
+ lines = [ ]
|
|
|
+ lines.append(" CMD:" + "".join(cmd) )
|
|
|
+ if mode=="help" or mode=="?":
|
|
|
+ lines.append("HILFE[h]: " )
|
|
|
+ lines.append("MODE [m]: inp, in2 in1 " )
|
|
|
+ lines.append("UNIV [u]: 0-16 " )
|
|
|
+ lines.append(" " )
|
|
|
+ lines.append("HILFE " )
|
|
|
+ elif mode=="dmx" or mode == "DMX":
|
|
|
ttime = time.time()
|
|
|
- host = oshost
|
|
|
- dmx=ohost.get(host,univ=head_uni)
|
|
|
- #lines = []
|
|
|
+ dmx=ohost.get(host,univ=univ2)#univ=head_uni)
|
|
|
info=ohost.info()
|
|
|
- lines.append("frame "+str(info.keys()) )
|
|
|
- # print( str(info.keys() ))
|
|
|
+ #lines.append("frame "+str(info.keys()) )
|
|
|
|
|
|
if univ2 in info:
|
|
|
if host in info[univ2] :
|
|
|
lines.append("frame "+str(info[univ2][host]["frame"]))
|
|
|
x=""
|
|
|
for i,v in enumerate(dmx):
|
|
|
+ if v == 0:
|
|
|
+ v = "+"
|
|
|
x += str(v).rjust(4," ")
|
|
|
if (i+1) % 20 == 0:# and i:
|
|
|
lines.append(x)
|
|
@@ -435,15 +589,12 @@ if __name__ == "__main__":
|
|
|
lines.append(" ")
|
|
|
lines.append(str(ttime))
|
|
|
|
|
|
- screen.draw_lines(lines)
|
|
|
- elif a=="e":
|
|
|
+ #screen.draw_lines(lines)
|
|
|
+ elif mode=="mtx":
|
|
|
ttime = time.time()
|
|
|
- host = "10.10.10.5"
|
|
|
- dmx=ohost.get(host,univ=head_uni)
|
|
|
- #lines = []
|
|
|
+ dmx=ohost.get_mtx(host,univ=univ2)#univ=head_uni)
|
|
|
info=ohost.info()
|
|
|
- lines.append("frame "+str(info.keys()) )
|
|
|
- #print( str(info.keys() ))
|
|
|
+ #lines.append("frame "+str(info.keys()) )
|
|
|
|
|
|
if univ2 in info:
|
|
|
if host in info[univ2] :
|
|
@@ -460,43 +611,66 @@ if __name__ == "__main__":
|
|
|
lines.append(" ")
|
|
|
lines.append(str(ttime))
|
|
|
|
|
|
- screen.draw_lines(lines)
|
|
|
- elif a=="r":
|
|
|
+ #screen.draw_lines(lines)
|
|
|
+ elif mode=="ltp" or mode=="LTP":
|
|
|
ttime = time.time()
|
|
|
- host = "10.10.10.3"
|
|
|
- dmx=ohost.get(univ=head_uni)
|
|
|
- #lines = []
|
|
|
+ dmx=ohost.get(univ=univ2)#head_uni)
|
|
|
+ #univ2=""
|
|
|
+ host=""
|
|
|
info=ohost.info()
|
|
|
- lines.append("+++")
|
|
|
lines.append("frame "+str(info.keys()) )
|
|
|
- #print( str(info.keys() ))
|
|
|
-
|
|
|
|
|
|
- if univ2 in info:
|
|
|
- if host in info[univ2] :
|
|
|
- lines.append("frame "+str(info[univ2][host]["frame"]))
|
|
|
+ x=""
|
|
|
+ for i,v in enumerate(dmx):
|
|
|
+ x += str(v).rjust(4," ")
|
|
|
+ if (i+1) % 20 == 0:
|
|
|
+ lines.append(x)
|
|
|
x=""
|
|
|
- for i,v in enumerate(dmx):
|
|
|
- x += str(v).rjust(4," ")
|
|
|
- if (i+1) % 20 == 0:
|
|
|
- lines.append(x)
|
|
|
- x=""
|
|
|
- if x:
|
|
|
- lines.append(x)
|
|
|
-
|
|
|
- lines.append(" ")
|
|
|
- lines.append(str(ttime))
|
|
|
+ if x:
|
|
|
+ lines.append(x)
|
|
|
+
|
|
|
+ lines.append(" ")
|
|
|
+ lines.append(str(ttime))
|
|
|
|
|
|
- screen.draw_lines(lines)
|
|
|
+ #screen.draw_lines(lines)
|
|
|
else:
|
|
|
+ ttime = time.time()
|
|
|
+ x=ohost.get(univ=head_uni)
|
|
|
#lines = []
|
|
|
- lines.append(" NO MENUE SELECTED CHOOS 1-9 " )
|
|
|
- lines.append("time "+str(time.time() ) )
|
|
|
- screen.draw_lines(lines)
|
|
|
- time.sleep(.1)
|
|
|
+ host=""
|
|
|
+ univ2=""
|
|
|
+ info=ohost.info()
|
|
|
+ jinfo = ""
|
|
|
+ for i in info:
|
|
|
+ xl = json.dumps(i) + "======= "
|
|
|
+ lines.append( xl )
|
|
|
+ for j in info[i]:
|
|
|
+ lines.append( " " + json.dumps([j,""]) )
|
|
|
+ if j not in sel_host.data:
|
|
|
+ pass#sel_host.append(j)
|
|
|
+ for k in info[i][j]:
|
|
|
+ #lines.append( " " + json.dumps( info[i][j]) )
|
|
|
+ lines.append( " "+str(k).ljust(5," ")+": " + json.dumps( info[i][j][k]) )
|
|
|
+
|
|
|
+ lines.append(" ")
|
|
|
+ lines.append(str(ttime))
|
|
|
+
|
|
|
+ #screen.draw_lines(lines)
|
|
|
+ tmp = ""
|
|
|
+ tmp += " mode:"+(str(mode).ljust(10," "))
|
|
|
+ tmp += " univ:"+str(sel_univ.index)+":"+(str(univ2).ljust(10," "))
|
|
|
+ tmp += " host:"+str(sel_host.index)+":"+(str(host).ljust(10," "))
|
|
|
+ lines.insert(0,tmp)
|
|
|
+
|
|
|
+ tmp = ""
|
|
|
+ tmp += " univ:"+ (str(sel_univ.data))#.ljust(20," "))
|
|
|
+ tmp += " list:"+ (str(sel_host.data))#.ljust(20," "))
|
|
|
+ lines.insert(0,tmp)
|
|
|
+ screen.draw_lines(lines)
|
|
|
time.sleep(.001)
|
|
|
finally:
|
|
|
screen.exit()
|
|
|
+ print( sel_host.index,sel_host.data)
|
|
|
|
|
|
|
|
|
|