コード例 #1
0
ファイル: main.py プロジェクト: fpsf/ccd1.2.0
    def init_user_interface(self):
        self.cont = conts(self)
        self.ephem = eph(self)
        self.a = sw(self)
        self.b = mw(self)
        self.imag = imag_menu(self)
        self.cam = Camera()
        self.CCD_menu = CCD_menu(self)
        # self.cam.ephemerisShooterThread.continuousShooterThread.started.connect(self.ephem_button)
        self.cam.ephemerisShooterThread.signal_temp.connect(
            self.settings_false)
        self.cam.ephemerisShooterThread.continuousShooterThread.finished.connect(
            self.settings_true)
        self.filters_menu = filters(self)
        self.all_settings = all_settings(self)
        # self.init_menu()
        self.init_window_geometry()

        self.cs = ConfigSystem()

        self.info = self.cs.get_site_settings()

        # Connect Camera
        if self.info[0]:
            self.cam.connect()
            self.cam.start_ephemeris_shooter()
コード例 #2
0
ファイル: Image_Path.py プロジェクト: fpsf/ccd1.2.0
def set_path():
    tempo = datetime.utcnow().strftime('%Y%m%d_%H%M%S')

    data = tempo[0:4] + "_" + tempo[4:6] + tempo[6:8]

    from src.business.configuration.configSystem import ConfigSystem
    cs = ConfigSystem()
    path = str(cs.get_image_path()) + "/"

    from src.business.configuration.configProject import ConfigProject
    ci = ConfigProject()
    name_observatory = str(ci.get_site_settings())
    name_observatory = Image_Processing.get_observatory(name_observatory)

    if int(tempo[9:11]) > 12:
        path = path + name_observatory + "_" + data + "/"
    else:
        ano = tempo[0:4]
        mes = tempo[4:6]
        dia = tempo[6:8]
        abs_julian_day = jd_to_date(date_to_jd(ano, mes, int(dia)) - 1)

        mes = abs_julian_day[1]
        dia = abs_julian_day[2]
        ano = abs_julian_day[0]

        if 0 < int(dia) < 10:
            dia = "0" + str(dia)
        if 0 < int(mes) < 10:
            mes = "0" + str(mes)

        path = path + name_observatory + "_" + str(ano) + "_" + str(mes) + str(
            dia) + "/"

    return path, tempo
コード例 #3
0
ファイル: SbigDriver.py プロジェクト: hiyoku/ccd10
def set_path(pre):
    tempo = datetime.utcnow().strftime('%Y%m%d_%H%M%S')

    data = tempo[0:4] + "_" + tempo[4:6] + tempo[6:8]
    # hora = tempo[9:11]+":"+tempo[11:13]+":"+tempo[13:15]

    from src.business.configuration.configSystem import ConfigSystem
    cs = ConfigSystem()
    path = str(cs.get_image_path()) + "/"

    from src.business.configuration.configProject import ConfigProject
    ci = ConfigProject()
    name_observatory = str(ci.get_site_settings())
    name_observatory = get_observatory(name_observatory)

    if int(tempo[9:11]) > 12:
        path = path + name_observatory + "_" + data + "/"
    else:
        day = int(tempo[6:8])
        if 0 < day < 10:
            day = "0" + str(day - 1)
        else:
            day = str(day - 1)

        path = path + name_observatory + "_" + tempo[0:4] + "_" + tempo[4:6] + day + "/"

    return path, tempo
コード例 #4
0
ファイル: logger.py プロジェクト: hiyoku/ccd10
    def run(self):
        try:
            tempo = datetime.utcnow().strftime('%Y%m%d_%H%M%S')
            data = tempo[0:4] + "_" + tempo[4:6] + tempo[6:8]

            data_log = datetime.utcnow().strftime('[%Y-%m-%d @ %H:%M:%S UTC]')

            from src.business.configuration.configSystem import ConfigSystem
            log_folder = ConfigSystem()

            if str(log_folder.get_log_path()) == "None":
                if log_folder():
                    name_log_folder = str(log_folder.get_log_path())
                else:
                    name_log_folder = 'Log_folder'
                    os.mkdir(name_log_folder)
            else:
                name_log_folder = str(log_folder.get_log_path())

            from src.business.configuration.configProject import ConfigProject
            ci = ConfigProject()
            name_observatory = str(ci.get_site_settings())
            name_observatory = SbigDriver.get_observatory(name_observatory)

            if int(tempo[9:11]) > 12:
                name_log = name_log_folder + "/LOG_" + name_observatory + "_" + data + '.txt'
                log = open(str(name_log), 'a')
                log.write(str(data_log) + " - " + str(self.text) + "\n")
                log.close()
            else:
                tempo = datetime.utcnow().strftime('%Y%m%d_%H%M%S')
                ano = tempo[0:4]
                mes = tempo[4:6]
                dia = tempo[6:8]
                abs_julian_day = SbigDriver.jd_to_date(
                    SbigDriver.date_to_jd(ano, mes, int(dia)) - 1)

                if 0 < abs_julian_day[2] < 10:
                    name_log = name_log_folder + "/LOG_" + name_observatory + "_" + str(
                        abs_julian_day[0]) + "_" + str(
                            abs_julian_day[1]) + "0" + str(
                                abs_julian_day[2]) + '.txt'
                    log = open(str(name_log), 'a')
                    log.write(str(data_log) + " - " + str(self.text) + "\n")
                    log.close()
                else:
                    name_log = name_log_folder + "/LOG_" + name_observatory + "_" + str(
                        abs_julian_day[0]) + "_" + str(
                            abs_julian_day[1]) + str(
                                abs_julian_day[2]) + '.txt'
                    log = open(str(name_log), 'a')
                    log.write(str(data_log) + " - " + str(self.text) + "\n")
                    log.close()
        except Exception as e:
            print(e)
コード例 #5
0
class SystemSettingsWindow(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(SystemSettingsWindow, self).__init__(parent)
        self.s = parent
        self.cs = ConfigSystem()
        self.console = ConsoleThreadOutput()

        # Creating Widgets
        self.wp = WidgetsPath(self)
        self.button_ok = QtWidgets.QPushButton('Save', self)
        self.button_clear = QtWidgets.QPushButton('Clear', self)
        self.button_cancel = QtWidgets.QPushButton('Cancel', self)

        # Setting Up
        self.button_settings()
        self.setting_up()

        self.filling_fields()

    def button_settings(self):
        self.button_clear.clicked.connect(self.clear_fields)
        self.button_cancel.clicked.connect(self.s.close)
        self.button_ok.clicked.connect(self.ok_button)

    def ok_button(self):
        try:
            self.saving_settings()
            self.console.raise_text("Saved settings successfully!", 1)
        except:
            self.console.raise_text("Unable to save the system settings.", 1)
        finally:
            self.s.close()

    def setting_up(self):
        self.setLayout(
            set_lvbox(
                set_hbox(self.wp),
                set_hbox(self.button_ok,
                         self.button_clear,
                         self.button_cancel,
                         stretch2=1)))

    def saving_settings(self):
        info = self.wp.get_values()
        self.cs.set_site_settings(info[0], info[1], info[2])
        self.cs.save_settings()

    def filling_fields(self):
        info = self.cs.get_site_settings()
        self.wp.set_values(info[0], info[1], info[2])

    def clear_fields(self):
        self.wp.clear_path()
コード例 #6
0
ファイル: systemSettingsWindow.py プロジェクト: hiyoku/ccd10
class SystemSettingsWindow(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(SystemSettingsWindow, self).__init__(parent)
        self.s = parent
        self.cs = ConfigSystem()
        self.console = ConsoleThreadOutput()

        # Creating Widgets
        self.wp = WidgetsPath(self)
        self.button_ok = QtWidgets.QPushButton('Save', self)
        self.button_clear = QtWidgets.QPushButton('Clear', self)
        self.button_cancel = QtWidgets.QPushButton('Cancel', self)

        # Setting Up
        self.button_settings()
        self.setting_up()

        self.filling_fields()

    def button_settings(self):
        self.button_clear.clicked.connect(self.clear_fields)
        self.button_cancel.clicked.connect(self.s.close)
        self.button_ok.clicked.connect(self.ok_button)

    def ok_button(self):
        try:
            self.saving_settings()
            self.console.raise_text("Saved settings successfully!", 1)
        except:
            self.console.raise_text("Unable to save the system settings.", 1)
        finally:
            self.s.close()

    def setting_up(self):
        self.setLayout(set_lvbox(set_hbox(self.wp),
                                 set_hbox(self.button_ok, self.button_clear, self.button_cancel, stretch2=1)))

    def saving_settings(self):
        info = self.wp.get_values()
        self.cs.set_site_settings(info[0], info[1], info[2], info[3], info[4])
        self.cs.save_settings()

    def filling_fields(self):
        info = self.cs.get_site_settings()
        self.wp.set_values(info[0], info[1], info[2], info[3], info[4])

    def clear_fields(self):
        self.wp.clear_path()
コード例 #7
0
    def __init__(self, parent=None):
        super(SystemSettingsWindow, self).__init__(parent)
        self.s = parent
        self.cs = ConfigSystem()
        self.console = ConsoleThreadOutput()

        # Creating Widgets
        self.wp = WidgetsPath(self)
        self.button_ok = QtWidgets.QPushButton('Save', self)
        self.button_clear = QtWidgets.QPushButton('Clear', self)
        self.button_cancel = QtWidgets.QPushButton('Cancel', self)

        # Setting Up
        self.button_settings()
        self.setting_up()

        self.filling_fields()
コード例 #8
0
ファイル: main.py プロジェクト: hiyoku/ccd10
    def init_user_interface(self):
        self.cont = conts(self)
        self.ephem = eph(self)
        self.a = sw(self)
        self.b = mw(self)
        self.c = csw(self)
        self.cam = Camera()
        self.init_menu()
        self.init_window_geometry()

        self.cs = ConfigSystem()

        info = self.cs.get_site_settings()

        # Connect Camera
        if info[0] == True:
            self.cam.connect()
            self.cam.start_ephemeris_shooter()
コード例 #9
0
    def init_user_interface(self):
        self.cont = conts(self)
        self.ephem = eph(self)
        self.a = sw(self)
        self.b = mw(self)
        self.imag = imag_menu(self)
        self.CCD_menu = CCD_menu(self)
        self.cam = Camera()
        self.filters_menu = filters(self)
        self.all_settings = all_settings(self)
        self.init_menu()
        self.init_window_geometry()

        self.cs = ConfigSystem()

        self.info = self.cs.get_site_settings()

        # Connect Camera
        if self.info[0]:
            self.cam.connect()
            self.cam.start_ephemeris_shooter()
コード例 #10
0
ファイル: SbigDriver.py プロジェクト: hiyoku/ccd10
def set_path(pre):
    '''
    :param pre:
    :return: gera nome da pasta e consequente do arquivo fit e png.
    '''
    tempo = datetime.utcnow().strftime('%Y%m%d_%H%M%S')

    data = tempo[0:4] + "_" + tempo[4:6] + tempo[6:8]

    from src.business.configuration.configSystem import ConfigSystem
    cs = ConfigSystem()
    path = str(cs.get_image_path()) + "/"

    from src.business.configuration.configProject import ConfigProject
    ci = ConfigProject()
    name_observatory = str(ci.get_site_settings())
    name_observatory = get_observatory(name_observatory)

    if int(tempo[9:11]) > 12:
        path = path + name_observatory + "_" + data + "/"
    else:
        tempo = datetime.utcnow().strftime('%Y%m%d_%H%M%S')
        ano = tempo[0:4]
        mes = tempo[4:6]
        dia = tempo[6:8]
        abs_julian_day = jd_to_date(date_to_jd(ano, mes, int(dia)) - 1)

        if 0 < abs_julian_day[2] < 10:
            path = path + name_observatory + "_" + str(
                abs_julian_day[0]) + "_" + str(abs_julian_day[1]) + "0" + str(
                    abs_julian_day[2]) + "/"
        else:
            path = path + name_observatory + "_" + str(
                abs_julian_day[0]) + "_" + str(abs_julian_day[1]) + str(
                    abs_julian_day[2]) + "/"

    return path, tempo
コード例 #11
0
ファイル: systemSettingsWindow.py プロジェクト: hiyoku/ccd10
    def __init__(self, parent=None):
        super(SystemSettingsWindow, self).__init__(parent)
        self.s = parent
        self.cs = ConfigSystem()
        self.console = ConsoleThreadOutput()

        # Creating Widgets
        self.wp = WidgetsPath(self)
        self.button_ok = QtWidgets.QPushButton('Save', self)
        self.button_clear = QtWidgets.QPushButton('Clear', self)
        self.button_cancel = QtWidgets.QPushButton('Cancel', self)

        # Setting Up
        self.button_settings()
        self.setting_up()

        self.filling_fields()
コード例 #12
0
class Main(QtWidgets.QMainWindow):
    """
    classe de criacao da interface
    """
    def __init__(self):
        super(Main, self).__init__()
        Status(self)
        # Init Layouts
        self.init_widgets()
        self.init_user_interface()
        self.createActions()
        self.createToolBars()
        self.auto_connect_filter_and_camera()

    def init_user_interface(self):
        self.cont = conts(self)
        self.ephem = eph(self)
        self.a = sw(self)
        self.b = mw(self)
        self.imag = imag_menu(self)
        self.CCD_menu = CCD_menu(self)
        self.cam = Camera()
        self.filters_menu = filters(self)
        self.filters_sequence_menu = filterssequence(self)
        self.init_menu()
        self.init_window_geometry()

        self.cs = ConfigSystem()

        info = self.cs.get_site_settings()

        self.roda_filtros = FilterControl()

        # Connect Camera
        if info[0]:
            self.roda_filtros.connect()
            self.cam.connect()
            self.cam.start_ephemeris_shooter()

    def init_widgets(self):
        a = MainWindow(self)
        self.setCentralWidget(a)

    def init_window_geometry(self):
        self.setGeometry(300, 100, 800, 780)
        software_version = "CCD Controller 3 - V 0.9"
        self.setWindowTitle(software_version)
        self.show()

    def closeEvent(self, event):

        reply = QMessageBox.question(self, 'Message',
                                     "Are you sure to quit?", QMessageBox.Yes |
                                     QMessageBox.No, QMessageBox.No)

        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

    # Creating menubar

    def init_menu(self):
        """
        Creating the Menu Bar
        """
        menubar = self.menuBar()
        a2 = self.open_settings()
        self.add_to_menu(menubar, "System Settings", self.open_settings_system()[0])
        self.add_to_menu(menubar, "Project Settings", a2[0])
        self.add_to_menu(menubar, "Image Settings", self.open_settings_image()[0])
        self.add_to_menu(menubar, "Filters Settings", self.open_settings_filters()[0])
        self.add_to_menu(menubar, "Acquisition Schedule", self.open_settings_sequence_filters()[0])
        self.add_to_menu(menubar, "Imager Settings", self.open_settings_CCD()[0])

    def action_continuous_shooter(self):
        """
        Inicia e para o modo manual
        """
        actionStart = QtWidgets.QAction('&Start', self)
        actionStop = QtWidgets.QAction('&Stop', self)

        actionStart.triggered.connect(self.cam.start_taking_photo)
        actionStop.triggered.connect(self.cam.stop_taking_photo)

        return actionStart, actionStop

    def action_ephemeris_shooter(self):
        """
        Inicia e para o modo automatico
        """
        actionStart = QtWidgets.QAction('&Start', self)
        actionStop = QtWidgets.QAction('&Stop', self)

        actionStart.triggered.connect(self.cam.start_ephemeris_shooter)
        actionStop.triggered.connect(self.cam.stop_ephemeris_shooter)

        return actionStart, actionStop

    def open_settings(self):
        settings = QtWidgets.QAction('Project Settings', self)
        settings.setShortcut("Ctrl+P")
        settings.setStatusTip("Open Settings window")

        settings.triggered.connect(self.a.show)

        return settings, "&Options"

    def open_settings_system(self):
        setS = QtWidgets.QAction('System Settings', self)
        setS.setShortcut('Ctrl+T')

        setS.triggered.connect(self.b.show)

        return setS, "&Options"

    def open_settings_image(self):
        setI = QtWidgets.QAction('Image Settings', self)
        setI.setShortcut("Ctrl+i")

        setI.triggered.connect(self.imag.show)

        return setI, "&Options"

    def open_settings_filters(self):
        setF = QtWidgets.QAction('Filters Settings', self)
        setF.setShortcut("Ctrl+F")

        try:
            setF.triggered.connect(self.filters_menu.show)
        except Exception as e:
            print(e)

        return setF, "&Options"

    def open_settings_sequence_filters(self):
        setSeqFilters = QtWidgets.QAction('Acquisition Schedule', self)
        setSeqFilters.setShortcut("Ctrl+A")

        try:
            setSeqFilters.triggered.connect(self.filters_sequence_menu.show)
        except Exception as e:
            print(e)

        return setSeqFilters, "&Options"

    def open_settings_CCD(self):
        setCCD = QtWidgets.QAction('Imager Settings', self)

        setCCD.triggered.connect(self.funcao_teste)

        return setCCD, "&Options"

    def funcao_teste(self):
        self.CCD_menu.show()
        self.CCD_menu.show_camera_infos()

    def action_connect_disconnect(self):
        setAC = QtWidgets.QAction('Connect', self)
        setAD = QtWidgets.QAction('Disconnect', self)

        setAC.triggered.connect(self.auto_connect_filter_and_camera())

        setAD.triggered.connect(self.cam.disconnect)

        return 'Connection', setAC, setAD

    def add_to_menu(self, menubar, menu, *args):
        m = menubar.addMenu(menu)
        for w in args:
            m.addAction(w)

        return m

    def createActions(self):
        self.connectAction = QAction(QIcon('icons/Connect.png'), 'Connect', self)
        self.connectAction.triggered.connect(self.connect_cam_filter_wheel)
        '''
        self.connectAction.setCheckable(True)
        self.connectAction.setChecked(True)
        self.setDisabled(True)
        '''

        self.disconnectAction = QAction(QIcon('icons/Disconnect.png'), 'Disconnect', self)
        self.disconnectAction.triggered.connect(self.cam.disconnect)

        self.automaticAction = QAction(QIcon('icons/Run_Automatic.png'), 'Run Automatic', self)
        self.automaticAction.triggered.connect(self.cam.start_ephemeris_shooter)
        '''
        self.automaticAction.setCheckable(True)
        self.automaticAction.setChecked(True)
        '''
        self.manualAction = QAction(QIcon('icons/Run_Manual.png'), 'Run Manual', self)
        self.manualAction.triggered.connect(self.cam.start_taking_photo)
        '''
        self.manualAction.setCheckable(True)
        self.manualAction.setChecked(False)
        '''
        self.stopAction = QAction(QIcon('icons/Stop.png'), 'Stop', self)
        try:
            if self.cam.start_taking_photo:
                self.stopAction.triggered.connect(self.cam.stop_taking_photo)
            elif self.cam.start_ephemeris_shooter:
                self.stopAction.triggered.connect(self.cam.stop_ephemeris_shooter)
            else:
                print("Nothing to stop")
        except Exception as e:
            print(e)

    def connect_cam_filter_wheel(self):
        self.cam.connect()
        self.roda_filtros.connect()

    def createToolBars(self):
        self.toolbar = self.addToolBar('Close Toolbar')
        self.toolbar.setIconSize(QtCore.QSize(70, 70))
        self.toolbar.addAction(self.connectAction)
        self.toolbar.addAction(self.disconnectAction)
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.automaticAction)
        self.toolbar.addAction(self.manualAction)
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.stopAction)
        self.toolbar.addSeparator()

    def auto_connect_filter_and_camera(self):
        self.cam.connect
