Есть еще один вариант (и я его думаю пока):
Добавить к каждому каналу признак синхронизации, тогда получаем однозначность и гибкость - надо что-бы канал синхрился, взводим галочку ![:)](https://reefcentral.ru/forum/public/style_emoticons/default/smile3.gif)
Остановился на вот этом варианте.
Переключатель у канала для ведомого контроллера, значения:
0 - не синхронизировать
1 - online (как в предыдущем сообщении)
2 - offline (как в предыдущем сообщении)
в случае если канал синхронизируется, то:
для типа канала LED синхронизируются параметры:
1. имя
2. тип
3. принадлежность к группе каналов
4. суточный график
5. цветовая легенда отображения графика
не синхронизируются:
1. инверсия канала
2. Частота ШИМ
3. Глубина ШИМ
для типа канала Timer синхронизируются параметры:
1. имя
2. тип
3. принадлежность к группе каналов
4. суточный график
5. принадлежность к типу дозирование.
не синхронизируются:
1. инверсия канала
для типа канала Fan синхронизируются параметры:
1. имя
2. тип
3. принадлежность к группе каналов
4. Минимальная температура
5. Максимальная температура
не синхронизируются:
1. инверсия канала
2. холосты обороты.
3. ID температурного сенсора
для типа канала Dosing (Дозирующая помпа) синхронизируются параметры:
1. имя
2. тип
3. принадлежность к группе каналов
4. производительность помпы ml/h
5. суточное дозирование ml/day
6. объем емкости.
не синхронизируются:
1. инверсия канала
Синхронизация групп.
Если какой либо канал имеет признак синхронизации, то группа к которой он принадлежит также будет синхронизирована.
для групп каналов синхронизируются параметры:
1. имя группы
2. пороговое значение температуры температурной аварии
3. число шагов при аварии.
4. интервал шагов аварии.
не синхронизируются:
1. ID температурного сенсора
UPD:
забыл добавить: что-бы не сильно нагружать мастер контроллер синхронизация осуществляется раз в 10сек последовательно:
1. синхронизируем LED каналы, ждем 10 сек.
2. синхронизируем таймеры, ждем ...
3. вентиляторы, жем...
4. дозаторы, ждем...
5. группы, ждем... и по новой.