top arobot_keys'
? ? ? ? if self.__tkapp != None:
? ? ? ? ? ? self.__tkapp.quit()
? ? ? ? self.thread_stop = True
# screen windows thread
class arobot_lcd(threading.Thread):
? ? __tkapp = None
? ? __root = None
? ?
? ? def __init__(self):
? ? ? ? threading.Thread.__init__(self)
? ? ? ? self.thread_stop = False
? ? def run(self):
? ? ? ? if DEBUG:
? ? ? ? ? ? print 'run arobot_lcd'
? ? ? ? self.__root = tk.Tk()
? ? ? ? self.__tkapp = LcdApplication(master=self.__root)
? ? ? ? self.__tkapp.master.title('ARobot3.0-Lcd')
? ? ? ? t = threading.Timer(1, self.__tkapp.updatelcd_sock)
? ? ? ? t.start()
? ? ? ? self.__tkapp.grid()
? ? ? ? self.__tkapp.mainloop()
? ? ? ? if DEBUG:
? ? ? ? ? ? print 'exit arobot_lcd mainloop'
? ? ? ? self.__tkapp.stop()
? ? def stop(self):
? ? ? ? if DEBUG:
? ? ? ? ? ? print 'stop arobot_lcd'
? ? ? ? self.thread_stop = True
? ? ? ? if self.__tkapp != None:
? ? ? ? ? ? self.__tkapp.stop()
? ? ? ? ? ? self.__tkapp.quit()
def arobot_main(prog):
? ? if prog == None:
? ? ? ? return
? ? if prog == 'lcd':
? ? ? ? lcd_thread = arobot_lcd()
? ? ? ? lcd_thread.start()
? ? if prog == 'keypad':
? ? ? ? keypad_thread = arobot_keys()
? ? ? ? keypad_thread.start()
def usage():
? ? print '--------------------------------------------'
? ? print 'Arobot 3.1'
? ? print 'This is a tool to control Android device via ADB'
? ? print 'usage: python %s [option]' % sys.argv[0]
? ? print 'option:'
? ? print '? -keypad? ? run keypad'
? ? print '? -lcd? ? ? ? run lcd'
? ? print '--------------------------------------------'
if __name__ == '__main__':
? ? prog_name = sys.argv[0]
? ? if '--debug' in? sys.argv:
? ? ? ? DEBUG = True
? ? if DEBUG:
? ? ? ? if len(sys.argv) == 2:
? ? ? ? ? ? cmd_str = 'python %s -keypad --debug' % prog_name
? ? ? ? ? ? p1 = subprocess.Popen(cmd_str, shell=True)
? ? ? ? ? ? cmd_str = 'python %s -lcd --debug' % prog_name
? ? ? ? ? ? p2 = subprocess.Popen(cmd_str, shell=True)
? ? ? ? elif len(sys.argv) == 3:
? ? ? ? ? ? if sys.argv[1] == '-keypad':
? ? ? ? ? ? ? ? arobot_main('keypad')
? ? ? ? ? ? elif sys.argv[1] == '-lcd':
? ? ? ? ? ? ? ? arobot_main('lcd')
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? usage()
? ? else:
? ? ? ? if len(sys.argv) == 1:
? ? ? ? ? ? # Do not wast your time on threading, it is disaster working with tk!
? ? ? ? ? ? # I have tried many ways to open multi-windows via Tk and Threading
? ? ? ? ? ? # but fail! or linux ok but windows fail, so, just use the subprocess!
? ? ? ? ? ? cmd_str = 'python %s -keypad' % prog_name
? ? ? ? ? ? p1 = subprocess.Popen(cmd_str, shell=True)
? ? ? ? ? ? cmd_str = 'python %s -lcd' % prog_name
? ? ? ? ? ? p2 = subprocess.Popen(cmd_str, shell=True)
? ? ? ? elif len(sys.argv) == 2:
? ? ? ? ? ? if sys.argv[1] == '-keypad':
? ? ? ? ? ? ? ? arobot_main('keypad')
? ? ? ? ? ? elif sys.argv[1] == '-lcd':
? ? ? ? ? ? ? ? arobot_main('lcd')
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? usage()? ? ? ?
? ? ? ? else:
? ? ? ? ? ? usage()
--------------------------------------分割线 --------------------------------------