Skip to content

UART API Documentation for SSVC0059_V2. This document describes the UART communication protocol for the SSVC0059_V2 controller, including control commands (requests) and telemetry data.

License

Notifications You must be signed in to change notification settings

SmartModule-ru/ssvc0059_v2_uart_api_docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

SSVC0059_V2 UART API Версия 1.7

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

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

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

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

  • Запрос:
    • Состоит из заглавных латинских букв, цифр и знака подчеркивания.
    • Заканчивается символом \n или \r.
  • Ответ:
    • Передается в формате JSON в одной строке, заканчивающейся символом \n.

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

  • AT
  • NEXT
  • PAUSE
  • RESUME
  • STOP
  • START
  • STATUS
  • VERSION
  • GET_SETTINGS
  • SET

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

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

  • type: "response" — тип сообщения.
  • request: полученная команда в кавычках.
  • result: "OK" — при успешном выполнении команды, "unknown" — неизвестная команда.

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

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

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

AT

  • Назначение: тест обмена сообщениями.

NEXT

  • Назначение: действие, аналогичное нажатию кнопки «Далее/Выход» на этапах Головы / Тело / Хвосты.

PAUSE

  • Назначение: вход в режим ручного управления клапаном текущего этапа; клапан закрыт.

RESUME

  • Назначение: выход из режима ручного управления клапаном текущего этапа.

STOP

  • Назначение: удаленная остановка процесса на этапах Головы, Тело, Хвосты.

START

  • Назначение: удаленный запуск ректификации, работает только из дежурного режима.

STATUS

  • Назначение: передача статуса от подключенного устройства.

  • Формат:

    • Принимается строка длиной 15 символов.
    • Полученное строковое значение отображается на дежурном экране.
  • Пример:

    STATUS 192.168.100.200
    

VERSION

  • Назначение: запрос версии прошивки.

  • Пример ответа:

    {
      "type": "response",
      "request": "VERSION",
      "result": "OK",
      "manufacturer": "SmartModule",
      "model": "SSVC0059_V2",
      "version": "2.2.37",
      "api": "1.7"
    }

SET

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

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

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

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

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

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

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

  • heads=[<время_включения>,<период>] — скорость отбора голов.
  • hearts=[<время_включения>,<период>] — скорость отбора тела.
  • hyst=<значение> — гистерезис.
  • decrement=<значение> — декремент.
  • formula=[0|1] — формула.
  • tank_mmhg=<значение> — давление в кубе относительно атмосферного (параметр в настройках), мм рт. ст.
  • tank_mmhg_act=<значение> — актуальное давление в кубе относительно атмосферного (измеряется датчиком), мм рт. ст.
  • heads_timer=<время> — время отбора голов.
  • hearts_timer=<время> — таймер фиксации температуры отбора тела.
  • start_delay=<время> — отложенный пуск.
  • hearts_finish_temp=<температура> — температура завершения отбора тела.
  • formula_start_temp=<температура> — начальная температура для формулы.
  • valve_bw=[<скорость1>,<скорость2>,<скорость3>] — пропускные способности клапанов в мл/ч.
  • tails=[<значение1>,<значение2>] — скорость отбора хвостов (актуально для firmware 2.2.*).
  • tails_temp=<температура> — температура завершения отбора хвостов (актуально для firmware 2.2.*).
  • late_heads=[<время_включения>,<период>] — скорость отбора подголовников (актуально для firmware 2.3.*).
  • late_heads_timer=<значение> — время отбора подголовников, с (кратно 300 с; актуально для firmware 2.3.*).
  • parallel=[<время_включения>,<период>] — параллельный отбор клапаном 3 (актуально для firmware 2.3.*).
  • parallel_v1=[<время_включения>,<период>] — параллельный отбор клапаном 1 (актуально для firmware 2.2.*).
  • parallel_v3=[[<температура>,<время_включения>,<период>], …] — параллельный отбор клапаном 3 (актуально для firmware 2.2.*).
  • release_speed=<значение> — скорость сброса (время открытого клапана); актуально с опцией «Сброс и снижение».
  • release_timer=<время> — время сброса, с; актуально с опцией «Сброс и снижение».
  • heads_final=<значение> — скорость отбора к окончанию голов; актуально с опцией «Сброс и снижение».

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

  • s_temp=<температура> — температура, °C (1 знак после запятой, максимум 110.0).
  • s_hyst=<гистерезис> — гистерезис, °C (2 знака после запятой, от 0.06 до 50.06).
  • s_speed=[<время_включения>,<период>] — скорость отбора (аналогична heads).
  • s_decrement=<декремент> — декремент, %, целое число до 100.
  • s_timer=<время> — таймер, с; целое число до 86400.

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

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

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

  • Назначение:

    • heads — головы;
    • hearts — тело;
    • late_heads — подголовники;
    • tails — хвосты;
    • s_speed — оперативные параметры;
    • parallel_v1 — параллельный отбор клапаном 1 (firmware 2.2.*);
    • parallel — параллельный отбор клапаном 3 (firmware 2.3.*).
  • Синтаксис:

    heads=[<время_включения>,<период>]
    
    • <время_включения> — вещественное число с одной десятичной цифрой (например, 99.0).
    • <период> — целое число.
  • Ограничения:

    • время_включения ≤ 99.9
    • период ≤ 999
    • время_включения ≤ период
  • Пример:

    heads=[99.0,100]
    
