2025-01-06 20:49:33 +01:00

3.8 KiB

Scanner Service und Frontend Software (Kugelstoßmeeting Rochlitz)

  • Geschrieben von Mario Voigt (2024 - 2025)
  • License: MIT

WARNUNG: UGLY SOFTWARE. Das ist ein "works for me" Projekt

Konzept

Achtung: Frontend und Scan-Service müssen auf die gleiche Datenbankdatei konfiguriert werden!

Installation

Siehe auch https://pypi.org/project/cysystemd/

Fedora:

dnf install -y systemd-devel python3-venv
sudo usermod -G dialout -a $USER #den aktuellen User zu dialout hinzufügen

Ubuntu:

apt install build-essential libsystemd-dev systemd-dev python3-venv
sudo usermod -G dialout -a $USER #den aktuellen User zu dialout hinzufügen
cd /opt/
git clone https://gitea.fablabchemnitz.de/vmario/kugelstossmeeting-ticketing.git
cd kugelstossmeeting-ticketing/
python3 -m venv venv
venv/bin/pip install -r requirements.txt

USB Scanner betriebsbereit machen

USB-Geräte anzeigen und nach Scanner prüfen:

lsusb -v
#idVendor           0x0581 Racal Data Group
#idProduct          0x0115 Tera 5100
lsusb
#Bus 003 Device 003: ID 0581:0115 Racal Data Group Tera 5100

USB-Gerät Berechtigungen anpassen:

vim /etc/udev/rules.d/55-barcode-scanner.rules
# Set permissions to let anyone use barcode scanner
SUBSYSTEM=="usb", ATTR{idVendor}=="0581", ATTR{idProduct}=="0115", MODE="666"

Änderungen übernehmen:

udevadm control --reload-rules && udevadm trigger

Dienst starten und prüfen:

ln -sf /etc/systemd/system/usb-scanner.service /opt/kugelstossmeeting-ticketing/usb-scanner.service
systemctl enable usb-scanner.service --now
journalctl -f -u usb-scanner.service

Codes scannen

Folgende Codes scannen wir ein, um den Scanner korrekt zu konfigurieren: QR Code Config

Der Scanner kann zurückgesetzt werden, indem wir ihn per QR Code ausschalten und vom USB-Port trennen.

Datenbankoperationen

Datenbank per Shell leeren:

Fedora:

sudo dnf install sqlite3

Ubuntu:

sudo apt install sqlite3
sqlite3 kugelstossmeeting-prod.db "DELETE FROM tickets;"
sqlite3 kugelstossmeeting-prod.db "DELETE FROM scans;"
sqlite3 kugelstossmeeting-prod.db "VACUUM;"

Datenbank per DB Browser for SQLite bearbeiten/ansehen:

Fedora:

sudo dnf install sqlitebrowser

Ubuntu:

sudo apt install sqlitebrowser

DB Browser for SQLite DB Browser for SQLite DB Browser for SQLite

GUI starten

/opt/kugelstossmeeting-ticketing/venv/bin/python3 /opt/kugelstossmeeting-ticketing/sqlite.py

... oder

/opt/kugelstossmeeting-ticketing/sqlite.py #siehe python3 Header

... oder die .desktop-Verknüpfung benutzen

GUI

Notwendig für den Betrieb

  • Notebook mit Netzteil
  • USB Scanner mit USB-C Kabel
  • Stempel + Stempelfarbe
  • Alle Tickets als PDF-Backup (falls es nicht klappt)
  • eine aktuell befüllte SQ-Lite Datenbank

Mögliche Verbesserungen der Software

  • SQLite DB gegen netzwerkfähige MySQL/PGSQL tauschen und multimandantenfähig machen (2 Rechner, 2 Barcode Scanner)
  • Programm so beschränken, dass es nicht mehrfach gestartet werden kann (PID Kontrolle o.ä.)
  • siehe Code-Kommentare
  • TK GUI modernisieren