Example #1
0
    def test_pl_send_new_event_list(self):

        self.assertRaises(pe.WrongType, self.basePlugin.pl_send_new_event_list,
                          None)
        self.assertRaises(pe.WrongLength,
                          self.basePlugin.pl_send_new_event_list, [])

        events = [DEvent('1'), DEvent('2'), DEvent('3')]
        self.assertRaises(AttributeError,
                          self.basePlugin.pl_send_new_event_list, events)
Example #2
0
    def cb_initialize_plugin(self):

        self.event_change = DEvent('Change')
        self.config = self.pl_get_current_config_ref()
        self.pl_send_new_event_list([self.event_change])
        self.pl_set_widget_for_internal_usage(self.create_widget())

        return True
Example #3
0
    def pl_create_DEvent(self, event_name):
        """
        Creates a DEvent for use in a PaPI Plugin

        :param event_name: Name of the event
        :type event_name: str
        :return: DEvent object or None in case of error
        """
        if isinstance(event_name, str):
            event = DEvent(event_name)
            return event
        return None
Example #4
0
    def test_parameterChanges(self):

        self.assertRaises(pe.WrongType, self.basePlugin.pl_emit_event, None,
                          None)
        self.assertRaises(AttributeError,
                          self.basePlugin._send_parameter_change, None,
                          "DBlock")
        self.assertRaises(AttributeError, self.basePlugin.pl_emit_event, None,
                          "DEvent")
        self.assertRaises(AttributeError,
                          self.basePlugin._send_parameter_change, None,
                          DBlock("Block"))
        self.assertRaises(AttributeError, self.basePlugin.pl_emit_event, None,
                          DEvent("Event"))
Example #5
0
    def cb_initialize_plugin(self):

        self.event_choice = DEvent('Choice')

        self.pl_send_new_event_list([self.event_choice])

        self.config = self.pl_get_current_config_ref()
        para_list = []

        self.para_texts = DParameter(
            'texts', default=self.config['option_texts']['value'])
        self.para_values = DParameter(
            'values', default=self.config['option_values']['value'])

        para_list.append(self.para_texts)
        para_list.append(self.para_values)

        self.pl_send_new_parameter_list(para_list)

        self.central_widget = QWidget()

        self.option_texts = []
        self.option_values = []
        self.pre_selected_index = None

        if isinstance(self.config['selected_index']['value'], str):
            if self.config['selected_index']['value'] != '':
                self.pre_selected_index = int(
                    self.config['selected_index']['value'])

        self.pl_set_widget_for_internal_usage(self.central_widget)
        self.layout = QVBoxLayout(self.central_widget)

        self.buttons = []

        self.set_option_texts(self.config['option_texts']['value'])
        self.set_option_values(self.config['option_values']['value'])

        self.update_widget()

        return True
Example #6
0
    def cb_initialize_plugin(self):
        self.config = self.pl_get_current_config_ref()
        #super(Button, self).start_init(config)

        self.event_click = DEvent('Click')

        self.name = self.config['name']['value']
        self.cur_value = 0

        self.value_up = self.config['state1']['value']
        self.value_down = self.config['state2']['value']
        self.text_up = (self.config['state1_text']['value'])
        self.text_down = (self.config['state2_text']['value'])
        self.button_state = 'up'

        self.pl_send_new_event_list([self.event_click])

        self.button = self.create_widget()
        self.pl_set_widget_for_internal_usage(self.button)
        self.button.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.button.customContextMenuRequested.connect(self.show_context_menu)

        return True
