РЕКЛАМА НА ФОРУМХАУС Извините, что теоретизирую, но с точки зрения теории надежности проблема в вашем случае в том, что различные случайные события - мороз, отключение электроэнергии, выход из строя транзистора, поломка автозапуска и т. д получаются связанными между собой. Т. е. вероятность того, что эти события произойдут в одно и то же время очень сильно отличается от нуля. И даже такая фигня как, "Ооо, генератор накрывается - Ааа фиг с ним, починю, когда нибудь потом, счас же свет есть?" ведет к такому эффекту. В этом случае такая вещь, как избыточность (а генератор в добавок к центральному электроснабжению - именно пример такой избыточности) просто не работает - вы могли бы с тем же успехом генератор не ставить вообще. Избыточность подразумевает и работает только в том случае, если вышеуказанные события независимы. Т. е. отключение света или мороз не связаны с поломками генератора. И именно для этого и существует профилактика - из-за нее вероятность наступления события "сгоревший транзистор" перестает быть зависима от вероятности наступления события "отключение электричества". И тогда вероятность одновременного возникновения двух независимых случайных событий P = P1 * P2. Т. е. все эти ваши "внезапные" отказы тоже прекрасно покрываются избыточностью, но "практиканты" накладывают свой негативный отпечаток.
Логику можно настроить, не проблема. Ноя не видел уже готовых подобных систем. Под ключ как говорится.
Чувствуется непонимание: - работа самой 1-wire основана на формировании импульсов различной длительности, ее нельзя ускорить, хоть на чем хотите пишите. И пока идет процесс чтения-записи чего-то в линию - этот процесс надо как-то контролировать, чем собственно контроллер и занят. Это не софт медленно выполняется из-за языка, это он линию ждет. Можно попытаться написать собственный вариант, с контролем состояния линии и возвратом в основную процедуру, распараллеливая процессы - ну так собственные варианты много чего можно делать, смысл-то не в том, чтобы изобрести новый велосипед, а в том, чтобы доехать из пункта А в пункт Б на том, на чем удобнее ехать сейчас.
Вы не могли бы подробнее раскрыть свою мысль по поводу того, как профилактика (и какая именно) может сделать наступление случайного события типа "сгоревший транзистор" менее вероятным? Ну кроме вариантов "не включать вообще" (вероятность = 0) и "включить постоянно" (факт отказа генератора просигнализирует, что транзистор сгорел независимо от факта отключения энергии). Нет, я знаю как с подобными проблемами бороться - я вам об этом уже написал раньше, но вдруг есть способ с помощью некой профилактики снизить вероятность случайных поломок аппаратуры? Нобелевку поделим.
Закажите систему у любого инсталлятора КНХ...тот же asakharov вам сделает всё "под ключ" и от возможностей крыша поедет...
Чувствуется непонимание, что 1-wire мастер занимает не более 1% процессорного времени любого современного МК, а основная нагрузка на процессор возникает из-за того, что процессор просто ждет событие. И что пока драйвер 1-wire выжидает определенную выдержку времени или какой либо импульс, он может переключиться на выполнение другой задачи, например обработку запроса от Modbus Мастера. Есть вагон и маленькая тележка таких реализаций, которые в зависимости от требований/квалификации разработчика могут делаться с помощью: - Прерываний - от таймера до пина. Обработка 1-wire только в обработчике прерываний - Средств операционной системы (заменяем delay на sleep) - автоматов состояний case/switch. В общем случае такие реализации называются "неблокирующими", т. е. обработчик не блокирует выполнение основной программы. Для 1-wire есть такие реализации тоже, только чтобы это реализовать, нужно обладать эмбеддерским мышлением, а ардуинщики в основном IoT шники.
@lingvo, да, я так и написал Есть готовая вещь, которая выполняет задачу - но она тупо ждет, что вызывает проблемы. Я смотрел код, и вижу почему. Не из-за языка программирования - а потому что задача так ставилась. И можно сделать правильно - но это надо разбираться самому и делать. Весь вопрос только в том, насколько надо во всем разбираться самому. Или лучше взять что-то иное, устраивающее на 95%, а на оставшиеся 5% забить, как неиспользуемые в заданном диапазоне условий. У меня ведь задача не в том, чтобы написать правильный драйвер для конкретного протокола, а в том, чтобы результат заданный получить при минимуме усилий и затрат. И да, это "другой подход". Можно взять 8 флагов-признаков, упаковать их в байт и занять 1 байт памяти - и это будет правильно. Особенно если делать библиотеку для дальнейшего применения. А можно выделить 8 int (32-разрядных, например), хранить в них 0 и 1, иии - все будет зависить от задачи: если в процессоре после этого остается еще целых 2000 байт свободных, а конкретная задача решается - то это приемлемо
Возможно, этого зверя еще не трогал. То, что для него делают корпуса с вентиляторами - факт, а это жырный минус, вентиляторы шумят. С другой стороны - там вроде бы нормальная ОС, и это неплохо. С третьей стороны - если народ перепрошивает роутеры на OpenWRT, а оно клон Линукса - то почему китайцы до сих пор не сделали какое-нибудь WRTino? С таким же процессором, только изначально сделанное как микрокомпьютер-конструктор? Или сделали, просто я не знаю?
Какая из ? Почемуж не делают? Делают! С тулкитом! На любой процесссор..., только, я думаю, Вам цена не понравится . - евалюэйшн борд называется .
Любая на базе линукса Это значит, что на ней скорее всего заработает большинство стандартных известных программ, насколько памяти хватит. И что там с ценой не так? Навскидку показывает от 200 до 1500 рублей за платы с такими названиями - осталось только найти, которое из них уровня той же ардуины, а которое уже и ОС потянет. И врядли она будет стоить дороже роутера-из-коробки. Не, ну конечно, если поискать - можно и за 1005000 найти, наверное...
Это необходимо только для различных видео-серверов, NASов, и торрентов. А в умном доме вам вряд ли удастся нагрузить RPi больше чем на 1% даже со всеми протоколами и веб-серверами (ожидание 1-wire не в счет ). Поэтому тут он прекрасно обходится без вентиляторов и зарекомендовал себя отличной машинкой 24/7 для УД.
В среднем загрузка процессора - 5% В пиках до 9% Это если программа работает на питоне. А если питона нет, то 1-2% В остальном полностью с вами согласен.
Спасибо советам умных людей - переписал процедурки работы с 1-wire, теперь они с модбасом дружат. А то уже собирался вместо термосенсоров диоды использовать. Тоже работают, кстати, неплохо, только 0 C выставлять надо для каждого, или будет точность +- пара градусов.