class CCDInfo(QtWidgets.QWidget): def __init__(self, parent=None): super(CCDInfo, self).__init__(parent) self.cam = Camera() self.init_widgets() self.config_widgets() def init_widgets(self): self.title = QtWidgets.QLabel("CCD Information", self) """ Function to initiate the Widgets of CCD Information """ # Camera Firmware lf = QtWidgets.QLabel("Firmware:", self) # LineEdit to show Firmware version tfirm = QtWidgets.QLabel(self) # Camera Name ln = QtWidgets.QLabel("Camera:", self) self.cam.set_firmware_and_model_fields(lf, ln) # LineEdit to show camera model cn = QtWidgets.QLabel(self) cn.setAlignment(QtCore.Qt.AlignCenter) # Setting the layout self.setLayout(set_lvbox(set_hbox(self.title), set_hbox(lf, tfirm), set_hbox(ln, cn))) def config_widgets(self): self.title.setAlignment(QtCore.Qt.AlignCenter) self.title.setFont(get_qfont(True)) self.setStyleSheet("background-color: rgb(50, 50, 50); border-radius: 10px; color: white;")
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()
def __init__(self, parent=None): super(TempRegulation, self).__init__(parent) self.cam = Camera() self.setBtn = QtWidgets.QPushButton("Set Temp.", self) self.setBtn.clicked.connect(self.btn_temperature) self.setField = QtWidgets.QLineEdit(self)
def __init__(self, parent=None): super(SettingsCCDInfos, self).__init__(parent) # Instance attributes create_ccd_info_group self.p = parent self.info_port_ccd_l = None self.info_port_ccd_f = None self.info_camera_model_l = None self.info_camera_model_f = None self.info_pixel_array_l = None self.info_pixel_array_f = None # Instance attributes create_ccd_camera_group self.close_open = None self.temp_set_point_l = None self.temp_set_point_f = None self.temp_init_l = None self.temp_init_f = None self.time_between_photos_l = None self.time_between_photos_f = None self.one_photoButton = None self.tempButton = None self.fanButton = None # Instance attributes create_push_button_group self.saveButton = None self.cancelButton = None self.clearButton = None self.imager_window = parent self.cam = Camera() self.var_save_ini_camera = SettingsCamera() self.console = ConsoleThreadOutput() self.fan = Fan(self.fanButton) self.one_photo = SThread() self.lock = Locker() self.firmware = "????" self.model = "????" self.y_pixels = "????" self.x_pixels = "????" grid = QGridLayout() # Additional Parameters (Apparently Useless) 0, 1 | 1, 1 | 2, 1 grid.addWidget(self.create_ccd_info_group()) grid.addWidget(self.create_ccd_camera_group()) grid.addWidget(self.create_push_button_group()) self.setLayout(grid) self.w = grid.geometry().width() self.h = grid.geometry().height() self.setWindowTitle("Imager Box")
def __init__(self, parent=None): super(Shooter, self).__init__(parent) self.cam = Camera() self.cond = 0 # Label for Image self.img = QtWidgets.QLabel(self) self.config_img_label() # Creating a Pallete self.pa = QtGui.QPalette() self.set_layout() self.link_signals()
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__(self, parent=None): super(MainWindow, self).__init__(parent) self.cam = Camera() self.button_start_count = QtWidgets.QPushButton('Start', self) self.button_stop_count = QtWidgets.QPushButton('Stop', self) self.set_layout() self.control = False self.count = 0 self.setWindowTitle("oi")
def __init__(self, parent=None): super(SettingsImageWindow, self).__init__(parent) # Instance attributes create_image_contrast_group self.getlevel1 = None self.getlevel1l = None self.getlevel2 = None self.getlevel2l = None # Instance attributes create_crop_group self.ignore_crop_l = None self.crop_msg = None self.crop_xi = None self.getcropxi_l = None self.crop_xf = None self.getcropxf_l = None self.crop_yi = None self.getcropyi_l = None self.crop_yf = None self.getcropyf_l = None # Instance attributes create_type_image_group # self.image_png_l = None self.image_tif_l = None self.image_fit_l = None # Instance attributes create_push_button_group self.saveButton = None self.cancelButton = None self.clearButton = None self.image_settings = SettingsImage() self.camera = Camera() self.console = ConsoleThreadOutput() self.image_parent = parent self.lock = Locker() self.x_pixels, self.y_pixels = self.get_pixels() grid = QGridLayout() grid.addWidget(self.create_image_contrast_group()) grid.addWidget(self.create_crop_group()) grid.addWidget(self.create_type_image_group()) grid.addWidget(self.create_push_button_group()) self.setLayout(grid) self.setWindowTitle("Imager Box") self.setting_values()
def __init__(self, parent=None): super(SettingsWindow, self).__init__(parent) self.cam = SettingsCamera() self.camera = Camera() self.console = ConsoleThreadOutput() self.create_cam_widgets() self.p = parent self.fan = Fan(self.fanButton) self.lock = Locker() self.setting_values() self.one_photo = SThread() self.setLayout( set_lvbox( set_hbox(self.setField_temperature_label, self.setField_temperature), set_hbox(self.pre, self.prel), set_hbox(self.exp, self.expl), set_hbox(self.binning, self.combo), set_hbox(self.dark, self.close_open), set_hbox(self.tempo_fotos_label, self.tempo_fotos), set_hbox(self.time_colling_label, self.time_colling), set_hbox(self.contrast_msg), set_hbox(self.getlevel1, self.getlevel1l, self.getlevel2, self.getlevel2l), set_hbox(self.ignore_crop_l), set_hbox(self.crop_msg), set_hbox(self.crop_xi, self.getcropxi_l, self.crop_xf, self.getcropxf_l), set_hbox(self.crop_yi, self.getcropyi_l, self.crop_yf, self.getcropyf_l), set_hbox(self.image_tif_l), set_hbox(self.image_fit_l), set_hbox(self.btn_one_photo, self.tempButton, self.fanButton, stretch2=1), set_hbox(self.buttonok, self.button_clear, self.buttoncancel, stretch2=1)))
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()
class TempRegulation(QtWidgets.QWidget): lock = Locker() def __init__(self, parent=None): super(TempRegulation, self).__init__(parent) self.cam = Camera() self.setBtn = QtWidgets.QPushButton("Set Temp.", self) self.setBtn.clicked.connect(self.btn_temperature) self.setField = QtWidgets.QLineEdit(self) # self.setLayout(set_hbox(self.setBtn, self.setField)) def btn_temperature(self): try: value = self.setField.text() if value is not '': self.cam.set_temperature(float(value)) except Exception as e: print("Exception -> {}".format(e))
class TempRegulation(QtWidgets.QWidget): lock = Locker() def __init__(self, parent=None): super(TempRegulation, self).__init__(parent) self.cam = Camera() self.setBtn = QtWidgets.QPushButton("Set Temp.", self) self.setBtn.clicked.connect(self.btn_temperature) self.setField = QtWidgets.QLineEdit(self) #self.setLayout(set_hbox(self.setBtn, self.setField)) def btn_temperature(self): try: value = self.setField.text() if value is '': pass else: self.cam.set_temperature(float(value)) except Exception as e: print("Exception -> {}".format(e))
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() # Connect Camera self.cam.connect() self.cam.start_ephemeris_shooter()
def __init__(self, parent=None): super(SettingsWindow, self).__init__(parent) self.cam = SettingsCamera() self.camera = Camera() self.console = ConsoleThreadOutput() #self.a_temp_regulation = TempRegulation(self) self.create_cam_widgets() self.p = parent self.fan = Fan(self.fanButton) #self.button_clear = QtWidgets.QPushButton('Clear', self) self.setField_temperature = QtWidgets.QLineEdit(self) self.setting_values() self.one_photo = SThread() self.setLayout( set_lvbox( set_hbox(self.setField_temperature_label, self.setField_temperature), set_hbox(self.pre, self.prel), set_hbox(self.exp, self.expl), set_hbox(self.binning, self.combo), set_hbox(self.tempo_fotos_label, self.tempo_fotos), set_hbox(self.time_colling_label, self.time_colling), set_hbox(self.dark, self.close_open), set_hbox(self.getlevel1, self.getlevel1l), set_hbox(self.getlevel2, self.getlevel2l), set_hbox(self.btn_one_photo, self.tempButton, self.fanButton, stretch2=1), set_hbox(self.buttonok, self.button_clear, self.buttoncancel, stretch2=1)))
class QThreadTemperature(QtCore.QThread): temp_signal = QtCore.pyqtSignal(str, name="temperatureSignal") def __init__(self): super(QThreadTemperature, self).__init__() self.cam = Camera() self.temperatura = "None" def run(self): while True: time.sleep(2) self.temperatura = self.cam.get_temperature() if self.temperatura != "None": self.temperatura = "{0:.2f}".format(float(self.temperatura)) self.temp_signal.emit(self.temperatura)
def __init__(self, parent=None): super(SettingsWindow, self).__init__(parent) self.cam = SettingsCamera() self.camera = Camera() self.console = ConsoleThreadOutput() #self.a_temp_regulation = TempRegulation(self) self.create_cam_widgets() self.p = parent self.fan = Fan(self.fanButton) #self.button_clear = QtWidgets.QPushButton('Clear', self) self.setField_temperature = QtWidgets.QLineEdit(self) self.setting_values() self.setLayout(set_lvbox(set_hbox(self.setField_temperature_label, self.setField_temperature), set_hbox(self.pre, self.prel), set_hbox(self.exp, self.expl), set_hbox(self.binning, self.combo), set_hbox(self.tempo_fotos_label, self.tempo_fotos), set_hbox(self.tempButton, self.fanButton, stretch2=1), set_hbox(self.buttonok, self.button_clear, self.buttoncancel, stretch2=1)))
class SettingsWindow(QtWidgets.QWidget): def __init__(self, parent=None): super(SettingsWindow, self).__init__(parent) self.cam = SettingsCamera() self.camera = Camera() self.console = ConsoleThreadOutput() #self.a_temp_regulation = TempRegulation(self) self.create_cam_widgets() self.p = parent self.fan = Fan(self.fanButton) #self.button_clear = QtWidgets.QPushButton('Clear', self) self.setField_temperature = QtWidgets.QLineEdit(self) self.setting_values() self.one_photo = SThread() self.setLayout( set_lvbox( set_hbox(self.setField_temperature_label, self.setField_temperature), set_hbox(self.pre, self.prel), set_hbox(self.exp, self.expl), set_hbox(self.binning, self.combo), set_hbox(self.tempo_fotos_label, self.tempo_fotos), set_hbox(self.time_colling_label, self.time_colling), set_hbox(self.dark, self.close_open), set_hbox(self.getlevel1, self.getlevel1l), set_hbox(self.getlevel2, self.getlevel2l), set_hbox(self.btn_one_photo, self.tempButton, self.fanButton, stretch2=1), set_hbox(self.buttonok, self.button_clear, self.buttoncancel, stretch2=1))) def get_camera_settings(self): settings = SettingsCamera() info = settings.get_camera_settings() return info def get_values(self): return self.cam.get_camera_settings() def setting_values(self): info = self.get_values() self.set_values(info[0], info[1], info[2], info[3], info[4], info[5], info[6], info[7], info[8]) def set_values(self, temperature_camera, prefixo, exposicao, binning, tempo_entre_fotos, time_colling, get_level1, get_level2, dark_photo): self.setField_temperature.setText(temperature_camera) self.prel.setText(prefixo) self.expl.setText(exposicao) try: b = int(binning) except: b = 0 try: open_or_close = int(dark_photo) except: open_or_close = 0 self.tempo_fotos.setText(tempo_entre_fotos) self.time_colling.setText(time_colling) self.combo.setCurrentIndex(b) self.close_open.setCurrentIndex(open_or_close) self.getlevel1l.setText(get_level1) self.getlevel2l.setText(get_level2) def create_cam_widgets(self): self.setField_temperature_label = QtWidgets.QLabel( "Temperature(°C):", self) self.pre = QtWidgets.QLabel("Filter name:", self) self.prel = QtWidgets.QLineEdit(self) self.exp = QtWidgets.QLabel("Exposure time(s):", self) self.expl = QtWidgets.QLineEdit(self) self.binning = QtWidgets.QLabel("Binning:", self) self.combo = QtWidgets.QComboBox(self) self.fill_combo() self.dark = QtWidgets.QLabel("Shooter:", self) self.close_open = QtWidgets.QComboBox(self) self.fill_combo_close_open() self.getlevel1 = QtWidgets.QLabel("Image contrast: bottom level:", self) self.getlevel1l = QtWidgets.QLineEdit(self) self.getlevel2 = QtWidgets.QLabel("Image contrast: top level:", self) self.getlevel2l = QtWidgets.QLineEdit(self) self.button_clear = QtWidgets.QPushButton('Clear', self) self.button_clear.clicked.connect(self.clear_all) self.btn_one_photo = QtWidgets.QPushButton('Take Photo', self) self.btn_one_photo.clicked.connect(self.take_one_photo) self.tempButton = QtWidgets.QPushButton("Set Temp", self) self.tempButton.clicked.connect(self.btn_temperature) self.fanButton = QtWidgets.QPushButton("Fan (On/Off)") self.fanButton.clicked.connect(self.button_fan_func) self.buttonok = QtWidgets.QPushButton("Save", self) self.buttonok.clicked.connect(self.button_ok_func) self.buttoncancel = QtWidgets.QPushButton("Cancel", self) self.buttoncancel.clicked.connect(self.func_cancel) self.tempo_fotos_label = QtWidgets.QLabel("Time between photos(s):", self) self.tempo_fotos = QtWidgets.QLineEdit(self) self.time_colling_label = QtWidgets.QLabel("CCD Cooling Time(s):", self) self.time_colling = QtWidgets.QLineEdit(self) def button_ok_func(self): try: # Saving the Settings self.cam.set_camera_settings(self.setField_temperature.text(), self.prel.text(), self.expl.text(),\ self.combo.currentIndex(), self.tempo_fotos.text(), self.time_colling.text(), \ self.getlevel1l.text(), self.getlevel2l.text(), self.close_open.currentIndex()) self.cam.save_settings() self.console.raise_text("Camera settings successfully saved!", 1) except Exception as e: self.console.raise_text("Camera settings were not saved.", 3) finally: pass #self.p.close() def clear_all(self): self.setField_temperature.clear() self.prel.clear() self.expl.clear() self.tempo_fotos.clear() def take_one_photo(self): try: info = self.get_camera_settings() if int(info[6]) == 1: self.console.raise_text("Taking dark photo", 1) self.one_photo.start() else: self.console.raise_text("Taking photo", 1) self.one_photo.start() except Exception: self.console.raise_text("Not possible taking photo", 1) def func_cancel(self): self.p.close() def button_fan_func(self): if getlinkstatus() is True: try: self.fan.set_fan() self.console.raise_text('State changed Fan!', 2) except Exception: self.console.raise_text("The camera is not connected!", 3) self.console.raise_text('State Fan unchanged', 3) else: self.console.raise_text("The camera is not connected!", 3) self.console.raise_text('State Fan unchanged', 3) def fill_combo(self): self.combo.addItem("1x1", 0) self.combo.addItem("2x2", 1) self.combo.addItem("3x3", 2) def fill_combo_close_open(self): self.close_open.addItem("Open", 0) self.close_open.addItem("Close", 1) def btn_temperature(self): try: value = self.setField_temperature.text() if value is '': pass else: self.camera.set_temperature(float(value)) except Exception as e: print("Exception -> {}".format(e))
def __init__(self): super(QThreadTemperature, self).__init__() self.cam = Camera() self.temperatura = "None"
def __init__(self, parent=None): super(CCDInfo, self).__init__(parent) self.cam = Camera() self.init_widgets() self.config_widgets()
class Shooter(QtWidgets.QWidget): """ Class for Taking photo Widget """ def __init__(self, parent=None): super(Shooter, self).__init__(parent) self.cam = Camera() self.cond = 0 self.sref_calc = SettingsCamera() # Label for Image self.img = QtWidgets.QLabel(self) self.config_img_label() # Creating a Pallete self.pa = QtGui.QPalette() self.set_layout() self.link_signals() def link_signals(self): self.cam.ephemerisShooterThread.continuousShooterThread.ss.finished.connect( self.get_image_automatic) self.cam.continuousShooterThread.ss.finished.connect( self.get_image_manual) def get_image_automatic(self): img = self.cam.ephemerisShooterThread.continuousShooterThread.ss.get_image_info( ) self.set_image(img) def get_image_manual(self): img = self.cam.continuousShooterThread.ss.get_image_info() self.set_image(img) def set_layout(self): hb2 = set_hbox(self.prefix, self.date, self.hour) self.setLayout(set_lvbox(set_hbox(self.img), hb2)) self.config_pallete() def config_img_label(self): self.img.setPixmap(QtGui.QPixmap("noimage.png")) self.prefix = QtWidgets.QLabel(self) self.date = QtWidgets.QLabel(self) self.hour = QtWidgets.QLabel(self) def config_pallete(self): self.pa.setColor(QtGui.QPalette.Foreground, QtCore.Qt.red) # Setting the style self.prefix.setPalette(self.pa) self.date.setPalette(self.pa) self.hour.setPalette(self.pa) def shoot_function(self): self.cam.shoot(int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) self.set_image() def auto_shoot(self): try: self.cam.autoshoot(int(self.htext.text()), int(self.mtext.text()), int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) except Exception as e: print(e) def set_image(self, img): print("Setting Pixmap") print("CCCCCCCCCCCCCCCCCCCCCCCCCCC") try: path = img.final_image_name str_name_image = str(img.final_image_name) # image = Image.open(path)] try: if os.path.splitext(path)[1] == '.fit': print("1111111111111111111") img = getdata(path) else: print("222222222222222222222") img = skimage.io.imread(path) print("\n\n>>>>>>>>>>>>>>>>>>>>>>") print(img) except Exception as e: print("Exception os.path.splitext -> {}".format(e)) image = img sref_min = float(self.sref_calc.get_camera_settings()[6]) sref_max = float(self.sref_calc.get_camera_settings()[7]) img_hist_equal = Image_Processing.img_hist_equal( image, sref_min, sref_max) im3 = toimage(img_hist_equal) im4 = im3.resize((int(512), int(512))) im5 = Image_Processing.draw_image(im4, str_name_image) try: qim = ImageQt(im5) self.img.setPixmap(QtGui.QPixmap.fromImage(qim)) except Exception as e: print( "Exception setPixmap(QtGui.QPixmap(image_to_show)) -> {}". format(e)) print(path) except Exception as e: print("Exception Setting Pixmap -> {}".format(e)) def fill_combo(self): self.combo.addItem("1x1", 0) self.combo.addItem("2x2", 1) self.combo.addItem("3x3", 2) def clear_image_info(self): self.prefix.clear()
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()
class Shooter(QtWidgets.QWidget): """ Class for Taking photo Widget """ def __init__(self, parent=None): super(Shooter, self).__init__(parent) self.cam = Camera() self.cond = 0 # Label for Image self.img = QtWidgets.QLabel(self) self.config_img_label() # Creating a Pallete self.pa = QtGui.QPalette() self.set_layout() self.link_signals() def link_signals(self): self.cam.ephemerisShooterThread.continuousShooterThread.ss.finished.connect(self.get_image_automatic) self.cam.continuousShooterThread.ss.finished.connect(self.get_image_manual) def get_image_automatic(self): img = self.cam.ephemerisShooterThread.continuousShooterThread.ss.get_image_info() self.set_image(img) def get_image_manual(self): img = self.cam.continuousShooterThread.ss.get_image_info() self.set_image(img) def set_layout(self): # self.fill_combo() # # hbox = set_hbox(self.sbutton, self.tb, # QLabel("Prefixo:", self), self.pre, # QLabel("Binning:", self), self.combo, # self.abutton, # QLabel("Hora:", self), self.htext, # QLabel("Min:", self), self.mtext) hb2 = set_hbox(self.prefix, self.date, self.hour) self.setLayout(set_lvbox(set_hbox(self.img), hb2)) self.config_pallete() def config_img_label(self): self.img.setPixmap(QtGui.QPixmap("noimage.png")) self.prefix = QtWidgets.QLabel(self) self.date = QtWidgets.QLabel(self) self.hour = QtWidgets.QLabel(self) def config_pallete(self): self.pa.setColor(QtGui.QPalette.Foreground, QtCore.Qt.red) # Setting the style self.prefix.setPalette(self.pa) self.date.setPalette(self.pa) self.hour.setPalette(self.pa) def shoot_function(self): self.cam.shoot(int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) self.set_image() def auto_shoot(self): try: self.cam.autoshoot(int(self.htext.text()), int(self.mtext.text()), int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) except Exception as e: print(e) def set_image(self, img): print("Setting Pixmap") try: path = img.path + img.png_name self.img.setPixmap(QtGui.QPixmap(path)) print(path) self.fill_image_info(img.png_name, img.date, img.hour) except Exception as e: print(e) def fill_combo(self): self.combo.addItem("1x1", 0) self.combo.addItem("2x2", 1) self.combo.addItem("3x3", 2) def fill_image_info(self, filename, time, hora): self.prefix.setText(filename) self.date.setText(time) self.hour.setText(hora) def clear_image_info(self): self.prefix.clear()
class SettingsCCDInfos(QWidget): def __init__(self, parent=None): super(SettingsCCDInfos, self).__init__(parent) # Instance attributes create_ccd_info_group self.p = parent self.info_port_ccd_l = None self.info_port_ccd_f = None self.info_camera_model_l = None self.info_camera_model_f = None self.info_pixel_array_l = None self.info_pixel_array_f = None # Instance attributes create_ccd_camera_group self.close_open = None self.temp_set_point_l = None self.temp_set_point_f = None self.temp_init_l = None self.temp_init_f = None self.time_between_photos_l = None self.time_between_photos_f = None self.one_photoButton = None self.tempButton = None self.fanButton = None # Instance attributes create_push_button_group self.saveButton = None self.cancelButton = None self.clearButton = None self.imager_window = parent self.cam = Camera() self.var_save_ini_camera = SettingsCamera() self.console = ConsoleThreadOutput() self.fan = Fan(self.fanButton) self.one_photo = SThread() self.lock = Locker() self.firmware = "????" self.model = "????" self.y_pixels = "????" self.x_pixels = "????" grid = QGridLayout() # Additional Parameters (Apparently Useless) 0, 1 | 1, 1 | 2, 1 grid.addWidget(self.create_ccd_info_group()) grid.addWidget(self.create_ccd_camera_group()) grid.addWidget(self.create_push_button_group()) self.setLayout(grid) self.w = grid.geometry().width() self.h = grid.geometry().height() self.setWindowTitle("Imager Box") # self.resize(500, 340) # self.info_cam() def create_ccd_info_group(self): group_box = QGroupBox("Info CCD") ''' self.info_port_ccd_l = QtWidgets.QLabel("Camera Firmware: ", self) self.info_port_ccd_l.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.info_port_ccd_f = QtWidgets.QLabel(self.firmware) self.info_port_ccd_f.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) ''' self.info_camera_model_l = QtWidgets.QLabel("Camera Model: ", self) self.info_camera_model_l.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.info_camera_model_f = QtWidgets.QLabel(self.model) self.info_camera_model_f.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) self.info_pixel_array_l = QtWidgets.QLabel("Pixel array: ", self) self.info_pixel_array_l.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.info_pixel_array_f = QtWidgets.QLabel(self.x_pixels + " X " + self.y_pixels + " Pixels") self.info_pixel_array_f.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) group_box.setLayout( set_lvbox( set_hbox(self.info_camera_model_l, self.info_camera_model_f), set_hbox(self.info_pixel_array_l, self.info_pixel_array_f))) return group_box def create_ccd_camera_group(self): group_box = QGroupBox("Settings") group_box.setCheckable(True) group_box.setChecked(False) self.shutter_l = QtWidgets.QLabel("Shutter:", self) self.shutter_l.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.close_open = QtWidgets.QLabel("Closed") self.close_open.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.temp_set_point_l = QtWidgets.QLabel("CCD Temp Set Point (°C):", self) self.temp_set_point_l.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.temp_set_point_f = QtWidgets.QLineEdit(self) self.temp_set_point_f.setMaximumWidth(100) self.temp_set_point_f.setValidator(QIntValidator(-100, 30)) self.temp_init_l = QtWidgets.QLabel("CCD Cooling Time(s):", self) self.temp_init_l.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.temp_init_f = QtWidgets.QLineEdit(self) self.temp_init_f.setMaximumWidth(100) self.temp_init_f.setValidator(QIntValidator(0, 600)) self.time_between_photos_l = QtWidgets.QLabel( "Time Between Images(s):", self) self.time_between_photos_l.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.time_between_photos_f = QtWidgets.QLineEdit(self) self.time_between_photos_f.setMaximumWidth(100) # self.time_between_photos_f.setValidator(QIntValidator(0, 600)) self.one_photoButton = QtWidgets.QPushButton('Take Photo', self) self.one_photoButton.clicked.connect(self.take_one_photo) self.tempButton = QtWidgets.QPushButton("Set Temp", self) self.tempButton.clicked.connect(self.btn_temperature) self.fanButton = QtWidgets.QPushButton("Fan (On/Off)") self.fanButton.clicked.connect(self.button_fan_func) self.setting_values() group_box.setLayout( set_lvbox( set_hbox(self.shutter_l, self.close_open), set_hbox(self.temp_set_point_l, self.temp_set_point_f), set_hbox(self.temp_init_l, self.temp_init_f), set_hbox(self.time_between_photos_l, self.time_between_photos_f), set_hbox(self.one_photoButton, self.tempButton, self.fanButton, stretch2=1))) return group_box def create_push_button_group(self): group_box = QGroupBox("&Push Buttons") # group_box.setCheckable(True) # group_box.setChecked(True) self.saveButton = QPushButton("Save") self.saveButton.clicked.connect(self.button_ok_func) self.cancelButton = QPushButton("Cancel") self.cancelButton.clicked.connect(self.func_cancel) self.clearButton = QPushButton("Clear") self.clearButton.clicked.connect(self.clear_all) group_box.setLayout( set_lvbox( set_hbox(self.saveButton, self.clearButton, self.cancelButton))) return group_box def get_values(self): return self.var_save_ini_camera.get_camera_settings() def setting_values(self): info = self.get_values() self.set_values(info[0], info[5], info[4]) def set_values(self, temperature_camera, temp_init_f, tbf): self.temp_set_point_f.setText(temperature_camera) self.temp_init_f.setText(temp_init_f) self.time_between_photos_f.setText(tbf) def button_ok_func(self): try: self.var_save_ini_camera.set_camera_settings( self.temp_set_point_f.text(), self.temp_init_f.text(), self.time_between_photos_f.text()) self.var_save_ini_camera.save_settings() self.console.raise_text("Camera settings successfully saved!", 1) except Exception as e: print(e) finally: self.p.close() self.clear_all() self.setting_values() # self.refresh_all_fields() def clear_all(self): self.temp_set_point_f.clear() self.temp_init_f.clear() def func_cancel(self): self.imager_window.close() def take_one_photo(self): try: if str(self.close_open) == "Closed": # self.console.raise_text("take_one_photo started: dark photo", 1) # time.sleep(1) self.cam.one_photo = True print("bbbbbbbbbbbbbbbbbbbbb") print(self.cam.one_photo) self.cam.start_one_photo() # self.one_photo.args_one_photo(self.select_filter_manual, self.select_filter_shutter) # self.one_photo.start() else: # self.console.raise_text("take_one_photo started: photo", 1) # time.sleep(1) self.cam.one_photo = True print("aaaaaaaaaaaaa") print(self.cam.one_photo) self.cam.start_one_photo() except Exception as e: self.console.raise_text( "Not possible taking photo -> {}".format(e), 1) finally: self.cam.one_photo = False def button_fan_func(self): if getlinkstatus() is True: try: self.fan.set_fan() self.console.raise_text('State changed Fan!', 2) except Exception as e: self.console.raise_text("The camera is not connected!", 3) self.console.raise_text('State Fan unchanged', 3) self.console.raise_text("Exception -> {}".format(e)) else: self.console.raise_text("The camera is not connected!", 3) self.console.raise_text('State Fan unchanged', 3) def btn_temperature(self): try: value = self.temp_set_point_f.text() if value is '': pass else: try: self.cam.set_temperature(float(value)) except TypeError: self.cam.set_temperature(float(15.0)) except Exception as e: print("Exception -> {}".format(e)) def info_cam(self): # self.firmware, try: if self.cam.is_connected: self.model = self.cam.get_firmware_and_model_and_pixels()[1] self.x_pixels, self.y_pixels = self.cam.pass_list_str # self.model, self.x_pixels, self.y_pixels = self.cam.get_model_and_pixels_new() placeholder = None else: self.model, self.x_pixels, self.y_pixels = "????", "????", "????" # self.info_port_ccd_f.setText(self.firmware) self.info_camera_model_f.setText(self.model) self.info_pixel_array_f.setText( str(self.y_pixels) + " x " + str(self.x_pixels)) placeholder = None except Exception as e: print("CCDInfos get_firmware_and_model_and_pixels -> {}".format(e)) self.model, self.x_pixels, self.y_pixels = "????", "????", "????"
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() """
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() # Connect Camera 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
def test_temp_value(cam_fixture): assert isinstance(Camera.get_temperature(cam_fixture), str)
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
class SettingsWindow(QtWidgets.QWidget): ''' Cria os campos e espaços no menu settings window ''' def __init__(self, parent=None): super(SettingsWindow, self).__init__(parent) self.cam = SettingsCamera() self.camera = Camera() self.console = ConsoleThreadOutput() self.create_cam_widgets() self.p = parent self.fan = Fan(self.fanButton) self.lock = Locker() self.setting_values() self.one_photo = SThread() self.setLayout( set_lvbox( set_hbox(self.setField_temperature_label, self.setField_temperature), set_hbox(self.pre, self.prel), set_hbox(self.exp, self.expl), set_hbox(self.binning, self.combo), set_hbox(self.dark, self.close_open), set_hbox(self.tempo_fotos_label, self.tempo_fotos), set_hbox(self.time_colling_label, self.time_colling), set_hbox(self.contrast_msg), set_hbox(self.getlevel1, self.getlevel1l, self.getlevel2, self.getlevel2l), set_hbox(self.ignore_crop_l), set_hbox(self.crop_msg), set_hbox(self.crop_xi, self.getcropxi_l, self.crop_xf, self.getcropxf_l), set_hbox(self.crop_yi, self.getcropyi_l, self.crop_yf, self.getcropyf_l), set_hbox(self.image_tif_l), set_hbox(self.image_fit_l), set_hbox(self.btn_one_photo, self.tempButton, self.fanButton, stretch2=1), set_hbox(self.buttonok, self.button_clear, self.buttoncancel, stretch2=1))) def get_camera_settings(self): settings = SettingsCamera() info = settings.get_camera_settings() return info def get_pixels(self): info = self.get_info_pixels() return int(info[-2]), int(info[-1]) def get_info_pixels(self): ''' Function to get the CCD Info This function will return [Pixels] ''' ret = None self.lock.set_acquire() try: ret = tuple(ccdinfo()) except Exception as e: self.console.raise_text( "Failed to get camera information.\n{}".format(e)) finally: self.lock.set_release() return ret def get_values(self): return self.cam.get_camera_settings() def setting_values(self): info = self.get_values() self.set_values(info[0], info[1], info[2], info[3], info[4], info[5], info[6], info[7], info[8], info[9],\ info[10], info[11], info[12], info[13], info[14], info[15]) def set_values(self, temperature_camera, prefixo, exposicao, binning, tempo_entre_fotos, time_colling, get_level1,\ get_level2, dark_photo, crop_xi, crop_xf, crop_yi, crop_yf, ignore_crop, image_tif, image_fit): self.setField_temperature.setText(temperature_camera) self.prel.setText(prefixo) self.expl.setText(exposicao) try: b = int(binning) except: b = 0 try: open_or_close = int(dark_photo) except: open_or_close = 0 self.tempo_fotos.setText(tempo_entre_fotos) self.time_colling.setText(time_colling) self.combo.setCurrentIndex(b) self.close_open.setCurrentIndex(open_or_close) self.getlevel1l.setText(get_level1) self.getlevel2l.setText(get_level2) self.getcropxi_l.setText(crop_xi) self.getcropxf_l.setText(crop_xf) self.getcropyi_l.setText(crop_yi) self.getcropyf_l.setText(crop_yf) self.ignore_crop_l.setChecked(ignore_crop) self.image_tif_l.setChecked(image_tif) self.image_fit_l.setChecked(image_fit) def create_cam_widgets(self): self.setField_temperature_label = QtWidgets.QLabel( "CCD Temperature(°C):", self) self.setField_temperature_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.setField_temperature = QtWidgets.QLineEdit(self) self.setField_temperature.setMaximumWidth(100) self.pre = QtWidgets.QLabel("Filter Name:", self) self.pre.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.prel = QtWidgets.QLineEdit(self) self.prel.setMaximumWidth(100) self.exp = QtWidgets.QLabel("Exposure time (s):", self) self.exp.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.expl = QtWidgets.QLineEdit(self) self.expl.setMaximumWidth(100) self.binning = QtWidgets.QLabel("Binning:", self) self.binning.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.combo = QtWidgets.QComboBox(self) self.combo.setMaximumWidth(100) self.fill_combo() self.dark = QtWidgets.QLabel("Shutter:", self) self.dark.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.close_open = QtWidgets.QComboBox(self) self.close_open.setMaximumWidth(100) self.fill_combo_close_open() self.tempo_fotos_label = QtWidgets.QLabel("Time Between Images (s):", self) self.tempo_fotos_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.tempo_fotos = QtWidgets.QLineEdit(self) self.tempo_fotos.setMaximumWidth(100) self.time_colling_label = QtWidgets.QLabel("CCD Cooling Time (s):", self) self.time_colling_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.time_colling = QtWidgets.QLineEdit(self) self.time_colling.setMaximumWidth(100) self.contrast_msg = QtWidgets.QLabel("Image Contrast:", self) self.getlevel1 = QtWidgets.QLabel("Bottom Level:", self) self.getlevel1.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.getlevel1l = QtWidgets.QLineEdit(self) self.getlevel1l.setMaximumWidth(50) self.getlevel2 = QtWidgets.QLabel("Top Level:", self) self.getlevel2.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.getlevel2l = QtWidgets.QLineEdit(self) self.getlevel2l.setMaximumWidth(50) self.ignore_crop_l = QtWidgets.QCheckBox('Ignore Crop Image', self) self.crop_msg = QtWidgets.QLabel("Crop Image", self) self.crop_xi = QtWidgets.QLabel("Width: Wi:", self) self.crop_xi.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.getcropxi_l = QtWidgets.QLineEdit(self) self.getcropxi_l.setMaximumWidth(50) self.crop_xf = QtWidgets.QLabel("Wf:", self) self.crop_xf.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.getcropxf_l = QtWidgets.QLineEdit(self) self.getcropxf_l.setMaximumWidth(50) self.crop_yi = QtWidgets.QLabel("Height: Hi:", self) self.crop_yi.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.getcropyi_l = QtWidgets.QLineEdit(self) self.getcropyi_l.setMaximumWidth(50) self.crop_yf = QtWidgets.QLabel("Hf:", self) self.crop_yf.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.getcropyf_l = QtWidgets.QLineEdit(self) self.getcropyf_l.setMaximumWidth(50) self.image_tif_l = QtWidgets.QCheckBox('Image .tif', self) self.image_fit_l = QtWidgets.QCheckBox('Image .fit', self) self.button_clear = QtWidgets.QPushButton('Clear', self) self.button_clear.clicked.connect(self.clear_all) self.btn_one_photo = QtWidgets.QPushButton('Take Photo', self) self.btn_one_photo.clicked.connect(self.camera.start_one_photo) self.tempButton = QtWidgets.QPushButton("Set Temp", self) self.tempButton.clicked.connect(self.btn_temperature) self.fanButton = QtWidgets.QPushButton("Fan (On/Off)") self.fanButton.clicked.connect(self.button_fan_func) self.buttonok = QtWidgets.QPushButton("Save", self) self.buttonok.clicked.connect(self.button_ok_func) self.buttoncancel = QtWidgets.QPushButton("Cancel", self) self.buttoncancel.clicked.connect(self.func_cancel) def button_ok_func(self): try: y_pixels, x_pixels = self.get_pixels() # Saving the Settings if int(self.getcropxi_l.text()) > int(self.getcropxf_l.text()) or\ int(self.getcropyi_l.text()) > int(self.getcropyf_l.text()) or\ int(self.getcropxf_l.text()) >= x_pixels/(int(self.combo.currentIndex() + 1)) or \ int(self.getcropyf_l.text()) >= y_pixels/(int(self.combo.currentIndex() + 1)): self.console.raise_text("Wrong values for image crop.", 3) else: self.cam.set_camera_settings(self.setField_temperature.text(), self.time_colling.text(), self.tempo_fotos.text()) self.cam.save_settings() self.console.raise_text("Camera settings successfully saved!", 1) """ self.setField_temperature.text(), self.prel.text(), self.expl.text(), self.combo.currentIndex(), self.tempo_fotos.text(), self.time_colling.text(), self.getlevel1l.text(), self.getlevel2l.text(), self.close_open.currentIndex(), self.getcropxi_l.text(), self.getcropxf_l.text(), self.getcropyi_l.text(), self.getcropyf_l.text(), self.ignore_crop_l.isChecked(), self.image_tif_l.isChecked(), self.image_fit_l.isChecked() """ except Exception as e: self.console.raise_text("Camera settings were not saved.", 3) def clear_all(self): self.setField_temperature.clear() self.prel.clear() self.expl.clear() self.tempo_fotos.clear() def take_one_photo(self): try: info = self.get_camera_settings() if int(info[8]) == 1: self.console.raise_text("Taking dark photo", 1) self.one_photo.start() else: self.console.raise_text("Taking photo", 1) self.one_photo.start() except Exception: self.console.raise_text("Not possible taking photo", 1) def func_cancel(self): self.p.close() def button_fan_func(self): if getlinkstatus() is True: try: self.fan.set_fan() self.console.raise_text('State changed Fan!', 2) except Exception: self.console.raise_text("The camera is not connected!", 3) self.console.raise_text('State Fan unchanged', 3) else: self.console.raise_text("The camera is not connected!", 3) self.console.raise_text('State Fan unchanged', 3) def fill_combo(self): self.combo.addItem("1x1", 0) self.combo.addItem("2x2", 1) self.combo.addItem("3x3", 2) def fill_combo_close_open(self): self.close_open.addItem("Open", 0) self.close_open.addItem("Close", 1) def btn_temperature(self): try: value = self.setField_temperature.text() if value is '': pass else: self.camera.set_temperature(float(value)) except Exception as e: print("Exception -> {}".format(e))
class Shooter(QtWidgets.QWidget): """ Class for Taking photo Widget """ def __init__(self, parent=None): super(Shooter, self).__init__(parent) self.cam = Camera() self.cond = 0 # Label for Image self.img = QtWidgets.QLabel(self) self.config_img_label() # Creating a Pallete self.pa = QtGui.QPalette() self.set_layout() self.link_signals() def link_signals(self): self.cam.ephemerisShooterThread.continuousShooterThread.ss.finished.connect(self.get_image_automatic) self.cam.continuousShooterThread.ss.finished.connect(self.get_image_manual) def get_image_automatic(self): img = self.cam.ephemerisShooterThread.continuousShooterThread.ss.get_image_info() self.set_image(img) def get_image_manual(self): img = self.cam.continuousShooterThread.ss.get_image_info() self.set_image(img) def set_layout(self): # self.fill_combo() # # hbox = set_hbox(self.sbutton, self.tb, # QLabel("Prefixo:", self), self.pre, # QLabel("Binning:", self), self.combo, # self.abutton, # QLabel("Hora:", self), self.htext, # QLabel("Min:", self), self.mtext) hb2 = set_hbox(self.prefix, self.date, self.hour) self.setLayout(set_lvbox(set_hbox(self.img), hb2)) self.config_pallete() def config_img_label(self): self.img.setPixmap(QtGui.QPixmap("noimage.png")) self.prefix = QtWidgets.QLabel(self) self.date = QtWidgets.QLabel(self) self.hour = QtWidgets.QLabel(self) def config_pallete(self): self.pa.setColor(QtGui.QPalette.Foreground, QtCore.Qt.red) # Setting the style self.prefix.setPalette(self.pa) self.date.setPalette(self.pa) self.hour.setPalette(self.pa) def shoot_function(self): self.cam.shoot(int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) self.set_image() def auto_shoot(self): try: self.cam.autoshoot(int(self.htext.text()), int(self.mtext.text()), int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) except Exception as e: print(e) def set_image(self, img): print("Setting Pixmap") try: path = img.path + img.png_name self.img.setPixmap(QtGui.QPixmap(path)) print(path) #self.fill_image_info(img.png_name, img.date, img.hour) except Exception as e: print(e) def fill_combo(self): self.combo.addItem("1x1", 0) self.combo.addItem("2x2", 1) self.combo.addItem("3x3", 2) '''def fill_image_info(self, filename, time, hora): self.prefix.setText(filename) self.date.setText(time) self.hour.setText(hora)''' def clear_image_info(self): self.prefix.clear()
from PyQt5 import QtWidgets
class Shooter(QtWidgets.QWidget): """ Class for Taking photo Widget """ def __init__(self, parent=None): super(Shooter, self).__init__(parent) self.cam = Camera() self.cond = 0 # Label for Image self.img = QtWidgets.QLabel(self) self.config_img_label() # Creating a Pallete self.pa = QtGui.QPalette() self.set_layout() self.link_signals() def link_signals(self): self.cam.ephemerisShooterThread.continuousShooterThread.ss.finished.connect( self.get_image_automatic) self.cam.continuousShooterThread.ss.finished.connect( self.get_image_manual) def get_image_automatic(self): img = self.cam.ephemerisShooterThread.continuousShooterThread.ss.get_image_info( ) self.set_image(img) def get_image_manual(self): img = self.cam.continuousShooterThread.ss.get_image_info() self.set_image(img) def set_layout(self): hb2 = set_hbox(self.prefix, self.date, self.hour) self.setLayout(set_lvbox(set_hbox(self.img), hb2)) self.config_pallete() def config_img_label(self): self.img.setPixmap(QtGui.QPixmap("noimage.png")) self.prefix = QtWidgets.QLabel(self) self.date = QtWidgets.QLabel(self) self.hour = QtWidgets.QLabel(self) def config_pallete(self): self.pa.setColor(QtGui.QPalette.Foreground, QtCore.Qt.red) # Setting the style self.prefix.setPalette(self.pa) self.date.setPalette(self.pa) self.hour.setPalette(self.pa) def shoot_function(self): self.cam.shoot(int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) self.set_image() def auto_shoot(self): try: self.cam.autoshoot(int(self.htext.text()), int(self.mtext.text()), int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) except Exception as e: print(e) def set_image(self, img): """ :param img: recebe .tif ou .fit """ print("Setting Pixmap") try: path = img.path + img.name_image if os.path.splitext(path)[1] == '.fit': img = getdata(path) else: img = skimage.io.imread(path) file_name = path try: image = img get_level1 = 0.00 get_level2 = 0.99 variavel = Image_Processing.get_level(image, get_level1, get_level2) im2 = Image_Processing.bytscl(image, variavel[1], variavel[0]) im3 = toimage(im2) im4 = Image_Processing.resize_image_512x512(im3) im5 = Image_Processing.draw_image(im4, file_name) except Exception as e: print("Exception image_processing... -> {}".format(e)) try: qim = ImageQt(im5) self.img.setPixmap(QtGui.QPixmap.fromImage(qim)) except Exception as e: print( "Exception setPixmap(QtGui.QPixmap(image_to_show)) -> {}". format(e)) print(path) except Exception as e: print("Exception Setting Pixmap -> {}".format(e)) def fill_combo(self): self.combo.addItem("1x1", 0) self.combo.addItem("2x2", 1) self.combo.addItem("3x3", 2) def clear_image_info(self): self.prefix.clear()
class Shooter(QtWidgets.QWidget): """ Class for Taking photo Widget """ def __init__(self, parent=None): super(Shooter, self).__init__(parent) self.console = ConsoleThreadOutput() self.cam = Camera() self.cond = 0 self.sref_calc = SettingsCamera() # Label for Image self.img = QtWidgets.QLabel(self) self.config_img_label() # Creating a Pallete self.pa = QtGui.QPalette() self.set_layout() self.link_signals() def log_ephem_infos(self): elevations = make_elevations_info() headers_camera = get_camera_settings() temp = SbigDriver.get_temperature()[3] set_temp = headers_camera[0] ephem_infos_1 = "Sun Elevation: " + str(elevations[2]) + "; Moon Elevation: " + str(elevations[1]) +\ "; Moon Phase: " + str(elevations[0]) self.console.save_log(ephem_infos_1) time.sleep(1) ephem_infos_2 = "Camera Temperature: " + "{0:.2f}".format(temp) + "; Set Temperature: " +\ set_temp + "; Status Temp. Filtro: 25ºC" self.console.save_log(ephem_infos_2) def link_signals(self): self.cam.ephemerisShooterThread.continuousShooterThread.ss.finished.connect( self.get_image_automatic) self.cam.continuousShooterThread.ss.finished.connect( self.get_image_manual) def get_image_automatic(self): img = self.cam.ephemerisShooterThread.continuousShooterThread.ss.get_image_info( ) self.set_image(img) def get_image_manual(self): img = self.cam.continuousShooterThread.ss.get_image_info() self.set_image(img) def set_layout(self): hb2 = set_hbox(self.prefix, self.date, self.hour) self.setLayout(set_lvbox(set_hbox(self.img), hb2)) self.config_pallete() def config_img_label(self): self.img.setPixmap(QtGui.QPixmap("noimage.png")) self.img.setMaximumSize(425, 425) self.prefix = QtWidgets.QLabel(self) self.date = QtWidgets.QLabel(self) self.hour = QtWidgets.QLabel(self) def config_pallete(self): self.pa.setColor(QtGui.QPalette.Foreground, QtCore.Qt.red) # Setting the style self.prefix.setPalette(self.pa) self.date.setPalette(self.pa) self.hour.setPalette(self.pa) def shoot_function(self): self.cam.shoot(int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) self.set_image() def auto_shoot(self): try: self.cam.autoshoot(int(self.htext.text()), int(self.mtext.text()), int(self.tb.text()), self.pre.text(), int(self.combo.currentIndex())) except Exception as e: print(e) def set_image(self, img): print("Setting Pixmap") print("CCCCCCCCCCCCCCCCCCCCCCCCCCC") try: path = img.final_image_name # image = Image.open(path)] try: if os.path.splitext(path)[1] == '.fit': print("1111111111111111111") img = getdata(path) else: print("222222222222222222222") # img = skimage.io.imread('/home/cristiano') img = skimage.io.imread(path) print("\n\n>>>>>>>>>>>>>>>>>>>>>>") print(img) except Exception as e: print("Exception os.path.splitext -> {}".format(e)) image = img #im sref_min = float(self.sref_calc.get_camera_settings()[6]) sref_max = float(self.sref_calc.get_camera_settings()[7]) img_hist_equal = Image_Processing.img_hist_equal( image, sref_min, sref_max) im3 = toimage(img_hist_equal) im4 = im3.resize((int(425), int(425))) im5 = Image_Processing.draw_image(im4, path) try: qim = ImageQt(im5) self.img.setPixmap(QtGui.QPixmap.fromImage(qim)) except Exception as e: print( "Exception setPixmap(QtGui.QPixmap(image_to_show)) -> {}". format(e)) print(path) self.log_ephem_infos() except Exception as e: print("Exception Setting Pixmap -> {}".format(e)) def fill_combo(self): self.combo.addItem("1x1", 0) self.combo.addItem("2x2", 1) self.combo.addItem("3x3", 2) def clear_image_info(self): self.prefix.clear()
class SettingsWindow(QtWidgets.QWidget): def __init__(self, parent=None): super(SettingsWindow, self).__init__(parent) self.cam = SettingsCamera() self.camera = Camera() self.console = ConsoleThreadOutput() #self.a_temp_regulation = TempRegulation(self) self.create_cam_widgets() self.p = parent self.fan = Fan(self.fanButton) #self.button_clear = QtWidgets.QPushButton('Clear', self) self.setField_temperature = QtWidgets.QLineEdit(self) self.setting_values() self.setLayout(set_lvbox(set_hbox(self.setField_temperature_label, self.setField_temperature), set_hbox(self.pre, self.prel), set_hbox(self.exp, self.expl), set_hbox(self.binning, self.combo), set_hbox(self.tempo_fotos_label, self.tempo_fotos), set_hbox(self.tempButton, self.fanButton, stretch2=1), set_hbox(self.buttonok, self.button_clear, self.buttoncancel, stretch2=1))) def get_values(self): return self.cam.get_camera_settings() def setting_values(self): info = self.get_values() self.set_values(info[0], info[1], info[2], info[3], info[4]) def set_values(self, temperature_camera, prefixo, exposicao, binning, tempo_entre_fotos): self.setField_temperature.setText(temperature_camera) self.prel.setText(prefixo) self.expl.setText(exposicao) try: b = int(binning) except: b = 0 self.tempo_fotos.setText(tempo_entre_fotos) self.combo.setCurrentIndex(b) def create_cam_widgets(self): self.setField_temperature_label = QtWidgets.QLabel("Temperature:", self) self.pre = QtWidgets.QLabel("Filter:", self) self.prel = QtWidgets.QLineEdit(self) self.exp = QtWidgets.QLabel("Exposure time:", self) self.expl = QtWidgets.QLineEdit(self) self.binning = QtWidgets.QLabel("Binning:", self) self.combo = QtWidgets.QComboBox(self) self.fill_combo() self.button_clear = QtWidgets.QPushButton('Clear', self) self.button_clear.clicked.connect(self.clear_all) self.tempButton = QtWidgets.QPushButton("Set Temp", self) self.tempButton.clicked.connect(self.btn_temperature) self.fanButton = QtWidgets.QPushButton("Fan") self.fanButton.clicked.connect(self.button_fan_func) self.buttonok = QtWidgets.QPushButton("Save", self) self.buttonok.clicked.connect(self.button_ok_func) self.buttoncancel = QtWidgets.QPushButton("Cancel", self) self.buttoncancel.clicked.connect(self.func_cancel) self.tempo_fotos_label = QtWidgets.QLabel("Time between photos:", self) self.tempo_fotos = QtWidgets.QLineEdit(self) def button_ok_func(self): try: # Setting the Temperature '''value = self.setField_temperature.text() if value is '': value = 20 self.camera.set_temperature(float(value))''' # Saving the Settings self.cam.set_camera_settings(self.setField_temperature.text(), self.prel.text(), self.expl.text(), self.combo.currentIndex(), self.tempo_fotos.text()) self.cam.save_settings() self.console.raise_text("Camera settings successfully saved!", 1) except Exception as e: self.console.raise_text("Camera settings were not saved.", 3) finally: self.p.close() def clear_all(self): self.setField_temperature.clear() self.prel.clear() self.expl.clear() self.tempo_fotos.clear() def func_cancel(self): self.p.close() def button_fan_func(self): if getlinkstatus() is True: try: self.fan.set_fan() self.console.raise_text('State changed Fan!', 2) except Exception: self.console.raise_text("The camera is not connected!", 3) self.console.raise_text('State Fan unchanged', 3) else: self.console.raise_text("The camera is not connected!", 3) self.console.raise_text('State Fan unchanged', 3) def fill_combo(self): self.combo.addItem("1x1", 0) self.combo.addItem("2x2", 1) self.combo.addItem("3x3", 2) def btn_temperature(self): try: value = self.setField_temperature.text() if value is '': pass else: self.camera.set_temperature(float(value)) except Exception as e: print("Exception -> {}".format(e))