== API контроллера с squid в составе LTS == Протокол предназначен для связи squid с системами мониторинга и диспетчеризации (SCADA). === Дерево узлов и адресация === Контроллер squid допускает подключение устройств (исполнительных/специализированных/датчиков и т.д.) по шинам StampLine и иным шинам, образующим дерево узлов. Каждый узел имеет фиксированный адрес. Для устройств StampLine адрес имеет вид: {{{ sl:<канал шлюза StampLine>:<Адрес устройства StampLine 1-254> }}} Пример полного адреса устройства на канале 0 с адресом StampLine 16: {{{ sl:0:16 }}} Для головного устройства: {{{ h:<адрес head-устройства 1-254> }}} Для шлюза (канала подключения) линии StampLine: {{{ sl:<канал шлюза StampLine> }}} == Общая структура протокола и параметры подключения == Обмен данными осуществляется по протоколу tcp, подключение осуществляется со стороны сервера диспетчеризации и мониторинга (клиент) к головному контроллеру squid на порт 5700/tcp. ``` Обеспечение безопасности доступа (шифрование, изоляция, авторизация) осуществляется вышестоящей сетевой инфраструктурой. ``` Сервер диспетчеризации выступает в роли TCP-клиента при подключении, а контроллер в качестве TCP-сервера. Однако в описании протокола под сервером понимается именно сервер диспетчирезации. Обмен осуществляется в рамках потокового xml протокола. После после успешного подключения к контроллеру сервер отправляет заголовок и базовый элемент xml-документа: {{{ }}} В качестве получателя (stream/@t) указывается адрес головного устройства. Ответ контроллера: {{{ }}} При обнаружении проблем с потоком каждая сторона обязана закрыть соединение с посылкой тэга и завершением тэга , после чего соединение может быть оборвано: {{{ }}} == Получение конфигурации дерева устройств == Для получения конфигурации дерева устройств сервер запрашивает конфигурацию тэгом {{{ }}} Ответ контроллера содержит конфигурацию дерева устройств: {{{ }}} Параметры (в терминах xpath): * n - [node] узел дерева конфигурации * n/@a - [address] полный адрес * n/@mv - [min version] минимальная версия устройства * n/@t - [type] тип устройства * n/@p - [profile] профиль устройства == Получение статуса дерева устройств == Для получения текущего состояния дерева устройств клиент запрашивает статус тэгом {{{ }}} Ответ контроллера содержит детализацию дерева устройств с детализацией актуального статуса: {{{ }}} Параметры (в терминах xpath): * n - узел дерева конфигурации * n/@a - [address] полный адрес * n/@o - [online] доступность устройства (текущая): t = true, f = false * n/@v - [version] версия * n/@s - [status] статус устройства * n/@ds - [drive state] статус движения: stop - остановка, bw - назад, fw - вперед * n/@bws - [forward sensor] статус стартового датчика (в начале ленты): t = пересечён, f = открыт * n/@fws - [forward sensor] статус финишного датчика (в конце ленты): t = пересечён, f = открыт * n/@ar - [accept ready] готовность приёма багажа с предыдущей секции: t = готов принимать, f = не готов * n/@lp - [luggage present] наличие багажа на ленте