Долгая реакция на повторное событие от модулей ввода

Так в итоге же вы работаете черзе wb-homa-gpio? Если да, то похоже на баг в wb-homa-gpio. Совсем скоро будет новая бета, там как раз переделывали кусок работы с прерываниями. Должно стать лучше.

да, на wb-homa-gpio. Будет интересно протестировать изменения.

1 лайк

Есть ли обновление wb-homa-gpio с решением этой проблемы?
Использую коммит 7d91b1b со своим патчем.

git master 3ede8f6 не собирается - где найти зависимости?

root@wb:~/wb-homa-gpio# make
g++ -c main.cpp -o main.o   -Wall -DNDEBUG -std=c++14 -Os -I.
In file included from main.cpp:2:0:
gpio_driver.h:5:32: fatal error: wblib/declarations.h: No such file or directory
 #include <wblib/declarations.h>
                                ^
compilation terminated.
Makefile:50: recipe for target 'main.o' failed
make: *** [main.o] Error 1

Судя по всему ничего не изменилось. В последней прошивке такая-же долгая реакция на переключение группы контактов, первый переключается сразу, следующие с задержкой до секунды

Надо установить libwbmqtt1-dev

Попробуйте версию 2.0.8 из unstable .Здесь описано как устанавливать.

Не помогло. тыц

Расскажите, что это на видео, пожалуйста.

В данном случае ваш контроллер WB6 эмулирует своего более старого собрата ADAM 5510 с управлением через сеть PLCNET. Да наверное надо было вам дать видео с веб-морды WB6, но поверьте там реакция такая-же. Модуль реле DO-R10A-8, модуль дискретных входов DI-WD-14. Сигнал с реле8 размыкает сухой контакт EXT1_IN9, на видео видно, что при переключении Relay8 сигнал на EXT1_IN9 меняется быстро. (Я с клавиатуры записываю в поле “Значение переменной” 0 или 1. Сам момент записи виден по смене текста на True, False) Relay2 размыкает сухой контакт на входах EXT1_IN1, EXT1_IN3, EXT1_IN5 и EXT1_IN7. Тут видно что после переключения реле один из контактов мгновенно меняет свое состояние, остальные меняют состояние с задержкой до секунды. Веб

Теперь понятно, будем разбираться.

Не появилось ли решение проблемы?

собрал wb-mqtt-gpio (master), задержка имеется.

Сетап такой: двухклавишный выключатель, два входа DI-WD-14 в nodered привязаны к двум реле, управляют LED лентами.
Клац по двум клавишам сразу - одно реле сразу щелкает, второе тупит.

Workaround все тот же, поставил поменьше интервал в gpio_driver.cpp:
const auto EPOLL_TIMEOUT_MS = 100;

чуть лучше, но все равно заметно подтупливание.

1 лайк

А можете вместо этого просто поставить последнюю версию из apt, переключившись перед этим на testing репозиторий?

И ядро тоже свежее поставьте пожалуйста, тоже apt-ом

Поддержу коллегу. В testing новое ядро, которое лучше обрабарывает такие события от gpio.

wb-mqtt-gpio/testing 2.4.0 armhf [upgradable from: 2.1.0]
поставил. Тупит.

testing 2.4.0 из чего собрана? GitHub - wirenboard/wb-homa-gpio: wb-homa-gpio драйвер еще актуален? Последний коммит в мастер 3ede8f64, Tue Nov 3 19:13:37 2020

Как посмотреть diff между 2.1.0 и 2.4.0?

Как я уже писал, проблема в ядре. У вас оно обновилось?
uname -a что выдаёт?

Ура, на 5.10.35-wb3 проблема не проявляется.

Рано обрадовался. На ядре 5.10 не запускается zigbee2mqtt (1.18.3-13-gbaeac6fa) :frowning: