Компонент signals
Основноей компонент графика. Позволяет взаимодействовать с сигналами, влияя на их отображение.
Объявление компонента signals
Так как компонент signals является основным — он всегда присутствует в классе конструкторе и не требует дополнительного указания в файле конфигурации.
Однако, определение компонента signals в файле конфигурации позволят изменить некоторые настройки по-умолчанию.
{
{
"name": "signals",
"settings": {...}
}
}
Настройки
Свойство axis
Свойство axis позволяет задать масштаб осей X и Y. Масштаб может быть изменяемым, и для этого предусмотрены два режима:
-
Статический (static) масштаб — позволяет выбрать фиксированные значения масштаба из заданного списка:
{ "settings": { "axis": { "x": { "scale": { "type": "static", "values": [10], "currIndex": 0, "valueUnit": 1, "distanceUnit": 2 } }, "y": { "scale": { "type": "static", "values": [1], "currIndex": 0 } } } } }Свойство Тип Значение поумолчанию Описание axis.[x/y].scale.typestring "static" Тип масштаба: static или dynamic axis.[x/y].scale.valuesArray<number> [10] Список допустимых значений масштаба. axis.[x/y].scale.currIndexnumber 0 Индекс текущего значения в списке values.axis.[x/y].scale.valueUnitnumber 1 Размерность единицы измерения по оси. axis.[x/y].scale.distanceUnitnumber 1 Размерность оси. -
Динамический (dynamic) масштаб — позволяет плавно изменять масштаб в пределах допустимого диапазона:
{ "settings": { "axis": { "x": { "scale": { "type": "dynamic", "step": 5, "minValue": 5, "maxValue": 20, "currValue": 10, "valueUnit": 1, "distanceUnit": 2 } }, "y": { "scale": { "type": "dynamic", "step": 1, "minValue": 1, "maxValue": 5, "currValue": 1, "valueUnit": 2 } } } } }Свойство Тип Значение поумолчанию Описание axis.[x/y].scale.typestring "static" Тип масштаба: static или dynamic axis.[x/y].scale.stepnumber 2 Шаг изменения масштаба. axis.[x/y].scale.minValuenumber 0 Минимально допустимое значение масштаба. axis.[x/y].scale.maxValuenumber 0 Максимально допустимое значение масштаба. axis.[x/y].scale.currValuenumber 1 Текущее значение масштаба. axis.[x/y].scale.valueUnitnumber 1 Размерность единицы измерения по оси. axis.[x/y].scale.distanceUnitnumber 1 Размерность оси.
Свойство unitsYtoMmConvertKoef
{
"settings": {
"unitsYtoMmConvertKoef": 0.1,
}
}
| Свойство | Тип | Значение поумолчанию | Описание |
|---|---|---|---|
unitsYtoMmConvertKoef |
number | 10 | Коэффициент преобразования значений сигнала по оси Y в миллиметры. |
Программное использование
Доступ к компоненту возможно получить через его контроллер.
import { JagmRootProvider } from "@incartdev/jagm-core";
import { JagmRawLineSignalData, JagmRawSignalsChartProvider } from "@incartdev/jagm-chart";
import { RawOfflineVisualizatorConfigJsUnpacker } from "@incartdev/jagm-visualizator";
import VisualConfig from "./VisualConfig.json";
// Получение ссылок на DOM элементы контейнера
const canvasRef = document.querySelector(".canvas-wrap");
// Создание экземпляра класса-конструктора графического полотна
const visProvider = new JagmRootProvider(new RawOfflineVisualizatorConfigJsUnpacker());
// Инициализация создания графических элементов
await visProvider.create({
settings: VisualConfig,
rootHtml: canvasRef
});
// Создание контроллера графических элементов библиотеки
const chartProvider = new JagmRawSignalsChartProvider(visProvider.builder);
// Получение контроллера компонента signals (для одного графика)
const signalGroup = chartProvider.charts[0].findContentGroup("signals");
API
| Свойство | Тип | Описание |
|---|---|---|
valueConverter |
Объект | Объект, содержащий функции для контекстного преобразования значений. Подробнее см. в разделе Конвертер значений. |
config |
Объект | Объект, содержащий настройки компонента. Подробнее см. в разделе Объект настроек. |
getSignalsWidthInMm() |
Функция | Возвращает текущую ширину области отображения сигналов в миллиметрах. |
getSignalsWidthInPoints(frequency: number) |
Функция | Возвращает текущую ширину области отображения сигналов в отсчётах АЦП, исходя из указанной частоты дискретизации. |
| forEachSignal(callback: (signal: JagmSignalObject) => Promise<void>): Promise<void> | Функция | Асинхронно вызывает переданный колбэк для каждого сигнала, принадлежащего данной контент-группе. |
setScaleY() |
Функция | Устанавливает масштаб по оси Y для соответствующих графиков. Масштаб необходимо изменить в объекте config. |
setScaleX() |
Функция | Устанавливает масштаб по оси X для соответствующих графиков. Масштаб необходимо изменить в объекте config. |
Конвертер значений
В работе с сигналами часто используются разные единицы измерения. Например, ЭКГ-сигнал традиционно выражается в милливольтах, для обработки удобнее использовать отсчёты АЦП, а отрисовка в браузере происходит в пикселях. Преобразование между этими единицами требует знания текущего масштаба и частоты дискретизации.
Для упрощения этой задачи в библиотеке реализован класс valueConverter — он содержит набор функций преобразования, которые автоматически учитывают масштаб и частоту дискретизации, действуя в текущем контексте отображения.
Каждый компонент signals имеет собственный конвертер значений, поскольку графическое полотно может одновременно отображать несколько графиков с различными масштабами. Подробнее см. в разделе Шаблоны расположения
API
| Свойство | Тип | Описание |
|---|---|---|
convertPointsToMm(points: number, frequency: number = 1000) |
Функция | Преобразует отсчёты АЦП в миллиметры. |
convertPointsToPixels(points: number, frequency: number = 1000) |
Функция | Преобразует отсчёты АЦП в пиксели. |
convertMmToPixels(mm: number) |
Функция | Преобразует миллиметры в пиксели. |
convertMmToPoints(mm: number, frequency: number = 1000) |
Функция | Преобразует миллиметры в отсчёты АЦП. |
convertPixelsToMm(pixels: number) |
Функция | Преобразует пиксели в миллиметры. |
convertPixelsToPoints(pixels: number, frequency: number = 1000) |
Функция | Преобразует пиксели в отсчёты АЦП. |
Объект настроек
Объект настроек предоставляет программный доступ к изменению параметров конфигурации.
С его помощью можно:
- Управлять масштабом графика.
API
| Свойство | Тип | Описание |
|---|---|---|
axis |
Объект | Содержит настройки масштабирования. Позволяет изменять параметры масштабов. |
Изменения масштаба
Свойство axis предоставляет собственный интерфейс для управления масштабом для каждого из поддерживаемых типов масштабирования. Это упрощает процесс настройки отображения данных.
-
Статический (static) масштаб
-
Динамический (dynamic) масштаб