Автор Тема: Вопрос по SDK  (Прочитано 22314 раз)

alteksa

  • Пользователь
  • *****
  • Сообщений: 1
Вопрос по SDK
« : 30 Ноября 2016, 02:05 »
Доброго времени суток!
Тестируем Ваш SDK на указанном конвертере Z-397 WEB с подключенными к нему Matrix II Net <- Matrix II. В режиме сервер к нему удается подключиться, а вот как работать с ним в режиме "клиент"?
При смене типа конвертера на IPS(клиент), какие параметры следует передавать в ZG_Cvt_Open?

Заранее спасибо!

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопрос по SDK
« Ответ #1 : 30 Ноября 2016, 11:01 »
Добрый день

Установить в структуре ZG_CVT_OPEN_PARAMS:
nType = ZP_PORT_IPS;
pszName = "tcp-порт\внешний ip-адрес конвертера\серийный номер конвертера"; Например "25000\193.232.119.17\50010".

ip-адрес и с/н можно получить с помощью детектора устройств, т.е. с помощью функции ZP_DD_SetNotification, в которую нужно передать список tcp-портов для прослушки (параметры aIps и nIpsCount в структуре ZP_DD_NOTIFY_SETTINGS), затем получить список портов конвертеров в режиме "клиент" с помощью функции ZP_FindNextDevice и ZP_SearchDevices с флагом nFlags = ZP_SF_IPS в структуре ZP_SEARCH_PARAMS.

Alexander Vasilyev

  • Пользователь
  • *****
  • Сообщений: 7
Re: Вопрос по SDK
« Ответ #2 : 27 Сентября 2017, 15:47 »
Добрый день!
У меня есть аналогичный вопрос, но со своей спецификой.
Пусть, имеем оборудование Z-397 Web с конфигурацией:
Copyright 2012 RF Enabled
http://www.ironlogic.ru
For help, try the "help" command.
> cfg
CONFIG.CFG:
[INFO] SERIAL_NUMBER=3***9
[INFO] FW_VERSION=3.0.53(Nov 14 2016 12:13:20)
[COMMON] MODE=SERVER
[COMMON] AUTH_KEY=C******1
[NETWORK] USE_DHCP=0
[NETWORK] LOCAL_IP=192.168.15.186
[NETWORK] NETMASK=255.255.255.0
[NETWORK] GATEWAY=192.168.0.1
[NETWORK] DNS=192.168.15.5
[NETWORK] NODATA_TIMEOUT=0
[WEB] USE_PROXY=0
[WEB] PROXY_ADDR=192.168.1.1
[WEB] PROXY_PORT=3128
[WEB] SERVER=hw.guardsaas.com
[WEB] PORT=80
[WEB] PATH=/data.php
[WEB] CONNECT_PERIOD=10
[WEB] PASSWORD=ab*********3
[WEB] RESCAN_PERIOD=30
[WEB] MAX_EVENTS=10
[TCP_SERVER] LINE1_PORT=1000
[TCP_SERVER] LINE1_ALLOWED_IP=255.255.255.255
[TCP_SERVER] LINE2_PORT=10
[TCP_SERVER] LINE2_ALLOWED_IP=255.255.255.255
[TCP_CLIENT] LINE1_REMOTE_ADDR=192.168.15.241
[TCP_CLIENT] LINE1_REMOTE_PORT=1000
[TCP_CLIENT] LINE2_REMOTE_ADDR=192.168.15.241
[TCP_CLIENT] LINE2_REMOTE_PORT=10
[RS485] LINE1_BAUD=19200
[RS485] LINE1_PARITY=NONE
[RS485] LINE2_BAUD=19200
[RS485] LINE2_PARITY=NONE
[RS485] RING_MODE=0
>

Помогите, пожалуйста, подключиться к устройству программно. Мой код ниже выполняется с ошибкой:
ZG_CVT_INFO rInfo = new ZG_CVT_INFO();
rInfo.nType = ZG_CVT_TYPE.ZG_CVT_Z397_WEB;
rInfo.nMode = ZG_GUARD_MODE.ZG_GUARD_ADVANCED;