hyst
  • Описание: устанавливает значение гистерезиса.

  • Синтаксис:

    hyst=<значение>
    
    • <значение> — число с двумя знаками после запятой (например, 0.25).
  • Ограничения:

    • положительное число, не более 50.0.
  • Пример:

    hyst=0.25
    
decrement
  • Описание: устанавливает величину в процентах, на которую будет уменьшаться скорость отбора тела при «злете» температуры.

  • Синтаксис:

    decrement=<значение>
    
    • <значение> — целое число (например, 20).
  • Ограничения:

    • целое положительное число от 0 до 100 включительно.
  • Пример:

    decrement=20
    
formula
  • Описание: использовать или нет формулу для снижения скорости отбора тела в зависимости от температуры на ТД2.

  • Синтаксис:

    formula=[0|1]
    
    • 0 — не использовать формулу;
    • 1 — использовать.
  • Пример:

    formula=1
    
tank_mmhg
  • Описание: устанавливает давление в кубе в миллиметрах ртутного столба (мм рт. ст.) относительно атмосферного.

  • Синтаксис:

    tank_mmhg=<значение>
    
    • <значение> — целое число (например, 30).
  • Ограничения:

    • значение от 0 до 50.
  • Пример:

    tank_mmhg=50
    
tank_mmhg_act
  • Назначение: передача актуальных (динамических) показаний датчика давления в систему расчетов.
    Если датчик в кубе отсутствует и данные не передаются, контроллер использует статическое значение из tank_mmhg.

  • Описание: устанавливает давление в кубе в мм рт. ст. относительно атмосферного. Имеет приоритет над tank_mmhg.
    Если контроллер получил tank_mmhg_act хотя бы раз, он будет использовать это значение (и игнорировать последующие изменения tank_mmhg) до момента выключения питания.

  • Синтаксис:

    tank_mmhg_act=<значение>
    
    • <значение> — вещественное число с одной десятичной цифрой (например, 30.0).
  • Ограничения:

    • значение от 0.0 до 50.0.
  • Пример:

    tank_mmhg_act=45.5
    
heads_timer
  • Описание: таймер отбора голов (время в секундах).

  • Синтаксис:

    heads_timer=<время>
    
    • <время> — целое число (например, 36000).
  • Ограничения:

    • положительное число, не более 86400, кратное 300 (5 минут).
  • Пример:

    heads_timer=36000
    
late_heads_timer
  • Описание: таймер отбора подголовников (время в секундах).

  • Синтаксис:

    late_heads_timer=<время>
    
    • <время> — целое число (например, 36000).
  • Ограничения:

    • положительное число, не более 86400, кратное 300.
  • Пример:

    late_heads_timer=36000
    
hearts_timer
  • Описание: таймер фиксации температуры отбора тела, мин.

  • Синтаксис:

    hearts_timer=<время>
    
    • <время> — целое число (например, 10).
  • Ограничения:

    • положительное число, не более 30.
  • Пример:

    hearts_timer=30
    
