Skip to content

Commit e909c22

Browse files
committed
I04_1-177: allowing duplicate records
1 parent a50ae5d commit e909c22

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

dls_barcode/gui/main_window.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def __init__(self, config_file, version):
3838
# Scan elements
3939
self._camera_scanner = None
4040
self._camera_switch = None
41+
self._latest_holder_plate = None
4142

4243
self._init_ui()
4344

@@ -267,14 +268,20 @@ def _read_side_scan(self):
267268
# Barcode successfully read
268269
Beeper.beep()
269270
print("MAIN: puck barcode recorded")
270-
if self._record_table.unique_side_barcode(plate): # if new side barcode
271-
self.original_plate = plate
271+
if not self._is_latest_holder_plate(plate):
272+
self._latest_holder_plate = plate
272273
self._latest_holder_image = holder_image
273274
self._message_box.display(MessageFactory.puck_recorded_message())
274275
self._camera_switch.restart_live_capture_from_top()
275276
else:
276277
self._message_box.display(MessageFactory.duplicate_barcode_message())
277278

279+
def _is_latest_holder_plate(self, plate):
280+
if self._latest_holder_plate is None:
281+
return False
282+
283+
return self._latest_holder_plate.barcodes()[0] == plate.barcodes()[0]
284+
278285
def _read_top_scan(self):
279286
if self._result_queue.empty():
280287
if self._camera_switch.is_top_scan_timeout():
@@ -286,8 +293,8 @@ def _read_top_scan(self):
286293
# Get the result
287294
plate, pins_image = self._result_queue.get(False)
288295

289-
# Add new record to the table - side is the original_plate read first, top is the plate
290-
self._record_table.add_record_frame(self.original_plate, plate, self._latest_holder_image, pins_image)
296+
# Add new record to the table - side is the _latest_holder_plate read first, top is the plate
297+
self._record_table.add_record_frame(self._latest_holder_plate, plate, self._latest_holder_image, pins_image)
291298
if not plate.is_full_valid():
292299
return
293300

dls_barcode/gui/record_table.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,4 @@ def _delete_selected_records(self):
136136
self._store.delete_records(records_to_delete)
137137
self._load_store_records()
138138

139-
def unique_side_barcode(self, plate):
140-
barcodes = []
141-
plate_barcodes = plate.barcodes()
142-
store = self._store
143-
rec = store.records
144-
for m,record in enumerate(rec):
145-
barcodes = barcodes + record.barcodes[:]
146-
if plate_barcodes[0] in barcodes:
147-
return False
148-
return True
149139

0 commit comments

Comments
 (0)