ЖУРНАЛ СТА 4/2009
задача решена, но после перехода в режим исполнения импортированный объект не отображает изображение с видеокамеры. Дело в том, что после инициализации в режиме испол нения ActiveX объект не транслирует изображение с видео камеры до тех пор, пока не будет выполнен его метод Play (у многих других IP видеокамер данный метод называет ся аналогично). Данная архитектура объекта вполне оп равданна: до тех пор пока трансляция изображения с ви деокамеры не инициирована оператором, ActiveX объект не опрашивает видеокамеру и тем самым не создаётся из быточный трафик. Выполнение метода объекта с помощью скрипта не представляет собой сложной задачи. На языке VBA эта инструкция будет выглядеть так: ThisDisplay.Gif89a1.Play (Gif89a — имя ActiveX Control в библиотеке нашего объ екта). Но тут мы сталкиваемся с новой проблемой, свой ственной многим ActiveX объектам: при подключении библиотеки нашего объекта начинают некорректно вы полняться инструкции выбранного языка программиро вания. Причина в том, что производители оборудования создают ActiveX объекты для корректной работы Web ин терфейса на стороне клиента или для своего программно го обеспечения. Способов интеграции изображения с IP видеокамеры может быть много. В данной статье рассмотрены три ме тода: создание экранной формы VBA, создание собствен ного ActiveX объекта и создание собственного Web ин терфейса. И НТЕГРАЦИЯ С СОЗДАНИЕМ ЭКРАННОЙ ФОРМЫ VBA Данный метод достаточно прост в реализации. Необходи мо открыть редактор VBA компонента GraphWorX и создать объект класса UserForm (команда UserForm меню Insert). С помощью панели ToolBox нужно подключить библиотеку нашего ActiveX объекта (команда Additional Controls меню Tools, рис. 2) и импортировать его с панели на VBA форму. Для выполнения данного действия необходимо, чтобы под ключаемая библиотека уже была зарегистрирована в опера ционной системе. В текстовом коде объекта UserForm напишем следую щее: Private Sub UserForm_Activate() UserForm1.Gif89a1.RemoteHost = «192.168.2.1» UserForm1.Gif89a1.RemotePort = 8481 UserForm1.Gif89a1Timeout = 5 UserForm1.Gif89a1.AuthType = 1 UserForm1.Gif89a1.PreviewFrameRate = 1 UserForm1.Gif89a1.PreviewWidth = 320 UserForm1.Gif89a1.PreviewHeight = 240 UserForm1.Gif89a1.Width = 320 UserForm1.Gif89a1.Height = 240 UserForm1.Gif89a1.Play End Sub Private Sub UserForm_Terminate() UserForm1.Gif89a1.Stop End Sub Процедура UserForm_Activate выполняется при иници ировании созданной VBA формы. В ней задаётся IP адрес видеокамеры, устанавливаются размеры изображения и выполняется метод Play, начинающий трансляцию видео изображения с камеры. Процедура UserForm_Terminate выполняется при закрытии формы и инициирует метод Stop, прекращающий трансляцию. В данном примере процедуру UserForm_Terminate можно опустить, посколь ку при закрытии VBA формы опрос прекращается авто матически, так как закрывается и сам ActiveX объект. 91 СТА 4/2009 www.cta.ru В ЗАПИСНУЮ КНИЖК У ИНЖЕ Н Е РА Рис. 2. Окно добавления объектов на панель ToolBox редактора VBA Рис. 3. Результат вывода изображения с IP видеокамеры в экранную форму GraphWorX Рис. 1. Окно импорта OLE объектов в экранную форму GraphWorX © СТА-ПРЕСС
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy