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

alteksa

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

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

gsa

  • Пользователь
  • *****
  • Сообщений: 105
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

  • Пользователь
  • *****
  • Сообщений: 105
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

  • Пользователь
  • *****
  • Сообщений: 105
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

  • Пользователь
  • *****
  • Сообщений: 105
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

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