Форум » » Сохранение логики » Ответить

Сохранение логики

RuckShot1: Добрый день! Хотел поинтересоваться как поступать нужно в таких случаях! Есть куча логики и сценариев на устройствах с ИК управлением. Статус Вкл и Выкл хранится при помощи модулей Interlock, And, Or и т.д. Но это в прицнипе не важно. Логика сама работает хорошо! Но вот если к примеру необходимо перегрузить контроллер или перезалить его, то все статусы естественно уходят в ноль и приходиться ходить и в ручную все статусы восстанавливать. Как поступать правильно в таких случаях? где то хранить иди как? Спасибо!

Ответов - 9

Igor: RuckShot1, для сохранения в энергонезависимой памяти контроллера значений бинарных переменных можно использовать символ Digital RAM. Отключение/включение питания и перезагрузку программы переживает хорошо, заливку вновь скомпилированной пограммы - нет.

RuckShot1: Добрый день! Прошу помощи небольшой... перечитал и перевел весь хэлп по работе с элементов Digital RAM, но как только не пробовал не работает у меня сохранение.. Если не сложно, можете мне подсказать куда и что и в какой вход нужно посылать, или мож скрин примера есть. Есть у меня к примеру Power_On Power_On_fb Power_Off Power_Off_fb как мне правильно провести через Digital Ram, feed'бэки сохранялись при простой перезагрузки процессора? Спасибо большое!

eoulianov: Не храните статус в двух переменных: вот окажется и Power_On_fb=0 и Power_Off_fb=0, будете думать, как все это обрабатывать) Сделайте аналоговый PowerStatus=1 для on, и 2 для off, получайте его из analog initialize, храните в analog ram со всеми 1, и используйте явно или в analog equate - и будет счастье. Если хочется хранить от перезагрузок цифровой сигнал, то digital ram для этого не айс, потому что этот же сигнал может быть проинициализирован и из других модулей, откуда он выходит. Тут нужен S+ и восстановление значения после waitUntilInitializationComplete()


RuckShot1: Такая ситуация как оба равны нуля возникает часто)) Я в принципе понял как сделать, но есть еще вопрос.. Получается картина следующая: Я Power On fb и Power Off fb завожу на analog initialize c выходным значением PowerStatus = 1d или 2d соотвественно. Таким образом я храню PowerStatus в Analog Ram и перезагрузки мне не страшны. 1 - Это значит Вкл устройство 2 - Выкл устройство и после перезагрузки будут восстанавливаться статусы через analog equate?? Я прикрепил картинку, так я понимаю логику или нет?? http://shot.qip.ru/00calQ-2XDaoSYRO/ Спасибо!

eoulianov: Выкиньте interlock, суйте на analog initialize power_on и power_off (не _fb). По этому рисунку вам будет warning про jamming: с одной стороны сигналами управляет interlock и _fb должны быть в соответствии со входами interlock, с другой - через analog equate. В этом случае прокатит, исполняться будет правильно, только компилируется с warning, но в другой раз вы получите сложнопонимаемый баг)

RuckShot1: все понял) спасибо! поехал попробую реализовать)

RuckShot1: Добрый день! Решил в эту же тему написать про сохранение Serial значений. Допустим мне надо в RAM записать значение радио частоты на кнопку. Как это можно реализовать? Serial RAM как я понял из документации не совсем для этих нужд, и как не пробовал он не сохраняет значения... Скачал с сайта крестрона пример динамических пресетов, где они через текстовый файл сохраняют прессеты.. Но как то он не работает, как не крути. Может есть какой то простой способ просто ввести цифрами частоту и чтобы Serial хранилось в RAM. Спасибо!

eoulianov: 1. Храните уже аналоговые частоты, а не текстовые строки. Эти строки, они ж поди где-то формируются из аналогового значения - подправьте мозги тому модулю - это "правильный" с точки зрения программирования вариант. 2. Настраивайте пресеты с морды - пусть их хранит сам тюнер, если он на это способен, это рекомендуемый вариант. Как писать файлы? Разберитесь, этот полезный опыт. Для записывания файлов потребуется либо карта памяти, либо NVRAM disc, и сообразно этому путь, куда его записывать. Чтобы ввести цифрами частоту - Numeric Keypad, чтобы сделать из неё строковую команду - Analog to Serial. Какой у вас, наконец, тюнер?)

RuckShot1: Понял, все учту) У меня получается тогда не писались файлы так как нет карты памяти отдельной в MC2E, там только флеш внутренняя.. А тюнер Russound ST2) Он сохраняет пресеты, только там 6 банков и в каждом банке по 6 пресетов, неудобно очень! не понимаю для чего так сделали)



полная версия страницы