Implement setting lamp brightnesses

This commit is contained in:
2024-12-29 00:34:04 +01:00
parent 91ee137ff5
commit 4625f4a016
3 changed files with 13 additions and 8 deletions

4
app.go
View File

@@ -3,6 +3,7 @@ package main
import ( import (
"context" "context"
"io" "io"
"log"
"net/http" "net/http"
"regexp" "regexp"
"strconv" "strconv"
@@ -61,15 +62,18 @@ func (a *App) GetLamps() (lamps []string) {
} }
func (a *App) SetLampBrightness(lampId int, brightness int) string { func (a *App) SetLampBrightness(lampId int, brightness int) string {
log.Printf("Setting lamp %d to %d", lampId, brightness)
resp, err := http.Get("http://" + IP + "/lamp/" + strconv.Itoa(lampId) + "?n=" + strconv.Itoa(brightness)) resp, err := http.Get("http://" + IP + "/lamp/" + strconv.Itoa(lampId) + "?n=" + strconv.Itoa(brightness))
if err != nil { if err != nil {
runtime.LogError(a.ctx, err.Error()) runtime.LogError(a.ctx, err.Error())
log.Printf("Error: %s", err.Error())
return "" return ""
} }
defer resp.Body.Close() defer resp.Body.Close()
body, err := io.ReadAll(resp.Body) body, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
runtime.LogError(a.ctx, err.Error()) runtime.LogError(a.ctx, err.Error())
log.Printf("Error: %s", err.Error())
return "" return ""
} }
return string(body) return string(body)

View File

@@ -1,13 +1,14 @@
<script lang="ts"> <script lang="ts">
export let brightnessChange = (brightness: number) => {}; export let brightnessChange = (lamp: number, brightness: number) => {};
export let lamp: number;
export let brightness: number; export let brightness: number;
let timer: number; let timer: number;
function handleBrightnessChange(event: Event) { function handleBrightnessChange(event: Event) {
clearTimeout(timer); clearTimeout(timer);
timer = setTimeout(() => { timer = setTimeout(() => {
brightness = event.target?.value || 0; brightness = Number(event.target?.value);
brightnessChange(brightness); brightnessChange(lamp, brightness);
}, 300); }, 300);
} }
</script> </script>

View File

@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import Lamp from "../../components/Lamp.svelte"; import Lamp from "../../components/Lamp.svelte";
import { GetLamps } from "$wails/main/App"; import { GetLamps, SetLampBrightness } from "$wails/main/App";
let lamps: number[] = [0, 0]; let lamps: number[] = [0, 0];
GetLamps().then(apilamps => { GetLamps().then(apilamps => {
@@ -10,14 +10,14 @@
} }
}); });
function handleBrightnessChange(brightness: number) { function handleBrightnessChange(lamp: number, brightness: number) {
console.log(brightness); SetLampBrightness(lamp, brightness);
} }
</script> </script>
<template> <template>
<div class="flex flex-row justify-center items-center"> <div class="flex flex-row justify-center items-center">
<Lamp brightness={lamps[0]} brightnessChange={handleBrightnessChange} /> <Lamp lamp={1} brightness={lamps[0]} brightnessChange={handleBrightnessChange} />
<Lamp brightness={lamps[1]} brightnessChange={handleBrightnessChange} /> <Lamp lamp={2} brightness={lamps[1]} brightnessChange={handleBrightnessChange} />
</div> </div>
</template> </template>