Фиксация изображений с видеокамер (Devline Линия, Acumen, E-Castle) по заданному событию

Пример использования консольной утилиты CamsCapture, для фотофиксации событий в 1С с камер видеонаблюдения.

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

Программа проста в использовании, не требует установки, запускается как консольное приложение с параметрами командной строки. Всего 6 параметров, они должны быть разделены пробелами:

1)ip адрес объекта видеонаблюдения, если Acumen, то ip без последней цифры (октета)

2)тип оборудования для Линия – linia, Линия6 – linia6, Acumen – ip, E-Castle – dvr

3)имя пользователя для доступа к объекту видеонаблюдения

4)пароль пользователя

5)номера камер и названия файлов, в которые будут сохраняться снимки. Для Линии и E-Castle нумерация камер идет с 0. Для Acumen вместо номера необходимо указать последнюю цифру ip адреса камеры (октет). Имя файла указывается в скобках. Номеров и названий, можно указать любое нужное количество, через запятую. Пример для Acumen: если ip камер 192.168.0.231, 192.168.0.232 и 192.168.0.233, то этот параметр будет: 231(fistcam.jpg),232(secondcam.jpg),233(thirdcam.jpg)

6)Путь, с указанием директории, куда будут сохранены файлы, локальный, либо сетевой. Если в пути есть пробелы, то его необходимо заключить в кавычки.

Пример использования в программе 1С, при записи документа «Реализация в розницу» фиксируем фото обстановки в магазине: 

Процедура СделатьСнимки()
РасположениеЗапускаемогоФайла = """C:workCamsCapture.exe""";
ОбщаяПапкаДляСнимков = """\s-fileCapture""";
ИмяПользователя = "admin";
Пароль = "pass";
ИмяФайла1 = ЭтотОбъект.Номер + "_" + Формат(ТекущаяДата(), "ДФ=ддММгггг") + "_1.jpg";
ИмяФайла2 = ЭтотОбъект.Номер + "_" + Формат(ТекущаяДата(), "ДФ=ддММгггг") + "_2.jpg";
ИмяФайла3 = ЭтотОбъект.Номер + "_" + Формат(ТекущаяДата(), "ДФ=ддММгггг") + "_3.jpg";
ИмяФайла4 = ЭтотОбъект.Номер + "_" + Формат(ТекущаяДата(), "ДФ=ддММгггг") + "_4.jpg";
//Для Линии и Линии 6
IPАдрес = "192.168.1.2";
ТипОборудования = "linia6"; // или "linia"
Камера1 = "0" + "(" + ИмяФайла1 + ")";
Камера2 = "1" + "(" + ИмяФайла2 + ")";
Камера3 = "2" + "(" + ИмяФайла3 + ")";
Камера4 = "3" + "(" + ИмяФайла4 + ")";
//Для камер Acumen
IPАдрес = "192.168.2.";
ТипОборудования = "ip";
Камера1 = "230" + "(" + ИмяФайла1 + ")";
Камера2 = "231" + "(" + ИмяФайла2 + ")";
Камера3 = "232" + "(" + ИмяФайла3 + ")";
Камера4 = "233" + "(" + ИмяФайла4 + ")";
//Для видеорегистраторов E-Castle
IPАдрес = "192.168.3.50";
ТипОборудования = "dvr";
Камера1 = "0" + "(" + ИмяФайла1 + ")";
Камера2 = "1" + "(" + ИмяФайла2 + ")";
Камера3 = "2" + "(" + ИмяФайла3 + ")";
Камера4 = "3" + "(" + ИмяФайла4 + ")";
//Запускаем CamsCapture
Команда = РасположениеЗапускаемогоФайла + " " + IPАдрес + " " + ТипОборудования + " " + ИмяПользователя + " " + Пароль + " " + Камера1 + "," + Камера2 + "," + Камера3 + "," + Камера4 + " " + ОбщаяПапкаДляСнимков;
КомандаСистемы = Новый ComОбъект("wscript.shell");
КомандаСистемы.Run("cmd /c " + """" + Команда + """", 0);
//Заполняем реквизиты
СнимокКамера1 = СтрЗаменить(ОбщаяПапкаДляСнимков, """", "") + ИмяФайла1;
СнимокКамера2 = СтрЗаменить(ОбщаяПапкаДляСнимков, """", "") + ИмяФайла2;
СнимокКамера3 = СтрЗаменить(ОбщаяПапкаДляСнимков, """", "") + ИмяФайла3;
СнимокКамера4 = СтрЗаменить(ОбщаяПапкаДляСнимков, """", "") + ИмяФайла4;
КонецПроцедуры
В форме списка, при выборе документа смотрим снимки:
Процедура СписокПриАктивизацииСтроки(Элемент)
Строка = ЭлементыФормы.Список.ТекущаяСтрока;
Если Строка = Неопределено ИЛИ Строка.СнимокКамера1 = "" Тогда
Возврат;
КонецЕсли;
ФайлСнимокКамера1 = Новый ДвоичныеДанные(Строка.СнимокКамера1);
ФайлСнимокКамера2 = Новый ДвоичныеДанные(Строка.СнимокКамера2);
ФайлСнимокКамера3 = Новый ДвоичныеДанные(Строка.СнимокКамера3);
ФайлСнимокКамера4 = Новый ДвоичныеДанные(Строка.СнимокКамера4);
СнимокКамера1 = Новый Картинка(ФайлСнимокКамера1);
СнимокКамера2 = Новый Картинка(ФайлСнимокКамера2);
СнимокКамера3 = Новый Картинка(ФайлСнимокКамера3);
СнимокКамера4 = Новый Картинка(ФайлСнимокКамера4);
Элементыформы.ПолеКартинки1.Картинка = СнимокКамера1;
Элементыформы.ПолеКартинки2.Картинка = СнимокКамера2;
Элементыформы.ПолеКартинки3.Картинка = СнимокКамера3;
Элементыформы.ПолеКартинки4.Картинка = СнимокКамера4;
КонецПроцедуры   

Данный код представлен для примера работы приложения, при рабочем использовании он должен быть скорректирован.

1 Comment

  1. Hexed
    Линия, Линия6, Acumen, E-Castle

    Я так понимаю с обычной вебкамерой не получится? Или например с любой ip камерой работающей по протоколу Onvif?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *