Appearance
Direct timer
Таймер прямого отсчёта срабатывает по расписанию: режим (ETimerModeType), время срабатывания (Hour/Minute), дни недели (Mo–Fr, Sa, Su) и счётчик срабатываний.
Настройки
ts
export const DirectTimerSettingsSchema = z.object({
settings: z.object({
/** Сохранять пользовательские настройки (0/1). */
SaveUserSettings: z.number(),
/** Год срабатывания. */
Year: z.number(),
/** Месяц срабатывания. */
Month: z.number(),
/** День срабатывания. */
Day: z.number(),
/** Час срабатывания. */
Hour: z.number(),
/** Минута срабатывания. */
Minute: z.number(),
/** Счётчик срабатываний таймера. */
Counter: z.number(),
/** Режим работы таймера. */
Mode: z.nativeEnum(ETimerModeType),
/** Начальное состояние таймера. */
Value: z.nativeEnum(DirectTimerStateValue),
/** Понедельник. */
Mo: z.union([z.literal(0), z.literal(1)]),
/** Вторник. */
Tu: z.union([z.literal(0), z.literal(1)]),
/** Среда. */
We: z.union([z.literal(0), z.literal(1)]),
/** Четверг. */
Th: z.union([z.literal(0), z.literal(1)]),
/** Пятница. */
Fr: z.union([z.literal(0), z.literal(1)]),
/** Суббота. */
Sa: z.union([z.literal(0), z.literal(1)]),
/** Воскресенье. */
Su: z.union([z.literal(0), z.literal(1)]),
}),
});Логика и команды
★ — значение по умолчанию (чем предзаполнена форма / что выбрано при создании).
События — когда объект владелец реакции
- время (
MSG_TIME) ★
Действия — когда объект выбран целью действия
запустить (CMD_START_TIMER) ★
- полей нет: команда без параметров
остановить (CMD_STOP_TIMER)
- полей нет: команда без параметров
настроить (CMD_SETUP)
- настройка (
__field_0) — directTimerWidget; ★
обновить (CMD_UPDATE)
- полей нет: команда без параметров
Условия — когда объект связан в кейсе реакции
- состояние (
State) ★- операторы:
- «находится в состоянии» (
eq) ★ - «не находится в состоянии» (
neq)
- «находится в состоянии» (
- значение — список:
- «работает» ★
- «выключен»
- операторы:
ts
/** Мета виджета CMD_SETUP для деклараций (адаптер строит поле с kind: "root"). */
export const DirectTimerSetupWidgetFieldMeta = {
[ActionTypeDirectTimer.CMD_SETUP]: {
timer: {
widget: "directTimerWidget" as const,
label: DirectTimerSetupWidgetLabel,
timerSetup: {
fields: DirectTimerSetupFieldLabels,
valueMap: DirectTimerSetupValueMap,
},
},
},
};Мета виджета становится полем с persistence kind: "root": в actionData.values пишется сам объект виджета, без обёртки в ключ поля (см. Additional data команд).
Драйвер-линки
★ — поле по умолчанию в новой связи.
Поля объекта для связи с драйвером
| Поле | Чт. | Зап. |
|---|---|---|
| значение ★ | ✓ | ✓ |
| понедельник | ✓ | ✓ |
| вторник | ✓ | ✓ |
| среда | ✓ | ✓ |
| четверг | ✓ | ✓ |
| пятница | ✓ | ✓ |
| суббота | ✓ | ✓ |
| воскресенье | ✓ | ✓ |
| количество повторений | ✓ | ✓ |
| обновить (служебный канал) | ✓ | — |
| авария (служебный канал) | ✓ | — |
Связи только на чтение у драйверов: SNMP, PING.
Хранение
Сохраняется в таблице project_objects через RepositoryObject (Dexie).
Mentioned In
None yet.