Автор |
Сообщение |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Проверять доступ на внешнем сервере
Здравствуйте!
Тестируем IPVideoRecord на распознавание номеров. Хотим интегрировать с БД 1С.
Из документации не совсем понятно в каком виде вписывать адрес внешнего сервера в соответствующее поле. В виде просто IP или FQDN или же в виде запроса http://IP_сервера:порт/some-path/ ?
В нашем случае БД 1С на вебсервере отвечает на запросы по URL http://IP_сервера:порт/some-path/
Спасибо!
|
11 авг 2020, 09:52 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Добрый день! Можно указать просто адрес без протокола, будет добавлено http://. То есть так: IP_сервера:порт/some-path По поводу пути после адреса, можно указать любой путь, к нему просто добавится строка вида ?plate=H877TA18&camid=Nzli...NDU3&direction=1. И будет отправлен GET запрос.
|
11 авг 2020, 11:11 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
Спасибо! Не смог найти в логах (сервер на Debian 10) никаких записей по запросам/ответам от внешнего сервера 1С. Подобные логи ведутся на сервере? Как понять, что после распознавания номера запрос на разрешение проезда производится на внешнем сервере? Нужно для отладки
|
11 авг 2020, 13:03 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Посмотрите в логе медиасервера. Сделайте поиск по названию функции: "NumberPlate::HttpCheckPlaneNumber"
|
11 авг 2020, 15:04 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
К сожалению, в логе нет ни единой записи, содержащей такой набор символов
Как же понять (не имея на этапе тестирования ни одного исполняющего устройства), что программа принимает ответ от нашей 1С корректно?
|
12 авг 2020, 09:46 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Да, Вы правы - нашли ошибку, из-за которой запрос не передаётся в лог. Если хотите его посмотреть - то либо сделайте это при помощи сетевого снифера (wireshark, например), либо посмотрите логи веб-сервера 1С - если на него приходят запросы, то он их зафиксирует. Ошибку исправим в следующем релизе, и можно будет смотреть в логах.
Если хотите, можем удалённо подключиться и попробовать отследить запрос.
|
12 авг 2020, 11:25 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
То, что запрос от ПО приходит, видим в логах веб-сервера. Ответы логируем средствами 1С. Все, как будто, корректно. Однако, в самом ПО, в "Текущие номера" и "Общий отчет" по-прежнему распознанные номера (все подряд) идут как "Не в списке". Даже те из них, на которые был получен ответ от внешнего сервера: listtype=2 isallowaccess=1
Смотрите вложенный скриншот.
Поэтому и возникает вопрос - как понять, что ПО верно идентифицирует ответ внешнего сервера и, условно, поднимает шлагбаум?
Вложения:
123.png [ 32.04 КБ | Просмотров: 2173 ]
|
12 авг 2020, 11:59 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Проверьте следующие моменты: 1. Возможно, ответы приходят в несколько неверном формате? Попробуйте в браузере выполнить запрос и покажите, какой выводится ответ от сервера. 2. Покажите, созданы ли у вас какие-то списки доступа и типы доступа (типы есть только в 3-й версии ПО)?
|
12 авг 2020, 12:46 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
1. Ответ в IE от 1С на скрине. 2. Списки в самом ПО не формировал
Вложения:
1233.png [ 13.48 КБ | Просмотров: 2170 ]
|
12 авг 2020, 14:23 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Какая у Вас версия ПО?
|
13 авг 2020, 09:27 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
Версия сервера 3.3.4.491 (на Debian 10) Клиент на Windows 10 - версия 2.3.17.467
\\Честно говоря, не знаю, почему клиент устаревший. Наверное, поставил по невнимательности. Это может влиять?
|
13 авг 2020, 10:01 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Создайте в программе тип доступа с ID=2 (у вас такой возвращается в ответе listtype). Но для этого сперва обновите клиент, во второй версии не было типов доступа.
Вложения:
Screenshot_2.png [ 37 КБ | Просмотров: 2152 ]
|
14 авг 2020, 09:52 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
Обновился. Сделал три типа доступа. Теперь колонка "Список" просто пустая. Хотя машины проезжали из, как минимум, двух типов
Вложения:
321.png [ 37.1 КБ | Просмотров: 2150 ]
322.png [ 93.31 КБ | Просмотров: 2150 ]
|
14 авг 2020, 12:30 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Собрали отладочную версию. Прошу Вас сделать так: 1. Скачать и обновить IPVR: https://sprecord.ru/files/downloads/vid ... .2.495.exe2. Включить отладочные логи в настройках (см. скрин). 3. Прогнать несколько машин, чтобы зафиксировать запросы и ответы сервера. 4. Выгрузить логи и прислать нам (см. скрин) - support@sprecord.ru
Вложения:
Screenshot_1.png [ 92.83 КБ | Просмотров: 2090 ]
|
18 авг 2020, 07:48 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
Сделал. Логи отправил. Спасибо
|
18 авг 2020, 13:16 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Из-за того, что в ответе ожидается простой текст, разделенный переносом строки, неверно парсится ответ. И в поле type_id=<br>listtype=0<br>isallowaccess=0 записывается вся строка.
Нужно отправить в ответе просто текст с переводом строки: listtype=0\nisallowaccess=0
|
20 авг 2020, 13:31 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
Внесли изменения в конфигурацию 1С. Сделал новые логи и выслал почтой. Посмотрите пожалуйста.
|
21 авг 2020, 08:28 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Вы передаёте символ \n между параметрами, и он не преобразуется в перевод строки, а передаётся как есть. Смысл в том, что нужно передать 2 строки, разделённые переводом. Не знаю, как это сделать на языке Вашего сервера, который посылает ответ, но в других языках программирования есть спецсимволы, которые его формируют. Если мы на языке С создадим строку "listtype=0\nisallowaccess=0", то компилятор её преобразует в "listtype=0 isallowaccess=0" То есть заменит \n на перевод строки. Вам надо найти что-то подобное, чтобы в ответ нашему серверу уходили строки, разделённые переводом.
|
24 авг 2020, 10:09 |
|
 |
