def __init__(self): super(App, self).__init__() # Call the class generated by the .ui file # from QT Designer. self.ui = Ui_window() self.ui.setupUi(self) # Make window frameless. self.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', ' Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ] self.weekdays = [ 'Monday', 'Tuesdag', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' ] self.direction = { '\u2191': [330, 30], # N '\u2196': [310, 320], # NW '\u2190': [240, 300], # W '\u2199': [200, 230], # SW '\u2193': [150, 190], # S '\u2198': [130, 140], # SE '\u2192': [60, 120], # E '\u2197': [40, 50] } # NE self.scheduler = QtScheduler() self.set_time() self.set_weather() self.schedule() self.show()
def qt_schedule(): import signal import sys from apscheduler.schedulers.qt import QtScheduler try: from PyQt5.QtWidgets import QApplication, QLabel except ImportError: try: from PyQt4.QtGui import QApplication, QLabel except ImportError: from PySide.QtGui import QApplication, QLabel def tick(): label.setText('Tick! The time is: %s' % datetime.now()) app = QApplication(sys.argv) # This enables processing of Ctrl+C keypresses signal.signal(signal.SIGINT, lambda *args: QApplication.quit()) label = QLabel('The timer text will appear here in a moment!') label.setWindowTitle('QtScheduler example') label.setFixedSize(280, 50) label.show() scheduler = QtScheduler() scheduler.add_job(tick, 'interval', seconds=3) scheduler.start() # Execution will block here until the user closes the windows or Ctrl+C is pressed. app.exec_()
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setupUi(self) self.setWindowFlags(qtc.Qt.WindowCloseButtonHint) self.setWindowIcon(qtg.QIcon('icon.png')) # self.setWindowIcon(qtg.QIcon('./src/ressource/icon.png')) self.setFixedSize(130, 60) self.offButton.setChecked(True) self.onButton.toggled.connect(self.on_off_toggle) self.timerSpinBox.setValue(10) self.scheduler = QtScheduler() self.tray = qtw.QSystemTrayIcon(self) self.tray.setIcon(qtg.QIcon('icon.png')) # self.tray.setIcon(qtg.QIcon('./src/ressource/icon.png')) # self.tray.setIcon(qtg.QIcon(':/ressource/icon.png')) self.tray.setToolTip('BT keep Alive') quit_action = qtw.QAction("Exit", self) quit_action.triggered.connect(qtw.qApp.quit) tray_menu = qtw.QMenu() tray_menu.addAction(quit_action) self.tray.setContextMenu(tray_menu) self.tray.setVisible(True) self.tray.show() self.tray.activated.connect(self.on_systray_activated)
def getScheduler(self) -> QtScheduler: if isinstance(self.__scheduler, QtScheduler): return self.__scheduler self.__scheduler = QtScheduler({ 'apscheduler.jobstores.default': { 'type': 'sqlalchemy', 'url': 'sqlite:///jobs.sqlite' }, 'apscheduler.executors.default': { 'class': 'apscheduler.executors.pool:ThreadPoolExecutor', 'max_workers': '20' }, 'apscheduler.executors.processpool': { 'type': 'processpool', 'max_workers': '5' }, 'apscheduler.job_defaults.coalesce': 'false', 'apscheduler.job_defaults.max_instances': '3', 'apscheduler.timezone': 'UTC', }) self.__scheduler.start() return self.__scheduler
def Iniciar(self): self.scheduler = QtScheduler() self.trigger = IntervalTrigger(hours=1) self.scheduler.add_job(self.Proceso, self.trigger) self.scheduler.start() t = threading.Thread(target=self.Proceso) t.start()
def monitor(): try: from apscheduler.schedulers.qt import QtScheduler from apscheduler.triggers.cron import CronTrigger app = QCoreApplication(sys.argv) global me me = Monitor(cf) sched = QtScheduler() schedtime = [y.split(':') for x in cf.get('monitor', 'schedtime').strip().split('|') for y in x.split(',')] trigger_start = CronTrigger(day_of_week=schedtime[0][0], hour=int(schedtime[1][0]), minute=int(schedtime[1][1])) logger.info('schedulers:start dayofweek:%s startime:%s ', schedtime[0][0], schedtime[1]) trigger_stop = CronTrigger(day_of_week=schedtime[2][0], hour=int(schedtime[3][0]), minute=int(schedtime[3][1])) logger.info('schedulers:stop dayofweek:%s stoptime:%s', schedtime[2][0], schedtime[3]) sched.add_job(start, trigger_start, misfire_grace_time = 10) sched.add_job(stop, trigger_stop, misfire_grace_time = 10) sched.start() working_time_range = parse_work_time(cf.get("monitor", "workingtime")) #上面的任务调度只有在未来时间才会触发 #这里加上判断当前时间如果在工作时间(时间段和交易日都要符合),则要开启 if is_trade_day(cf) and is_working_time(working_time_range): start() app.exec_() except BaseException,e: logger.exception(e)
def main(): app = QApplication(sys.argv) config.fileConfig(ConfigFile.LOGGING) # Initialize views window = MainWindow(UiFile.MAIN_WINDOW) user_dialog = UserDialog(UiFile.USER_DIALOG) query_dialog = QueryDialog(UiFile.QUERY_DIALOG) # Initialize model dependencies scheduler = TaskScheduler(QtScheduler(logger=getLogger('scheduler'))) emailer = EmailSender(EmailClient(HOST, PORT, EMAIL, PASSWORD)) reddit = Reddit( praw.Reddit(client_id=ID, client_secret=None, user_agent=AGENT)) user_validator = UserValidator() user_retriever = PickleStorageRetriever(StorageFile.USER) user_saver = PickleStorageSaver(StorageFile.USER) user_storage = FileStorage(user_retriever, user_saver) query_retriever = PickleStorageRetriever(StorageFile.QUERYLISTING) query_saver = PickleStorageSaver(StorageFile.QUERYLISTING) query_storage = FileStorage(query_retriever, query_saver) # Initialize model window_model = MainWindowModel(scheduler, user_storage, query_storage, emailer, reddit) user_dialog_model = UserDialogModel(scheduler, user_storage, user_validator) query_dialog_model = QueryDialogModel(scheduler, query_storage, reddit) # Initialize presenters window_presenter = MainWindowPresenter(window, window_model) user_dialog_presenter = UserDialogPresenter(user_dialog, user_dialog_model) query_dialog_presenter = QueryDialogPresenter(query_dialog, query_dialog_model) # Connect signals to slots window.user_dialog_clicked.connect(user_dialog.show) window.query_dialog_clicked.connect(query_dialog.show) user_dialog.confirm_clicked.connect( user_dialog_presenter.validate_user_info) query_dialog.confirm_clicked.connect( query_dialog_presenter.validate_subreddit) scheduler.user_ready.connect(window_presenter.when_user_ready) scheduler.query_ready.connect(window_presenter.when_query_ready) scheduler.querylisting_available.connect( window_presenter.with_querylisting) scheduler.query_available.connect(window_presenter.with_query) scheduler.query_result_available.connect( window_presenter.with_query_result) window.show() sys.exit(app.exec_())
def __init__(self): # access variables, methods etc in the AquetiOperationGUI.py file super(self.__class__, self).__init__() self.setupUi( self ) # This is defined in AquetiOperationGUI.py file automatically # It sets up layout and widgets that are defined print("Starting EthScheduler: current time: " + str(datetime.now().time())) print("-----------------------------------------------") print(" ") # create default save location if it doesn't exist if not os.path.exists(settings.DEFAULT_CONFIG_LOCATION): os.makedirs(settings.DEFAULT_CONFIG_LOCATION) self.workers = {} self.scheduler = QtScheduler() # fill table from file on disk self.readWorkerFile() for key, value in sorted(self.workers.items()): # add the item to the table self.addItemToTable(value['name'], value['ip'], value['username']) # start schedules for each item for key, time in sorted(value['times'].items()): self.scheduleWorker(value['name'], time['startTime'], time['endTime'], time['mode'], time['day'], time['coin'], time['address']) self.addItemToTimeTable(time['startTime'], time['endTime'], time['mode'], time['day'], time['coin'], time['address']) # setup signals and slots self.actionAdd_Worker.triggered.connect(self.addWorker) self.add_worker_pushButton.clicked.connect(self.addWorker) self.delete_worker_pushButton.clicked.connect(self.deleteWorker) self.actionQuit.triggered.connect(self.close) self.worker_tableWidget.cellClicked.connect(self.tableCellClicked) self.worker_tableWidget.cellChanged.connect(self.tableCellChanged) self.add_time_pushButton.clicked.connect(self.addTime) self.remove_time_pushButton.clicked.connect(self.removeTime) self.status_changed.connect(self.setWorkerColor) self.scheduler.start()
def test(): try: from apscheduler.schedulers.qt import QtScheduler app = QCoreApplication(sys.argv) global me me = Monitor(cf) sched = QtScheduler() # m = Main() # sched.add_job(start, 'cron', id='first', day_of_week ='0-4', hour = 9, minute = 11) # sched.add_job(stop, 'cron', id='second', day_of_week ='0-4', hour = 15, minute = 20) sched.add_job(start, 'cron', id='first', hour = 17, minute = 21,second = 0) sched.add_job(stop, 'cron', id='second', hour = 21, minute = 10) sched.start() app.exec_() except BaseException,e: logger.exception(e)
def __init__(self, scheduler): ''' https://apscheduler.readthedocs.io/en/latest/userguide.html?highlight=add_job Parameters ---------- scheduler: [str] 调度器,根据开发需求选择相应的调度器 'BlockingScheduler' 阻塞式调度器: 适用于只跑调度器的程序 'BackgroundScheduler' 后台调度器: 适用于非阻塞的情况,调度器会在后台独立运行 'AsyncIOScheduler' AsyncIO调度器: 适用于应用使用AsnycIO的情况 'GeventScheduler' Gevent调度器: 适用于应用通过Gevent的情况 'TornadoScheduler' Tornado调度器: 适用于构建Tornado应用 'TwistedScheduler' Twisted调度器: 适用于构建Twisted应用 'QtScheduler' Qt调度器: 适用于构建Qt应用 ''' import logging logging.basicConfig() scheduler = str(scheduler).lower() if ('blocking' in scheduler): from apscheduler.schedulers.blocking import BlockingScheduler self.scheduler = BlockingScheduler() elif ('background' in scheduler): from apscheduler.schedulers.background import BackgroundScheduler self.scheduler = BackgroundScheduler() elif ('asyncio' in scheduler): from apscheduler.schedulers.asyncio import AsyncIOScheduler self.scheduler = AsyncIOScheduler() elif ('gevent' in scheduler): from apscheduler.schedulers.gevent import GeventScheduler self.scheduler = GeventScheduler() elif ('tornado' in scheduler): from apscheduler.schedulers.tornado import TornadoScheduler self.scheduler = TornadoScheduler() elif ('twisted' in scheduler): from apscheduler.schedulers.twisted import TwistedScheduler self.scheduler = TwistedScheduler() elif ('qt' in scheduler): from apscheduler.schedulers.qt import QtScheduler self.scheduler = QtScheduler()
def retranslateUi(self, Read_Window): _translate = QtCore.QCoreApplication.translate Read_Window.setWindowTitle( _translate("Read_Window", "Temperature Controller")) self.label_2.setText(_translate("Read_Window", "AIR Temp")) self.label_6.setText(_translate("Read_Window", "DUT Temp")) self.label_3.setText(_translate("Read_Window", "Set Point")) self.SET_B.setText(_translate("Read_Window", "SET")) self.EXIT_B.setText(_translate("Read_Window", "Exit")) self.label.setText( _translate("Read_Window", "Temperature Controller - Airjet XE")) scheduler = QtScheduler() global Stvjob, rm, instruments, airjet, Set_Temp, Nozzle_Temp, DUT_Temp Stvjob = scheduler.add_job(self.SETSP, 'interval', seconds=0.5) scheduler.start() self.SET_B.clicked.connect(self.SET_TEMP) self.EXIT_B.clicked.connect(self.CLOSE_JOB)
def __init__(self): QThread.__init__(self) self.track_idx = "" self.language = "" self.signals = TrackSignals() """ ApScheduler setup """ jobstores = {"default": MemoryJobStore()} job_defaults = {"coalesce": True, "max_instances": 1} self.scheduler = QtScheduler(jobstores=jobstores, job_defaults=job_defaults) # prepare schedule tasks self.scheduler.add_job( self.check_tracks, trigger="interval", id="auto_check_tracks", seconds=config.TRACKS_CHECK_SEC_PERIOD, ) # run schedule logic self.scheduler.start()
mails = japanInbox.Items unreadEmails = mails.Restrict("[UnRead] = true") if unreadEmails.Count > 0: if player.state() != QMediaPlayer.PlayingState: player.play() else: pass except Exception as ex: logger.critical(str(ex)) player.play() scheduler = QtScheduler() scheduler.add_job( checkUnreadEmail, "interval", seconds=INTERVAL, args=[GROUP_FOLDER, TARGET_FOLDER, mediaPlayer, logger], ) scheduler.start(paused=True) def runClicked(scheduler, runBtn, stopBtn, stopSoundBtn): runBtn.setEnabled(False) stopBtn.setEnabled(True) stopSoundBtn.setEnabled(True) scheduler.resume()
from time import localtime, strftime # ------------------------------------------------ for the right format of time values import datetime # --------------------------------------------------------------------- for the monitoring ######################################################################################################## ######################################################################################################## ######################################################################################################## ################ ############################ ################ THE MAIN PROGRAMM ############################ ################ ############################ ######################################################################################################## ######################################################################################################## ######################################################################################################## # starts the scheduler for our program ----------------------------------------------------------------- program_scheduler = QtScheduler() program_scheduler.start() class c_program: def __init__(self): #----- values which are part of the object program and can be accessed easily from the outside -# self.add_value_01 = 0.0 # for the addition self.add_value_02 = 0.0 # for the addition self.mult_value_01 = 0.0 # for the multiplication self.mult_value_02 = 0.0 # for the multiplication # save start time of program self.time_start = int(strftime("%Y", localtime())), int(
def qtScheduler(self): return QtScheduler()
def __init__(self): QtGui.QWidget.__init__(self) self.MainWindow = Ui_MainWindow() self.MainWindow.setupUi(self) self.iconoeditar = QtGui.QIcon() self.iconoeditar.addPixmap(QtGui.QPixmap(":/ico/edit-icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.iconoborrar = QtGui.QIcon() self.iconoborrar.addPixmap(QtGui.QPixmap(":/ico/Delete_Icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.iconocam = QtGui.QIcon() self.setWindowIcon(QtGui.QIcon("icon.png")) self.MainWindow.tableWidget_TareasConfig.verticalHeader().setVisible( False) self.MainWindow.tableWidget_TareasConfig.setShowGrid(False) self.MainWindow.tableWidget_TareasConfig.setAlternatingRowColors(True) self.MainWindow.tableWidget_TareasConfig.verticalHeader( ).setDefaultSectionSize(20) self.MainWindow.tableWidget_TareasConfig.setEditTriggers( QtGui.QAbstractItemView.NoEditTriggers) self.MainWindow.tableWidget_TareasConfig.setSelectionBehavior( QtGui.QAbstractItemView.SelectRows) self.MainWindow.tableWidget_Tareas.verticalHeader().setVisible(False) self.MainWindow.tableWidget_Tareas.setShowGrid(False) self.MainWindow.tableWidget_Tareas.setAlternatingRowColors(True) self.MainWindow.tableWidget_Tareas.verticalHeader( ).setDefaultSectionSize(20) self.MainWindow.tableWidget_Tareas.setEditTriggers( QtGui.QAbstractItemView.NoEditTriggers) self.MainWindow.tableWidget_Tareas.setSelectionBehavior( QtGui.QAbstractItemView.SelectRows) self.connect(self.MainWindow.actionAgregar_Tarea, QtCore.SIGNAL("triggered()"), self.AbrirAgregarTarea) self.connect(self.MainWindow.actionProgramar_Tarea, QtCore.SIGNAL("triggered()"), self.AbrirProgramarTarea) self.scheduler = QtScheduler() self.BD = BasedeDatos() self.BD.Conectar() self.CargarTareasProgramadas() self.CargarTareas() self.ProgramarTareas() self.ListarTareas() self.ListarTareasProgramadas() ################## FUNCIONES PARA EL SYSTEM TRAY ICON ####################### self.exitOnClose = False exit = QtGui.QAction(QtGui.QIcon("icon.png"), "Cerrar 365Jobs", self) self.connect(exit, QtCore.SIGNAL("triggered()"), self.exitEvent) self.trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("icon.png"), self) menu = QtGui.QMenu(self) menu.addAction(exit) self.trayIcon.setContextMenu(menu) self.connect(self.trayIcon, \ QtCore.SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), \ self.trayIconActivated) self.trayIcon.show() self.trayIcon.showMessage( "365Jobs Abierto!", "Click para abrir la Ventana\nBoton derecho para Menu") self.trayIcon.setToolTip("365Jobs") print self.DictTareasProgramadasByID
def change_label(self): Client_connect = MQTT_Client_initial() Client_connect.MQTT_connect() change = QtScheduler() #qt定时器 change.add_job(func=self.change, trigger="interval", seconds=2) change.start()
risk_ctrl = ctrl.ControlSystem([rule1, rule2, rule3, rule4, rule5, rule6, rule7]) predict_risk = ctrl.ControlSystemSimulation(risk_ctrl) client = mqtt.Client(client_id="MQTTrec", clean_session=True, protocol=mqtt.MQTTv31) executors = { 'default': {'type': 'threadpool', 'max_workers': 1}, 'processpool': ProcessPoolExecutor(max_workers=1) } job_defaults = { 'coalesce': True, 'max_instances': 5 } scheduler = QtScheduler(executors=executors, job_defaults=job_defaults) def initdatabases(): conn = sqlite3.connect('serm.db') with conn: conn.execute("DROP TABLE IF EXISTS data") conn.execute('''CREATE TABLE data ( recid INTEGER PRIMARY KEY AUTOINCREMENT, datetime INTEGER NOT NULL, smoke float NOT NULL, lpg float NOT NULL,
def __init__(self): #---------------------------------------------------------------------# #--- GLOBAL PARAMETERS AND VARIABLES ---------------------------------# #---------------------------------------------------------------------# #--- FREQUENCY Parameters --------------------------------------------# self.nu_blue_1_was, self.nu_blue_2_was, self.nu_red_1_was, self.nu_red_2_was = [ 0 ] * 500, [0] * 500, [0] * 500, [0] * 500 self.nu_history = { 'blue_1': [0] * 500, 'blue_2': [0] * 500, 'red_1': [0] * 500, 'red_2': [0] * 500, '423': [0] * 500 } self.nu_blue_1_is, self.nu_blue_2_is, self.nu_red_1_is, self.nu_red_2_is = 0.0, 0.0, 0.0, 0.0 self.nu = {'blue_1': 0, 'blue_2': 0, 'red_1': 0, 'red_2': 0, '423': 0} self.nu_prev = self.nu.copy() self.nu_blue_1_want, self.nu_blue_2_want, self.nu_red_1_want, self.nu_red_2_want = 755.186770, 0.0, 0.0, 0.0 self.nu_setpoint = self.nu.copy() self.nu_blue_1_smooth_flag, self.nu_blue_2_smooth_flag, self.nu_red_1_smooth_flag, self.nu_red_2_smooth_flag = 1, 1, 1, 1 self.nu_blue_1_smooth_want, self.nu_blue_2_smooth_want, self.nu_red_1_smooth_want, self.nu_red_2_smooth_want = 755.186770, 0.0, 0.0, 0.0 self.nu_blue_1_smooth_delta_t, self.nu_blue_2_smooth_delta_t, self.nu_red_1_smooth_delta_t, self.nu_red_2_smooth_delta_t = 10.0, 10.0, 10.0, 10.0 self.nu_smooth_increment = 0.000001 #---------------------------------------------------------------------# #--- PIEZO Parameters ------------------------------------------------# self.nu_blue_1_piezo_set, self.nu_blue_2_piezo_set, self.nu_red_1_piezo_set, self.nu_red_2_piezo_set = 0.0, 0.0, 0.0, 0.0 #---------------------------------------------------------------------# #--- LOCKING Parameters ----------------------------------------------# self.lock_blue_1 = False self.lock_lasers = { 'blue_1': False, 'blue_2': False, 'red_1': False, 'red_2': False, '423': False } self.lock_blue_2_flag, self.lock_red_1_flag, self.lock_red_2_flag = 1, 1, 1 self.lock_blue_1_alpha, self.lock_blue_2_alpha, self.lock_red_1_alpha, self.lock_red_2_alpha = 20., 20., 20., 20. self.lock_blue_1_beta, self.lock_blue_2_beta, self.lock_red_1_beta, self.lock_red_2_beta = 15., 15., 15., 15. default_lock_pars = {'k_p': 20, 'k_i': 20} self.lock_pars = { 'blue_1': default_lock_pars.copy(), 'blue_2': default_lock_pars.copy(), 'red_1': default_lock_pars.copy(), 'red_2': default_lock_pars.copy(), '423': default_lock_pars.copy() } self.lock_blue_1_Integral, self.lock_blue_2_Integral, self.lock_red_1_Integral, self.lock_red_2_Integral = 0.0, 0.0, 0.0, 0.0 self.errors_previous = { 'blue_1': 0, 'blue_2': 0, 'red_1': 0, 'red_2': 0, '423': 0 } self.lock_polarity = {'blue_1': +1, 'blue_2': +1, '423': -1} #Lock error counters self.lock_blue_1_count, self.lock_blue_2_count, self.lock_red_1_count, self.lock_red_2_count = 0, 0, 0, 0 self.lock_count = { 'blue_1': 0, 'blue_2': 0, 'red_1': 0, 'red_2': 0, '423': 0 } #---------------------------------------------------------------------# #--- SAWTOOTH Parameters ---------------------------------------------# self.sawtooth_flag = 1 self.sawtooth_nu_blue_1_init = 755.186880 self.sawtooth_nu_blue_1_detuned = 755.186780 self.sawtooth_nu_blue_2_init = 755.258220 self.sawtooth_nu_blue_2_detuned = 755.258120 self.sawtooth_delta_t1 = 1.5 self.sawtooth_delta_t2 = 0.75 self.sawtooth_t_incr = 0.05 self.sawtooth_total_reps = 1 self.sawtooth_t_total = [] self.sawtooth_nu1_total = [] self.sawtooth_nu2_total = [] #---------------------------------------------------------------------# #--- Debug vars ------------------------------------------------------# self.debug_flag = False self.debug_number = 10 #---------------------------------------------------------------------# #---------------------------------------------------------------------# #---------------------------------------------------------------------# #---------------------------------------------------------------------# #--- CREATE INSTANCES OF WM AND LASER CONTROLLERS --------------------# #---------------------------------------------------------------------# #---------------------------------------------------------------------# self.HF_WM = HighFinesse_WM() #---------------------------------------------------------------------# #---------------------------------------------------------------------# self.T_DLC_blues = Toptica_DLC_pro('192.168.0.2') self.lock_blue_1_piezo_volt_set = float( self.T_DLC_blues.read_parameter('laser1:dl:pc:voltage-set')) self.lock_blue_2_piezo_volt_set = float( self.T_DLC_blues.read_parameter('laser2:dl:pc:voltage-set')) #---------------------------------------------------------------------# self.lock_blue_1_piezo_volt_init = self.lock_blue_1_piezo_volt_set self.lock_blue_2_piezo_volt_init = self.lock_blue_2_piezo_volt_set #---------------------------------------------------------------------# self.T_DLC_reds = Toptica_DLC_pro('192.168.0.3') self.lock_red_1_piezo_volt_set = float( self.T_DLC_reds.read_parameter('laser1:dl:pc:voltage-set')) self.lock_red_2_piezo_volt_set = float( self.T_DLC_reds.read_parameter('laser2:dl:pc:voltage-set')) #---------------------------------------------------------------------# self.lock_red_1_piezo_volt_init = self.lock_red_1_piezo_volt_set self.lock_red_2_piezo_volt_init = self.lock_red_2_piezo_volt_set self.DAQ_423 = DAQ() #DAQ_voltage = DAQ_423.get_voltage(5) DAQ_voltage = 0 self.piezo_volt = { 'blue_1': self.lock_blue_1_piezo_volt_set, 'blue_2': self.lock_blue_2_piezo_volt_set, 'red_1': self.lock_red_1_piezo_volt_set, 'red_2': self.lock_red_2_piezo_volt_set, '423': DAQ_voltage } #---------------------------------------------------------------------# #---------------------------------------------------------------------# #---------------------------------------------------------------------# #---------------------------------------------------------------------# #--- SCHEDULE ITERATIVE JOBS TO GET DATA FROM WM ---------------------# #---------------------------------------------------------------------# #---------------------------------------------------------------------# self.program_scheduler = QtScheduler() self.program_scheduler.start() #---------------------------------------------------------------------# #---------------------------------------------------------------------# self.program_scheduler.add_job(self.control_loop, 'interval', seconds=0.05, id='id_update_wm_data')
from PyQt5.QtGui import * from PyQt5.QtWidgets import * from app import db_file from app.database import DataBase from app.main_window import MainWindow jobstores = {"default": SQLAlchemyJobStore(url=f"sqlite:///{db_file}")} executors = { "default": ThreadPoolExecutor(20), "processpool": ProcessPoolExecutor(5) } job_defaults = {"coalesce": False, "max_instances": 3} if __name__ == "__main__": appctxt = ApplicationContext() # 1. Instantiate ApplicationContext db = DataBase() qtsched = QtScheduler( jobstores=jobstores, executors=executors, job_defaults=job_defaults, ) view = MainWindow(database=db, scheduler=qtsched, ctx=appctxt) qtsched.start() view.show() view.raise_() exit_code = appctxt.app.exec_() # 2. Invoke appctxt.app.exec_() sys.exit(exit_code)
def schedule_single_task(self): self.scheduler = TaskScheduler(QtScheduler()) self.task = Task(test_func) self.scheduledTask = self.scheduler.schedule_task_in_interval( self.task, 1, Time.SEC)