Skip to content

Commit

Permalink
Creating signals for parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
ThunderTecke committed Mar 13, 2023
1 parent a40ec8b commit 1c67c96
Showing 1 changed file with 38 additions and 13 deletions.
51 changes: 38 additions & 13 deletions PID_Py/SetupTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@ def __init__(self) -> None:
super().__init__()

self.logger = logging.getLogger(__name__)
handler = logging.StreamHandler()
handler.setLevel(logging.INFO)

logFormat = logging.Formatter('%(levelname)s [%(name)s]: %(message)s')
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
logFormat = logging.Formatter('%(name)s [%(levelname)s]: %(message)s')
handler.setFormatter(logFormat)

self.logger.setLevel(logging.DEBUG)
self.logger.addHandler(handler)

self.logger.debug("Logger initialized")

self.setWindowTitle("PID_Py : SetupTool")
self.setMinimumSize(1000, 300)
Expand Down Expand Up @@ -117,6 +118,8 @@ def __init__(self) -> None:
self.kiLabel = QLabel("Integral")
self.kiLabel.setEnabled(False)

self.kiSpinBox.valueChanged.connect(self.kiChanged)

self.kdSpinBox = QDoubleSpinBox()
self.kdSpinBox.setEnabled(False)
self.kdSpinBox.setSingleStep(0.1)
Expand All @@ -127,6 +130,8 @@ def __init__(self) -> None:
self.kdLabel = QLabel("Derivative")
self.kdLabel.setEnabled(False)

self.kdSpinBox.valueChanged.connect(self.kdChanged)

gainLabel = QLabel("Gains")
gainLabel.setAlignment(Qt.AlignmentFlag.AlignHCenter)
gainLabel.setStyleSheet("font-size: 24px")
Expand Down Expand Up @@ -154,6 +159,8 @@ def __init__(self) -> None:
self.indirectActionCheckBox.setToolTip("Invert PID action")
self.indirectActionCheckBox.setToolTipDuration(5000)

self.indirectActionCheckBox.stateChanged.connect(self.indirectActionChanged)

self.proportionnalOnMeasurementCheckBox = QCheckBox("Proportionnal on measurement")
self.proportionnalOnMeasurementCheckBox.setEnabled(False)
self.proportionnalOnMeasurementCheckBox.setToolTip("Calculate the proportionnal term on the process value")
Expand Down Expand Up @@ -330,6 +337,8 @@ def __init__(self) -> None:
self.refreshTimer = QTimer(self)
self.refreshTimer.timeout.connect(self.refreshData)
self.refreshTimer.start(25)

self.logger.debug("SetupTool initialized")

def refreshData(self):
if (self.alpha < 2*np.pi):
Expand Down Expand Up @@ -386,6 +395,8 @@ def enableWidgets(self):
self.outputLimitMinEnableCheckBox.setEnabled(True)
self.outputLimitMinSpinBox.setEnabled(self.outputLimitMinEnableCheckBox.checkState() == Qt.CheckState.Checked)

self.logger.debug("Widgets parameters enabled")

def disableWidgets(self):
self.kpLabel.setEnabled(False)
self.kpSpinBox.setEnabled(False)
Expand Down Expand Up @@ -427,25 +438,39 @@ def disableWidgets(self):
self.outputLimitMaxSpinBox.setEnabled(False)
self.outputLimitMinEnableCheckBox.setEnabled(False)
self.outputLimitMinSpinBox.setEnabled(False)

self.logger.debug("Widgets parameters disabled")

def kpChanged(self, value):
self.logger.info("Kp value changed")
print("msg")
self.logger.debug(f"Kp value changed to {value:.2f}")

def kiChanged(self, value):
self.logger.debug(f"Ki value changed to {value:.2f}")

def kdChanged(self, value):
self.logger.debug(f"Kd value changed to {value:.2f}")

def indirectActionChanged(self, state):
state = Qt.CheckState(state)
self.logger.debug(f"Indirect action changed to {state}")

def proportionnalOnMeasurementChanged(self, state):
state = Qt.CheckState(state)
self.logger.debug(f"Proportionnal on measurement changed to {state}")

def integralLimitEnableChanged(self, state):
state = Qt.CheckState(state)
self.logger.debug(f"Integral limit enable changed to {state}")
self.integralLimitSpinBox.setEnabled(state == Qt.CheckState.Checked)

def setReadOnlyMode(self):
self.readWriteLabel.setText("Read-only mode")
self.disableWidgets()

for w in self.widgets:
w.setEnabled(False)

def setReadWriteMode(self):
self.readWriteLabel.setText("Read/write mode")
self.enableWidgets()

for w in self.widgets:
w.setEnabled(False)

if __name__=="__main__":
app = QApplication(sys.argv)

Expand Down

0 comments on commit 1c67c96

Please sign in to comment.