From 739f3ec5b4ea31bfc5573062d4afd03434a68235 Mon Sep 17 00:00:00 2001 From: Tango Date: Wed, 3 Jun 2026 17:55:26 +0100 Subject: [PATCH] Added basic PIN to web interface, partially implemented back-end --- app.py | 2 ++ www/index.html | 2 ++ www/main.js | 7 ++++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index 9f1a6bb..7a74f2b 100644 --- a/app.py +++ b/app.py @@ -60,11 +60,13 @@ def transmit(): action = ACTION_MAP[data['action']] intensity = int(data.get('intensity', 0)) lucal = bool(data.get('lucalEncoded', False)) + pin = int(data['shockerPin']) # If any of those failed, return an error. except (ValueError, KeyError): return {'success': False, 'message': 'Request must contain the following keys:\n'+ 'txID: int,\n'+ 'channel: int,\n'+ + 'pin: int,\n'+ 'action: "shock", "vibrate" or "beep",\n'+ 'intensity (optional): int\n'+ 'lucalEncoded (optional): bool'}, 400 diff --git a/www/index.html b/www/index.html index ba4c1fd..a354a43 100644 --- a/www/index.html +++ b/www/index.html @@ -18,6 +18,8 @@

LucalEncoded?

+

PIN

+

Shock


diff --git a/www/main.js b/www/main.js index 9efd66b..7e42090 100644 --- a/www/main.js +++ b/www/main.js @@ -24,13 +24,13 @@ function assert(condition, message) { } } -async function transmit(transmitterID, channel, action, intensity=0, lucalEncoded=false) { +async function transmit(transmitterID, channel, action, intensity=0, lucalEncoded=false, shockerPin) { assert(typeof transmitterID === 'number'); assert(typeof channel === 'number'); assert(['shock', 'vibrate', 'beep'].includes(action)); assert(typeof intensity === 'number'); assert(typeof lucalEncoded === 'boolean'); - POST('/transmit', {transmitterID: transmitterID, channel: channel, action: action, intensity: intensity, lucalEncoded: lucalEncoded}); + POST('/transmit', {transmitterID: transmitterID, channel: channel, action: action, intensity: intensity, lucalEncoded: lucalEncoded, shockerPin: shockerPin}); } @@ -39,7 +39,8 @@ async function txFromUI(action, intensity=0) { let transmitterID = Number(document.getElementById('transmitterIDInput').value); let channel = Number(document.getElementById('channelIDInput').value); let lucalEncoded = document.getElementById('lucalEncodedInput').checked; - transmit(transmitterID, channel, action, intensity, lucalEncoded); + let shockerPin = document.getElementById('shockerPinInput').value; + transmit(transmitterID, channel, action, intensity, lucalEncoded, shockerPin); } async function shock() {