Skip to content

Commit 9c436bf

Browse files
committed
refact(QR): optimize configuration for readability
1 parent 7187ad8 commit 9c436bf

1 file changed

Lines changed: 31 additions & 30 deletions

File tree

src/hosts/qr.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -345,39 +345,32 @@ def configure_m3y(self, version):
345345
self.version_str = "Detected M3Y Scanner, SW:" + self.software_version
346346

347347
# Disable read of configurable QRs and other configs
348-
for config in (M3Y_CONFIG_MODE + b"0", M3Y_DISABLE_ALL_SYMBOLOGIES, M3Y_ENABLE_QR_SYMBOL, M3Y_READ_LED_INDICATOR, M3Y_EOL, M3Y_TRIGGER_TIMEOUT, M3Y_CONTINUOUS_TIMEOUT, M3Y_CONT_ENABLE_REREAD_TIMEOUT, M3Y_CONT_REREAD_TIMEOUT, M3Y_CMD_MODE, M3Y_SERIAL_PROT):
349-
val = self.get_setting(config, 2)
350-
if val is None:
348+
required_configs = (
349+
M3Y_CONFIG_MODE + b"0", M3Y_DISABLE_ALL_SYMBOLOGIES, M3Y_ENABLE_QR_SYMBOL,
350+
M3Y_READ_LED_INDICATOR, M3Y_EOL, M3Y_TRIGGER_TIMEOUT, M3Y_CONTINUOUS_TIMEOUT,
351+
M3Y_CONT_ENABLE_REREAD_TIMEOUT, M3Y_CONT_REREAD_TIMEOUT, M3Y_CMD_MODE, M3Y_SERIAL_PROT
352+
)
353+
for config in required_configs:
354+
if self.get_setting(config, 2) is None:
351355
return False
352356

353-
# Sound
357+
# Configure audio and features based on settings
358+
audio_configs = [M3Y_SOUND + (b"1" if self.settings.get("sound", True) else b"0")]
354359
if self.settings.get("sound", True):
355-
val = self.get_setting(M3Y_SOUND + b"1")
356-
if val is None:
357-
return False
358-
val = self.get_setting(M3Y_SOUND_TYPE + b"1")
359-
if val is None:
360+
audio_configs.extend([M3Y_SOUND_TYPE + b"1", M3Y_SOUND_VOL + b"1"])
361+
362+
for config in audio_configs:
363+
if self.get_setting(config) is None:
360364
return False
361-
val = self.get_setting(M3Y_SOUND_VOL + b"1")
362-
else:
363-
val = self.get_setting(M3Y_SOUND + b"0")
364-
if val is None:
365-
return False
366365

367366
# Aim
368-
if self.settings.get("aim", True):
369-
val = self.get_setting(M3Y_AIM + b"2")
370-
else:
371-
val = self.get_setting(M3Y_AIM + b"0")
372-
if val is None:
367+
aim_mode = b"2" if self.settings.get("aim", True) else b"0"
368+
if self.get_setting(M3Y_AIM + aim_mode) is None:
373369
return False
374370

375371
# LED Light
376-
if self.settings.get("light", False):
377-
val = self.get_setting(M3Y_LIGHT + b"2")
378-
else:
379-
val = self.get_setting(M3Y_LIGHT + b"0")
380-
if val is None:
372+
light_mode = b"2" if self.settings.get("light", False) else b"0"
373+
if self.get_setting(M3Y_LIGHT + light_mode) is None:
381374
return False
382375

383376
return True
@@ -397,9 +390,17 @@ def configure_gm65(self):
397390
return False
398391
save_required = True
399392

400-
# Set Command Mode, scanning timeout, interval between scans, delay beteen re-reading the same barcode, Barcode type to None, Barcode type QR
401-
for addr, set_val in ((SETTINGS_ADDR, self.CMD_MODE), (TIMOUT_ADDR, 0), (INTERVAL_OF_SCANNING_ADDR, INTERVAL_OF_SCANNING),
402-
(DELAY_OF_SAME_BARCODES_ADDR, DELAY_OF_SAME_BARCODES), (BAR_TYPE_ADDR, 0x01), (QR_ADDR, 0x01)):
393+
# Configure scanner settings with a batch approach
394+
scanner_settings = (
395+
(SETTINGS_ADDR, self.CMD_MODE),
396+
(TIMOUT_ADDR, 0),
397+
(INTERVAL_OF_SCANNING_ADDR, INTERVAL_OF_SCANNING),
398+
(DELAY_OF_SAME_BARCODES_ADDR, DELAY_OF_SAME_BARCODES),
399+
(BAR_TYPE_ADDR, 0x01),
400+
(QR_ADDR, 0x01)
401+
)
402+
403+
for addr, set_val in scanner_settings:
403404
val = self.get_setting(addr)
404405
if val is None:
405406
return False
@@ -409,13 +410,13 @@ def configure_gm65(self):
409410
save_required = True
410411

411412
# Check the module software and enable "RAW" mode if required
412-
val = self.get_setting(
413-
VERSION_ADDR, retries=5, retry_delay_ms=RETRY_DELAY_MS, invalid_values={0}
414-
)
413+
val = self.get_setting(VERSION_ADDR, retries=5, retry_delay_ms=RETRY_DELAY_MS, invalid_values={0})
415414
if val is None:
416415
return False
416+
417417
self.software_version = val
418418
self.version_str = "Detected GM65 Scanner, SW:" + str(val)
419+
419420
if val == VERSION_NEEDS_RAW:
420421
val = self.get_setting(RAW_MODE_ADDR)
421422
if val is None:

0 commit comments

Comments
 (0)