системная информация

This commit is contained in:
Dmitry Borisenko
2022-02-08 21:42:40 +01:00
parent b0d66cb776
commit 407c213610
4 changed files with 129 additions and 29 deletions

View File

@@ -2,5 +2,6 @@ module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {})
},
}

View File

@@ -12,15 +12,18 @@
import DashboardPage from "./pages/Dashboard.svelte";
import ConfigPage from "./pages/Config.svelte";
import ConnectionPage from "./pages/Connection.svelte";
import ListPage from "./pages/List.svelte";
import SystemPage from "./pages/System.svelte";
import UtilitiesPage from "./pages/Utilities.svelte";
import LogPage from "./pages/Log.svelte";
import ListPage from "./pages/List.svelte";
import AboutPage from "./pages/About.svelte";
import CloudIcon from "./svg/Cloud.svelte";
//****************************************************constants section*********************************************************/
//******************************************************************************************************************************/
let version = 400;
let debug = true;
let LOG_MAX_MESSAGES = 10;
let reconnectTimeout = 30000;
@@ -238,6 +241,7 @@
let statusJson = JSON.parse(data);
udatelayoutJson(statusJson);
wigetsUpdate();
if (debug) console.log(statusJson);
if (debug) console.log("✔", "statusJson parced");
}
}
@@ -281,7 +285,6 @@
delete errorsJson.errors;
errorsJson = errorsJson;
errorsJsonParced = true;
handleErrors();
if (debug) console.log("✔", "errorsJson json parced");
}
}
@@ -552,6 +555,7 @@
function wigetsUpdate() {
findNewPage();
layoutJson = layoutJson;
}
//***********************************************************logging******************************************************************/
@@ -769,14 +773,6 @@
wsSendMsg(selectedWs, "/scan");
}
let wsClientsError = false;
function handleErrors() {
if (errorsJson.wscle === 1) {
wsClientsError = true;
}
}
let rebootingInProgress = false;
const myTimeout = undefined;
@@ -803,9 +799,9 @@
</script>
<div class="flex flex-col h-screen bg-gray-50">
{#if wsClientsError}
<Modal header={"Ошибка"} text={"Слишком много клиентов было открыто. Допускается не более четырех. Для исчезновения ошибки перезагрузите устройство"} />
{/if}
<!--{#if errorsJson.wscle === 1}-->
<!--<Modal header={"Ошибка web sockets"} text={"Слишком много клиентов было открыто. Допускается не более четырех. Для исчезновения ошибки перезагрузите устройство"} />-->
<!--{/if}-->
{#if rebootingInProgress}
<Progress />
{/if}
@@ -842,18 +838,21 @@
<li>
<a class="menu__item" href="/connection">{"Подключение"}</a>
</li>
<li>
<a class="menu__item" href="/utilities">{"Утилиты"}</a>
</li>
<li>
<a class="menu__item" href="/log">{"Лог"}</a>
</li>
<li>
<a class="menu__item" href="/list">{"Устройства"}</a>
</li>
<li>
<a class="menu__item" href="/about">{"О проекте"}</a>
<a class="menu__item" href="/system">{"Системные"}</a>
</li>
<!--<li>-->
<!--<a class="menu__item" href="/utilities">{"Утилиты"}</a>-->
<!--</li>-->
<!--<li>-->
<!--<a class="menu__item" href="/log">{"Лог"}</a>-->
<!--</li>-->
<!--<li>-->
<!--<a class="menu__item" href="/about">{"О проекте"}</a>-->
<!--</li>-->
</ul>
</nav>
@@ -872,15 +871,19 @@
<Route path="/connection">
<ConnectionPage settingsJson={settingsJson} errorsJson={errorsJson} ssidJson={ssidJson} rebootEsp={() => rebootEsp()} ssidDropdownClick={() => ssidDropdownClick()} saveSettings={() => saveSettings()} />
</Route>
<Route path="/utilities">
<UtilitiesPage />
</Route>
<Route path="/log">
<LogPage coreMessages={coreMessages} />
</Route>
<Route path="/about">
<AboutPage wigetsUpdate={wigetsUpdate} layoutJson={layoutJson} showModal={() => showModal()} syntaxHighlight={(json) => syntaxHighlight(json)} />
<Route path="/system">
<SystemPage settingsJson={settingsJson} errorsJson={errorsJson} rebootEsp={() => rebootEsp()} version={version} />
</Route>
<!--<Route path="/utilities">-->
<!--<UtilitiesPage />-->
<!--</Route>-->
<!--<Route path="/log">-->
<!--<LogPage coreMessages={coreMessages} />-->
<!--</Route>-->
<!--<Route path="/about">-->
<!--<AboutPage wigetsUpdate={wigetsUpdate} layoutJson={layoutJson} showModal={() => showModal()} syntaxHighlight={(json) => syntaxHighlight(json)} />-->
<!--</Route>-->
{/if}
<Route path="/list">
<ListPage deviceList={deviceList} showInput={showInput} devListSave={() => devListSave()} newDevice={newDevice} />

View File

@@ -110,7 +110,7 @@
</Card>
</div>
<div class="grd-1col1">
<Card title="Дополнительные опции">
<Card>
<button class="btn-lg" on:click={() => rebootEsp()}>{"Перезагрузить устройство"}</button>
</Card>
</div>

96
src/pages/System.svelte Normal file
View File

@@ -0,0 +1,96 @@
<script>
import Card from "../components/Card.svelte";
import Alarm from "../components/Alarm.svelte";
export let version;
export let errorsJson;
export let rebootEsp = () => {};
</script>
<div class="grd-2col1">
<Card title="Системная информация">
<div class="crd-itm-psn">
<div class="w-3/4">
<p class="wgt-dscr-stl">Версия прошивки</p>
</div>
<div class="flex justify-center w-1/4">
<p class="text-gray-500 font-bold">{errorsJson.bver}</p>
</div>
</div>
<div class="crd-itm-psn">
<div class="w-3/4">
<p class="wgt-dscr-stl">Версия файловой системы</p>
</div>
<div class="flex justify-center w-1/4">
<p class="text-gray-500 font-bold">{version}</p>
</div>
</div>
<div class="crd-itm-psn">
<div class="w-3/4">
<p class="wgt-dscr-stl">Время работы устройства</p>
</div>
<div class="flex justify-center w-1/4">
<p class="text-gray-500 font-bold">{errorsJson.upt}</p>
</div>
</div>
<div class="crd-itm-psn">
<div class="w-3/4">
<p class="wgt-dscr-stl">Качество WiFi сигнала</p>
</div>
<div class="flex justify-center w-1/4 text-xs sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words">
{#if errorsJson.rssi === 0}
<p class="text-red-500 font-bold">не подключено</p>
{/if}
{#if errorsJson.rssi === 1}
<p class="text-red-500 font-bold">нет сигнала</p>
{/if}
{#if errorsJson.rssi === 2}
<p class="text-red-500 font-bold">очень низкий</p>
{/if}
{#if errorsJson.rssi === 3}
<p class="text-yellow-500 font-bold">низкий</p>
{/if}
{#if errorsJson.rssi === 4}
<p class="text-yellow-500 font-bold">хороший</p>
{/if}
{#if errorsJson.rssi === 5}
<p class="text-green-500 font-bold">очень хороший</p>
{/if}
{#if errorsJson.rssi === 6}
<p class="text-green-500 font-bold">отличный</p>
{/if}
</div>
</div>
<div class="crd-itm-psn">
<div class="w-3/4">
<p class="wgt-dscr-stl">Остаток оперативной памяти</p>
</div>
<div class="flex justify-center w-1/4">
<p class="text-green-500 font-bold">{errorsJson.heap}</p>
</div>
</div>
</Card>
<Card title="Системные ошибки">
<div class="grd-3col1">
{#if errorsJson.wscle === 1}
<Alarm title={"Ошибка web sockets"}>
<p>Слишком много клиентов было открыто. Допускается не более четырех. Для исчезновения ошибки перезагрузите устройство</p>
</Alarm>
{/if}
{#if errorsJson.bver != version}
<Alarm title={"Ошибка версии"}>
<p>Версия файловой системы не совпадает с версией прошивки</p>
</Alarm>
{/if}
{#if errorsJson.rssi < 3 && errorsJson.rssi > 0}
<Alarm title={"WiFi"}>
<p>Уровень сигнала WiFi предельно низкий, веб интерфейс может работать со сбоями и потерей данных, рекомендуется переместить устройство ближе к роутеру</p>
</Alarm>
{/if}
</div>
</Card>
</div>
<div class="grd-1col1">
<Card>
<button class="btn-lg" on:click={() => rebootEsp()}>{"Перезагрузить устройство"}</button>
</Card>
</div>