tails_temp
  • Описание: температура завершения отбора хвостов, °C.

  • Синтаксис:

    tails_temp=<температура>
    
    • <температура> — число с плавающей точкой (например, 109.9).
  • Ограничения:

    • положительное число, не более 110.0.
  • Пример:

    tails_temp=109.9
    
start_delay
  • Описание: отложенный пуск (время в секундах).

  • Синтаксис:

    start_delay=<время>
    
    • <время> — целое число (например, 6000).
  • Ограничения:

    • положительное число, не более 18000.
  • Пример:

    start_delay=18000
    
hearts_finish_temp
  • Описание: температура на ТД2, при которой завершается отбор тела, °C.

  • Синтаксис:

    hearts_finish_temp=<температура>
    
    • <температура> — число с плавающей точкой (например, 93.0).
  • Ограничения:

    • положительное число, не более 110.0.
  • Пример:

    hearts_finish_temp=93.0
    
formula_start_temp
  • Описание: начальная температура для начала работы формулы, °C.

  • Синтаксис:

    formula_start_temp=<температура>
    
    • <температура> — число с плавающей точкой (например, 84.0).
  • Ограничения:

    • температура от 84.0 до 100.0 включительно.
  • Пример:

    formula_start_temp=84.0
    
valve_bw
  • Описание: пропускные способности клапанов в мл/ч.

  • Синтаксис:

    valve_bw=[<скорость1>,<скорость2>,<скорость3>]
    
    • каждая <скоростьN> — целое число.
  • Ограничения:

    • все скорости ≤ 20000.
  • Пример:

    valve_bw=[10000,20000,15000]
    
parallel_v3
  • Описание: устанавливает параметры параллельного отбора клапаном 3 на этапе отбора тела (актуально для прошивок 2.2.*).
    Задается 4 диапазона, в каждом диапазоне передаются три значения.

  • Синтаксис:

    parallel_v3=[[<температура>,<время_включения>,<период>],
                 [<температура>,<время_включения>,<период>],
                 [<температура>,<время_включения>,<период>],
                 [<температура>,<время_включения>,<период>]]
    
    • <температура> — начало диапазона, вещественное число с одной десятичной цифрой (например, 84.0).
      (Первый диапазон всегда начинается с 0.0; полученное значение температуры в первом диапазоне игнорируется.)
    • <время_включения> — вещественное число с одной десятичной цифрой (например, 99.0).
    • <период> — целое число.
  • Ограничения:

    • время_включения < период
    • температура ≤ 99.9
    • время_включения ≤ 99.9
    • период ≤ 999
  • Пример:

    SET parallel_v3=[[0.0,0.4,10],[81.1,0.5,50],[86.2,0.6,50],[96.3,1.1,100]]
    
release_speed
  • Описание: скорость сброса (время открытого клапана), с; актуально с опцией «Сброс и снижение».

  • Синтаксис:

    release_speed=<время_включения>
    
    • <время_включения> — вещественное число с одной десятичной цифрой (например, 99.0).
  • Ограничения:

    • время_включения ≤ 99.9.
  • Примечание: значение должно быть меньше периода этапа отбора голов (контроль возлагается на передающую сторону).

  • Пример:

    release_speed=99.0
    
release_timer
  • Описание: время сброса, с. Включается опция «Сброс и снижение» при значении больше 0.

  • Синтаксис:

    release_timer=<время>
    
    • <время> — целое число (например, 600).
  • Ограничения:

    • положительное число, не более 1200 (20 минут).
  • Пример:

    release_timer=600
    
heads_final
  • Описание: скорость отбора к окончанию голов, с. Включается опция «Сброс и снижение» при любом значении.

  • Синтаксис:

    heads_final=<время_включения>
    
    • <время_включения> — вещественное число с одной десятичной цифрой (например, 10.5).
  • Ограничения:

    • время_включения ≤ 99.9.
  • Примечание: значение должно быть меньше периода этапа отбора голов (контроль возлагается на передающую сторону).

  • Пример:

    heads_final=10.5
    

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

  • При неверном формате или несоответствии ограничениям возвращается сообщение об ошибке.

    Пример:

    {"type": "response","request": "SET heads=[1,2]","result": "error: heads=[1,2]"}
  • Для неизвестных параметров возвращается сообщение об ошибке.

    Пример:

    {"type": "response","request": "ABCD","result": "unknown"}

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

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

  • Назначение: запрос настроек.
  • Описание:
    • Ответ содержит поле settings — объект с набором параметров.
    • Пример JSON-структуры ниже включает все возможные поля, поддерживаемые версиями прошивки 2.2.* и 2.3.*.
    • Некоторые поля могут присутствовать только в одной из веток прошивок.