Reanimator
Зарегистрирован: 11 авг 2020, 09:44 Сообщения: 12
|
 Re: Проверять доступ на внешнем сервере
Спасибо за помощь - наконец-то получилось. Теперь ПО корректно проверяет ГРЗ в БД 1С.
Однако, есть еще вопрос по этой теме. По логам 1С обнаружил, что с момента распознавания номера в ПО до запроса к 1С проходит 4-5 секунд. Оба сервера синхронизируют время в одном и том же источнике и расхождение в локальном времени исключены. Ранее, когда на сервере было 2 камеры, грешил на загрузку ЦПУ. Сейчас для ВМ, в которой крутится сервер, выделено очень много ресурса по ЦПУ и ОЗУ, для теста заведена только одна камера. load average: 1,16, 1,22, 1,29
Это так и задумано? Или же есть смысл искать причину такой задержки в запросе?
|
24 авг 2020, 15:55 |
|
 |
SpSupport
Администратор
Зарегистрирован: 08 окт 2014, 12:46 Сообщения: 672
|
 Re: Проверять доступ на внешнем сервере
Для более надёжного распознавания программа ждёт получения нескольких кадров с одним номером, затем производит слияние (т.к. на разных кадрах некоторые символы в номере могут отличаться из-за ошибок). После слияния получается некий наиболее вероятный результат, который и отправляется в запросе на Ваш сервер 1С. А в базу данных программы IPVR при этом фиксируется время прихода самого первого кадра с данным номером. Думаю, что задержка связана именно с этим, то есть можно сказать, что так задумано. Чем меньше частота кадров на камере и чем больше настроено кадров для фиксации (см. скриншот), тем больше может быть время задержки. Соответственно, чтобы его уменьшить, можно попробовать увеличить FPS камеры или уменьшить кол-во кадров в условии занесения номера в БД в настройках.
Вложения:
Screenshot_4.png [ 53.88 КБ | Просмотров: 1966 ]
|
25 авг 2020, 07:25 |
|
|