Example #7
0
    def cb_initialize_plugin(self):
        # Creates Slider Change Event to connect to Parameters and send it
        self.event_change = DEvent('Change')
        self.pl_send_new_event_list([self.event_change])

        # get items of cfg for fist start of the Slider and cast to float
        self.value_max = self.pl_get_config_element('upper_bound',
                                                    castHandler=float)
        self.value_min = self.pl_get_config_element('lower_bound',
                                                    castHandler=float)
        self.tick_count = self.pl_get_config_element('step_count',
                                                     castHandler=float)
        self.init_value = self.pl_get_config_element('value_init',
                                                     castHandler=float)
        self.vertical = self.pl_get_config_element('vertical', castHandler=int)

        if self.vertical is not None:
            self.vertical = self.vertical == 1
        else:
            self.vertical = False

        # Create Parameter list for change slider parameter live and send it
        self.para_value_max = DParameter('MaxValue',
                                         default=self.value_max,
                                         Regex=pc.REGEX_SIGNED_FLOAT_OR_INT)
        self.para_value_min = DParameter('MinValue',
                                         default=self.value_min,
                                         Regex=pc.REGEX_SIGNED_FLOAT_OR_INT)
        self.para_tick_count = DParameter('StepCount',
                                          default=self.tick_count,
                                          Regex=pc.REGEX_SINGLE_INT)
        self.pl_send_new_parameter_list(
            [self.para_tick_count, self.para_value_max, self.para_value_min])
        # Set Slider widget for use in PaPI
        self.pl_set_widget_for_internal_usage(self.create_widget())
        # return successful initialization
        return True
Example #8
0
    def cb_initialize_plugin(self):

        # ---------------------------
        # Read configuration
        # ---------------------------
        self.config = self.pl_get_current_config_ref()
        self.signal_next_state = self.config['signal_next_state']['value']
        self.readOnly = self.config['readonly']['value'] == '1'

        # ---------------------------
        # Create Widget
        # ---------------------------

        self.widget = self.create_widget()
        self.create_actions()
        self.pl_set_widget_for_internal_usage(self.widget)
        self.current_state = None

        # ---------------------------
        # Create events
        # ---------------------------

        self.event_new_config = DEvent('StimulatorConfiguration')
        self.event_heartbeat = DEvent('Heartbeat')
        self.event_maxima_slider = DEvent('MaximaSlider')
        self.event_control_stim = DEvent('ControlStim')
        self.event_start = DEvent('Start')
        self.event_next_state = DEvent('NextState')

        self.pl_send_new_event_list([
            self.event_new_config, self.event_heartbeat,
            self.event_maxima_slider, self.event_control_stim,
            self.event_start, self.event_next_state
        ])

        # ---------------------------
        # Create Parameters
        # ---------------------------

        # ---------------------------
        # Create default structure
        # ---------------------------

        self.tableWidget.setColumnCount(1)
        self.tableWidget.setRowCount(1)

        self.tableWidget.setCellWidget(0, 0, QtWidgets.QLabel())

        self.tableWidget.setSelectionMode(
            QtWidgets.QAbstractItemView.NoSelection)

        self.tableWidget.verticalHeader().hide()
        self.tableWidget.horizontalHeader().hide()

        self.gridLayout = QtWidgets.QGridLayout()

        self.gridWidget.setLayout(self.gridLayout)

        self.tableRowCount = 0
        self.tableColCount = 0

        self.button_group = QtWidgets.QButtonGroup()

        # -----------------------
        # Custom configuration
        # -----------------------

        self.pal_cell_selected = QtGui.QPalette()
        self.pal_cell_selected.setColor(QtGui.QPalette.Text,
                                        QtGui.QColor(0, 0, 255))
        #self.pal_cell_selected.setColor(QtGui.QPalette.Window, QtGui.QColor(0, 0, 100))
        #self.pal_cell_selected.setColor(QtGui.QPalette.Base, QtGui.QColor(0, 0, 100))
        #self.pal_cell_selected.setColor(QtGui.QPalette.Button, QtGui.QColor(0, 0, 100))

        # -----------------------
        # Load configuration
        # -----------------------

        filename = self.config['config']['value']

        if os.path.isfile(filename):
            self.load_config(filename)

        # --------------------
        # Create timer for heartbeat
        # --------------------

        self.timer = QtCore.QTimer()

        self.timer.timeout.connect(self.timeout_send_heartbeat)
        self.timer.start(1000)

        self.heartbeat = 0

        # ---------------------
        # General variables
        # ---------------------

        self.last_next_state_nr = None

        return True