Browse Source

Fixed Continuous Read getting stuck

kapture2 3 years ago
parent
commit
18925d106d
1 changed files with 11 additions and 8 deletions
  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 backendinterface as bif
 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.globals import glob as global_objects
 from .. import config
@@ -42,7 +43,7 @@ class SingleReadWidget(kcgw.KCGWidgets):
         # ---------[ Create Labels and corresponding Fields ]---------
         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"),
-                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.interval_spinbox = self.createSpinbox(0, 100000, start_value=1000)
         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()))
                 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.
         :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():
         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.continuous_read[id] = True
             # self.board_ticks_continuous_read[board_id].setStyleSheet("border-color: green; border-width: 3px;")
         else:
             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)
+
+        #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())