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

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: { plugins: {
tailwindcss: {}, tailwindcss: {},
autoprefixer: {}, autoprefixer: {},
...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {})
}, },
} }

View File

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

View File

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