ssvc0059_v2_uart_api_docs

SSVC0059_V2 UART API Версия 1.7

Документация UART API для SSVC0059_V2 Данный документ описывает формат обмена данными по UART с контроллером SSVC0059_V2, включая управляющие команды (запросы) и телеметрию (сообщения).

SSVC0059_V2 UART API — запросы и ответы

Документация к формату запросов и ответов.

Общие правила

Перечень запросов


Общая структура сообщения с ответом

Сообщение с ответом на запрос содержит следующие поля:

Пример (обобщенный):

{
  "type": "response",
  "request": "AT",
  "result": "OK"
}

Описание запросов

AT


NEXT


PAUSE


RESUME


STOP


START


STATUS


VERSION


SET

Документация по синтаксису команды SET.

Команда SET используется для задания различных настроек. Команда работает во всех режимах, когда контроллер принимает запросы по UART.

Максимальная длина строки — 300 символов, включая завершающие строку \n и нулевой символ.

Общий формат команды

SET <параметр1>=<значение1>,<параметр2>=<значение2>,...,<параметрN>=<значениеN>

Перечень принимаемых параметров

Поддерживается всеми версиями прошивок 2.2.* и 2.3.* (если не указано иное):

Дополнительно есть оперативные параметры текущего этапа:


Описание параметров

heads, late_heads, hearts, tails, s_speed, parallel_v1, parallel

Настройки скорости отбора (время открытого клапана и период цикла).

hyst
decrement
formula
tank_mmhg
tank_mmhg_act
heads_timer
late_heads_timer
hearts_timer
tails_temp
start_delay
hearts_finish_temp
formula_start_temp
valve_bw
parallel_v3
release_speed
release_timer
heads_final

Проверка на ошибки


Примеры корректных команд

SET heads=[30.0,180],hearts=[2.5,5],formula=1
SET heads=[60.0,360],hearts=[2.0,4],hyst=0.19,formula=0
SET heads=[20.5,245],hearts=[1.5,3],hyst=0.25,decrement=20,formula=1,tank_mmhg=50,heads_timer=36000,hearts_timer=30,start_delay=18000,hearts_finish_temp=93.0,formula_start_temp=84.0,valve_bw=[10000,11000,12000]
SET formula=1
SET formula=0
SET tank_mmhg=50
SET heads_timer=36000
SET heads_timer=86400
SET hearts_timer=30
SET start_delay=18000
SET hearts_finish_temp=110.0
SET formula_start_temp=84.0
SET formula_start_temp=100.0
SET valve_bw=[10000,11000,12000]

Примеры команд с ошибками

SET heads=[60.0,360],hearts=[2.0,4],hyst=0.19,decrement=30,formula=2
SET heads=[100.0,180],hearts=[2.5,5],formula=1
SET heads=[99.9,1000],hearts=[2.5,5]
SET heads=[99.1,99],hearts=[2.5,5],formula=1
SET hyst=50.01
SET decrement=101
SET tank_mmhg=51
SET heads_timer=86401
SET hearts_timer=31
SET start_delay=18001
SET hearts_finish_temp=110.1
SET formula_start_temp=83.9
SET formula_start_temp=100.1
SET valve_bw=[10000,11000,21000]

GET_SETTINGS

Пример ответа GET_SETTINGS

