Имя: Пароль:
1C
1С v8
Получение изображения с IP-камеры
0 greemodineser
 
01.11.12
13:47
Есть самопальная складская конфигурация, к которой требуется прекрутить возможность более-менее автоматизированного занесения снимков складских позиций в БД.

Под "более-менее" подразумевается следующая картина: Есть кладовщик, у которого есть небольшой столик со штативчиком с камерой. На столик кладется выбранная позиция, и далее кладовщик нажимая кнопку в специальной обработке заносит фотку в справочник "Номенклатура". Задача несколько осложняется тем, что все рабочие места имеют лишь терминальный доступ к 1С-серверу, что затрудняет использование web-usb-камеры, давая возможность прибегнуть лишь к IP-камере.

Это было описание общей ситуации, а теперь конкретный вопрос, который, как мне кажется, вытекает из этого описания (может быть вы увидите другое решение):
Как бы мне закодить получение изображения в реальном времени с IP-камеры на поле картинки на форме толстого приложения 1С?
1 PiotrLoginov
 
01.11.12
14:57
Мб воспользоваться сторонним приложением получения снимка с камеры, имеющим управление из командной строки? Когда-то интересовался темой, но сейчас ссылки не дам, хотя уверен, поиск в сети будет не долгим. А дальше дело техники: вешаем на кнопку выполнение определенной команды и забираем программно из приготовленной папки готовое изображение. Имхо даже вариант с расшаренной usb-камерой может прокатить.
2 greemodineser
 
01.11.12
15:39
На самом деле работа с IP-камерой довольно проста. В большинстве случаев она представляет собой web-сервер выдающий видео-поток в нужном формате. Вполне можно получать изображение http-запросом, и тогда мой вопрос сводится вот к чему:
Если я хочу на поле картинки на форме иметь изображение а реальном времени (пусть и с небольшим fps), а с правочник дергать отдельные мгновенные кадры по нажатию кнопки, как мне организовать зацикленный запрос к http-серверу средствами 1С? Есть ли какой-нибудь таймер, или что-нибудь в этом роде?
3 Spieluhr
 
01.11.12
16:00
(2) Попробуйте в форме ПодключитьОбработчикОжидания()
4 greemodineser
 
01.11.12
16:43
(3) Судя по написанному в СП должно подойти. Спасибо, попробую.
5 greemodineser
 
02.11.12
13:42
ОбработчикОжидания отрабатывает с максимальной частотой раз в секунду. Хотелось бы чего-нибудь пошустрее (
6 BigHarry
 
02.11.12
13:44
(5) Зачем шустрее? Ваш кладовщик будет нажимать на кнопку чаще одного раза в секунду?
7 greemodineser
 
02.11.12
13:48
Кладовщик должен видеть, что попадает в поле зрения камеры до того, как он нажмет кнопку "Сохранить картинку". Периодическое получение картинки нужно не для ее сохранения, а для получения изображения в режиме реального времени.
8 BigHarry
 
02.11.12
13:56
Видел похожее, но там через TWAIN интерфейс было организовано, превью тоже имелось, но ессно - отображение картинки во время превью делал драйвер или ПО камеры без участия 1С, в момент снимка - 1С засасывала картинку. Реализовано было на камере Genius, точно модель не знаю - не разглядывал, но через USB.
Возможно что реальней вам это будет прикрутить через тонкого клиента, видеопоток на сервер через тырнет - это слабое место...
9 greemodineser
 
02.11.12
14:09
(8) У меня это вряд ли слабое место, потому что и терминальный сервер (на котором стоит 1С) и IP-камера находятся в одной локальной сети. Разово дергать картинку с камеры я уже умею, все что мне нужно на данном этапе - делать это без участия юзера хотя бы на 3-4 fps.
10 greemodineser
 
26.11.12
14:17
В общем пришел к комбинированному решению - превратил USB web-камеру в IP с помощью специальной программулины. Теперь изображение с нее получаю обычными http-запросами. Одна проблема остается - частота обновления 1 кадр в секунду (максимум, что можно выжать из ОбработчикаОжидания) как-то не радует.

Поэтому как не крути, а вопрос остается: есть ли другие способы выполнять на форме действие с заданным периодом < 1сек.?
11 AndyD
 
26.11.12
14:21
<Интервал> (обязательный)

Тип: Число.
Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число).
Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.


сделай 2 обработчика ожидания, которые вызывают друг друга на однократное выполнение с интервалом 1/10 секунды