Appearance
SHIM
ШИМ-объект формирует широтно-импульсную модуляцию: аналоговый выход задаёт скважность, цифровой выход переключается в пределах MinOutputIntervalMs/MaxOutputIntervalMs.
Настройки
ts
export const SHIMObjectSettingsSchema = z.object({
settings: z.object({
/** Начальное состояние ШИМ (UNDEFINED/ACTIVE/UNACTIVE). */
Value: z.nativeEnum(ESHIMObjectInitialValue),
/** id аналогового выхода. */
AnalogOutput: z.string(),
/** id дискретного выхода. */
DigitalOutput: z.string(),
/** Интервал расчёта скважности (миллисекунды). */
SamplingIntervalMs: z.number(),
/** Минимальный интервал между переключениями выхода (миллисекунды). */
MinOutputIntervalMs: z.number(),
/** Максимальный интервал между переключениями выхода (миллисекунды). */
MaxOutputIntervalMs: z.number(),
/** Сохранять пользовательские настройки (0/1). */
SaveUserSettings: z.number(),
}),
});Логика и команды
Команда «изменение поля» (CMD_CHANGE_FIELD) у PID и SHIM: при выборе параметра в дропдауне поле «изменить на» сразу заполняется текущим значением этого параметра из настроек объекта-цели. Механика — специализированный адаптер (Additional data команд).
★ — значение по умолчанию (чем предзаполнена форма / что выбрано при создании).
События — когда объект владелец реакции
- изменение (
MSG_STATUS_CHANGED) ★
Действия — когда объект выбран целью действия
настроить (CMD_SETUP)
- начальное состояние (
Value) — список:- «оставить без изменений» ★
- «активно»
- «неактиво»
- период модуляции, мс (
SamplingIntervalMs) — interval; ★ 10000 - максимальное время модуляции, мс (
MaxOutputIntervalMs) — число; ★ 9000; минимум 1000, максимум 10000 - минимальное время модуляции, мс (
MinOutputIntervalMs) — число; ★ 1000; минимум 0, максимум 9000
изменение поля (CMD_CHANGE_FIELD)
- поле (
field) — список:- «период модуляции, мс» ★
- «минимальное время модуляции, мс»
- «максимальное время модуляции, мс»
- изменить на (
value) — число; ★ 0
запуск расчётов (CMD_START) ★
- полей нет: команда без параметров
остановка расчетов (CMD_STOP)
- полей нет: команда без параметров
обновить (CMD_UPDATE)
- полей нет: команда без параметров
Условия — когда объект связан в кейсе реакции
- состояние (
State) ★- операторы:
- «находится в состоянии» (
eq) ★ - «не находится в состоянии» (
neq)
- «находится в состоянии» (
- значение — список:
- «работает» ★
- «выключен»
- операторы:
Драйвер-линки
★ — поле по умолчанию в новой связи.
Поля объекта для связи с драйвером
| Поле | Чт. | Зап. |
|---|---|---|
| значение ★ | ✓ | ✓ |
| период модуляции, мс | ✓ | ✓ |
| минимальное время модуляции, мс | ✓ | ✓ |
| максимальное время модуляции, мс | ✓ | ✓ |
| обновить (служебный канал) | ✓ | — |
| авария (служебный канал) | ✓ | — |
Связи только на чтение у драйверов: SNMP, PING.
Хранение
Сохраняется в таблице project_objects через RepositoryObject (Dexie).
Mentioned In
None yet.