def __init__(self, master=None): Tk.Tk.__init__(self, master) # Get root directory # Get the root path can_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), os.path.pardir) # Resolves symbolic links self.rootPath = os.path.abspath(can_path) # Instantiate a logger self.logger = logging.getLogger(__name__) self.logFormatter = logging.Formatter( '%(asctime)s %(levelname)-8s %(message)s') self.logger.setLevel(logging.DEBUG) # TODO: Log to console? #console = logging.StreamHandler(stream=sys.stdout) #self.logger.addHandler(console) # TODO: Log to file? # Load applets import applets self.applets = applets.getAllApplets() for applet in self.applets.keys(): self.logger.debug("Found Applet: %s", applet) # Instantiate a LabManager import socket localhost = socket.gethostname() self.lab = LabManager() if not self.lab.addManager(localhost): # Instantiate a local InstrumentManager object self.local_manager = InstrumentManager() self.local_manager.start() self.lab.addManager(localhost) # Register new resource callback on local manager man = self.lab.getManager(localhost) if man is not None: man._registerCallback('event_new_resource', lambda: self.cb_event_new_resource()) # GUI Startup self.rebuild() self.rebind() # TODO: Persistent Settings self.process_notifications()