ZG_CVT_OPEN_PARAMS rOp = new ZG_CVT_OPEN_PARAMS();
rOp.nCvtType = ZG_CVT_TYPE.ZG_CVT_Z397_WEB;
rOp.nPortType = ZP_PORT_TYPE.ZP_PORT_IP;
rOp.pszName = @"1000\192.168.15.186\3***9";

hr = ZGIntf.ZG_Cvt_Open(ref m_hCvt, ref rOp, rInfo);
if (hr < 0)
{
    Console.WriteLine("Ошибка ZG_Cvt_Open ({0}).", hr);
    Console.ReadLine();
    return;
}

С уважением, спасибо

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопрос по SDK
« Ответ #3 : 27 Сентября 2017, 15:59 »
Добрый день
Т.к. конвертер в режиме "Сервер", то имя порта должно быть в таком формате rOp.pszName = @"192.168.15.186:1000";

Alexander Vasilyev

  • Пользователь
  • *****
  • Сообщений: 7
Re: Вопрос по SDK
« Ответ #4 : 29 Сентября 2017, 16:46 »
Будьте любезны, объясните ситуацию.

Пусть, имеем оборудование Z-397 Web с конфигурацией:
Z397-WEB command shell.
Version 3.0.53[Nov 14 2016 12:13:33]
AVS LLC. +7(812)703-77-65, +7(495)787-70-66
Copyright 2012 RF Enabled
http://www.ironlogic.ru
For help, try the "help" command.
> cfg
CONFIG.CFG:
[INFO] SERIAL_NUMBER=34449
[INFO] FW_VERSION=3.0.53(Nov 14 2016 12:13:20)
[COMMON] MODE=WEB
[COMMON] AUTH_KEY=C******1
[NETWORK] USE_DHCP=0
[NETWORK] LOCAL_IP=192.168.15.245
[NETWORK] NETMASK=255.255.255.0
[NETWORK] GATEWAY=192.168.0.1
[NETWORK] DNS=192.168.15.5
[NETWORK] NODATA_TIMEOUT=0
[WEB] USE_PROXY=0
[WEB] PROXY_ADDR=192.168.1.1
[WEB] PROXY_PORT=3128
[WEB] SERVER=192.168.15.241
[WEB] PORT=80
[WEB] PATH=/Home/Interop
[WEB] CONNECT_PERIOD=10
[WEB] PASSWORD=ab974088d09d4dc3
[WEB] RESCAN_PERIOD=10
[WEB] MAX_EVENTS=10
[TCP_SERVER] LINE1_PORT=1000
[TCP_SERVER] LINE1_ALLOWED_IP=255.255.255.255
[TCP_SERVER] LINE2_PORT=10
[TCP_SERVER] LINE2_ALLOWED_IP=255.255.255.255
[TCP_CLIENT] LINE1_REMOTE_ADDR=192.168.15.241
[TCP_CLIENT] LINE1_REMOTE_PORT=1000
[TCP_CLIENT] LINE2_REMOTE_ADDR=192.168.15.241
[TCP_CLIENT] LINE2_REMOTE_PORT=10
[RS485] LINE1_BAUD=19200
[RS485] LINE1_PARITY=NONE
[RS485] LINE2_BAUD=19200
[RS485] LINE2_PARITY=NONE
[RS485] RING_MODE=0

На бэкенде по адресу http://192.168.15.241:80/Home/Interop я получаю:
HEADERS
Cache-Control: max-age=0
Content-Length: 181
Content-Type: multipart/form-data; boundary=18113960011
Host: 192.168.15.241
User-Agent: Z397WEB
Conection: close
x-ser-n: 034449
x-auth-key: C******1
x-fw-ver: 3.0.53
x-next-srv: 0

PARAMS
ALL_HTTP: HTTP_CACHE_CONTROL:max-age=0
HTTP_CONTENT_LENGTH:181
HTTP_CONTENT_TYPE:multipart/form-data; boundary=18113960011
HTTP_HOST:192.168.15.241
HTTP_USER_AGENT:Z397WEB
HTTP_CONECTION:close
HTTP_X_SER_N:034449
HTTP_X_AUTH_KEY:C*****1
HTTP_X_FW_VER:3.0.53
HTTP_X_NEXT_SRV:0

