Appearance
Параметры проекта
Страница настроек контроллера. Содержит поля для управления и отображения информации о нем.
Резервные контроллеры
Нода пункта списка:
ts
/**
* @description
* Нода контроллера — основной или резервный. Пункты списка панели
* «Параметры проекта»: основной приходит из `self` ответа `getNodes`,
* резервные — из `connections` того же ответа; `root.connections`
* хранит сохранённые адреса (плейсхолдер до ответа и persistence).
*/
export interface INodeInfo {
/** Адрес контроллера (host:port, без протокола). */
address: string;
/** Статус связи с контроллером. */
status: ControllerStatus;
/** Роль ноды: Master — основной, Slave — резервный, Default — роль не определена. */
role: "Master" | "Slave" | "Default";
/** Уникальный идентификатор контроллера. */
uid?: string;
/** Время последнего контакта с нодой. */
lastSeen?: string;
}Статус связи (INodeInfo.status):
ts
/**
* @description
* Статусы подключения контроллера. Значения приходят от контроллера
* в ответе `getNodes` (replication API). Билдер сам выставляет только
* `Undefined` — плейсхолдер для записей, построенных из сохранённых
* `root.connections` до получения ответа.
*/
export enum ControllerStatus {
Connected = "connected",
Disconnected = "disconnected",
Syncing = "syncing",
Undefined = "undefined",
}Статусы и переключение
Статусы запрашиваются у текущего контроллера; если он упал, запрос завершается ошибкой и статусы не приходят — остаётся переключаться на другие адреса кнопкой смены, пока один из них не ответит. Вызывает {@link getNodes} для получения информации о всех нодах с активного контроллера. Сохраняет адреса connections в root.connections для persistence.
Диагностика контроллера (PLC)
ts
export interface NetworkInterface {
/** IPv4-адрес интерфейса. */
IPv4: string;
/** Шлюз по умолчанию. */
gateway: string;
/** Маска подсети. */
netmask: string;
}
export interface NetworkData {
/** Сетевой интерфейс eth0. */
eth0: NetworkInterface;
}
/**
* @description
* Информация о контроллере (PLC) — содержимое правой панели «Дополнительные
* параметры» вкладки «Параметры проекта». Получается запросом `GET /plcInfo`
* runtime-контроллера.
*/
export interface ControllerInfo {
ControllerInfoId: number;
/** Имя хоста контроллера. */
hostName: string;
/** MAC-адрес контроллера. */
macAddress: string;
/** Версия сборки. */
build: string;
plcTimeGMT0: number;
/** Часовой пояс: числовое смещение относительно GMT. */
timeZone: number;
/** Уникальный идентификатор контроллера. */
uid: string;
/** Текущее время контроллера (Unix, мс, GMT) — тикает на панели каждую секунду. */
plcTimeGMT: number;
/** Статус (скрыт на панели). */
electionStatus: string;
/** Время старта контроллера (GMT) — из него считается время работы. */
startDateGMT: string;
/** ID проектов, загруженных на контроллере. */
projectIDs: string[];
foreignConnectionAddr: string;
/** Время последнего обновления БД контроллера (Unix, мс). */
dBUpdatedAt: number;
/** Количество ядер CPU. */
cpuCount: number;
/** Всего памяти. */
totalMemory: string;
/** Свободно памяти. */
freeMemory: string;
networkData: NetworkData;
environment: string;
}Хранение
Сохраняется в таблице root_projects через RepositoryRootProject (Dexie).
Mentioned In
None yet.