Source code for ws_barcode_scanner.barcode_scanner

from datetime import datetime
from typing import List

from ws_barcode_scanner.memory_map import MemoryMap
from ws_barcode_scanner.serial_port import SerialPort


[docs]class BarcodeScanner: __serial_port: SerialPort __last_code: bytes __last_timestamp: datetime memory_map: MemoryMap """ Interface to the device memory """ def __init__(self, serial_port: str): self.__serial_port = SerialPort(serial_port) self.memory_map = MemoryMap(self.__serial_port) self.__last_code = b"" self.__last_timestamp = datetime.now()
[docs] def save_to_flash(self) -> None: """Save the current settings to the persistent flash memory""" self.__serial_port.save_to_flash()
[docs] def restore_factory_settings(self) -> None: """Restore factory settings""" self.__serial_port.restore_factory_settings()
[docs] def query_for_codes(self) -> List[bytes]: """Query for scanned codes""" response = self.__serial_port.read_all().strip() if response: codes = response.split(b"\r") self.__last_code = codes[-1] self.__last_timestamp = datetime.now() return codes return []
@property def last_code(self) -> bytes: """The last scanned barcode""" return self.__last_code @property def last_timestamp(self): """The timestamp when the last barcode was scanned (startup time if no code was scanned yet)""" return self.__last_timestamp