22
33import multiprocessing
44import queue
5+ import logging
56
67from .capture_worker import CaptureWorker
78from .scanner_worker import ScannerWorker
@@ -49,29 +50,31 @@ def __init__(self, result_queue, view_queue, message_queue, config):
4950 def start_scan (self , cam_position ):
5051 """ Spawn the processes that will continuously capture and process images from the camera.
5152 """
52- print ("\n MAIN: start triggered" )
53+ log = logging .getLogger ("." .join ([__name__ , self .__class__ .__name__ ]))
54+ log .debug ("8) scan start triggered" )
5355 scanner_args = (self ._task_q , self ._overlay_q , self ._result_q , self ._message_q , self ._scanner_kill_q , self ._config , cam_position )
5456 self ._scanner_process = multiprocessing .Process (target = CameraScanner ._scanner_worker , args = scanner_args )
5557
5658 self ._capture_command_q .put (CaptureCommand (StreamAction .START , cam_position ))
5759 self ._scanner_process .start ()
5860
5961 def stop_scan (self ):
60- print ("\n MAIN: Stop triggered" )
62+ log = logging .getLogger ("." .join ([__name__ , self .__class__ .__name__ ]))
63+ log .debug ("stop triggered" )
6164 self ._terminate_scanner_process ()
6265 self ._capture_command_q .put (CaptureCommand (StreamAction .STOP ))
63- print ( "MAIN: Stop completed" )
66+ log . debug ( "stop scan completed" )
6467
6568 def kill (self ):
66- print ( " \n __________" )
67- print ( "MAIN: Kill" )
69+ log = logging . getLogger ( "." . join ([ __name__ , self . __class__ . __name__ ]) )
70+ log . debug ( " Kill" )
6871 self .stop_scan ()
6972 self ._capture_kill_q .put (None )
70- print ( "MAIN: forcing capture cleanup" )
73+ log . debug ( "KILL forcing capture cleanup" )
7174 self ._process_cleanup (self ._capture_process , [self ._task_q , self ._view_q ])
7275 self ._capture_process .join ()
7376 self ._flush_queue (self ._capture_kill_q )
74- print ( "MAIN: KILL COMPLETED" )
77+ log . debug ( " KILL COMPLETED" )
7578
7679 def _flush_queue (self , queue ):
7780 while not queue .empty ():
@@ -80,12 +83,13 @@ def _flush_queue(self, queue):
8083 def _terminate_scanner_process (self ):
8184 if self ._scanner_process is not None :
8285 self ._scanner_kill_q .put (None )
83- print ("MAIN: forcing scanner cleanup" )
86+ log = logging .getLogger ("." .join ([__name__ , self .__class__ .__name__ ]))
87+ log .debug ("starting scanner process cleanup" )
8488 self ._process_cleanup (self ._scanner_process , [self ._result_q , self ._overlay_q , self ._message_q ])
8589 self ._scanner_process .join ()
8690 self ._flush_queue (self ._scanner_kill_q )
8791 self ._scanner_process = None
88- print ( "MAIN: scanner rejoined" )
92+ log . debug ( " scanner process cleared and rejoined - caused by stop scan " )
8993
9094 def _process_cleanup (self , process , queues ):
9195 """ A sub-process that writes to a queue can't terminate if the queue is not empty.
@@ -96,11 +100,12 @@ def _process_cleanup(self, process, queues):
96100 https://stackoverflow.com/questions/31708646/process-join-and-queue-dont-work-with-large-numbers
97101 """
98102 # Put the process in a list so we don't need to check is_alive() every time - supposed to perform better
103+ log = logging .getLogger ("." .join ([__name__ , self .__class__ .__name__ ]))
99104 live_processes = [process ]
100105 display = True
101106 while live_processes :
102107 if display :
103- print ( "MAIN: sub- process still alive" )
108+ log . debug ( "scanner process still alive" )
104109 display = False
105110
106111 for q in queues :
@@ -115,7 +120,7 @@ def _process_cleanup(self, process, queues):
115120
116121 live_processes = [p for p in live_processes if p .is_alive ()]
117122
118- print ( "MAIN: sub- process terminated! " )
123+ log . debug ( "scanner process terminated by process cleanup " )
119124
120125 @staticmethod
121126 def _capture_worker (task_queue , view_queue , overlay_queue , command_queue , kill_queue , camera_configs ):
0 commit comments