def close(self): # Close if self.__cat != None: self.__cat.terminate() if self.__rotif != None: self.__rotif.terminate() self.__rotif.join() if self.__satif != None: self.__satif.terminate() self.__satif.join() if self.__rigif != None: self.__rigif.terminate() self.__rigif.join() # Save configuration persist.saveCfg(CONFIG_PATH, defs.config) # Final check as Python does not terminate unless all tasks are terminated # We do not clean up automatically as this is a bug that needs fixing. tasks = threading.enumerate() if len(tasks) > 1: print("Some tasks have not terminated! ,", tasks)
def quit(self): """ User hit quit """ # Save the current settings persist.saveCfg(SETTINGS_PATH, self.__settings) persist.saveCfg(STATE_PATH, self.__state) # Close QtCore.QCoreApplication.instance().quit()
def quit(self): """ User hit quit """ # Terminate the controller self.__controller.terminate() # Save the current settings self.__state[WINDOW] = [self.x(), self.y(), self.width(), self.height()] self.__state[CORRECTION] = self.__correction persist.saveCfg(STATE_PATH, self.__state) # Quit QCoreApplication.instance().quit()
def __configEvnt(self, event): """ Run the configurator Arguments: event -- ui event object """ self.__settings, r = configurationdialog.ConfigurationDialog.getConfig(self.__cat, self.__settings, self.loopcombo.currentText()) # If Ok save the new config and update internally if r: # Settings persist.saveCfg(SETTINGS_PATH, self.__settings) # Update the UI self.loopcombo.clear() if len(self.__settings[LOOP_SETTINGS]) > 0: for key in sorted(self.__settings[LOOP_SETTINGS].keys()): self.loopcombo.addItem(str(key)) if len(self.__settings[LOOP_SETTINGS][self.loopcombo.currentText()][I_SETPOINTS]) > 0: for key in sorted(self.__settings[LOOP_SETTINGS][self.loopcombo.currentText()][I_SETPOINTS].keys()): self.freqcombo.addItem(str(key)) self.offsetlabel.setText(str(self.__settings[LOOP_SETTINGS][self.loopcombo.currentText()][I_SETPOINTS][self.freqcombo.currentText()])) else: self.loopcombo.clear() # Update motor in idle time self.__doUpdate = True # Network settings self.__api.resetNetworkParams(self.__settings[ARDUINO_SETTINGS][NETWORK][IP], self.__settings[ARDUINO_SETTINGS][NETWORK][PORT]) # Adjust state for loop in self.__settings[LOOP_SETTINGS]: if loop not in self.__state[LOOP_PARAMS]: self.__state[LOOP_PARAMS][loop] = self.rpmsb.value() for loop in self.__state[LOOP_PARAMS]: if loop not in self.__settings[LOOP_SETTINGS]: del self.__state[LOOP_PARAMS][loop]