{
  "type": "response",
  "request": "GET_SETTINGS",
  "result": "OK",
  "settings": {
    "heads": [24.5, 100],
    "heads_final": 15.0,
    "release_timer": 300,
    "release_speed": 99.9,
    "late_heads": [23.4, 123],
    "hearts": [2.5, 5],
    "hyst": 0.25,
    "decrement": 100,
    "tails": [2.1, 4],
    "sound": 0,
    "pressure": 1,
    "relay_inverted": 0,
    "relay_autostart": 0,
    "auto_mode": 1,
    "heads_timer": 900,
    "late_heads_timer": 1800,
    "hearts_timer": 0,
    "tails_temp": 95.9,
    "start_delay": 5,
    "hearts_finish_temp": 90.0,
    "parallel_v3": [
      [0.0, 0.4, 10],
      [81.0, 0.5, 11],
      [86.0, 0.6, 12],
      [96.0, 0.7, 13]
    ],
    "parallel_v1": [0.3, 10],
    "parallel": [0.2, 10],
    "hearts_temp_shift": 1,
    "hearts_pause": 1,
    "formula": 1,
    "formula_start_temp": 84.0,
    "tank_mmhg": 10,
    "tp2_shift": 0.0,
    "tp_filter": 0,
    "signal_tp1_control": 1,
    "signal_inverted": 0,
    "tp1_control_temp": 60,
    "tp1_control_start": 1,
    "stab_limit_time": 60,
    "stab_limit_finish": 1,
    "backlight": "active",
    "valve_bw": [1100, 1200, 1300]
  }
}

Структура ответа на GET_SETTINGS

Поля объекта settings


heads

Скорость отбора голов.


heads_final

Скорость отбора к окончанию отбора голов, с. Актуально при опции «Сброс и снижение».


release_timer

Время сброса на этапе голов, с. Актуально при опции «Сброс и снижение».


release_speed

Время открытого клапана для сброса, с; задает скорость отбора во время сброса.


hearts

Скорость отбора тела.


hyst

Гистерезис при отборе тела, °C.


decrement

Декремент при отборе тела, %.


late_heads

Скорость отбора подголовников. Актуально в firmware 2.3.*.


tails

Скорость отбора хвостов. Актуально в firmware 2.2.*.


sound

Звук:


pressure

Барометр:


relay_inverted

Инвертировать реле:


relay_autostart

Реле включить сразу:


auto_mode

Автоматический переход между этапами:


heads_timer

Время отбора голов, с.


late_heads_timer

Время отбора подголовников, с. Актуально в firmware 2.3.*


hearts_timer

Таймер фиксации температуры отбора тела, с.


tails_temp

Температура завершения отбора хвостов, °C. Актуально в firmware 2.2.*


start_delay

Отложенный пуск, с.


hearts_finish_temp

Температура ТД2 завершения отбора тела, °C.


parallel_v3

Скорость параллельного отбора клапаном №3 для 4 диапазонов. Актуально в firmware 2.2.*.


parallel_v1

Скорость параллельного отбора клапаном №1. Актуально в firmware 2.2.*.


parallel

Скорость параллельного отбора клапаном №3 (актуально в firmware 2.3.*).


hearts_temp_shift

Сдвиг температуры отбора тела на 0.07 °C:


hearts_pause

Пауза «на себя»:


formula

Формула:


formula_start_temp

Температура начала формулы, °C.


tank_mmhg

Давление в кубе, мм рт. ст.


tp2_shift

Поправка ТД2, °C.


tp_filter

Фильтр ТД:


signal_tp1_control

Контроль ТД1 для выхода SIGNAL:


signal_inverted

Инвертировать SIGNAL:


tp1_control_temp

Целевая температура на ТД1 при контроле ТД1 для выхода SIGNAL, °C.


tp1_control_start

Старт по ТД1 при контроле ТД1 для выхода SIGNAL:


stab_limit_time

Лимит стабилизации, с (0 — отключен).


stab_limit_finish

Завершить этап при превышении лимита стабилизации:


backlight

Подсветка дисплея.


valve_bw

Пропускная способность клапанов.


Cтруктура телеметрии (JSON)

Формат сообщения телеметрии

Общая структура сообщения


Типы сообщений и их поля

Дежурный режим — type: "waiting"

Сообщение состоит из общей для всех сообщений части common.

Общая часть common

Сообщение содержит следующие поля:

Пример waiting

