Quellcode durchsuchen

Fixed Continuous Read getting stuck

kapture2 vor 3 Jahren
Ursprung
Commit
18925d106d
1 geänderte Dateien mit 11 neuen und 8 gelöschten Zeilen
  1. 11 8
      KCG/widgets/SingleReadWidget.py

+ 11 - 8
KCG/widgets/SingleReadWidget.py

@@ -7,7 +7,8 @@ from PyQt4 import QtGui
 from ..base import kcgwidget as kcgw
 from ..base import kcgwidget as kcgw
 from ..base import backendinterface as bif
 from ..base import backendinterface as bif
 from ..base.groupedelements import Elements
 from ..base.groupedelements import Elements
-from ..base.backend.board import available_boards
+from ..base.backend import board
+from ..base.backend.board import  available_boards
 from ..base.storage import storage
 from ..base.storage import storage
 from ..base.globals import glob as global_objects
 from ..base.globals import glob as global_objects
 from .. import config
 from .. import config
@@ -42,7 +43,7 @@ class SingleReadWidget(kcgw.KCGWidgets):
         # ---------[ Create Labels and corresponding Fields ]---------
         # ---------[ Create Labels and corresponding Fields ]---------
         self.single_read_button = self.createButton(tr("Button", "Single Acquisition"), connect=self.on_single_read)
         self.single_read_button = self.createButton(tr("Button", "Single Acquisition"), connect=self.on_single_read)
         self.continuous_read_button = self.createButton(tr("Button", "Continuous Acquisition"),
         self.continuous_read_button = self.createButton(tr("Button", "Continuous Acquisition"),
-                connect=lambda: self.on_continuous_read(True, available_boards[0]))
+                connect=lambda: self.on_continuous_read(available_boards[0]))
         self.single_read_input  = self.createInput()
         self.single_read_input  = self.createInput()
         self.interval_spinbox = self.createSpinbox(0, 100000, start_value=1000)
         self.interval_spinbox = self.createSpinbox(0, 100000, start_value=1000)
         self.interval_spinbox.valueChanged.connect(self.set_interval)
         self.interval_spinbox.valueChanged.connect(self.set_interval)
@@ -116,7 +117,7 @@ class SingleReadWidget(kcgw.KCGWidgets):
                 bif.bk_single_read(board_id, str(self.single_read_input.text()))
                 bif.bk_single_read(board_id, str(self.single_read_input.text()))
                 print(time.time(), 'on_single_read stop')
                 print(time.time(), 'on_single_read stop')
 
 
-    def on_continuous_read(self, state, board_id):
+    def on_continuous_read(self, board_id):
         """
         """
         Toggle function to toggle continuous read when the corresponding button is pressed.
         Toggle function to toggle continuous read when the corresponding button is pressed.
         :param bool state: True to activate and False to deactivate continuous read for board_id
         :param bool state: True to activate and False to deactivate continuous read for board_id
@@ -125,17 +126,19 @@ class SingleReadWidget(kcgw.KCGWidgets):
         """
         """
         # if self.board_ticks_continuous_read[id].isChecked():
         # if self.board_ticks_continuous_read[id].isChecked():
         self.set_interval()
         self.set_interval()
-        if state:
-            self.continuous_read_button.setText(tr("Button", "Stop Continuous Acquisition"))
-            self.continuous_read_button.clicked.connect(lambda: self.on_continuous_read(False, board_id))
+        if not board.get_board_status(board_id).continuous_read:
+            self.continuous_read_button.setText(tr("Button", "Stop Acquisition"))
             self.single_read_button.setEnabled(False)
             self.single_read_button.setEnabled(False)
             # self.continuous_read[id] = True
             # self.continuous_read[id] = True
             # self.board_ticks_continuous_read[board_id].setStyleSheet("border-color: green; border-width: 3px;")
             # self.board_ticks_continuous_read[board_id].setStyleSheet("border-color: green; border-width: 3px;")
         else:
         else:
             self.continuous_read_button.setText(tr("Button", "Continuous Acquisition"))
             self.continuous_read_button.setText(tr("Button", "Continuous Acquisition"))
-            self.continuous_read_button.clicked.connect(lambda: self.on_continuous_read(True, board_id))
-            self.board_ticks_continuous_read[board_id].setStyleSheet("")
+            #self.board_ticks_continuous_read[board_id].setStyleSheet("")
             self.single_read_button.setEnabled(True)
             self.single_read_button.setEnabled(True)
+
+        #Note:
+        #bk_continuous_read is a toggle function.
+        #Each call switches from off to on, and vice versa
         bif.bk_continuous_read(board_id)  # interval=self.interval_spinbox.value())
         bif.bk_continuous_read(board_id)  # interval=self.interval_spinbox.value())