Synapse
Telegram GitHub →

Прошивка. Логика работы. ПНР

АПК Синапс v1.0. ПО. Спецификации на разработку

Последнее изменение: 14.12.2025, 13:26 МСК

ПНР - настройки меняющиеся райне редко. Как правило только при установке системы.

В данном документе речь идёт только об изменениях данных USM, относящихся к ПНР. Остальные данные рассматриваются в других документах:

1. Изменение ПНР-параметров контроллера

1.1. Изменение имени, иконки и пароля контроллера — это изменение полей CONTROLLERS.NAME, CONTROLLERS.ICO_NUM, CONTROLLERS.PASSWORD (отдельные поля, не в IDATA).

1.2. Приложение отправляет телеграмму с изменёнными полями контроллера.

1.3. Если изменилось имя или иконка контроллера:

1.4. Про изменение других полей CONTROLLERS — в других разделах описания логики.

2. Инициализация линии DALI

2.1. Инициализация стартуется телеграммой с изменением CONTROLLERS.STATUS = I.

2.2. При получении этой телеграммы прошивка:

2.3. Прошивка производит инициализацию светильников:

2.4. Прошивка инициализирует сцены 0-4 во всех DALI-светильниках и своей FW-USM (таблица SCENE_LUMINAIRES):

2.5. Прошивка производит инициализацию устройств управления (датчики, кнопочные панели):

2.6. После завершения инициализации прошивка:

3. Расширение линии DALI

3.1. Расширение стартуется телеграммой с изменением CONTROLLERS.STATUS = E (расширение).

3.2. Расширение производится аналогично инициализации, но без сброса FW-USM.

3.3. На время расширения у CONTROLLERS IS_SCHEDULE и IS_AUTO выставляются в 0.

3.4. Прошивка:

3.5. Новые устройства добавляются с дефолтными параметрами без локации и группы.

4. Замена устройства в линии DALI

4.1. На время замены у CONTROLLERS IS_SCHEDULE и IS_AUTO выставляются в 0.

4.2. Вышедшие из строя устройства заменяются поштучно:

4.3. Замена стартуется телеграммой с изменением LUMINAIRES[i].STATUS = C (или PRES_SENSORS[i].STATUS = C и т.д.).

4.4. Прошивка находит устройства того же типа без привязки (новые).

4.5. Если найдено несколько устройств нужного типа прошивка выставляет у устройства .STATUS = F и шлет телегу-ответку.

4.6. Если найдено одно новое устройство нужного типа:

4.7. Если устройство не найдено, у него ставится статус F.

4.8. Прошивка рассылает изменения всем телефонам.

5. Изменение параметров устройств

5.1. Светильники

5.1.1. Рабочие: MAX_LEVEL, MIN_LEVEL, FADE_TIME.

5.1.2. IDATA: имя, иконка, позиция.

5.2. Датчики присутствия

5.2.1. Рабочие: HOLD_TIME.

5.2.2. IDATA: имя.

5.3. Датчики освещённости

5.3.1. IDATA: имя.

5.4. Кнопочные панели и кнопки

5.4.1. IDATA: имя.

6. Локации и распределение по ним устройств

6.1. Создание локации: приложение отправляет телеграмму с изменением LOCATIONS[i].EXIST = 1 для свободного слота. При этом в телеге возможны и другие изменения, в том числе в IDATA, где хранится имя локации. Значения у IS_AUTO и SCENE_NUM устанавливаются по умолчанию.

6.2. Помещение устройства в локацию: приложение отправляет телеграмму с изменением LUMINAIRES[j].LOCATION_ID = i. Аналогично для кнопок и датчиков.

6.3. Удаление локации: приложение отправляет телеграмму с изменением LOCATIONS[i].EXIST = 0. Если в локации есть устройства, всем им прошивкой назначается в FW-USM LOCATIONS_ID = -1.

7. Группы и распределение по ним устройств

7.1. Создание группы: приложение отправляет телеграмму с изменением GROUPS[i].EXIST = 1 и GROUPS[i].LOCATION_ID = loc (или -1 для корня). При этом в телеге возможны и другие изменения, в том числе в IDATA, где хранится имя группы.

7.2. Добавление светильника в группу: приложение отправляет телеграмму с изменением LUMINAIRES[j].GROUP_ID = i. Прошивка отправляет DALI-команду присвоения светильника группе i.

7.3. Удаление группы: приложение отправляет телеграмму с изменением GROUPS[i].EXIST = 0. Прошивка убирает у всех светильников с GROUP_ID = i привязку к группе (GROUP_ID = -1), если группа привязана к датчику освещенности, ставит у датчика GROUP_ID = -1 и отправляет соответствующие DALI-команды. Удаляются все поддействия, в которых фигурирует эта группа (если поддействие в действии одно - удаляется и действие)

8. Добавление/удаление поддействия в/из действия

8.1. Опишем процесс добавления поддействия в действие здесь и сразу, т.к. он позже будет встречаться несколько раз.

8.2. Добавление поддействия — телега с записью SUBACTIONS[j]:

8.3. Удаление поддействия — SUBACTIONS[j].ACTION_ID = -1.

9. Назначение действий на датчики присутствия

9.1. Назначение на присутствие — PRES_SENSORS[i].ACTION_OCCUPANCY_ID = j (j — ID действия из числа свободных).

9.2. Снятие назначения на присутствие:

9.3. Назначение на отсутствие — PRES_SENSORS[i].ACTION_VACANCY_ID = j (j — ID действия из числа свободных).

9.4. Снятие назначения на отсутствие:

9.5. После этого пользователь добавляет в действие поддействия (см. раздел 8), но это уже отдельные телеги.

10. Привязка датчиков освещённости к группам светильников

10.1. Приложение отправляет телеграмму с изменением BRIGHT_SENSORS[i].GROUP_ID = j.

10.2. Прошивка последовательно переводит светильники группы в сцены 0-4 (DALI-команды).

10.3. Для каждой сцены N (0-4) прошивка:

11. Назначение действий на настенные кнопки

11.1. Короткое нажатие (набор действий)

11.1.1. Добавление действия в набор:

11.1.2. Пересортировка действий в наборе:

11.1.3. После добавления действия пользователь добавляет в действие поддействия (см. раздел 8), но это уже отдельные телеги.

11.1.4. Удаление действия из набора:

11.2. Долгое нажатие (одно действие)

11.2.1. Добавление действия на долгое нажатие:

11.2.2. После добавления действия пользователь добавляет в действие поддействия (см. раздел 8), но это уже отдельные телеги.

11.2.3. Удаление действия: