Exemplo n.º 1
0
    def addRotencDownDataref(self):
        index = self.DOWN_DREFS_TABLE.rowCount()
        self.DOWN_DREFS_TABLE.insertRow(index)

        editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
            self.DOWN_DREFS_TABLE)
        editWidget.lineEdit.setText('')
        editWidget.lineEdit.editingFinished.connect(self.updateXMLdata)
        editWidget.lookupDREFCMDbutton.clicked.connect(self.editXPDataref)
        self.DOWN_DREFS_TABLE.setCellWidget(index, 0, editWidget)

        item = QtWidgets.QTableWidgetItem('0')
        self.DOWN_DREFS_TABLE.setItem(index, 1, item)
        item = QtWidgets.QTableWidgetItem('0.0')
        self.DOWN_DREFS_TABLE.setItem(index, 2, item)

        check_state = QtCore.Qt.Unchecked
        item = QtWidgets.QTableWidgetItem()
        item.setCheckState(check_state)
        self.DOWN_DREFS_TABLE.setItem(index, 3, item)

        self.DOWN_DREFS_TABLE.resizeColumnsToContents()
        self.DOWN_DREFS_TABLE.resizeRowsToContents()
        self.DOWN_DREFS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.updateXMLdata()
        self.actionSave.setEnabled(True)
    def addCommand(self):
        logging.debug("ADD POT COMMAND")
        index = self.CMDS_TABLE.rowCount()
        self.CMDS_TABLE.insertRow(index)
        editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
            self)
        editWidget.lineEdit.setText('')
        editWidget.lineEdit.editingFinished.connect(self.updateXMLdata)
        editWidget.lookupDREFCMDbutton.clicked.connect(self.editXPCommand)
        self.CMDS_TABLE.setCellWidget(index, 0, editWidget)
        item = QtWidgets.QTableWidgetItem('')
        item.setToolTip(
            '<html><head/><body><p>Enter intervals where the command should be sent. </p><p>For example to send the command if the pot value is between 0 and 200 or between 600 and 800, enter: </p><p><span style=" color:#0000ff;">[0,200], [600,800]</span></p></body></html>'
        )
        self.CMDS_TABLE.setItem(index, 1, item)
        self.CMDS_TABLE.resizeRowsToContents()
        self.CMDS_TABLE.resizeColumnsToContents()
        self.CMDS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.updateXMLdata()
        self.actionSave.setEnabled(True)
Exemplo n.º 3
0
    def addRotencUpCommand(self):
        logger.debug("ADD ROT UP COMMAND")
        index = self.UP_CMDS_TABLE.rowCount()
        self.UP_CMDS_TABLE.insertRow(index)

        editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
            self.UP_CMDS_TABLE)
        editWidget.lineEdit.setText('')
        editWidget.lineEdit.editingFinished.connect(self.updateXMLdata)
        editWidget.lookupDREFCMDbutton.clicked.connect(self.editXPCommand)
        self.UP_CMDS_TABLE.setCellWidget(index, 0, editWidget)

        check_state = QtCore.Qt.Unchecked
        item = QtWidgets.QTableWidgetItem()
        item.setCheckState(check_state)
        self.UP_CMDS_TABLE.setItem(index, 1, item)

        self.UP_CMDS_TABLE.resizeColumnsToContents()
        self.UP_CMDS_TABLE.resizeRowsToContents()
        self.UP_CMDS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.updateXMLdata()
        self.actionSave.setEnabled(True)
    def addDataref(self):
        index = self.DREFS_TABLE.rowCount()
        self.DREFS_TABLE.insertRow(index)
        editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
            self)
        editWidget.lineEdit.setText('')
        editWidget.lineEdit.editingFinished.connect(self.updateXMLdata)
        editWidget.lookupDREFCMDbutton.clicked.connect(self.editXPDataref)
        self.DREFS_TABLE.setCellWidget(index, 0, editWidget)

        item = QtWidgets.QTableWidgetItem('0')
        self.DREFS_TABLE.setItem(index, 1, item)
        item = QtWidgets.QTableWidgetItem('0.0')
        item.setToolTip(
            '<html><head/><body><p>Enter series of points [pot input value, output dataref value]. The output value of the dataref in between 2 points will be linearly interpolated. </p><p>Note that the potentiometer value varies between 0 and 1023 (this is the raw output reading from the ADC of the arduino)</p><p>For example to set the dataref to vary linearly between 10 and 300 when the potentiometer value varies between 0 and 1023, enter: </p><p><span style=" color:#0000ff;">[0,10], [1023,300]</span></p></body></html>'
        )
        self.DREFS_TABLE.setItem(index, 2, item)

        self.DREFS_TABLE.resizeRowsToContents()
        self.DREFS_TABLE.resizeColumnsToContents()
        self.DREFS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.updateXMLdata()
        self.actionSave.setEnabled(True)
