@@ -32,7 +32,6 @@ def __init__(self, config_file, version):
3232 # UI elements
3333 self ._record_table = None
3434 self ._barcode_table = None
35- self .sideBarcodeWindow = None
3635 self ._image_frame = None
3736
3837 # Scan elements
@@ -61,7 +60,7 @@ def __init__(self, config_file, version):
6160 self ._message_timer .timeout .connect (self ._read_message_queue )
6261 self ._message_timer .start (MESSAGE_TIMER_PERIOD )
6362
64- self ._camera_switch . restart_live_capture_from_side ()
63+ self ._restart_live_capture_from_side ()
6564
6665 def _init_ui (self ):
6766 """ Create the basic elements of the user interface.
@@ -166,7 +165,7 @@ def _on_scan_action_clicked(self):
166165 if not self ._camera_capture_alive ():
167166 self ._initialise_scanner ()
168167
169- self ._camera_switch . restart_live_capture_from_side ()
168+ self ._restart_live_capture_from_side ()
170169
171170 def _on_options_action_clicked (self ):
172171 result_ok = self ._open_options_dialog ()
@@ -175,7 +174,7 @@ def _on_options_action_clicked(self):
175174
176175 self ._cleanup ()
177176 self ._initialise_scanner ()
178- self ._camera_switch . restart_live_capture_from_side ()
177+ self ._restart_live_capture_from_side ()
179178
180179 def _open_options_dialog (self ):
181180 dialog = BarcodeConfigDialog (self ._config , self ._before_test_camera )
@@ -237,22 +236,23 @@ def _read_message_queue(self):
237236 # The result queue is read at a slower rate - use a timer to give it time to process a new barcode
238237 self ._start_msg_timer ()
239238 elif self ._has_msg_timer_timeout ():
240- self ._message_box .display (MessageFactory .duplicate_barcode_message ())
239+ self ._message_box .display (MessageFactory .latest_barcode_message ())
241240 else :
242241 self ._reset_msg_timer ()
243242 self ._message_box .display (MessageFactory .from_scanner_message (scanner_msg ))
244243
245244 def _reset_msg_timer (self ):
246- self ._duplicate_msg_timer = None
245+ self ._duplicate_record_msg_timer = None
247246
248247 def _start_msg_timer (self ):
249- self ._duplicate_msg_timer = time .time ()
248+ self ._duplicate_record_msg_timer = time .time ()
250249
251250 def _msg_timer_is_running (self ):
252- return self ._duplicate_msg_timer is not None
251+ return self ._duplicate_record_msg_timer is not None
253252
254253 def _has_msg_timer_timeout (self ):
255- return self ._msg_timer_is_running () and time .time () - self ._duplicate_msg_timer > 2 * RESULT_TIMER_PERIOD / 1000
254+ timeout = 2 * RESULT_TIMER_PERIOD / 1000
255+ return self ._msg_timer_is_running () and time .time () - self ._duplicate_record_msg_timer > timeout
256256
257257 def _read_result_queue (self ):
258258 """ Called every second; read any new results from the scan results queue, store them and display them.
@@ -277,33 +277,40 @@ def _read_side_scan(self):
277277 # Barcode successfully read
278278 Beeper .beep ()
279279 print ("MAIN: puck barcode recorded" )
280- if self ._record_table .unique_side_barcode (plate ): # if new side barcode
281- self .original_plate = plate
280+ if not self ._record_table .is_latest_holder_barcode (plate ):
281+ self ._latest_holder_plate = plate
282282 self ._latest_holder_image = holder_image
283283 self ._message_box .display (MessageFactory .puck_recorded_message ())
284- self ._camera_switch . restart_live_capture_from_top ()
284+ self ._restart_live_capture_from_top ()
285285 else :
286- self ._message_box .display (MessageFactory .duplicate_barcode_message ())
286+ self ._message_box .display (MessageFactory .latest_barcode_message ())
287287
288288 def _read_top_scan (self ):
289289 if self ._result_queue .empty ():
290290 if self ._camera_switch .is_top_scan_timeout ():
291291 self ._message_box .display (MessageFactory .scan_timeout_message ())
292292 print ("\n *** Scan timeout ***" )
293- self ._camera_switch . restart_live_capture_from_side ()
293+ self ._restart_live_capture_from_side ()
294294 return
295295
296296 # Get the result
297297 plate , pins_image = self ._result_queue .get (False )
298298
299- # Add new record to the table - side is the original_plate read first, top is the plate
300- self ._record_table .add_record_frame (self .original_plate , plate , self ._latest_holder_image , pins_image )
299+ # Add new record to the table - side is the _latest_holder_plate read first, top is the plate
300+ self ._record_table .add_record_frame (self ._latest_holder_plate , plate , self ._latest_holder_image , pins_image )
301301 if not plate .is_full_valid ():
302302 return
303303
304304 # Barcodes successfully read
305305 Beeper .beep ()
306306 print ("Scan Completed" )
307307 self ._message_box .display (MessageFactory .scan_completed_message ())
308+ self ._restart_live_capture_from_side ()
309+
310+ def _restart_live_capture_from_top (self ):
311+ self ._camera_switch .restart_live_capture_from_top ()
312+
313+ def _restart_live_capture_from_side (self ):
314+ self ._reset_msg_timer ()
308315 self ._camera_switch .restart_live_capture_from_side ()
309316
0 commit comments