コード例 #13
0
ファイル: main.py プロジェクト: fpsf/ccd1.2.0
class Main(QtWidgets.QMainWindow):
    """
    classe de criacao da interface
    """
    def __init__(self):
        super(Main, self).__init__()
        Status(self)
        # Init Layouts
        if sys.platform.startswith("win"):
            import ctypes
            user32 = ctypes.windll.user32
            self.screensize = user32.GetSystemMetrics(
                0), user32.GetSystemMetrics(1)
        else:
            import subprocess
            output = subprocess.Popen('xrandr | grep "\*" | cut -d" " -f4',
                                      shell=True,
                                      stdout=subprocess.PIPE).communicate()[0]
            self.screensize = output.split()[0].split(b'x')
            self.screensize[0] = str(self.screensize[0], "utf-8")
            self.screensize[1] = str(self.screensize[1], "utf-8")
            self.screensize[0] = int(self.screensize[0])
            self.screensize[1] = int(self.screensize[1])

        # self.setWindowFlags(Qt.WindowMinimizeButtonHint | Qt.WindowCloseButtonHint)
        self.init_widgets()
        self.init_user_interface()
        self.createActions()

        if self.cam.is_connected:
            if self.cam.ephemerisShooterThread.continuousShooterThread.isRunning(
            ):
                self.actions_enabled(False, False, False, False, True, False)
            else:
                self.actions_enabled(False, False, False, False, True, True)
            '''
            self.connectAction.setEnabled(False)
            self.disconnectAction.setEnabled(True)
            self.automaticAction.setEnabled(False)
            self.manualAction.setEnabled(False)
            self.stopAction.setEnabled(True)
            '''
        else:
            '''
            self.connectAction.setEnabled(True)
            self.disconnectAction.setEnabled(False)
            self.automaticAction.setEnabled(False)
            self.manualAction.setEnabled(False)
            self.stopAction.setEnabled(False)
            '''
            self.actions_enabled(True, False, False, False, False, True)

        self.createToolBars()

    def init_user_interface(self):
        self.cont = conts(self)
        self.ephem = eph(self)
        self.a = sw(self)
        self.b = mw(self)
        self.imag = imag_menu(self)
        self.cam = Camera()
        self.CCD_menu = CCD_menu(self)
        # self.cam.ephemerisShooterThread.continuousShooterThread.started.connect(self.ephem_button)
        self.cam.ephemerisShooterThread.signal_temp.connect(
            self.settings_false)
        self.cam.ephemerisShooterThread.continuousShooterThread.finished.connect(
            self.settings_true)
        self.filters_menu = filters(self)
        self.all_settings = all_settings(self)
        # self.init_menu()
        self.init_window_geometry()

        self.cs = ConfigSystem()

        self.info = self.cs.get_site_settings()

        # Connect Camera
        if self.info[0]:
            self.cam.connect()
            self.cam.start_ephemeris_shooter()
            # self.CCD_menu.show_camera_infos()

    def settings_false(self):
        self.allSettingsAction.setEnabled(False)

    def settings_true(self):
        self.allSettingsAction.setEnabled(True)

    def init_widgets(self):
        a = MainWindow(self)
        self.setCentralWidget(a)

    def init_window_geometry(self):
        # 300, 100, 800, 700
        self.setGeometry(self.screensize[0] / 4,
                         self.screensize[1] / 4 - self.screensize[1] / 6, 0, 0)
        '''qtRectangle = self.frameGeometry()
        centerPoint = QDesktopWidget().availableGeometry().center()
        qtRectangle.moveCenter(centerPoint)
        self.move(qtRectangle.topLeft())'''
        self.setWindowTitle("CCD Controller 1.2.0")
        self.setFixedSize(self.width(), self.height())
        self.show()
        # self.resize(0, 700)
        # self.showMaximized()

    # Creating menubar
    '''
    def init_menu(self):
        """
        Creating the Menu Bar
        """
        menubar = self.menuBar()

        a2 = self.open_settings()
        self.add_to_menu(menubar, "Settings", self.open_settings_system()[0],
                         a2[0],
                         self.open_settings_image()[0],
                         self.open_settings_filters()[0],
                         self.open_settings_CCD()[0])
        # self.add_to_menu(menubar, "System Settings", self.open_settings_system()[0])
        # self.add_to_menu(menubar, "Project Settings", a2[0])
        # self.add_to_menu(menubar, "Image Settings", self.open_settings_image()[0])
        # self.add_to_menu(menubar, "Filters Settings", self.open_settings_filters()[0])
        # self.add_to_menu(menubar, "Imager Settings", self.open_settings_CCD()[0])
        # self.add_to_menu(menubar, "Open Shutter", self.cam.continuousShooterThread.shutter_control(True))
        # self.add_to_menu(menubar, "Close Shutter", self.cam.continuousShooterThread.shutter_control(False))
        # self.add_to_menu(menubar, a2[1], self.open_settings_system()[0], a2[0], self.open_settings_camera()[0])

        # add_to_menu(menubar, open_settings_system(self))
    '''

    # All actions needs return a QAction and a menuType, line '&File'
    def action_close(self):
        """
        Creating the button to close the application
        """
        aexit = QtWidgets.QAction(QIcon('\icons\exit.png'), "&Exit", self)
        aexit.setShortcut("Ctrl+Q")
        aexit.setStatusTip("Exit Application")

        # noinspection PyUnresolvedReferences
        aexit.triggered.connect(QtWidgets.qApp.exit)

        return aexit, "&File"

    def action_continuous_shooter(self):
        """
        Inicia e para o modo manual
        """
        actionStart = QtWidgets.QAction('&Start', self)
        actionStop = QtWidgets.QAction('&Stop', self)

        actionStart.triggered.connect(self.cam.start_taking_photo)
        actionStop.triggered.connect(self.cam.stop_taking_photo)

        return actionStart, actionStop

    def action_ephemeris_shooter(self):
        """
        Inicia e para o modo automatico
        """
        actionStart = QtWidgets.QAction('&Start', self)
        actionStop = QtWidgets.QAction('&Stop', self)

        actionStart.triggered.connect(self.cam.start_ephemeris_shooter)
        actionStop.triggered.connect(self.cam.stop_ephemeris_shooter)

        return actionStart, actionStop

    def open_settings(self):
        settings = QtWidgets.QAction('Project Settings', self)
        settings.setShortcut("Ctrl+P")
        settings.setStatusTip("Open Settings window")

        settings.triggered.connect(self.a.show)

        return settings, "&Options"

    def open_settings_system(self):
        setS = QtWidgets.QAction('System Settings', self)
        setS.setShortcut('Ctrl+T')

        setS.triggered.connect(self.b.show)

        return setS, "&Options"

    def open_settings_camera(self):
        setC = QtWidgets.QAction('Camera Settings', self)
        setC.setShortcut("Ctrl+C")

        setC.triggered.connect(self.imag.show)

        return setC, "&Options"

    def open_settings_image(self):
        setI = QtWidgets.QAction('Image Settings', self)
        setI.setShortcut("Ctrl+i")

        setI.triggered.connect(self.imag.show)

        return setI, "&Options"

    def open_settings_filters(self):
        setF = QtWidgets.QAction('Filters Settings', self)
        setF.setShortcut("Ctrl+F")

        try:
            setF.triggered.connect(self.filters_menu.show)
        except Exception as e:
            print(e)

        return setF, "&Options"

    def open_settings_CCD(self):
        setCCD = QtWidgets.QAction('Camera Settings', self)
        setCCD.setShortcut("Ctrl+Y")

        setCCD.triggered.connect(self.funcao_teste)

        return setCCD, "&Options"

    def funcao_teste(self):
        self.CCD_menu.show()
        self.CCD_menu.show_camera_infos()

    def open_all_settings(self):
        # self.all_settings.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint)
        self.all_settings.show()

    def open_shutter(self):
        self.self.cam.continuousShooterThread.shutter_control(True)

    def close_shutter(self):
        self.self.cam.continuousShooterThread.shutter_control(False)

    def action_connect_disconnect(self):
        setAC = QtWidgets.QAction('Connect', self)
        setAD = QtWidgets.QAction('Disconnect', self)

        setAC.triggered.connect(self.cam.connect)

        setAD.triggered.connect(self.cam.disconnect)

        return 'Connection', setAC, setAD

    def add_to_menu(self, menubar, menu, *args):
        m = menubar.addMenu(menu)
        for w in args:
            m.addAction(w)

        return m

    def closeEvent(self, event):

        reply = QMessageBox.question(self, 'Message', "Are you sure to quit?",
                                     QMessageBox.Yes | QMessageBox.No,
                                     QMessageBox.No)

        if reply == QMessageBox.Yes:
            if self.cam.ephemerisShooterThread.isRunning(
            ) or self.cam.continuousShooterThread.isRunning():
                self.stop_button()
            while self.cam.fan.fan_status() != "OFF":
                time.sleep(1)
            event.accept()
            '''
            self.stop_button()
            while not math.isclose(SbigDriver.get_temperature()[2], 15.00):
                time.sleep(1)
            '''
        else:
            event.ignore()

    def createActions(self):
        self.connectAction = QAction(QIcon('icons/Connect.png'), 'Connect',
                                     self)
        self.connectAction.triggered.connect(self.connect_button)
        '''
        self.connectAction.setCheckable(True)
        self.connectAction.setChecked(True)
        self.setDisabled(True)
        '''

        self.disconnectAction = QAction(QIcon('icons/Disconnect.png'),
                                        'Disconnect', self)
        self.disconnectAction.triggered.connect(self.disconnect_button)

        self.automaticAction = QAction(QIcon('icons/Run_Automatic.png'),
                                       'Run Automatic', self)
        self.automaticAction.triggered.connect(self.ephem_button)
        '''
        self.automaticAction.setCheckable(True)
        self.automaticAction.setChecked(True)
        '''
        self.manualAction = QAction(QIcon('icons/Run_Manual.png'),
                                    'Run Manual', self)
        self.manualAction.triggered.connect(self.manual_button)
        '''
        self.manualAction.setCheckable(True)
        self.manualAction.setChecked(False)
        '''

        self.stopAction = QAction(QIcon('icons/Stop.png'), 'Stop', self)
        self.stopAction.triggered.connect(self.stop_button)

        self.allSettingsAction = QAction(QIcon('icons/Settings.png'),
                                         'Settings', self)
        self.allSettingsAction.triggered.connect(self.open_all_settings)

        self.exitAction = QAction(QIcon('icons/Exit.png'), "Exit", self)
        self.exitAction.triggered.connect(self.close)

        self.openShutterAction = QAction('Open Shutter', self)
        self.openShutterAction.triggered.connect(self.open_shutter)

        self.closeShutterAction = QAction('Close Shutter', self)
        self.closeShutterAction.triggered.connect(self.close_shutter)

    def connect_button(self):
        try:
            self.cam.connect()
            if self.cam.is_connected:
                self.actions_enabled(False, True, True, True, False, True)
                '''
                self.connectAction.setEnabled(False)
                self.manualAction.setEnabled(True)
                self.automaticAction.setEnabled(True)
                self.stopAction.setEnabled(False)
                self.disconnectAction.setEnabled(True)
                '''
        except Exception as e:
            print(e)

    def disconnect_button(self):
        try:
            self.cam.disconnect()
            self.actions_enabled(True, False, False, False, False, True)
            '''
            self.disconnectAction.setEnabled(False)
            self.manualAction.setEnabled(False)
            self.automaticAction.setEnabled(False)
            self.stopAction.setEnabled(False)
            self.connectAction.setEnabled(True)
            '''
        except Exception as e:
            print(e)

    def ephem_button(self):
        try:
            self.cam.start_ephemeris_shooter()
            time.sleep(1)
            if self.cam.ephemerisShooterThread.continuousShooterThread.isRunning(
            ):
                self.actions_enabled(False, False, False, False, True, False)
            else:
                self.actions_enabled(False, False, False, False, True, True)
            '''
            self.automaticAction.setEnabled(False)
            self.manualAction.setEnabled(False)
            self.stopAction.setEnabled(True)
            '''
        except Exception as e:
            print(e)

    def manual_button(self):
        try:
            self.cam.start_taking_photo()
            self.actions_enabled(False, False, False, False, True, False)
            '''
            self.manualAction.setEnabled(False)
            self.automaticAction.setEnabled(False)
            self.stopAction.setEnabled(True)
            '''
        except Exception as e:
            print(e)

    # 08:33:28
    def stop_button(self):
        try:
            if self.cam.continuousShooterThread.isRunning():
                self.cam.stop_taking_photo()
                # self.cam.standby_mode()
                self.actions_enabled(False, True, True, True, False, True)
                '''
                self.stopAction.setEnabled(False)
                self.manualAction.setEnabled(True)
                self.automaticAction.setEnabled(True)
                '''
            elif self.cam.ephemerisShooterThread.isRunning():
                self.cam.stop_ephemeris_shooter()
                # self.cam.standby_mode()
                self.actions_enabled(False, True, True, True, False, True)
                '''
                self.stopAction.setEnabled(False)
                self.manualAction.setEnabled(True)
                self.automaticAction.setEnabled(True)
                '''
            else:
                self.actions_enabled(False, True, True, True, False, True)

        except Exception as e:
            print(e)

    def actions_enabled(self, bool1, bool2, bool3, bool4, bool5, bool6):
        self.connectAction.setEnabled(bool1)
        self.disconnectAction.setEnabled(bool2)
        self.automaticAction.setEnabled(bool3)
        self.manualAction.setEnabled(bool4)
        self.stopAction.setEnabled(bool5)
        self.allSettingsAction.setEnabled(bool6)

    def createToolBars(self):
        self.toolbar = self.addToolBar('Close Toolbar')
        self.toolbar.setIconSize(QtCore.QSize(55, 55))
        self.toolbar.addAction(self.connectAction)
        self.toolbar.addAction(self.disconnectAction)
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.automaticAction)
        self.toolbar.addAction(self.manualAction)
        # self.toolbar.addSeparator()
        self.toolbar.addAction(self.stopAction)
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.allSettingsAction)
        self.toolbar.addAction(self.exitAction)
        self.toolbar.addSeparator()
        """
コード例 #14
0
ファイル: main.py プロジェクト: hiyoku/ccd10
class Main(QtWidgets.QMainWindow):
    def __init__(self):
        super(Main, self).__init__()
        Status(self)
        # Init Layouts
        self.init_widgets()
        self.init_user_interface()

    def init_user_interface(self):
        self.cont = conts(self)
        self.ephem = eph(self)
        self.a = sw(self)
        self.b = mw(self)
        self.c = csw(self)
        self.cam = Camera()
        self.init_menu()
        self.init_window_geometry()

        self.cs = ConfigSystem()

        info = self.cs.get_site_settings()

        # Connect Camera
        if info[0] == True:
            self.cam.connect()
            self.cam.start_ephemeris_shooter()

    def init_widgets(self):
        a = MainWindow(self)
        self.setCentralWidget(a)

    def init_window_geometry(self):
        self.setGeometry(300, 100, 800, 700)
        self.setWindowTitle("CCD Controller 1.0.0")
        self.show()

    # Creating menubar

    def init_menu(self):
        # Creating the Menu Bar
        menubar = self.menuBar()

        a1 = self.action_close()
        self.add_to_menu(menubar, a1[1], a1[0])
        a3 = self.action_connect_disconnect()
        self.add_to_menu(menubar, a3[0], a3[1], a3[2])
        a4 = self.action_continuous_shooter()
        a5 = self.action_ephemeris_shooter()
        m = self.add_to_menu(menubar, 'Operation Mode')
        self.add_to_menu(m, 'Manual', a4[0], a4[1])
        self.add_to_menu(m, 'Automatic', a5[0], a5[1])
        a2 = self.open_settings()
        self.add_to_menu(menubar, a2[1], self.open_settings_system()[0], a2[0], self.open_settings_camera()[0])

        # add_to_menu(menubar, open_settings_system(self))

    # All actions needs return a QAction and a menuType, line '&File'
    def action_close(self):
        # Creating the button to close the application
        aexit = QtWidgets.QAction(QIcon('\icons\exit.png'), "&Exit", self)
        aexit.setShortcut("Ctrl+Q")
        aexit.setStatusTip("Exit Application")

        # noinspection PyUnresolvedReferences
        aexit.triggered.connect(QtWidgets.qApp.exit)

        return aexit, "&File"

    def action_continuous_shooter(self):
        actionStart = QtWidgets.QAction('&Start', self)
        actionStop = QtWidgets.QAction('&Stop', self)

        actionStart.triggered.connect(self.cam.start_taking_photo)
        actionStop.triggered.connect(self.cam.stop_taking_photo)

        return actionStart, actionStop

    def action_ephemeris_shooter(self):
        actionStart = QtWidgets.QAction('&Start', self)
        actionStop = QtWidgets.QAction('&Stop', self)

        actionStart.triggered.connect(self.cam.start_ephemeris_shooter)
        actionStop.triggered.connect(self.cam.stop_ephemeris_shooter)

        return actionStart, actionStop

    def open_settings(self):
        settings = QtWidgets.QAction('Project Settings', self)
        settings.setShortcut("Ctrl+P")
        settings.setStatusTip("Open Settings window")

        settings.triggered.connect(self.a.show)

        return settings, "&Options"

    def open_settings_system(self):
        setS = QtWidgets.QAction('System Settings', self)
        setS.setShortcut('Ctrl+T')

        setS.triggered.connect(self.b.show)

        return setS, "&Options"

    def open_settings_camera(self):
        setC = QtWidgets.QAction('Camera Settings', self)
        setC.setShortcut("Ctrl+C")

        setC.triggered.connect(self.c.show)

        return setC, "&Options"

    def action_connect_disconnect(self):
        setAC = QtWidgets.QAction('Connect', self)
        setAD = QtWidgets.QAction('Disconnect', self)

        setAC.triggered.connect(self.cam.connect)

        setAD.triggered.connect(self.cam.disconnect)

        return 'Connection', setAC, setAD

    def add_to_menu(self, menubar, menu, *args):
        m = menubar.addMenu(menu)
        for w in args:
            m.addAction(w)

        return m
コード例 #15
0
ファイル: main.py プロジェクト: daviguima/ccd1
class Main(QtWidgets.QMainWindow):
    """
    classe de criacao da interface
    """
    def __init__(self):
        super(Main, self).__init__()
        Status(self)
        # Init Layouts
        self.init_widgets()
        self.init_user_interface()
        self.createActions()

        self.createToolBars()

    def init_user_interface(self):
        self.cont = conts(self)
        self.ephem = eph(self)
        self.a = sw(self)
        self.b = mw(self)
        self.c = csw(self)
        self.cam = Camera()
        self.init_menu()
        self.init_window_geometry()

        self.cs = ConfigSystem()

        info = self.cs.get_site_settings()

        # Connect Camera
        if info[0] == True:
            self.cam.connect()
            self.cam.start_ephemeris_shooter()

    def init_widgets(self):
        a = MainWindow(self)
        self.setCentralWidget(a)

    def init_window_geometry(self):
        self.setGeometry(300, 100, 800, 700)
        self.setWindowTitle("CCD Controller 1.0.0")
        self.show()

    # Creating menubar

    def init_menu(self):
        """
        Creating the Menu Bar
        """
        menubar = self.menuBar()

        a3 = self.action_connect_disconnect()
        self.add_to_menu(menubar, a3[0], a3[1], a3[2])
        a4 = self.action_continuous_shooter()
        a5 = self.action_ephemeris_shooter()
        m = self.add_to_menu(menubar, 'Operation Mode')
        self.add_to_menu(m, 'Manual', a4[0], a4[1])
        self.add_to_menu(m, 'Automatic', a5[0], a5[1])
        a2 = self.open_settings()
        self.add_to_menu(menubar, a2[1],
                         self.open_settings_system()[0], a2[0],
                         self.open_settings_camera()[0])

        # add_to_menu(menubar, open_settings_system(self))

    # All actions needs return a QAction and a menuType, line '&File'
    def action_close(self):
        """
        Creating the button to close the application
        """
        aexit = QtWidgets.QAction(QIcon('\icons\exit.png'), "&Exit", self)
        aexit.setShortcut("Ctrl+Q")
        aexit.setStatusTip("Exit Application")

        # noinspection PyUnresolvedReferences
        aexit.triggered.connect(QtWidgets.qApp.exit)

        return aexit, "&File"

    def action_continuous_shooter(self):
        """
        Inicia e para o modo manual
        """
        actionStart = QtWidgets.QAction('&Start', self)
        actionStop = QtWidgets.QAction('&Stop', self)

        actionStart.triggered.connect(self.cam.start_taking_photo)
        actionStop.triggered.connect(self.cam.stop_taking_photo)

        return actionStart, actionStop

    def action_ephemeris_shooter(self):
        """
        Inicia e para o modo automatico
        """
        actionStart = QtWidgets.QAction('&Start', self)
        actionStop = QtWidgets.QAction('&Stop', self)

        actionStart.triggered.connect(self.cam.start_ephemeris_shooter)
        actionStop.triggered.connect(self.cam.stop_ephemeris_shooter)

        return actionStart, actionStop

    def open_settings(self):
        settings = QtWidgets.QAction('Project Settings', self)
        settings.setShortcut("Ctrl+P")
        settings.setStatusTip("Open Settings window")

        settings.triggered.connect(self.a.show)

        return settings, "&Options"

    def open_settings_system(self):
        setS = QtWidgets.QAction('System Settings', self)
        setS.setShortcut('Ctrl+T')

        setS.triggered.connect(self.b.show)

        return setS, "&Options"

    def open_settings_camera(self):
        setC = QtWidgets.QAction('Camera Settings', self)
        setC.setShortcut("Ctrl+C")

        setC.triggered.connect(self.c.show)

        return setC, "&Options"

    def action_connect_disconnect(self):
        setAC = QtWidgets.QAction('Connect', self)
        setAD = QtWidgets.QAction('Disconnect', self)

        setAC.triggered.connect(self.cam.connect)

        setAD.triggered.connect(self.cam.disconnect)

        return 'Connection', setAC, setAD

    def add_to_menu(self, menubar, menu, *args):
        m = menubar.addMenu(menu)
        for w in args:
            m.addAction(w)

        return m

    def closeEvent(self, event):

        reply = QMessageBox.question(self, 'Message', "Are you sure to quit?",
                                     QMessageBox.Yes | QMessageBox.No,
                                     QMessageBox.No)

        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

    def createActions(self):
        self.connectAction = QAction(QIcon('icons/Connect.png'), 'Connect',
                                     self)
        self.connectAction.triggered.connect(self.cam.connect)
        '''
        self.connectAction.setCheckable(True)
        self.connectAction.setChecked(True)
        self.setDisabled(True)
        '''

        self.disconnectAction = QAction(QIcon('icons/Disconnect.png'),
                                        'Disconnect', self)
        self.disconnectAction.triggered.connect(self.cam.disconnect)

        self.automaticAction = QAction(QIcon('icons/Run_Automatic.png'),
                                       'Run Automatic', self)
        self.automaticAction.triggered.connect(
            self.cam.start_ephemeris_shooter)
        '''
        self.automaticAction.setCheckable(True)
        self.automaticAction.setChecked(True)
        '''
        self.manualAction = QAction(QIcon('icons/Run_Manual.png'),
                                    'Run Manual', self)
        self.manualAction.triggered.connect(self.cam.start_taking_photo)
        '''
        self.manualAction.setCheckable(True)
        self.manualAction.setChecked(False)
        '''

        self.stopAction = QAction(QIcon('icons/Stop.png'), 'Stop', self)
        try:
            if self.cam.start_taking_photo:
                self.stopAction.triggered.connect(self.cam.stop_taking_photo)
            elif self.cam.start_ephemeris_shooter:
                self.stopAction.triggered.connect(
                    self.cam.stop_ephemeris_shooter)
            else:
                print("Nothing to stop")
        except Exception as e:
            print(e)

    def createToolBars(self):
        self.toolbar = self.addToolBar('Close Toolbar')
        self.toolbar.setIconSize(QtCore.QSize(70, 70))
        self.toolbar.addAction(self.connectAction)
        self.toolbar.addAction(self.disconnectAction)
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.automaticAction)
        self.toolbar.addAction(self.manualAction)
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.stopAction)
        self.toolbar.addSeparator()