From 07acc2777c375b481381f340cef7a7808f5c2cdc Mon Sep 17 00:00:00 2001 From: Stefan Kratochwil Date: Tue, 16 Dec 2025 22:40:13 +0100 Subject: [PATCH] feat: last connected tag uid available at /api/v1/last_tag_uid --- software/src/app.py | 4 ++++ software/src/webserver.py | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/software/src/app.py b/software/src/app.py index 871e03d..f57847f 100644 --- a/software/src/app.py +++ b/software/src/app.py @@ -63,6 +63,7 @@ class PlayerApp: self._onIdle() def __del__(self): + print("app __del__") if self.mp3file is not None: self.mp3file.close() self.mp3file = None @@ -190,3 +191,6 @@ class PlayerApp: self.timer_manager.cancel(self.onIdleTimeout) self.leds.set_state(self.leds.PLAYING) self.playing = True + + def get_nfc(self): + return self.nfc diff --git a/software/src/webserver.py b/software/src/webserver.py index 8769bf0..327357a 100644 --- a/software/src/webserver.py +++ b/software/src/webserver.py @@ -11,13 +11,15 @@ webapp = Microdot() server = None config = None app = None +nfc = None def start_webserver(config_, app_): - global server, config, app + global server, config, app, nfc server = asyncio.create_task(webapp.start_server(port=80)) config = config_ app = app_ + nfc = app.get_nfc() @webapp.before_request @@ -64,3 +66,9 @@ async def config_put(request): except ValueError as ex: return str(ex), 400 return '', 204 + + +@webapp.route('/api/v1/last_tag_uid', methods=['GET']) +async def last_tag_uid_get(request): + tag, _ = nfc.get_last_uid() + return "No tag present" if tag is None else tag