Пример ответа 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

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

  • Время открытого клапана: время в секундах с точностью до 1 знака после десятичной точки.
  • Период: время в секундах.

heads_final

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

  • Формат: целое число в секундах.

release_timer

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

  • Формат: целое число в секундах.

release_speed

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

  • Формат: число с одним знаком после десятичной точки.

hearts

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

  • Формат: [время открытого клапана, период]
  • Время открытого клапана: время в секундах с точностью до 1 знака после десятичной точки.
  • Период: время в секундах, целое число.

hyst

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


decrement

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


late_heads

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

  • Формат: [время открытого клапана, период]
  • Время открытого клапана: время в секундах с точностью до 1 знака после десятичной точки.
  • Период: время в секундах.

tails

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

  • Формат: [время открытого клапана, период]
  • Время открытого клапана: время в секундах с точностью до 1 знака после десятичной точки.
  • Период: время в секундах.

sound

Звук:

  • 1 — включено;
  • 0 — выключено.

pressure

Барометр:

  • 1 — включено;
  • 0 — выключено.

relay_inverted

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

  • 1 — включено;
  • 0 — выключено.

relay_autostart

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

  • 1 — включено;
  • 0 — выключено.

auto_mode

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

  • 1 — включено;
  • 0 — выключено.

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.*.

  • Формат: [[температура диапазона, время открытого клапана, период], ...]
  • Температура диапазона: температура в °C.
  • Время открытого клапана: время в секундах с точностью до 1 знака после десятичной точки.
  • Период: время в секундах.

parallel_v1

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

  • Формат: [время открытого клапана, период]
  • Время открытого клапана: время в секундах с точностью до 1 знака после десятичной точки.
  • Период: время в секундах.

parallel

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

  • Формат: [время открытого клапана, период]
  • Время открытого клапана: время в секундах с точностью до 1 знака после десятичной точки.
  • Период: время в секундах.

hearts_temp_shift

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

  • 1 — включено;
  • 0 — выключено.

hearts_pause

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

  • 1 — включено;
  • 0 — выключено.

formula

Формула:

  • 1 — включено;
  • 0 — выключено.

formula_start_temp

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


tank_mmhg

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


tp2_shift

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


tp_filter

Фильтр ТД:

  • 1 — включено;
  • 0 — выключено.

signal_tp1_control

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

  • 1 — включено;
  • 0 — выключено.

signal_inverted

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

  • 1 — включено;
  • 0 — выключено.

tp1_control_temp

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


tp1_control_start

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

  • 1 — включено;
  • 0 — выключено.

stab_limit_time

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


stab_limit_finish

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

  • 1 — включено;
  • 0 — выключено.

backlight

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

  • Возможные значения:
    • "active" — включено;
    • "always" — всегда включено;
    • "off" — выключено.

valve_bw

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

  • Формат: [клапан 1, клапан 2, клапан 3]
  • Значения: пропускная способность в мл/ч соответствующего клапана.

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

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

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

  • Сообщения передаются в формате JSON в одной строке, заканчивающейся символом \n.
  • Каждое сообщение содержит поле type, определяющее тип сообщения.
  • Дополнительные поля зависят от значения type.

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

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

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

Общая часть common

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

  • mmhg: float — давление в мм рт. ст.
  • tp1: float — температура ТД1.
  • tp2: float — температура ТД2.
  • relay: int — состояние реле (0 или 1).
  • signal: int — состояние сигнала (0 или 1).
  • cfg_chgd: boolean — флаг для запроса настроек GET_SETTINGS. Присутствует только если true.
    Флаг необходим для запроса настроек в случае, если были внесены изменения на контроллере при помощи кнопок управления. Сбрасывается после запроса GET_SETTINGS.
  • tts: int — время до сохранения настроек в энергонезависимую память, с. При отсутствии поля tts — несохраненных данных нет.

