Цитата Сообщение от RV9WFJ Посмотреть сообщение
не хочется думать о энергонезависимом хранении
В СПК1хх [М01] 64 Кб Retain, в следующих контроллерах должно быть не меньше.
Если предположить, что одна тревога занимает 10 байт (метки времени появления/квитирования/исчезновения, DWORD на ID и DWORD на регистр статуса), то хранение 500 тревог займет < 10% Retain.
Можно по факту возникновения сразу писать тревоги на USB/SD, а в Retain хранить историю за последнюю неделю.

Можно конечно подумать в сторону библиотеки CmpDynamicText но еще надо проверить, а будут ли тексты динамически изменяться в AlarmManager после подгрузки новых текстов из кода.
Будут, проверял.

Еще одна задача, чтобы не дублировать проверки - это получить состояние конкретной аварии из списка AlarmManager. Пока приходится в коде дублировать проверку условия из настройки Alarma если при наступлении аварии надо что-то сделать
Я делаю так: условие аварии собираю в коде. Для каждой аварии получаю переменную типа BOOL.
Все условия тревог делаю дискретными, и к ним привязываю эти переменные.
Таким образом, дублирования условий не происходит.

Также список тревог с их настройками можно экспортировать/импортировать в .csv - зачастую проще в нем руками внести изменения.