переписана страница ошибок в динамический вид

This commit is contained in:
Dmitry Borisenko
2022-02-11 16:49:34 +01:00
parent 34d26bbe1d
commit 325aed2217
3 changed files with 126 additions and 97 deletions

View File

@@ -803,18 +803,8 @@
function cancelAlarm(alarmKey) {
console.log("[x]", alarmKey);
if (alarmKey === "wscle") {
errorsJson.wscle = 0;
wsSendMsg(selectedWs, '/rorre|{"wscle":0}');
}
if (alarmKey === "jsbuf") {
errorsJson.jsbuf = 0;
wsSendMsg(selectedWs, '/rorre|{"jsbuf":0}');
}
if (alarmKey === "jserr") {
errorsJson.jserr = 0;
wsSendMsg(selectedWs, '/rorre|{"jserr":0}');
}
errorsJson[alarmKey] = 0;
wsSendMsg(selectedWs, '/rorre|{"' + alarmKey + '":0}');
}
//*******************************************************initialisation********************************************************************/
onMount(async () => {

View File

@@ -84,9 +84,9 @@
<p class="wgt-dscr-stl">Состояние подключения</p>
</div>
<div class="flex justify-center w-3/6 align-baseline text-sm sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words">
{#if errorsJson.mqtt === 0}
{#if errorsJson.mqtt === "e5"}
<p class="text-green-500 font-bold h-8 bg-green-50 border-2 border-gray-200 rounded w-full text-center">Подключено</p>
{:else if errorsJson.mqtt === 8}
{:else if errorsJson.mqtt === "e13"}
<p class="text-yellow-500 font-bold h-8 bg-yellow-50 border-2 border-gray-200 rounded w-full text-center">Подключение</p>
{:else}
<p class="text-red-500 font-bold h-8 bg-red-50 border-2 border-gray-200 rounded w-full text-center">Ошибка</p>

View File

@@ -1,4 +1,115 @@
<script>
const wifiState = {
0: "не подключено",
1: "нет сигнала",
2: "очень низкий",
3: "низкий",
4: "хороший",
5: "очень хороший",
6: "отличный",
};
const systemErrorsRus = {
mqtt: {
e1: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Нет ответа от сервера",
cancel: false,
},
e2: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Соединение было разорвано",
cancel: false,
},
e3: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Ошибка соединения. Обычно возникает когда неверно указано название сервера MQTT",
cancel: false,
},
e4: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Клиент был отключен",
cancel: false,
},
e6: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Ошибка версии",
cancel: false,
},
e7: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Отклонен идентификатор",
cancel: false,
},
e8: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Не могу установить соединение",
cancel: false,
},
e9: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Неправильное имя пользователя/пароль",
},
e10: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Не авторизован для подключения",
cancel: false,
},
e11: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Название сервера пустое",
cancel: false,
},
e12: {
descr: "Ошибка mqtt",
color: "text-red-500",
txt: "Имя пользователя или пароль пустые",
cancel: false,
},
e13: {
descr: "Mqtt",
color: "text-red-500",
txt: "Подключение в процессе",
cancel: false,
},
},
wse1: {
1: {
descr: "Ошибка веб сокетов",
color: "text-red-500",
txt: "Слишком много клиентов было открыто. Допускается не более четырех.",
cancel: true,
},
},
jse1: {
1: {
descr: "Ошибка json",
color: "text-red-500",
txt: "Недостаточный размер буфера библиотеки Arduino Json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику.",
cancel: true,
},
},
jse2: {
1: {
descr: "Ошибка json",
color: "text-red-500",
txt: "Ошибка записи/чтения json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику.",
cancel: true,
num: true,
},
},
};
import Card from "../components/Card.svelte";
import Alarm from "../components/Alarm.svelte";
export let version;
@@ -73,89 +184,17 @@
</Card>
<Card title="Системные ошибки">
<div class="grd-2col1">
<!--Ошибки которые можно сбросить пользователю, связанные с ядром-->
{#if errorsJson.wscle === 1}
<Alarm title={"Ошибка web sockets"} cross={true} close={() => cancelAlarm("wscle")}>
<p class="break-words text-center">Слишком много клиентов было открыто. Допускается не более четырех.</p>
</Alarm>
{/if}
{#if errorsJson.jsbuf === 1}
<Alarm title={"Ошибка json"} cross={true} close={() => cancelAlarm("jsbuf")}>
<p class="break-words text-center">Недостаточный размер буфера библиотеки Arduino Json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику</p>
</Alarm>
{/if}
{#if errorsJson.jserr > 0}
<Alarm title={"Ошибка json"} cross={true} close={() => cancelAlarm("jserr")}>
<p class="break-words text-center">Ошибка записи/чтения json. Устройство может вести себя непредсказуемо. Количество ошибок: {errorsJson.jserr}. Обратитесь к разработчику.</p>
</Alarm>
{/if}
<!--Ошибки которые нельзя сбросить пользователю-->
{#if errorsJson.bver != version}
<Alarm title={"Ошибка версии"}>
<p class="break-words text-center">Версия файловой системы не совпадает с версией прошивки. Вероятно произошла ошибка во время обновления устройства по воздуху.</p>
</Alarm>
{/if}
{#if errorsJson.rssi < 3 && errorsJson.rssi > 0}
<Alarm title={"WiFi"}>
<p class="break-words text-center">Уровень сигнала WiFi предельно низкий, веб интерфейс может работать со сбоями и потерей данных, рекомендуется переместить устройство ближе к роутеру</p>
</Alarm>
{/if}
<!--MQTT ошибки-->
{#if errorsJson.mqtt === -4}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Нет ответа от сервера</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === -3}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Соединение было разорвано</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === -2}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Ошибка соединения. Обычно возникает когда неверно указано название сервера MQTT</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === -1}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Клиент был отключен</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === 1}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Ошибка версии</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === 2}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Отклонен идентификатор</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === 3}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Не могу установить соединение</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === 4}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Неправильное имя пользователя/пароль</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === 5}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Не авторизован для подключения</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === 6}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Название сервера пустое</p>
</Alarm>
{/if}
{#if errorsJson.mqtt === 7}
<Alarm title={"MQTT"}>
<p class="break-words text-center">Имя пользователя или пароль пустые</p>
</Alarm>
{/if}
<!--ошибки-->
{#each Object.entries(errorsJson) as [key, param]}
{#if key in systemErrorsRus && param in systemErrorsRus[key]}
<Alarm title={systemErrorsRus[key][param].descr} cross={systemErrorsRus[key][param].cancel} close={() => cancelAlarm(key)}>
<p class="break-words text-center">{systemErrorsRus[key][param].txt}</p>
{#if systemErrorsRus[key][param].num}
<p class="break-words text-center">{"Количество: " + errorsJson[key + "n"]}</p>
{/if}
</Alarm>
{/if}
{/each}
</div>
</Card>
</div>