ALL_RAW: Cache-Control: max-age=0
Content-Length: 181
Content-Type: multipart/form-data; boundary=18113960011
Host: 192.168.15.241
User-Agent: Z397WEB
Conection: close
x-ser-n: 034449
x-auth-key: C*****1
x-fw-ver: 3.0.53
x-next-srv: 0

APPL_MD_PATH: /LM/W3SVC/1/ROOT
APPL_PHYSICAL_PATH: C:\SDK Guard\CSharp\Examples\SdkWebServer\
AUTH_TYPE:
AUTH_USER:
AUTH_PASSWORD:
LOGON_USER:
REMOTE_USER:
CERT_COOKIE:
CERT_FLAGS:
CERT_ISSUER:
CERT_KEYSIZE:
CERT_SECRETKEYSIZE:
CERT_SERIALNUMBER:
CERT_SERVER_ISSUER:
CERT_SERVER_SUBJECT:
CERT_SUBJECT:
CONTENT_LENGTH: 181
CONTENT_TYPE: multipart/form-data; boundary=18113960011
GATEWAY_INTERFACE: CGI/1.1
HTTPS: off
HTTPS_KEYSIZE:
HTTPS_SECRETKEYSIZE:
HTTPS_SERVER_ISSUER:
HTTPS_SERVER_SUBJECT:
INSTANCE_ID: 1
INSTANCE_META_PATH: /LM/W3SVC/1
LOCAL_ADDR: 192.168.15.241
PATH_INFO: /Home/Interop
PATH_TRANSLATED: C:\SDK Guard\CSharp\Examples\SdkWebServer\Home\Interop
QUERY_STRING:
REMOTE_ADDR: 192.168.15.245
REMOTE_HOST: 192.168.15.245
REMOTE_PORT: 49268
REQUEST_METHOD: POST
SCRIPT_NAME: /Home/Interop
SERVER_NAME: 192.168.15.241
SERVER_PORT: 80
SERVER_PORT_SECURE: 0
SERVER_PROTOCOL: HTTP/1.1
SERVER_SOFTWARE: Microsoft-IIS/10.0
URL: /Home/Interop
HTTP_CACHE_CONTROL: max-age=0
HTTP_CONTENT_LENGTH: 181
HTTP_CONTENT_TYPE: multipart/form-data; boundary=18113960011
HTTP_HOST: 192.168.15.241
HTTP_USER_AGENT: Z397WEB
HTTP_CONECTION: close
HTTP_X_SER_N: 034449
HTTP_X_AUTH_KEY: C*****1
HTTP_X_FW_VER: 3.0.53
HTTP_X_NEXT_SRV: 0

И массив данных (см. вложение).


Хочется знать, как он расшифровывается/десериализуется. Какое он имеет отношение к структурам
ZG_CTR_EVENT
ZG_EC_SUB_EV
ZG_FIRE_SUB_EV
ZG_SECUR_SUB_EV
...

Спасибо
С уважением
« Последнее редактирование: 05 Февраля 2018, 10:54 от Alexander Vasilyev »

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопрос по SDK
« Ответ #5 : 29 Сентября 2017, 17:03 »
Цитировать
На бэкенде по адресу http://192.168.15.241/Home/Interop я получаю бинарный пакет (см. вложение).

Как разработчик Sdk Guard, не могу пояснить. Дождитесь ответа от техподдержки или от разработчика web интерфейса. Sdk Guard не работает с web интерфейсом.
"ZG_CTR_EVENT" - это структура с информацией о 1 событии контроллера: первый параметр - тип события, второй (8байт) - данные события из памяти контроллера.
"ZG_EC_SUB_EV", "ZG_FIRE_SUB_EV", "ZG_SECUR_SUB_EV" - это подтипы событий "ZG_EV_ELECTRO_ON, ZG_EV_ELECTRO_OFF", "ZG_EV_FIRE_STATE", "ZG_EV_SECUR_STATE".
« Последнее редактирование: 29 Сентября 2017, 17:08 от gsa »

Alexander Vasilyev

  • Пользователь
  • *****
  • Сообщений: 7
Re: Вопрос по SDK
« Ответ #6 : 29 Сентября 2017, 17:14 »
Пакет получен он вашего устройства Z397 Web, которое сконфигурировано в режиме WEB.