{
  "type": "waiting",
  "common": {
    "mmhg": 750.5,
    "tp1": 30.31,
    "tp2": 30.81,
    "relay": 1,
    "signal": 0,
    "cfg_chgd": true
  }
}

Экраны настроек ректификации — type: "settings"

Сообщение также состоит из общей части common (структура аналогична описанной выше).
Дополнительные поля зависят от конкретной реализации экранов и не детализированы в данном документе.


Ожидание достижения температуры 1 — type: "tp1_waiting"

Дополнительные поля к общей части:

Пример tp1_waiting
{
  "pid": 99,
  "type": "tp1_waiting",
  "common": {
    "mmhg": 750.5,
    "tp1": 30.31,
    "tp2": 30.81,
    "relay": 1,
    "signal": 0
  },
  "tp1_target": 60
}

Отсроченный старт — type: "delayed_start"

Дополнительные поля к общей части:

Пример delayed_start
{
  "pid": 99,
  "type": "delayed_start",
  "common": {
    "mmhg": 750.5,
    "tp1": 30.75,
    "tp2": 31.44,
    "relay": 1,
    "signal": 0
  },
  "countdown": "0:09:59"
}

Отбор голов и подголовников — type: "heads", type: "late_heads"

Дополнительные поля к общей части:

Пример heads

{
  "pid": 99,
  "type": "heads",
  "common": {
    "mmhg": 750.5,
    "tp1": 31.19,
    "tp2": 32.06,
    "relay": 1,
    "signal": 1
  },
  "countdown": "0:14:58",
  "time": "0:00:02",
  "open": 30.10,
  "period": 359,
  "tank_mmhg": 756.5,
  "tp1_sap": 31.53,
  "tp2_sap": 33.10,
  "v1": 0,
  "v2": 0,
  "v3": 0,
  "alc": 0.0
}

Отбор тела — type: "hearts"

Дополнительные поля к общей части:

Пример hearts

{
  "pid": 99,
  "type": "hearts",
  "common": {
    "mmhg": 750.5,
    "tp1": 31.38,
    "tp2": 32.25,
    "relay": 1,
    "signal": 1
  },
  "countdown": "0:06:58",
  "time": "0:01:04",
  "tp1_target": 100.0,
  "open": 2.10,
  "period": 4,
  "hysteresis": 0.25,
  "decrement": 10,
  "tank_mmhg": 756.5,
  "tp1_sap": 31.72,
  "tp2_sap": 33.29,
  "v1": 0,
  "v2": 0,
  "v3": 0,
  "alc": 0.0,
  "stop": 0,
  "stops": 0
}

Отбор хвостов — type: "tails" (firmware 2.2.*)

Дополнительные поля к общей части:

Пример tails

{
  "pid": 99,
  "type": "tails",
  "common": {
    "mmhg": 748.3,
    "tp1": 33.81,
    "tp2": 35.75,
    "relay": 1,
    "signal": 1
  },
  "time": "0:01:20",
  "tp2_target": 95.0,
  "open": 2.0,
  "period": 4,
  "tank_mmhg": 748.3,
  "tp1_sap": 34.22,
  "tp2_sap": 36.16,
  "v1": 0,
  "v2": 8,
  "v3": 0,
  "alc": 0.0
}

Поле event в сообщениях телеметрии

Сообщения могут содержать поле event, оповещающее о событиях.

Перечень событий и их описание


Примечания

  1. Каждое сообщение передается одной строкой, заканчивающейся символом \n.
  2. Все температуры (tp1, tp2, tp1_sap, tp2_sap, tp1_target, tp2_target) указываются в градусах Цельсия и могут содержать десятичную часть.
  3. Время (time, countdown) указывается в формате "ч:мм:сс".
  4. Значения состояния реле (relay) и сигнала (signal) могут быть либо 0 (выключено), либо 1 (включено).
  5. Давление (mmhg, tank_mmhg) указывается в мм рт. ст.