Add led pin setting

This commit is contained in:
jimmy 2025-06-04 20:03:51 +12:00
parent 0b6eb9724f
commit 42e92dafc8
3 changed files with 22 additions and 1 deletions

View File

@ -59,7 +59,7 @@ class Settings(dict):
elif key == "color2": elif key == "color2":
patterns.set_color2(tuple(int(value[i:i+2], 16) for i in self.color_order)) # Convert hex to RGB patterns.set_color2(tuple(int(value[i:i+2], 16) for i in self.color_order)) # Convert hex to RGB
elif key == "num_leds": elif key == "num_leds":
patterns.update_num_leds(4, value) patterns.update_num_leds(self["led_pin"], value)
elif key == "pattern": elif key == "pattern":
if not patterns.select(value): if not patterns.select(value):
return "Pattern doesn't exist", 400 return "Pattern doesn't exist", 400
@ -78,6 +78,8 @@ class Settings(dict):
else: self.color_order = (1, 3, 5) else: self.color_order = (1, 3, 5)
elif key == "id": elif key == "id":
pass pass
elif key == "led_pin":
patterns.update_num_leds(value, self["num_leds"])
else: else:
return "Invalid key", 400 return "Invalid key", 400
self[key] = value self[key] = value

View File

@ -156,6 +156,12 @@ async function updateID(event) {
sendWebSocketData({ id: parseInt(id) }); sendWebSocketData({ id: parseInt(id) });
} }
async function updateLedPin(event) {
event.preventDefault();
const ledpin = document.getElementById("led_pin").value;
sendWebSocketData({ led_pin: parseInt(ledpin) });
}
function createPatternButtons(patterns) { function createPatternButtons(patterns) {
const container = document.getElementById("pattern_buttons"); const container = document.getElementById("pattern_buttons");
container.innerHTML = ""; // Clear previous buttons container.innerHTML = ""; // Clear previous buttons
@ -191,6 +197,9 @@ document.addEventListener("DOMContentLoaded", async function () {
.addEventListener("submit", updateNumLeds); .addEventListener("submit", updateNumLeds);
document.getElementById("name_form").addEventListener("submit", updateName); document.getElementById("name_form").addEventListener("submit", updateName);
document.getElementById("id_form").addEventListener("submit", updateID); document.getElementById("id_form").addEventListener("submit", updateID);
document
.getElementById("led_pin_form")
.addEventListener("submit", updateLedPin);
document.getElementById("delay").addEventListener("touchend", updateDelay); document.getElementById("delay").addEventListener("touchend", updateDelay);
document document
.getElementById("brightness") .getElementById("brightness")

View File

@ -100,6 +100,16 @@
/> />
<input type="submit" value="Update Number of LEDs" /> <input type="submit" value="Update Number of LEDs" />
</form> </form>
<form id="led_pin_form" method="post" action="/led_pin">
<label for="num_leds">Led pin:</label>
<input
type="text"
id="led_pin"
name="led_pin"
value="{{settings['led_pin']}}"
/>
<input type="submit" value="Update Led Pin" />
</form>
<p>Mac address: {{mac}}</p> <p>Mac address: {{mac}}</p>
</div> </div>
<div id="connection-status"></div> <div id="connection-status"></div>