Exemplo n.º 5
0
    def show(self, componentID, ardSerialNr=None):
        self.repopulating = True
        self.componentID = componentID
        componentData = self.ardXMLconfig.getComponentData(
            componentID, self.componentType)

        self.nameLineEdit.setText(componentData['name'])
        self.IDlineEdit.setText(componentData['id'])
        self.multiplierLineEdit.setText(componentData['multiplier'])
        self.IDlineEdit.setText(componentData['id'])
        check_state = QtCore.Qt.Unchecked
        if componentData['acceleration'] == 'True':
            check_state = QtCore.Qt.Checked
        self.acceleration_checkBox.setCheckState(check_state)

        pinIndex = self.PINA_comboBox.findText(componentData['pin'])
        self.PINA_comboBox.setCurrentIndex(pinIndex)

        pinIndex = self.PINB_comboBox.findText(componentData['pin2'])
        self.PINB_comboBox.setCurrentIndex(pinIndex)

        stepsIndex = self.steps_comboBox.findText(
            componentData['stepsPerNotch'])
        self.steps_comboBox.setCurrentIndex(stepsIndex)

        ################### TO UPDATE
        switchState = componentData['state']
        if switchState == 'on':
            self.switchStateButton.setChecked(True)
        else:
            self.switchStateButton.setChecked(False)
        ######################

        self.UP_CMDS_TABLE.setRowCount(0)
        self.DOWN_CMDS_TABLE.setRowCount(0)

        actions = componentData['actions']
        for action in actions:
            if action['state'] == 'up':
                if action['action_type'] == 'cmd':
                    index = self.UP_CMDS_TABLE.rowCount()
                    self.UP_CMDS_TABLE.insertRow(index)

                    editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
                        self.UP_CMDS_TABLE)
                    editWidget.lineEdit.setText(action['cmddref'])
                    editWidget.lineEdit.editingFinished.connect(
                        self.updateXMLdata)
                    editWidget.lookupDREFCMDbutton.clicked.connect(
                        self.editXPCommand)
                    self.UP_CMDS_TABLE.setCellWidget(index, 0, editWidget)

                    check_state = QtCore.Qt.Unchecked
                    if action['continuous'] == 'True':
                        check_state = QtCore.Qt.Checked

                    item = QtWidgets.QTableWidgetItem()
                    item.setCheckState(check_state)
                    self.UP_CMDS_TABLE.setItem(index, 1, item)

                if action['action_type'] == 'dref':
                    index = self.UP_DREFS_TABLE.rowCount()
                    self.UP_DREFS_TABLE.insertRow(index)

                    editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
                        self.UP_DREFS_TABLE)
                    editWidget.lineEdit.setText(action['cmddref'])
                    editWidget.lineEdit.editingFinished.connect(
                        self.updateXMLdata)
                    editWidget.lookupDREFCMDbutton.clicked.connect(
                        self.editXPDataref)
                    self.UP_DREFS_TABLE.setCellWidget(index, 0, editWidget)

                    item = QtWidgets.QTableWidgetItem(action['index'])
                    self.UP_DREFS_TABLE.setItem(index, 1, item)
                    item = QtWidgets.QTableWidgetItem(action['setToValue'])
                    self.UP_DREFS_TABLE.setItem(index, 2, item)

                    check_state = QtCore.Qt.Unchecked
                    if action['continuous'] == 'True':
                        check_state = QtCore.Qt.Checked

                    item = QtWidgets.QTableWidgetItem()
                    item.setCheckState(check_state)
                    self.UP_DREFS_TABLE.setItem(index, 3, item)

                    drefList = XPrefData.getXPDatarefList(
                        None, action['cmddref'])
                    if len(drefList) > 0:  # we have found the dataref
                        item = QtWidgets.QTableWidgetItem(
                            drefList[0][2])  # type
                        self.UP_DREFS_TABLE.setItem(index, 4, item)

                        item = QtWidgets.QTableWidgetItem(
                            drefList[0][4])  # unit
                        self.UP_DREFS_TABLE.setItem(index, 5, item)

            if action['state'] == 'down':
                if action['action_type'] == 'cmd':
                    index = self.DOWN_CMDS_TABLE.rowCount()
                    self.DOWN_CMDS_TABLE.insertRow(index)

                    editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
                        self.DOWN_CMDS_TABLE)
                    editWidget.lineEdit.setText(action['cmddref'])
                    editWidget.lineEdit.editingFinished.connect(
                        self.updateXMLdata)
                    editWidget.lookupDREFCMDbutton.clicked.connect(
                        self.editXPCommand)
                    self.DOWN_CMDS_TABLE.setCellWidget(index, 0, editWidget)

                    check_state = QtCore.Qt.Unchecked
                    if action['continuous'] == 'True':
                        check_state = QtCore.Qt.Checked

                    item = QtWidgets.QTableWidgetItem()
                    item.setCheckState(check_state)
                    self.DOWN_CMDS_TABLE.setItem(index, 1, item)

                if action['action_type'] == 'dref':
                    index = self.DOWN_DREFS_TABLE.rowCount()
                    self.DOWN_DREFS_TABLE.insertRow(index)

                    editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
                        self.DOWN_DREFS_TABLE)
                    editWidget.lineEdit.setText(action['cmddref'])
                    editWidget.lineEdit.editingFinished.connect(
                        self.updateXMLdata)
                    editWidget.lookupDREFCMDbutton.clicked.connect(
                        self.editXPDataref)
                    self.DOWN_DREFS_TABLE.setCellWidget(index, 0, editWidget)

                    item = QtWidgets.QTableWidgetItem(action['index'])
                    self.DOWN_DREFS_TABLE.setItem(index, 1, item)
                    item = QtWidgets.QTableWidgetItem(action['setToValue'])
                    self.DOWN_DREFS_TABLE.setItem(index, 2, item)

                    check_state = QtCore.Qt.Unchecked
                    if action['continuous'] == 'True':
                        check_state = QtCore.Qt.Checked

                    item = QtWidgets.QTableWidgetItem()
                    item.setCheckState(check_state)
                    self.DOWN_DREFS_TABLE.setItem(index, 3, item)

                    drefList = XPrefData.getXPDatarefList(
                        None, action['cmddref'])
                    if len(drefList) > 0:  # we have found the dataref
                        item = QtWidgets.QTableWidgetItem(
                            drefList[0][2])  # type
                        self.DOWN_DREFS_TABLE.setItem(index, 4, item)

                        item = QtWidgets.QTableWidgetItem(
                            drefList[0][4])  # unit
                        self.DOWN_DREFS_TABLE.setItem(index, 5, item)

        self.UP_CMDS_TABLE.resizeColumnsToContents()
        self.UP_CMDS_TABLE.resizeRowsToContents()
        self.UP_CMDS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.DOWN_CMDS_TABLE.resizeColumnsToContents()
        self.DOWN_CMDS_TABLE.resizeRowsToContents()
        self.DOWN_CMDS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.UP_DREFS_TABLE.resizeColumnsToContents()
        self.UP_DREFS_TABLE.resizeRowsToContents()
        self.UP_DREFS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.DOWN_DREFS_TABLE.resizeColumnsToContents()
        self.DOWN_DREFS_TABLE.resizeRowsToContents()
        self.DOWN_DREFS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.repopulating = False
        super().show()
    def show(self, componentID, ardSerialNr=None):
        self.repopulating = True
        self.componentID = componentID
        componentData = self.ardXMLconfig.getComponentData(
            componentID, self.componentType)

        self.nameLineEdit.setText(componentData['name'])
        self.IDlineEdit.setText(componentData['id'])
        pinIndex = self.PIN_comboBox.findText(componentData['pin'])
        self.PIN_comboBox.setCurrentIndex(pinIndex)

        state = componentData['state']
        self.valueLabel.setText(state)
        try:
            self.valueSlider.setValue(int(state))
        except:
            logging.debug('could not convert state to int, state value: ' +
                          state)

        self.CMDS_TABLE.setRowCount(0)

        actions = componentData['actions']
        for action in actions:
            if action['action_type'] == 'cmd':
                index = self.CMDS_TABLE.rowCount()
                self.CMDS_TABLE.insertRow(index)
                editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
                    self)
                editWidget.lineEdit.setText(action['cmddref'])
                editWidget.lineEdit.editingFinished.connect(self.updateXMLdata)
                editWidget.lookupDREFCMDbutton.clicked.connect(
                    self.editXPCommand)
                self.CMDS_TABLE.setCellWidget(index, 0, editWidget)

                item = QtWidgets.QTableWidgetItem(action['state'])
                item.setToolTip(
                    '<html><head/><body><p>Enter intervals where the command should be sent. </p><p>For example to send the command if the pot value is between 0 and 200 or between 600 and 800, enter: </p><p><span style=" color:#0000ff;">[0,200], [600,800]</span></p></body></html>'
                )
                self.CMDS_TABLE.setItem(index, 1, item)

            if action['action_type'] == 'dref':
                index = self.DREFS_TABLE.rowCount()
                self.DREFS_TABLE.insertRow(index)
                editWidget = pyXPdatarefCommandEditWidget.datarefCommandEditWidget(
                    self)
                editWidget.lineEdit.setText(action['cmddref'])
                editWidget.lineEdit.editingFinished.connect(self.updateXMLdata)
                editWidget.lookupDREFCMDbutton.clicked.connect(
                    self.editXPDataref)
                self.DREFS_TABLE.setCellWidget(index, 0, editWidget)

                item = QtWidgets.QTableWidgetItem(action['index'])
                self.DREFS_TABLE.setItem(index, 1, item)
                item = QtWidgets.QTableWidgetItem(action['setToValue'])
                item.setToolTip(
                    '<html><head/><body><p>Enter series of points [pot input value, output dataref value]. The output value of the dataref in between 2 points will be linearly interpolated. </p><p>Note that the potentiometer value varies between 0 and 1023 (this is the raw output reading from the ADC of the arduino)</p><p>For example to set the dataref to vary linearly between 10 and 300 when the potentiometer value varies between 0 and 1023, enter: </p><p><span style=" color:#0000ff;">[0,10], [1023,300]</span></p></body></html>'
                )
                self.DREFS_TABLE.setItem(index, 2, item)

                drefList = XPrefData.getXPDatarefList(None, action['cmddref'])
                if len(drefList) > 0:  # we have found the dataref
                    item = QtWidgets.QTableWidgetItem(drefList[0][2])  # type
                    self.DREFS_TABLE.setItem(index, 3, item)

                    item = QtWidgets.QTableWidgetItem(drefList[0][4])  # unit
                    self.DREFS_TABLE.setItem(index, 4, item)

        self.CMDS_TABLE.resizeRowsToContents()
        self.CMDS_TABLE.resizeColumnsToContents()
        self.CMDS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.DREFS_TABLE.resizeColumnsToContents()
        self.DREFS_TABLE.resizeRowsToContents()
        self.DREFS_TABLE.setColumnWidth(0, self.DREFCMD_COLSIZE)

        self.repopulating = False
        super().show()