From 8c6cc785137489bb786eb00a895c633a1d51b932 Mon Sep 17 00:00:00 2001 From: xengineering Date: Mon, 19 Oct 2020 17:37:34 +0200 Subject: Implement Keymap --- barcode_transmit_daemon.py | 21 ++++++++++++++------- iot_barcode_scanner/static.py | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 7 deletions(-) mode change 100644 => 100755 barcode_transmit_daemon.py diff --git a/barcode_transmit_daemon.py b/barcode_transmit_daemon.py old mode 100644 new mode 100755 index 4edb72d..624550e --- a/barcode_transmit_daemon.py +++ b/barcode_transmit_daemon.py @@ -4,6 +4,7 @@ """Executable to transmit the Barcode Data to MQTT without root Priviledges""" +from iot_barcode_scanner.static import KEYMAP import iot_barcode_scanner.config as config from iot_barcode_scanner.mqtt import MqttService @@ -20,15 +21,21 @@ def main(): mqtt_service = MqttService(cfg) mqtt_service.run() + barcode = "" + while True: with open(fifo_path, "r") as fifo: - text = fifo.read() - mqtt_service.client.publish( - topic, - payload=text, - qos=0, - retain=False - ) + keycode = fifo.read() + character = KEYMAP[keycode] + barcode += character + if character is "\n": + mqtt_service.client.publish( + topic, + payload=barcode, + qos=0, + retain=False + ) + barcode = "" except KeyboardInterrupt: pass diff --git a/iot_barcode_scanner/static.py b/iot_barcode_scanner/static.py index d81b00b..af76683 100644 --- a/iot_barcode_scanner/static.py +++ b/iot_barcode_scanner/static.py @@ -4,3 +4,17 @@ CONFIG_PATH = "/etc/xengineering.eu/iot_barcode_scanner/config.json" + +KEYMAP = { + "KEY_0": "0", + "KEY_1": "1", + "KEY_2": "2", + "KEY_3": "3", + "KEY_4": "4", + "KEY_5": "5", + "KEY_6": "6", + "KEY_7": "7", + "KEY_8": "8", + "KEY_9": "9", + "KEY_ENTER": "\n", +} -- cgit v1.2.3-70-g09d2