From 19b42223f5174b12762c127da233e8c9fd8ca95c Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 16 Jan 2023 23:41:58 +0100 Subject: [PATCH] webapp: Show current active pin config --- src/WebApi_device.cpp | 22 ++++++++++++- webapp/src/components/PinInfo.vue | 45 +++++++++++++++++--------- webapp/src/locales/de.json | 3 +- webapp/src/locales/en.json | 4 ++- webapp/src/locales/fr.json | 3 +- webapp/src/types/DeviceConfig.ts | 4 ++- webapp/src/views/DeviceAdminView.vue | 48 +++++++++++++++------------- 7 files changed, 87 insertions(+), 42 deletions(-) diff --git a/src/WebApi_device.cpp b/src/WebApi_device.cpp index 96b9557..0e26dae 100644 --- a/src/WebApi_device.cpp +++ b/src/WebApi_device.cpp @@ -4,6 +4,7 @@ */ #include "WebApi_device.h" #include "Configuration.h" +#include "PinMapping.h" #include "WebApi.h" #include "WebApi_errors.h" #include "helper.h" @@ -32,8 +33,27 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request) AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); JsonObject root = response->getRoot(); const CONFIG_T& config = Configuration.get(); + const PinMapping_t& pin = PinMapping.get(); - root[F("dev_pinmapping")] = config.Dev_PinMapping; + JsonObject curPin = root.createNestedObject("curPin"); + curPin[F("name")] = config.Dev_PinMapping; + + JsonObject nrfObj = curPin.createNestedObject("nrf24"); + nrfObj[F("clk")] = pin.nrf24_clk; + nrfObj[F("cs")] = pin.nrf24_cs; + nrfObj[F("en")] = pin.nrf24_en; + nrfObj[F("irq")] = pin.nrf24_irq; + nrfObj[F("miso")] = pin.nrf24_miso; + nrfObj[F("mosi")] = pin.nrf24_mosi; + + JsonObject ethObj = curPin.createNestedObject("eth"); + ethObj[F("enabled")] = pin.eth_enabled; + ethObj[F("phy_addr")] = pin.eth_phy_addr; + ethObj[F("power")] = pin.eth_power; + ethObj[F("mdc")] = pin.eth_mdc; + ethObj[F("mdio")] = pin.eth_mdio; + ethObj[F("type")] = pin.eth_type; + ethObj[F("clk_mode")] = pin.eth_clk_mode; response->setLength(); request->send(response); diff --git a/webapp/src/components/PinInfo.vue b/webapp/src/components/PinInfo.vue index 019a1d3..e3946b5 100644 --- a/webapp/src/components/PinInfo.vue +++ b/webapp/src/components/PinInfo.vue @@ -6,64 +6,78 @@ {{ $t('pininfo.Category') }} {{ $t('pininfo.Name') }} - {{ $t('pininfo.Number') }} + {{ $t('pininfo.ValueSelected') }} + {{ $t('pininfo.ValueActive') }} NRF24 MISO - {{ pinAssignment?.nrf24?.miso }} + {{ selectedPinAssignment?.nrf24?.miso }} + {{ currentPinAssignment?.nrf24?.miso }} MOSI - {{ pinAssignment?.nrf24?.mosi }} + {{ selectedPinAssignment?.nrf24?.mosi }} + {{ currentPinAssignment?.nrf24?.mosi }} CLK - {{ pinAssignment?.nrf24?.clk }} + {{ selectedPinAssignment?.nrf24?.clk }} + {{ currentPinAssignment?.nrf24?.clk }} IRQ - {{ pinAssignment?.nrf24?.irq }} + {{ selectedPinAssignment?.nrf24?.irq }} + {{ currentPinAssignment?.nrf24?.irq }} EN - {{ pinAssignment?.nrf24?.en }} + {{ selectedPinAssignment?.nrf24?.en }} + {{ currentPinAssignment?.nrf24?.en }} CS - {{ pinAssignment?.nrf24?.cs }} + {{ selectedPinAssignment?.nrf24?.cs }} + {{ currentPinAssignment?.nrf24?.cs }} Ethernet enabled - {{ pinAssignment?.eth?.enabled }} + {{ selectedPinAssignment?.eth?.enabled }} + {{ currentPinAssignment?.eth?.enabled }} phy_addr - {{ pinAssignment?.eth?.phy_addr }} + {{ selectedPinAssignment?.eth?.phy_addr }} + {{ currentPinAssignment?.eth?.phy_addr }} power - {{ pinAssignment?.eth?.power }} + {{ selectedPinAssignment?.eth?.power }} + {{ currentPinAssignment?.eth?.power }} mdc - {{ pinAssignment?.eth?.mdc }} + {{ selectedPinAssignment?.eth?.mdc }} + {{ currentPinAssignment?.eth?.mdc }} mdio - {{ pinAssignment?.eth?.mdio }} + {{ selectedPinAssignment?.eth?.mdio }} + {{ currentPinAssignment?.eth?.mdio }} type - {{ pinAssignment?.eth?.type }} + {{ selectedPinAssignment?.eth?.type }} + {{ currentPinAssignment?.eth?.type }} clk_mode - {{ pinAssignment?.eth?.clk_mode }} + {{ selectedPinAssignment?.eth?.clk_mode }} + {{ currentPinAssignment?.eth?.clk_mode }} @@ -82,7 +96,8 @@ export default defineComponent({ CardElement, }, props: { - pinAssignment: { type: Object as PropType, required: true }, + selectedPinAssignment: { type: Object as PropType, required: true }, + currentPinAssignment: { type: Object as PropType, required: true }, }, }); diff --git a/webapp/src/locales/de.json b/webapp/src/locales/de.json index c84bf39..bd411cd 100644 --- a/webapp/src/locales/de.json +++ b/webapp/src/locales/de.json @@ -481,6 +481,7 @@ "PinOverview": "Anschlussübersicht", "Category": "Kategorie", "Name": "Name", - "Number": "Nummer" + "ValueSelected": "Ausgewählt", + "ValueActive": "Aktiv" } } \ No newline at end of file diff --git a/webapp/src/locales/en.json b/webapp/src/locales/en.json index 4db8002..58212c8 100644 --- a/webapp/src/locales/en.json +++ b/webapp/src/locales/en.json @@ -481,6 +481,8 @@ "PinOverview": "Connection overview", "Category": "Category", "Name": "Name", - "Number": "Number" + "Number": "Number", + "ValueSelected": "Selected", + "ValueActive": "Active" } } \ No newline at end of file diff --git a/webapp/src/locales/fr.json b/webapp/src/locales/fr.json index cb9e0af..774c1b9 100644 --- a/webapp/src/locales/fr.json +++ b/webapp/src/locales/fr.json @@ -481,6 +481,7 @@ "PinOverview": "Connection overview", "Category": "Category", "Name": "Name", - "Number": "Number" + "ValueSelected": "Selected", + "ValueActive": "Active" } } \ No newline at end of file diff --git a/webapp/src/types/DeviceConfig.ts b/webapp/src/types/DeviceConfig.ts index d75e6e1..51b967b 100644 --- a/webapp/src/types/DeviceConfig.ts +++ b/webapp/src/types/DeviceConfig.ts @@ -1,3 +1,5 @@ +import type { Device } from "./PinMapping"; + export interface DeviceConfig { - dev_pinmapping: string; + curPin: Device; } \ No newline at end of file diff --git a/webapp/src/views/DeviceAdminView.vue b/webapp/src/views/DeviceAdminView.vue index 621e17d..1cc0648 100644 --- a/webapp/src/views/DeviceAdminView.vue +++ b/webapp/src/views/DeviceAdminView.vue @@ -4,28 +4,28 @@ {{ alertMessage }} -
- - -