Base

Базовый online-график предназначен для отображения непрерывно поступающих данных во времени. Он оптимален для задач мониторинга, потокового анализа и визуализации динамически изменяющихся сигналов в реальном времени.

Конфигурация конструктора

Конфигурация конструктора зависит от формата представления данных.

Подробнее о конфигурациях конструктора в разделе Конструктор графического полотна

Поддерживаемые конфигурации:

  • RawOnlineVisualizatorConfigJsUnpacker
  • PreparedOnlineVisualizatorConfigJsUnpacker

Использование

Объявление графика base

Чтобы использовать базовый график, необходимо указать его в поле type конфигурационного файла.

{
  "type": "chart:online:base"
}

Подробнее о файле конфигурации в разделе Файл конфигурации

Bизуализация данных

Детали работы с методами жизненного цикла опущены. (см. код примера)

Для визуализации графика применяется генератор тестовых сигналов. Подробнее об использовании генератора можно проичтать в разделе Генератор сигналов.

import { JagmRootProvider } from "@incartdev/jagm-core";
import { JagmRawSignalsChartProvider, JagmRawVisScreenDataParser } from "@incartdev/jagm-chart";
import { RawOnlineVisualizatorConfigJsUnpacker } from "@incartdev/jagm-visualizator";
import { ContinuousRawSignalGenerator, ContinuousGeneratorSettingsParser } from "@incartdev/signal-generator-js-core";

import signalGeneratorSettings from "./SignalGeneratorSettings.json";
import VisualConfig from "./VisualConfig.json";

// Получение ссылок на DOM элементы контейнера
const canvasRef = document.querySelector(".canvas-wrap");

// Создание экземпляра класса-конструктора графического полотна
const visProvider = new JagmRootProvider(new RawOnlineVisualizatorConfigJsUnpacker());

// Создание экземпляра класса генератора сигнала
const generator = new ContinuousRawSignalGenerator();

// Преобразование конфигурации генератора сигналов в объект настроек
const generatorSettings = ContinuousGeneratorSettingsParser.parse(generatorConfig);
if (generatorSettings === undefined) {
  return;
}

// Инициализация генератора сигналов
generator.init(generatorSettings);

// Инициализация создания графических элементов
await visProvider.create({
  settings: VisualConfig,
  rootHtml: canvasRef
});

// Создание контроллера графических элементов библиотеки
const chartProvider = new JagmRawSignalsChartProvider(visProvider.builder);
// Установка калибровки для сигнала ЭКГ
chartProvider.setCalibration(undefined, "ecg", [0], [1000], [0]);

// Установка коллбэка, передающего занчения с генератора сигналов на графическое полотно
generator.addListener(async message => {

    // Преобразование данных в типизированный формат
    const typedMessage = JagmRawVisScreenDataParser.parse(message);
    if (typedMessage === undefined) {
      return;
    }

    // Добавление данных на графическое полотно
    await chartProvider.pushVisMessage(typedMessage);
});

// Запуск генератора сигналов
generator.start();

Дополнительные возможности

Режимы рисования

Базовый график позволяет задавать режим рисования сигнала.
В настоящее время доступны два режима:

  • Roll (используется по-умолчанию) — при достижении конца графического окна сигнал начинает отрисовываться заново с его начала, создавая эффект «бегущей строки».
  • Scroll — сигнал продолжает отрисовываться от текущего положения, сдвигая содержимое окна влево по мере поступления новых данных.

Режим отображения задаётся через свойство drawMode в конфигурации блока view внутри блока signals.

Примеры

Roll

Код примера

Scroll

Код примера

Доступ к содержимому по ссылке возможен только для авторизованных пользователей GitHub, являющихся участниками организации IncartDev
Ссылка на ресурс

Доступ к содержимому по ссылке возможен только для авторизованных пользователей GitHub, являющихся участниками организации IncartDev
Ссылка на ресурс

Предыдущая