Пример 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"

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

  • pid: int — уникальный идентификатор ректификации.
  • tp1_target: float — целевая температура ТД1.
Пример 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"

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

  • pid: int — уникальный идентификатор ректификации.
  • countdown: string — обратный отсчет времени в формате "ч:мм:сс".
Пример 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"

  • type: "heads" — головы.
  • type: "late_heads" — подголовники (актуально в firmware 2.3.*).

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

  • pid: int — уникальный идентификатор ректификации.
  • countdown: string — обратный отсчет времени в формате "ч:мм:сс".
  • release: string — обратный отсчет времени сброса в формате "ч:мм:сс" (актуально на отборе голов при наличии опции «Сброс»).
  • time: string — время в формате "ч:мм:сс".
  • open: float — открытие клапана в секундах.
  • period: int — период работы клапана в секундах.
  • tank_mmhg: float — давление в кубе.
  • tp1_sap: float — пересчитанная к нормальному атмосферному давлению температура ТД1.
  • tp2_sap: float — пересчитанная к нормальному атмосферному давлению температура ТД2.
  • v1: int — суммарное время открытия клапана 1 в секундах.
  • v2: int — суммарное время открытия клапана 2 в секундах.
  • v3: int — суммарное время открытия клапана 3 в секундах.
  • alc: float — спиртуозность.

Пример 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"

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

  • pid: int — уникальный идентификатор ректификации.
  • countdown: string — обратный отсчет времени до фиксации температуры отбора, формат "ч:мм:сс".
  • time: string — время в формате "ч:мм:сс".
  • tp1_target: float — температура отбора.
  • open: float — открытие клапана в секундах.
  • period: int — период работы клапана в секундах.
  • hysteresis: float — гистерезис.
  • decrement: int — декремент в %, целое число.
  • tank_mmhg: float — давление в кубе.
  • tp1_sap: float — пересчитанная к нормальному атмосферному давлению температура ТД1.
  • tp2_sap: float — пересчитанная к нормальному атмосферному давлению температура ТД2.
  • v1: int — суммарное время открытия клапана 1 в секундах.
  • v2: int — суммарное время открытия клапана 2 в секундах.
  • v3: int — суммарное время открытия клапана 3 в секундах.
  • alc: float — спиртуозность.
  • stop: int — признак остановки (0 или 1).
  • stops: int — количество остановок.

Пример 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.*)

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

  • pid: int — уникальный идентификатор ректификации.
  • time: string — время в формате "ч:мм:сс".
  • tp2_target: float — целевая температура ТД2.
  • open: float — открытие клапана в секундах.
  • period: int — период работы клапана в секундах.
  • tank_mmhg: float — давление в кубе.
  • tp1_sap: float — пересчитанная к нормальному атмосферному давлению температура ТД1.
  • tp2_sap: float — пересчитанная к нормальному атмосферному давлению температура ТД2.
  • v1: int — суммарное время открытия клапана 1 в секундах.
  • v2: int — суммарное время открытия клапана 2 в секундах.
  • v3: int — суммарное время открытия клапана 3 в секундах.
  • alc: float — спиртуозность.

Пример 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, оповещающее о событиях.

  • Поле event присутствует в телеметрии при отсутствии нажатий на кнопки контроллера.

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

  • heads_finished — завершен этап Головы.
  • hearts_finished — завершен этап Тело (ректификация завершена для firmware 2.3.*).
  • tails_finished — завершен этап Хвосты (ректификация завершена для firmware 2.2.*).
  • ds_error — ошибка датчика температуры.
  • ds_error_stop — выключение оборудования (реле) из-за ошибки датчика; срабатывает через 180 с, если ошибка текущего датчика не исчезнет.
  • stabilization_limit — превышен лимит времени стабилизации.
  • manually_closed — включено ручное управление клапаном текущего этапа, клапан закрыт.
  • manually_opened — включено ручное управление клапаном текущего этапа, клапан открыт.

Примечания

  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) указывается в мм рт. ст.

About

UART API Documentation for SSVC0059_V2. This document describes the UART communication protocol for the SSVC0059_V2 controller, including control commands (requests) and telemetry data.

Resources

License

Stars

Watchers

Forks

Packages

No packages published