def show (self, show_log = False):
# init termios
old_settings = termios.tcgetattr(sys.stdin)
new_settings = termios.tcgetattr(sys.stdin)
new_settings[3] = new_settings[3] & ~(termios.ECHO | termios.ICANON) # lflags
new_settings[6][termios.VMIN] = 0 # cc
new_settings[6][termios.VTIME] = 0 # cc
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, new_settings)
self.pm.init(show_log)
self.state = self.STATE_ACTIVE
self.draw_policer = 0
try:
while True:
# draw and handle user input
cont, force_draw = self.handle_key_input()
self.draw_screen(force_draw)
if not cont:
break
time.sleep(0.1)
# regular state
if self.state == self.STATE_ACTIVE:
# if no connectivity - move to lost connecitivty
if not self.stateless_client.async_client.is_alive():
self.stateless_client._invalidate_stats(self.pm.ports)
self.state = self.STATE_LOST_CONT
# lost connectivity
elif self.state == self.STATE_LOST_CONT:
# got it back
if self.stateless_client.async_client.is_alive():
# move to state reconnect
self.state = self.STATE_RECONNECT
# restored connectivity - try to reconnect
elif self.state == self.STATE_RECONNECT:
try:
self.stateless_client.connect()
self.state = self.STATE_ACTIVE
except STLError:
self.state = self.STATE_LOST_CONT
finally:
# restore
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings)
print("")
# draw once
评论列表
文章目录