From 72e2522dcd845e68a57b0bece48bdaf2acacf6c2 Mon Sep 17 00:00:00 2001 From: Niklas Jensen Date: Fri, 30 Jan 2026 14:56:15 +0100 Subject: [PATCH] Updated mdns to use protobufs (completely untested) --- app/src/lib/types/models.ts | 29 ----- app/src/routes/wifi/mdns/MDNS.svelte | 31 +++-- esp32/include/filesystem.h | 5 - esp32/include/mdns_service.h | 16 ++- esp32/include/settings/mdns_settings.h | 155 ++++++------------------- esp32/src/main.cpp | 18 +-- esp32/src/mdns_service.cpp | 105 ++++++++++------- platform_shared/api.options | 25 ++++ platform_shared/api.proto | 56 +++++++++ 9 files changed, 221 insertions(+), 219 deletions(-) diff --git a/app/src/lib/types/models.ts b/app/src/lib/types/models.ts index 04617c9..614f29e 100644 --- a/app/src/lib/types/models.ts +++ b/app/src/lib/types/models.ts @@ -91,35 +91,6 @@ export type ServoConfiguration = { servos: Servo[] } -export interface MDNSServiceQuery { - services: MDNSServiceItem[] -} - -export interface MDNSServiceItem { - ip: string - port: number - name: string -} - -export interface MDNSService { - service: string - protocol: string - port: number -} - -export interface MDNSTxtRecord { - key: string - value: string -} - -export interface MDNSStatus { - started: boolean - hostname: string - instance: string - services: MDNSService[] - global_txt_records: MDNSTxtRecord[] -} - export interface Result { success: boolean error?: string diff --git a/app/src/routes/wifi/mdns/MDNS.svelte b/app/src/routes/wifi/mdns/MDNS.svelte index 899a1f6..ff16a18 100644 --- a/app/src/routes/wifi/mdns/MDNS.svelte +++ b/app/src/routes/wifi/mdns/MDNS.svelte @@ -6,33 +6,46 @@ import StatusItem from '$lib/components/StatusItem.svelte' import { cubicOut } from 'svelte/easing' import { slide } from 'svelte/transition' - import type { MDNSStatus, MDNSServiceItem, MDNSServiceQuery } from '$lib/types/models' + import { + type MDNSStatus, + type MDNSQueryResult, + Request, + type Response as ProtoResponse + } from '$lib/platform_shared/api' import { compareIp } from '$lib/utilities' - let mdnsStatus: MDNSStatus | undefined = $state() - let services: MDNSServiceItem[] = $state([]) + let mdnsStatus = $state() + let services = $state([]) let isLoading = $state(false) const getMDNSStatus = async () => { - const result = await api.get('/api/mdns/status') + const result = await api.get('/api/mdns/status') if (result.isErr()) { console.error('Error:', result.inner) return } - mdnsStatus = result.inner + if (result.inner.mdnsStatus) { + mdnsStatus = result.inner.mdnsStatus + } } const queryMDNSServices = async () => { isLoading = true - const result = await api.post('/api/mdns/query', { - service: 'http', - protocol: 'tcp' + const request = Request.create({ + mdnsQueryRequest: { + service: 'http', + protocol: 'tcp' + } }) + const result = await api.post_proto('/api/mdns/query', request) if (result.isErr()) { console.error('Error:', result.inner) + isLoading = false return } - services = result.inner.services.sort((a, b) => compareIp(a.ip, b.ip)) + if (result.inner.mdnsQueryResponse) { + services = result.inner.mdnsQueryResponse.services.sort((a, b) => compareIp(a.ip, b.ip)) + } isLoading = false } diff --git a/esp32/include/filesystem.h b/esp32/include/filesystem.h index cfc7650..140801a 100644 --- a/esp32/include/filesystem.h +++ b/esp32/include/filesystem.h @@ -8,13 +8,8 @@ #define ESP_FS LittleFS -#define AP_SETTINGS_FILE "/config/apSettings.json" -#define CAMERA_SETTINGS_FILE "/config/cameraSettings.json" #define FS_CONFIG_DIRECTORY "/config" #define DEVICE_CONFIG_FILE "/config/peripheral.json" -#define WIFI_SETTINGS_FILE "/config/wifiSettings.json" -#define SERVO_SETTINGS_FILE "/config/servoSettings.json" -#define MDNS_SETTINGS_FILE "/config/mdnsSettings.json" namespace FileSystem { diff --git a/esp32/include/mdns_service.h b/esp32/include/mdns_service.h index 8f49e91..d8d4c54 100644 --- a/esp32/include/mdns_service.h +++ b/esp32/include/mdns_service.h @@ -1,18 +1,18 @@ #pragma once #include -#include #include #include