2222along with this program. If not, see <https://www.gnu.org/licenses/>.
2323"""
2424
25- from PyQt5 import QtWidgets
25+ from qtpy import QtWidgets
2626from abc import ABC ,abstractmethod
2727from .utilities import Channel ,VerboseMessageQueue ,GlobalCommands ,DataAcquisitionParameters
2828from typing import List
2929from multiprocessing .queues import Queue
30+ import multiprocessing as mp
3031from datetime import datetime
3132import traceback
3233import os
@@ -360,7 +361,9 @@ def __init__(self,
360361 controller_communication_queue : VerboseMessageQueue ,
361362 log_file_queue : Queue ,
362363 data_in_queue : Queue ,
363- data_out_queue : Queue ):
364+ data_out_queue : Queue ,
365+ acquisition_active : mp .Value ,
366+ output_active : mp .Value ):
364367 self ._environment_name = environment_name
365368 self ._command_queue = command_queue
366369 self ._gui_update_queue = gui_update_queue
@@ -372,6 +375,18 @@ def __init__(self,
372375 GlobalCommands .INITIALIZE_DATA_ACQUISITION :self .initialize_data_acquisition_parameters ,
373376 GlobalCommands .INITIALIZE_ENVIRONMENT_PARAMETERS :self .initialize_environment_test_parameters ,
374377 GlobalCommands .STOP_ENVIRONMENT :self .stop_environment }
378+ self ._acquisition_active = acquisition_active
379+ self ._output_active = output_active
380+
381+ @property
382+ def acquisition_active (self ):
383+ # print('Checking if Acquisition Active: {:}'.format(bool(self._acquisition_active.value)))
384+ return bool (self ._acquisition_active .value )
385+
386+ @property
387+ def output_active (self ):
388+ # print('Checking if Output Active: {:}'.format(bool(self._output_active.value)))
389+ return bool (self ._output_active .value )
375390
376391 @abstractmethod
377392 def initialize_data_acquisition_parameters (self ,data_acquisition_parameters : DataAcquisitionParameters ):
@@ -557,7 +572,9 @@ def run_process(environment_name : str,
557572 controller_communication_queue : VerboseMessageQueue ,
558573 log_file_queue : Queue ,
559574 data_in_queue : Queue ,
560- data_out_queue : Queue ):
575+ data_out_queue : Queue ,
576+ acquisition_active : mp .Value ,
577+ output_active : mp .Value ):
561578 """A function called by ``multiprocessing.Process`` to start the environment
562579
563580 This function should not be called directly, but used as a template for
@@ -596,5 +613,7 @@ def run_process(environment_name : str,
596613 controller_communication_queue ,
597614 log_file_queue ,
598615 data_in_queue ,
599- data_out_queue )
616+ data_out_queue ,
617+ acquisition_active ,
618+ output_active )
600619 process_class .run ()
0 commit comments