Из простого устройства проект превратился в какое-то сумбурное нагромождение счетчиков и задержек, которые между собой не дружат.
Вы не описываете весь алгоритм, как единое целое. Добавил то, добавил это... Не описываете, как вести себя во всех ситуациях, например, отзвонились 6 раз, а что дальше? А если шлейф восстановился? По новой или уже все? А если при отсчете часа от первого шлейфа, произошло нарушение второго? Звонок вне очереди или это нарушение игнорируется... Наверно я сам должен догадаться или решить. Но Вы зря рассчитываете на то, что у меня точно такое видение работы сигнализации, как и у Вас... В прошивке много моментов, которые я решил на свое усмотрение, так как описание не содержит подробного и четкого алгоритма действий во всех возможных ситуациях. Вижу во многих случаях не угадал и понимаю, что по мере тестирования, Вы еще будете выявлять такие "ошибки".
---
Давайте начнем с чистого листа. Этот проект я удаляю (мне, чтобы корректно внедрить новый счетчик, все равно надо добрую половину прошивки переписать), а Вы, с учетом уже практических испытаний, опишете
подробно, что и как должно работать. (Чего не будет в описании, того не будет и в прошивке.)
Для таких случаев у меня есть специально разработанные
правила. Ознакомьтесь, пожалуйста, а я подожду описание.