|
<< Click to Display Table of Contents >> Navigation: API MasterSCADA 4D > Подключение к исполнительной системе по JSON > HTTP API MasterPLC > Проигрывание истории > /Methods/RunPlayerSubscription |
Создаёт архивный запрос для текущего набора параметров и ставит его в асинхронную очередь. Получение результата выполняется через PlayerPublishData.
HTTP: POST /Methods/RunPlayerSubscription
{
"sessionId": 123456789,
"subscriptionId": 1,
"startTime": 1709990000000,
"endTime": 1710000000000,
"speed": 1.0
}
Поле |
Тип |
Обязательное |
По умолчанию |
Описание |
|---|---|---|---|---|
sessionId |
integer |
условно |
— |
Нужен, если сессия не передана заголовком Session-Id |
subscriptionId |
integer |
да |
— |
Идентификатор подписки проигрывателя |
startTime |
integer |
нет |
0 |
Начало диапазона, Unix time в миллисекундах |
endTime |
integer |
нет |
0 |
Конец диапазона, Unix time в миллисекундах; 0 внутри архива заменяется текущим временем |
speed |
number |
нет |
0 |
Сейчас используется только проверка знака; темп публикации не регулирует |
64-битные поля времени принимают также строки с десятичным числом, а speed — числовую строку. В новых клиентах следует передавать JSON-числа.
{
"subscriptionId": 1,
"code": 0
}
Поле |
Тип |
Описание |
|---|---|---|
subscriptionId |
integer |
Идентификатор подписки |
code |
integer |
0, если запрос создан и поставлен в очередь |
•Успешный ответ подтверждает только постановку запроса в очередь, а не готовность архивных данных.
•Для каждого параметра жёстко задаётся максимум 100 значений на страницу. Если данных больше, продолжение выполняется внутри подписки после чтения страницы через PlayerPublishData.
•Обработчик включает get_bounds: архивный слой может добавить ближайшие граничные значения вокруг запрошенного диапазона, если они доступны.
•Архивный запрос ставится с нулевым тайм-аутом, который в DataArchiveManager означает неограниченное ожидание. Если источник не завершит запрос, PlayerPublishData может неограниченно возвращать OpcUa_BadWaitingForInitialData.
•Абсолютное значение speed нигде не используется: метод не выдерживает интервалы между архивными метками и не ускоряет выдачу.
•При speed < 0 обработчик только меняет startTime и endTime местами, но не устанавливает флаг Request::Options::reversed. При обычном диапазоне startTime < endTime получается неподдерживаемый диапазон с началом после конца, и архивный слой возвращает пустые данные. Обратное воспроизведение фактически не реализовано.
•Повторный запуск заменяет db_request, доступный через подписку, но не отменяет ранее поставленный архивный запрос; его результат становится недоступен клиенту этой подписки.
•Если в подписку не добавлено ни одного параметра, запрос завершается успешным пустым массивом data.
•Метод не перезапускает таймер активности подписки.