Appearance
Interval timer
Интервальный таймер срабатывает периодически через IntervalMs: начальное состояние (Value), счётчик срабатываний и сохранение пользовательских настроек.
Настройки
ts
export const IntervalTimerSettingsSchema = z.object({
settings: z.object({
/** Счётчик срабатываний таймера. */
Counter: z.number(),
/** Интервал между срабатываниями (миллисекунды). */
IntervalMs: z.number(),
/** Сохранять пользовательские настройки (0/1). */
SaveUserSettings: z.number(),
/** Начальное состояние таймера (NO_CHANGES/ACTIVE/UNACTIVE). */
Value: z.nativeEnum(EIntervalTimerInitialValue),
}),
});Логика и команды
★ — значение по умолчанию (чем предзаполнена форма / что выбрано при создании).
События — когда объект владелец реакции
- время (
MSG_TIME) ★
Действия — когда объект выбран целью действия
запустить (CMD_START_TIMER) ★
- полей нет: команда без параметров
перезапустить (CMD_RESTART_TIMER)
- полей нет: команда без параметров
остановить (CMD_STOP_TIMER)
- полей нет: команда без параметров
настроить (CMD_SETUP)
- настройка (
__field_0) — intervalTimerWidget; ★
приостановить (CMD_PAUSE_TIMER)
- полей нет: команда без параметров
продолжить (CMD_RESUME_TIMER)
- полей нет: команда без параметров
обновить (CMD_UPDATE)
- полей нет: команда без параметров
Условия — когда объект связан в кейсе реакции
- состояние (
State) ★- операторы:
- «находится в состоянии» (
eq) ★ - «не находится в состоянии» (
neq)
- «находится в состоянии» (
- значение — список:
- «работает» ★
- «выключен»
- «приостановлен»
- операторы:
ts
/** Мета виджета CMD_SETUP для деклараций (адаптер строит поле с kind: "root"). */
export const IntervalTimerSetupWidgetFieldMeta = {
[ActionTypeIntervalTimer.CMD_SETUP]: {
timer: {
widget: "intervalTimerWidget" as const,
label: IntervalTimerSetupWidgetLabel,
timerSetup: {
fields: IntervalTimerSetupFieldLabels,
valueMap: IntervalTimerSetupValueMap,
},
},
},
};Мета виджета становится полем с persistence kind: "root": в actionData.values пишется сам объект виджета, без обёртки в ключ поля (см. Additional data команд).
Драйвер-линки
★ — поле по умолчанию в новой связи.
Поля объекта для связи с драйвером
| Поле | Чт. | Зап. |
|---|---|---|
| значение ★ | ✓ | ✓ |
| количество повторений | ✓ | ✓ |
| интервал | ✓ | ✓ |
| обновить (служебный канал) | ✓ | — |
| авария (служебный канал) | ✓ | — |
Связи только на чтение у драйверов: SNMP, PING.
Хранение
Сохраняется в таблице project_objects через RepositoryObject (Dexie).
Mentioned In
None yet.