Режим WEB-клиент. Цитата из документации
https://ironlogic.ru/il.nsf/htm/ru_z397web:

Цитировать
В режиме WEB-клиента конвертер обеспечивают управление и чтение событий контроллеров,
подключённых к нему по каналам RS485.Конвертер периодически соединяется по протоколу HTTP с
WEB сервером, при этом на сервер отправляются данные о состоянии контроллеров и события, а сервер
отправляет конвертеру команды для изменения параметров контроллеров. Данные передаются по
протоколу HTTP, что гарантирует их доставку к WEB серверу практически из любой локальной сети,
подключённой к интернет.

Как мне следует обрабатывать эти  данные?
Другими словами, как мне интегрироваться с собственным облаком?
С уважением
« Последнее редактирование: 03 Октября 2017, 15:30 от Alexander Vasilyev »

ПавелК

  • Пользователь
  • *****
  • Сообщений: 2
Re: Вопрос по SDK
« Ответ #7 : 11 Октября 2017, 18:31 »
Здравствуйте. Присоединюсь к вопросу ... нужно работать с контроллерами из собственного софта web based *nix, sdk только под винду  ? ...  На прошлом MIPS обещали в каком то виде web режим обнародовать  ...  или уже начинать изобретать велосипед ... самим низкоуровневый обмен реализовывать  ...

VassiL

  • Пользователь
  • *****
  • Сообщений: 1
Re: Вопрос по SDK
« Ответ #8 : 24 Января 2019, 16:43 »
Поддерживаю вопрос. Имеется несколько контроллеров Z-5R + Z-397 WEB.
Стоит задача интегрировать эту связку в наш локальный сервер на базе Raspberry Pi под Linux (делаем на нем облако), пишем на C++.
Программист попытался разобраться с описанием протокола. Говорит, в описании команд в документации имеются ошибки, запустить взаимодействие с контроллерами пока не получилось.
Вопрос, разобрался ли кто с работой этой связки под Linux? Что скажет производитель/разработчик? Нужен исходник под Linux.

Вопрос сейчас стоит изобретать велосипед - свою систему, оставив от текущей конфигурации только замок и датчики, что не есть наш профиль и нет желания отвлекаться на это.

Заранее спасибо откликнувшимся.

--
Василий

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопрос по SDK
« Ответ #9 : 24 Января 2019, 17:49 »
Здравствуйте. Sdk только под Windows. Для Linux можете использовать протокол http://posix.con.ru/wiki/Z397_IP и http://posix.con.ru/wiki/Z397_IP_Advanced_Mode
Про ошибки хотелось бы узнать подробнее.
С Z-5R Web и Matrix-II Wi-Fi можно работать по протоколу Web-JSON
https://ironlogic.ru/il_new.nsf/htm/ru_integration3

Aven

  • Пользователь
  • *****
  • Сообщений: 3
Re: Вопрос по SDK
« Ответ #10 : 28 Января 2019, 12:20 »
Не могу понять, а режима Web-JSON нет????

kill9fan

  • Пользователь
  • *****
  • Сообщений: 18
Re: Вопрос по SDK
« Ответ #11 : 06 Августа 2019, 19:48 »
Про ошибки хотелось бы узнать подробнее.

http://posix.ironlogic.ru/wiki/Z397_IP_Advanced_Mode#.D0.A0.D0.B0.D0.B1.D0.BE.D1.82.D0.B0_.D1.81_.D0.BA.D0.BE.D0.BD.D0.B2.D0.B5.D1.80.D1.82.D0.B5.D1.80.D0.BE.D0.BC
раздел "запрос списка контроллеров"

получить и декодировать список контроллеров на шине с конвертера в режиме advanced удаётся. Хотя ответ содержит 16 байт битовых полей, вместо ожидаемых 13 (как указано в документации)
Цитировать
12 байт отправлено
дамп отправки
[0->0x20]
[1->0xCA]
[2->0xCA]
[3->0xC2]
[4->0xCF]
[5->0xCC]
[6->0xCA]
[7->0xCA]
[8->0xCA]
[9->0xCA]
[10->0xCA]
[11->0xD]
Дамп сырого ответного пакета о контроллерах шины
[0->0x20]
[1->0x5E]
[2->0xDF]
[3->0xCF]
[4->0xCC]
[5->0xCB]
[6->0xCA]
[7->0xCA]
[8->0xCA]
[9->0xCA]
[10->0xCA]
[11->0xCB]
[12->0xCA]
[13->0xCA]
[14->0xCA]
[15->0xCA]
[16->0xCA]
[17->0xCA]
[18->0xCA]
[19->0xCA]
[20->0xCA]
[21->0xCA]
[22->0xCA]
[23->0xCA]
[24->0xCA]
[25->0xCA]
[26->0xCA]
[27->0xCA]
[28->0xCA]
[29->0xCA]
[30->0xCA]
[31->0xD]
unpacked packet`s body dump
[0x0->0xDE]
[0x1->0x15]
[0x2->0x5]
[0x3->0x6]
[0x4->0x0]
[0x5->0x0]
[0x6->0x0]
[0x7->0x0]
[0x8->0x1]     ---   на шине RS485 найден контроллер по адресу 0x2
[0x9->0x0]
[0xA->0x0]
[0xB->0x0]
[0xC->0x0]
[0xD->0x0]
[0xE->0x0]
[0xF->0x0]
[0x10->0x0]
[0x11->0x0]
[0x12->0x0]
[0x13->0x0]
[0x14->0x0]     == по докам это должен быть последний байт битовой карты адресов rs485
[0x15->0x0]
[0x16->0x0]
[0x17->0x0]

но вот например описание запроса инфо о конкретном контроллере не работает: присылается нечто, не содержащее полезной информации - копия моего запроса + нули

Дамп сырого ответного пакета о контроллере по адресу 0x2
[0->0x20]
[1->0x60]
[2->0xDF]
[3->0xCF]
[4->0xCB]
[5->0xCB]
[6->0xCB]
[7->0xC8]
[8->0xCA]
[9->0xCA]
[10->0xCA]
[11->0xCB]
[12->0xCA]
[13->0xCA]
[14->0xCA]
[15->0xCA]
[16->0xCA]
[17->0xCA]
[18->0xCA]
[19->0xCA]
[20->0xCA]
[21->0xCA]
[22->0xCA]
[23->0xCA]
[24->0xCA]
[25->0xCA]
[26->0xCA]
[27->0xCA]
[28->0xCA]
[29->0xCA]
[30->0xCA]
[31->0xD]
unpacked body dump
[0x0->0xE0]
[0x1->0x15]
[0x2->0x5]
[0x3->0x1]
[0x4->0x1]
[0x5->0x2]
[0x6->0x0]
[0x7->0x0]
[0x8->0x1]
[0x9->0x0]
[0xA->0x0]
[0xB->0x0]
[0xC->0x0]
[0xD->0x0]
[0xE->0x0]
[0xF->0x0]
[0x10->0x0]
[0x11->0x0]
[0x12->0x0]
[0x13->0x0]
[0x14->0x0]
[0x15->0x0]
[0x16->0x0]
[0x17->0x0]

тогда я сдампил то, что Demo.exe из СДК отправляет и получает с конвертора z-397 при попытке получения инфо по контроллеру с адресом 0x2
{ 0x20,0xc2,0x6c,0xc2,0xcf,0xcf,0xca,0xca,0xca,0xC8,0xCA,0x0d }

Полученный ответ (декодированное тело), похоже интерпретируется так:

[0x0->0x2D]  контр сумма ?
[0x1->0x14] длина тела  20 байт - да сходится.
[0x2->0x5]   лицензия
[0x3->0x5]  ид пакета
[0x4->0x49]  серийный номер
[0x5->0x5]     серийный номер   0x4905 = 18693 (как раз мой z5r-net)
[0x6->0x2]        адрес на шине rs485
[0x7->0x0]     
[0x8->0x25]      тип контроллера z5r-net
[0x9->0x6]        флаги?? непонятно - у меня должно быть наверное   touchMemory, 8k судя по демо.ехе
[0xA->0x2]      v.2.9  прошивка контроллера
[0xB->0x9]     v.2.9 прошивка контроллера
[0xC->0x0]
[0xD->0x6]
[0xE->0x8]
[0xF->0x19]          ... дальше наверное "адреса событий" но где - непонятно,
[0x10->0x1]
[0x11->0x0]      .... и что за лишние поля в ответе?
[0x12->0x4]
[0x13->0x2]       

но ведь оригинальная табличка из описания протокола рассказывает о чуть-чуть другом:
0x00 1 байт Контрольная сумма
0x01 1 байт 0x08 Длина пакета
0x02 1 байт 0x08 Номер лицензии
0x03 1 байт 0x01 Идентификатор пакета
0x04 1 байт 0x00 Код операции (0 - среди найденных, 1 - перепроверить этот сетевой адрес)
0x05 1 байт Сетевой адрес контроллера
0x06 2 байта 0x0000 Зарезервировано
0x08 1 байт Тип контроллера      0x24 - Matrix-II-Net      0x25 - Z5R-Net
0x09 1 байт араметры контроллера
    биты 0-1 - размер памяти (0x00 - 2Kb, 0x01 - 4Kb, 0x02 - 8Kb)
    бит 3 - карты кодируются по стандарту Wiegand
    бит 7 - есть новые события
    остальные биты зарезервированы
0x0A 2 байта  Версия ПО контроллера
0x0C 1 байт зарезервировано
0x0D 2 байта Адрес последнего записанного события
0x0F 2 байта Адрес последнего считанного события

посмотрел на это, ...ребутнул весь стенд, снова отправляю {0x20,0xc2,0x6c,0xc2,0xcf,0xcf,0xca,0xca,0xca,0xC8,0xCA,0x0d } и ничего :) видимо, demo.exe еще что-то предварительно инициализирует. Запускаю demo, закрываю, запускаю свою "размотку" , отправляю {0x20,0xc2,0x6c,0xc2,0xcf,0xcf,0xca,0xca,0xca,0xC8,0xCA,0x0d } и снова вижу ответ из 20 байт в теле (см. в начале).

не могу понять, то ли неполное/устаревшее описание протокола, то ли не вчитался и пропустил какой-то важный шаг - то ли то и другое вместе взятое..




« Последнее редактирование: 06 Августа 2019, 20:07 от kill9fan »

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопрос по SDK
« Ответ #12 : 06 Августа 2019, 21:01 »
Протокол, описанный на http://posix.ironlogic.ru/ работает с лицензией №8, Sdk Guard по умолчанию работает с лицензией №5. Протоколы (точнее алгоритм упаковки/распаковки пакета) отличаются для разных лицензий. Попробуйте в Sdk в функцию ZG_Cvt_Open передать структуру ZG_CVT_OPEN_PARAMS с установленным параметром nLicN = 8.
« Последнее редактирование: 06 Августа 2019, 21:02 от gsa »

kill9fan

  • Пользователь
  • *****
  • Сообщений: 18
Re: Вопрос по SDK
« Ответ #13 : 07 Августа 2019, 11:31 »
Цитировать
Попробуйте в Sdk в функцию ZG_Cvt_Open передать структуру ZG_CVT_OPEN_PARAMS с установленным параметром nLicN = 8.
а я не через sdk, надо на юниксе делать обмен с конвертерами по tcp в режиме advanced. Из SDK просто использовал демку, чтобы продампить трафик
...

перепроверил, кажется помогло, ответ по контроллеру 0х2 пришел более осмысленный. сейчас буду проверять
« Последнее редактирование: 07 Августа 2019, 12:04 от kill9fan »

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопрос по SDK
« Ответ #14 : 07 Августа 2019, 11:56 »
а я не через sdk, надо на юниксе делать обмен с конвертерами по tcp в режиме advanced. Из SDK просто использовал демку, чтобы продампить трафик
Как я уже писал протоколы лицензии 8 (posix) и 5 (sdk) отличаются, поэтому дампить трафик Demo вряд ли полезно.

по дате непонятно: навряд ли 0xffff раскрывается в что-то осмысленное, но я так понимаю это что-то не очень нужное.
0xFFFF - без ограничений

сразу скажу что не помогло, битовое поле адресов на rs485 по прежнему 16 байт, а не 13.
Используйте первые 13 байт битового поля. Вроде бы нет проблемы.

Формат ответа детального инфо по контроллеру также недокументированный.
Каких данных не хватает?

может еще что-то надо для включения лицензии 8?
Нет, достаточно проверить/установить лицензию и запросить список контроллеров.