Не работает пункт меню создания и сохранения JS файлов

Добрый день! Не работает пункт меня работы с JS файлами.

Катинка вот такая. Два файла там были. При попытки создать и сохранить новый

картинка такая

В файле конфигурации оборудования есть дублирующие строки и одинаковые адреса. Это почему так?

hardware.state (403 байта)

Конфигурация:

8.5 контроллер.

Модуль вывода WBIO-DO-R1G-16 1 штука

WBE2-DI-DR-3 1 штука

WBE2-DO-R6C-1 штука

Термодатчик (в вашей интерпретации это 1 однопроводный термометр).

Кстати - термометр и термодатчик это не одно и тоже. Термометр это пассивный показывающий прибор для измерения температуры. Пример: Медицинский термометр.

Так что у вас написано однопроводный градусник. :laughing: Слово термометр надо заменить на термодатчик. Однопроводный - это уж точно не надо писать.

Сброс на заводские настройки ничего не дал.

Файл dump

приложен диагностический архив, доступен только сотрудникам поддержки
(179,1 КБ)

Через контролы релюшки клацают правильно. Термодатчик t отображает.

Скорее всего что-то программное, но это мой домысел.

На моей практике такое случалось когда правило грузило напрочь систему.

Попробуйте через SCP освободить директорию /mnt/data/etc/wb-rules и перезагрузить сервис с помощью команды systemctl restart wb-rules

Спасибо! Danke schon! Thanks.

Загрузку системы не посмотрел в процессе проблемной истории. А надо было.

Все сделал, как вы написали.

Разбираюсь далее. Работал с двумя файлами JS. Первый давно написал, со вторым работал.

И в первом обнаружил такой косяк с часто вызываемым таймером. В упрощенном варианте.

MyTimer = setInterval(function() {
// Сигнальная лампа
dev[‘wb-gpio/EXT1_K9’] = step23;
clearTimeout(MyTimer);
MyTimer=null;
},10000);

Т.е. в теле timer я его обнулял. Это ошибка или некорректно совсем конечно. Если это ошибка, то почему компилятор пропустил? Timer MyTimer работал нормально.

И если это ошибка - она могла быть накапливающаяся, приведшая к таким последствиям?

В С проблема была с мусором.

И вспоминаю, что в процессе работы с файлом JS у меня контроллер кажется перегрузился, потому что сообщения соответствующие в отладчике повылазили. Но это не могло быть из-за питания.

Без полного правила тяжело понять контекст, но к такому кусочку есть вопрос - а зачем вызывать setInterval и убивать его, если можно выполнить код разово с помощью setTimeout.

К тому же при таком подходе можно «отменить» предыдущую задержку если ещё не успела наступить - достаточно перед эти блоком кода добавить строку if (MyTimer) clearTimeout(MyTimer);