コード例 #1
0
 def __init__(self, ipcon, uid, version):
     PluginBase.__init__(self, ipcon, uid, 'Piezo Buzzer Bricklet', version)
     
     self.pb = BrickletPiezoBuzzer(uid, ipcon)
     
     self.qtcb_beep_finished.connect(self.cb_beep)
     self.pb.register_callback(self.pb.CALLBACK_BEEP_FINISHED,
                               self.qtcb_beep_finished.emit)
     self.qtcb_morse_finished.connect(self.cb_morse)
     self.pb.register_callback(self.pb.CALLBACK_MORSE_CODE_FINISHED,
                               self.qtcb_morse_finished.emit)
     
     self.beep_edit = QLineEdit()
     self.beep_edit.setText(str(1000))
     self.beep_label = QLabel('Duration (ms): ')
     self.beep_button = QPushButton('Send Beep')
     self.beep_layout = QHBoxLayout()
     self.beep_layout.addWidget(self.beep_label)
     self.beep_layout.addWidget(self.beep_edit)
     self.beep_layout.addWidget(self.beep_button)
     
     self.morse_edit = QLineEdit()
     self.morse_edit.setText('- .. -. -.- . .-. ..-. --- .-. --. .')
     self.morse_edit.setMaxLength(60)
     self.morse_label = QLabel('Morse Code: ')
     self.morse_button = QPushButton('Send Morse Code')
     self.morse_layout = QHBoxLayout()
     self.morse_layout.addWidget(self.morse_label)
     self.morse_layout.addWidget(self.morse_edit)
     self.morse_layout.addWidget(self.morse_button)
     
     self.status_label = QLabel('')
     
     self.beep_button.pressed.connect(self.beep_pressed)
     self.morse_button.pressed.connect(self.morse_pressed)
     
     layout = QVBoxLayout(self)
     layout.addLayout(self.beep_layout)
     layout.addLayout(self.morse_layout)
     layout.addWidget(self.status_label)
     layout.addStretch()
コード例 #2
0
class PiezoBuzzer(PluginBase):
    qtcb_beep_finished = pyqtSignal()
    qtcb_morse_finished = pyqtSignal()
    
    def __init__(self, ipcon, uid, version):
        PluginBase.__init__(self, ipcon, uid, 'Piezo Buzzer Bricklet', version)
        
        self.pb = BrickletPiezoBuzzer(uid, ipcon)
        
        self.qtcb_beep_finished.connect(self.cb_beep)
        self.pb.register_callback(self.pb.CALLBACK_BEEP_FINISHED,
                                  self.qtcb_beep_finished.emit)
        self.qtcb_morse_finished.connect(self.cb_morse)
        self.pb.register_callback(self.pb.CALLBACK_MORSE_CODE_FINISHED,
                                  self.qtcb_morse_finished.emit)
        
        self.beep_edit = QLineEdit()
        self.beep_edit.setText(str(1000))
        self.beep_label = QLabel('Duration (ms): ')
        self.beep_button = QPushButton('Send Beep')
        self.beep_layout = QHBoxLayout()
        self.beep_layout.addWidget(self.beep_label)
        self.beep_layout.addWidget(self.beep_edit)
        self.beep_layout.addWidget(self.beep_button)
        
        self.morse_edit = QLineEdit()
        self.morse_edit.setText('- .. -. -.- . .-. ..-. --- .-. --. .')
        self.morse_edit.setMaxLength(60)
        self.morse_label = QLabel('Morse Code: ')
        self.morse_button = QPushButton('Send Morse Code')
        self.morse_layout = QHBoxLayout()
        self.morse_layout.addWidget(self.morse_label)
        self.morse_layout.addWidget(self.morse_edit)
        self.morse_layout.addWidget(self.morse_button)
        
        self.status_label = QLabel('')
        
        self.beep_button.pressed.connect(self.beep_pressed)
        self.morse_button.pressed.connect(self.morse_pressed)
        
        layout = QVBoxLayout(self)
        layout.addLayout(self.beep_layout)
        layout.addLayout(self.morse_layout)
        layout.addWidget(self.status_label)
        layout.addStretch()

    def start(self):
        pass
        
    def stop(self):
        pass

    def get_url_part(self):
        return 'piezo_buzzer'

    @staticmethod
    def has_device_identifier(device_identifier):
        return device_identifier == BrickletPiezoBuzzer.DEVICE_IDENTIFIER
    
    def cb_beep(self):
        self.beep_button.setDisabled(False)
        self.morse_button.setDisabled(False)
        self.status_label.setText('')
        
    def cb_morse(self):
        self.beep_button.setDisabled(False)
        self.morse_button.setDisabled(False)
        self.status_label.setText('')
    
    def beep_pressed(self):
        duration = int(self.beep_edit.text())
        try:
            self.pb.beep(duration)
        except ip_connection.Error:
            return
        
        self.beep_button.setDisabled(True)
        self.morse_button.setDisabled(True)
        self.status_label.setText('Beeping...')        
        
    def morse_pressed(self):
        morse = str(self.morse_edit.text())
        try:
            self.pb.morse_code(morse)
        except ip_connection.Error:
            return
        
        self.beep_button.setDisabled(True)
        self.morse_button.setDisabled(True)
        self.status_label.setText('Beeping...')