Так в итоге же вы работаете черзе wb-homa-gpio? Если да, то похоже на баг в wb-homa-gpio. Совсем скоро будет новая бета, там как раз переделывали кусок работы с прерываниями. Должно стать лучше.
да, на wb-homa-gpio. Будет интересно протестировать изменения.
Есть ли обновление 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
Расскажите, что это на видео, пожалуйста.
В данном случае ваш контроллер 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;
чуть лучше, но все равно заметно подтупливание.
А можете вместо этого просто поставить последнюю версию из 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)