def __init__(self, parent=None): super(FaceDection, self).__init__(parent) # gui connections self.ui = Ui_FaceDetection() self.ui.setupUi(self) self.ui.speed_dial.sliderMoved.connect(self.set_fan_speed) self.ui.horizontal_speed.sliderReleased.connect(self.horizontal_stop) self.ui.vertical_speed.sliderReleased.connect(self.vertical_stop) self.ui.horizontal_speed.valueChanged.connect(self.set_hor_speed) self.ui.vertical_speed.valueChanged.connect(self.set_ver_speed) self.ui.serial_select.currentIndexChanged.connect(self.port_select) self.ui.command_edit.returnPressed.connect(self.command_send) # video and face recognition self.faces = [] self.ui.video.face_callback = self.video_face_callback self.ui.video.image_callback = self.video_image_callback # serial connection self.serial = SerialConnection() for port in self.serial.list_ports(): self.ui.serial_select.addItem(port) self.listener_timer = QTimer(self) self.listener_timer.timeout.connect(self.serial_read) self.listener_timer.start(50)
class FaceDection(QMainWindow): def __init__(self, parent=None): super(FaceDection, self).__init__(parent) # gui connections self.ui = Ui_FaceDetection() self.ui.setupUi(self) self.ui.speed_dial.sliderMoved.connect(self.set_fan_speed) self.ui.horizontal_speed.sliderReleased.connect(self.horizontal_stop) self.ui.vertical_speed.sliderReleased.connect(self.vertical_stop) self.ui.horizontal_speed.valueChanged.connect(self.set_hor_speed) self.ui.vertical_speed.valueChanged.connect(self.set_ver_speed) self.ui.serial_select.currentIndexChanged.connect(self.port_select) self.ui.command_edit.returnPressed.connect(self.command_send) # video and face recognition self.faces = [] self.ui.video.face_callback = self.video_face_callback self.ui.video.image_callback = self.video_image_callback # serial connection self.serial = SerialConnection() for port in self.serial.list_ports(): self.ui.serial_select.addItem(port) self.listener_timer = QTimer(self) self.listener_timer.timeout.connect(self.serial_read) self.listener_timer.start(50) def set_fan_speed(self, speed, update_dial=False): self.ui.speed_label.setText("%d %%" % speed) self.serial.send("VENT " + str(speed)) if update_dial: self.ui.speed_dial.setValue(speed) def horizontal_stop(self): self.serial.send("STOP") self.ui.horizontal_speed.setValue(0) # snap back def vertical_stop(self): self.serial.send("STOP") self.ui.vertical_speed.setValue(0) # snap back def set_hor_speed(self, value): if not value == 0: self.serial.send("IBASE " + str(value)) def set_ver_speed(self, value): if not value == 0: self.serial.send("IELBOW " + str(value)) def serial_read(self): message_queue = self.serial.queue while not message_queue.empty(): message = message_queue.get_nowait() if message[0] == "#": self.ui.log.append("<b>" + message + "</b>") elif message[0] == "!": self.ui.log.append("<font color=red>" + message + "</font>") message_queue.task_done() def command_send(self): command = self.ui.command_edit.text() self.serial.send(command) self.ui.command_edit.clear() def port_select(self, index): # disconnect if index == 0: self.serial.stop() self.ui.log.clear() self.ui.command_edit.clear() self.ui.command_edit.setEnabled(False) self.ui.fanbox.setEnabled(False) self.ui.movementbox.setEnabled(False) # connect else: try: port = self.ui.serial_select.currentText() self.serial.connect(port=port, baud=19200) self.ui.command_edit.setEnabled(True) self.ui.fanbox.setEnabled(True) self.ui.movementbox.setEnabled(True) except Exception, e: QMessageBox.warning(self, "Error", e.message)
class FaceDection(QMainWindow): def __init__(self, parent=None): super(FaceDection, self).__init__(parent) # gui connections self.ui = Ui_FaceDetection() self.ui.setupUi(self) self.ui.speed_dial.sliderMoved.connect(self.set_fan_speed) self.ui.horizontal_speed.sliderReleased.connect(self.horizontal_stop) self.ui.vertical_speed.sliderReleased.connect(self.vertical_stop) self.ui.horizontal_speed.valueChanged.connect(self.set_hor_speed) self.ui.vertical_speed.valueChanged.connect(self.set_ver_speed) self.ui.serial_select.currentIndexChanged.connect(self.port_select) self.ui.command_edit.returnPressed.connect(self.command_send) # video and face recognition self.faces = [] self.ui.video.face_callback = self.video_face_callback self.ui.video.image_callback = self.video_image_callback # serial connection self.serial = SerialConnection() for port in self.serial.list_ports(): self.ui.serial_select.addItem(port) self.listener_timer = QTimer(self) self.listener_timer.timeout.connect(self.serial_read) self.listener_timer.start(50) def set_fan_speed(self, speed, update_dial=False): self.ui.speed_label.setText("%d %%" % speed) self.serial.send("VENT " + str(speed)) if update_dial: self.ui.speed_dial.setValue(speed) def horizontal_stop(self): self.serial.send("STOP") self.ui.horizontal_speed.setValue(0) # snap back def vertical_stop(self): self.serial.send("STOP") self.ui.vertical_speed.setValue(0) # snap back def set_hor_speed(self, value): if not value == 0: self.serial.send("IBASE "+str(value)) def set_ver_speed(self, value): if not value == 0: self.serial.send("IELBOW "+str(value)) def serial_read(self): message_queue = self.serial.queue while not message_queue.empty(): message = message_queue.get_nowait() if message[0] == "#": self.ui.log.append("<b>"+message+"</b>") elif message[0] == "!": self.ui.log.append("<font color=red>"+message+"</font>") message_queue.task_done() def command_send(self): command = self.ui.command_edit.text() self.serial.send(command) self.ui.command_edit.clear() def port_select(self, index): # disconnect if index == 0: self.serial.stop() self.ui.log.clear() self.ui.command_edit.clear() self.ui.command_edit.setEnabled(False) self.ui.fanbox.setEnabled(False) self.ui.movementbox.setEnabled(False) # connect else: try: port = self.ui.serial_select.currentText() self.serial.connect(port=port, baud=19200) self.ui.command_edit.setEnabled(True) self.ui.fanbox.setEnabled(True) self.ui.movementbox.setEnabled(True) except Exception, e: QMessageBox.warning(self, "Error", e.message)