close

Вход

Забыли?

вход по аккаунту

?

Основная часть

код для вставкиСкачать
ОГЛАВЛЕНИЕ
Задание
Аннотация
Abstract
Введение ......................................................................................................................... 13
Техническое задание ..................................................................................................... 14
Глава I. Постановка задачи........................................................................................... 18
1.1. Анализ предметной области.................................................................................. 18
1.3. Выбор модели разработки программного продукта ........................................... 23
1.4. Обоснование выбранного языка и среды программирования ........................... 25
1.5. Выводы .................................................................................................................... 26
Глава II. Аналитическая часть ..................................................................................... 27
2.1. Основные требования к программному продукту .............................................. 27
Gotcha v.3.0.6 ................................................................................................................. 28
Рис. 2.1. Главное окно программы Gotcha v.3.0.6 ...................................................... 29
EyeCu Professional v.2.2 ................................................................................................ 30
Active WebCam v.7.5 ..................................................................................................... 31
Рис. 2.3. Главное окно программы Active WebCam v.7.5 ......................................... 32
2.3. Выводы .................................................................................................................... 38
Глава III. Проектно-конструкторская и ...................................................................... 39
технологическая части .................................................................................................. 39
3.1. Организация программы VideoAlarm .................................................................. 39
3.3. Выводы .................................................................................................................... 45
Глава IV. Экспериментальная часть ............................................................................ 46
4.1. Тестирование как способ обеспечения качества программного продукта ...... 46
4.2. Критерии выбора тестов для программного продукта ....................................... 46
ДП 230102.5009.013 ПЗ
Изм. Лист
№ докум.
Разраб.
Григорьев Д.В.
Провер.
Фадеев С.Г.
Резидент
Павлов А.А.
Н. контр.
Желтов В.П.
Утв.
ЖелтовФаВ.П.
деев С.Ю.
Подпись Дата
Лит.
Система комрьютерной фоторегистрации.
Лист
Листов
135
Чувашский государственный университет ДиКТ 50-09
4.3. Тестирование программного продукта ................................................................ 47
4.4. Руководство пользователя VideoAlarm ................................................................ 48
4.4.1. Введение............................................................................................. 48
4.4.2. Назначение и условия применения ................................................. 49
4.4.3. Подготовка к работе ......................................................................... 50
4.4.4. Описание работы............................................................................... 51
4.4.5. Аварийные ситуации ........................................................................ 51
4.5. Выводы .................................................................................................................... 52
Глава V. Организационно-экономическая часть ....................................................... 53
Глава VI. Безопасность и экологичность .................................................................... 68
6.1. Анализ опасных и вредных производственных факторов и факторов
воздействия на окружающую среду рабочего места пользователя ................. 68
6.1.1. Электрический ток .............................................................................................. 69
6.1.2. Статическое электричество ................................................................................ 70
6.1.3. Электромагнитное поле ...................................................................................... 70
6.1.4. Шум и вибрация .................................................................................................. 70
6.1.5. Недостаточная чистота и количество необходимого воздуха ........................ 71
6.1.6. Психофизиологические факторы....................................................................... 72
6.2. Мероприятия по устранению или уменьшению влияния выявленных факторов
......................................................................................................................................... 72
6.2.1.Обеспечение электробезопасности .................................................................... 72
6.2.2. Нормирование статического электричества ..................................................... 73
6.2.3. Нормирование воздействия электромагнитных полей ................................... 73
6.2.4. Нормирование уровней аэроионизации ............................................................ 74
6.2.5. Вентиляция рабочих зон ..................................................................................... 74
6.2.6. Нормирование шума и вибрации ....................................................................... 76
6.2.7. Создание рационального освещения ................................................................. 77
6.2.8. Противопожарная безопасность ........................................................................ 78
6.2.9. Защита окружающей среды при работе с программным комплексом .......... 79
6.4. Расчет освещенности помещения ......................................................................... 83
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
11
6.5. Микроклимат и организация воздухообмена................................... 84
6.6. Вывод ....................................................................................................................... 86
Заключение .................................................................................................................... 88
Список литературы ....................................................................................................... 89
Приложение А ............................................................................................................... 90
Приложение Б .............................................................................................................. 112
Приложение В .............................................................................................................. 117
Приложение Г .............................................................................................................. 124
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
12
ВВЕДЕНИЕ
Системы видео наблюдения предназначены для обеспечения безопасности
на объекте. Они позволяют наблюдателю следить за одним или несколькими объектами, находящимися порой на значительном расстоянии как друг от друга, так и
от места наблюдения. В настоящее время системы видео наблюдения не являются
экзотикой, они находят все более широкое применение во многих сферах человеческой жизни. Наиболее простая система видео наблюдения - это камера, подключенная к телевизору или монитору, такая система позволяет наблюдать за ребенком или автомобилем возле дома.
Электронные системы наблюдения позволяют выполнять и другие не менее
важные и более сложные задачи. Например, наблюдение за несколькими больными одновременно, движением транспортных потоков на оживленных магистралях
или в портах. Существует целый ряд применений систем видеонаблюдения в
научных исследованиях и в промышленности, например, для контроля за технологическими процессами и управления ими. Успешно эти системы используются
в магазинах, в казино, в банках, на автостоянках. Малокадровые системы для дома и офиса способствуют повышению безопасности и создают дополнительные
удобства.
Однако основная задача, с которой должна справляться система видео
наблюдения, и именно для этой задачи она и создавалась, - это обеспечение физической безопасности объекта, как самостоятельно, так и при совместной работе с
другими системами безопасности.
При современных темпах криминализации общества и роста преступности,
сложившейся общественно политической обстановке в стране, постоянной угрозы
террористических актов просто необходима охрана периметра и территории, контроль доступа на объект его сотрудников, посетителей и транспорта, ведение визуального наблюдения за состоянием различных частей объекта.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
13
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
1. Наименование программы
"Система компьютерной фоторегистрации"
2. Основание для разработки
Основанием для разработки является задание на дипломный проект
3. Назначение
Программный продукт предназначен для видеонаблюдения с датчиком
движения, в следствии срабатывания датчика программа начинает запись всего
происходящего с камеры видеонаблюдения.
4. Требования к разработке
4.1. Функциональные требования, предъявляемые к устройству
Программа должна реализовывать следующие функции:
Выполнять захват изображений с любого устройства видеозахвата, под-
держиваемого операционными системами семейства Windows.
Выделять указанную контрольную область из оригинального изображе-
Производить автоматический баланс уровней контрольной области, что
ния.
обеспечивает независимость работы алгоритма обнаружения от освещенности и
уровня усиления видеосигнала.
Обрабатывать контрольную область с настраиваемой чувствительно-
стью к движению по 64 подобластям.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
14
Визуально представлять каждый этап обработки.
Позволять установить пороговые условия для захвата изображения и вызова тревоги.
При выполнении условий тревоги запускать указанную программу, командный файл, документ или проигрывать звуковой сигнал.
При превышении порога обнаружения движения сохранять изображение
в формате JPEG.
Принудительно сохранять изображение через указанные промежутки
времени.
Обладать исключительно простым и функциональным интерфейсом без
ненужных для такого рода программ графических излишеств.
Обладать абсолютно полной и достаточно тонкой настройкой всех параметров пользователем.
Не должна требовать для работы никаких дополнительных файлов и библиотек, кроме стандартных Windows, не вносить никакие свои записи в реестр
или файлы настроек ОС.
Должна быть разработана тестовая программа, демонстрирующая возможности разработанной мною программного обеспечения.
4.2. Требования по надежности
Полный срок службы данного программного продукта не ограничен.
4.3. Требования к условиям эксплуатации
Условия эксплуатации должны соответствовать его инструкции.
Программный комплекс должен корректно работать на IBM PC совместимом ПК, под управлением ОС семейства Microsoft Windows.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
15
4.4. Требования к составу технических средств
В состав разрабатываемого устройства должны входить следующие элементы:
ПК IBM PC совместимый
Минимальные системные требования: Intel Pentium 2 ГГц, 1 ГБ ОЗУ, ОС
Windows XP.
4.5. Требования к программной и информационной совместимости
Программный комплекс должен быть выполнен в виде исполняющейся программы, и не должен требовать для своей работы сторонних программных библиотек.
Программный комплекс должен работать под управлением ОС семейства
Microsoft Windows.
4.6. Требования к документации
К системе должны прилагаться следующие документы: руководства пользователя и администратора, CD диск с программным продуктом и электронной версией документации.
4.7. Требования к безопасности
Аппаратные средства должны быть заземлены в соответствии с инструкцией по эксплуатации ПК.
4.8. Требования по эргономике и технической эстетики
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
16
Расположение управляемых аппаратных средств должны соответствовать
общепринятым соглашениям IBM.
5. Безопасность при эксплуатации ПЭВМ
Перед началом работы с ПК пользователь должен ознакомиться с инструкцией по безопасности. Должна быть произведена классификация помещения по
взрывоопасности, по степени огнестойкости, по степени поражения электрическим током.
Необходимо произвести расчеты по безопасности труда: расчет освещенности вычислительного центра.
6. Стадии и этапы разработки
- Введение. Анализ технического задания.
- Анализ области разработки и постановка задачи.
- Разработка проектно-конструкторской и технологической частей.
- Разработка экспериментальной части и программной документации.
- Организационно-экономическая часть.
- Безопасность и экологичность проектных решений.
- Представление дипломного проекта и доклада на проверку научному руководителю. Предварительная защита дипломного проекта.
- Представление дипломного проекта, рецензии и отзыва руководителя дипломного проекта в учебную часть.
7. Порядок контроля и приемки
Диагностика работоспособности должна осуществляться последовательной
проверкой выполнения всех функций после установки данного программного
обеспечения.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
17
ГЛАВА I. ПОСТАНОВКА ЗАДАЧИ
1.1. Анализ предметной области
Программа для системы компьютерной фоторегистрации – это многофункциональная система обеспечения безопасности на объекте, легкая во внедрении и
простая в обслуживании и обучении персонала.
Эта программа предназначена для автоматического обнаружения и видеоконтролирования событий, мгновенного обнаружения несанкционированного
проникновения на охраняемую территорию, исключения ложных срабатываний за
счет интеллектуальной обработки поступающих информационных потоков,
наглядного отображения всей обрабатываемой информации, возможности тесной
интеграции с другими подсистемами безопасности. Среди недостатков такой системы можно выделить затрудненную работу в неблагоприятных погодных условиях, например, туман.
Основным критерием системы видеонаблюдения при ее разработке является
надежность, информативность, достоверность и своевременность.
Первый критерий достигается при использовании только самых лучших
компонентов от ведущих мировых производителей, использованием проверенных
на практике и глубоко продуманных конструктивных решений. Все это позволяет
достигнуть наибольшего времени работы системы между отказами и минимального периода восстановления.
Соблюдение второго критерия позволяет обеспечить одновременную и непрерывную работу видеодетекции движения, видеозаписи, отображения на экран,
воспроизведения и резервного архивирования по каждой из подключенных камер.
Достоверность – основной критерий для оператора системы и работников
службы безопасности объекта, на котором установлена система видеонаблюдения. Достигается путем минимизации ложных срабатываний за счет интеллектуальных алгоритмов обработки потоков видеоинформации, увеличения изображения при условиях недостаточной видимости.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
18
Своевременность обеспечивает прямой доступ авторизованных лиц к видео
архивам, показ предыстории событий, т.е. видеозаписи, которая была получена за
несколько секунд до срабатывания тревоги, возможность принятия решения системой самостоятельно без участия оператора, согласно заложенному алгоритму.
1.2. Технологии видеонаблюдения
Аналоговые системы видеонаблюдения
Рис. 1.1. Аналоговые системы видеонаблюдения
Система состоит из следующих элементов:
Видеокамера, она является глазами системы. Видеокамера преобразует световой поток в электрический сигнал, величина которого пропорциональна интенсивности светового потока. Далее, данные от видеокамеры могут передаваться к
последующим устройствам как по проводам, (коаксиальный кабель, витая пара,
оптоволокно), так и по системам радиосвязи, как правило, работающим в гигагерцовом диапазоне.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
19
В аналоговых системах, чтобы эффективно управлять камерами, применяются такие устройства, как переключатели (квадраторы), мультиплексоры и матричные системы.
Переключатель (квадратор) - это устройство, имеющее несколько входов
для видеокамер и позволяющее оператору произвольно переключать выводимое
на монитор или записываемое изображение с любой камеры, или включать последовательное автоматическое переключение камер. Возможности таких устройств
ограничены, поэтому их применение целесообразно только в простейших системах.
Мультиплексор является более «продвинутым» устройством. Он позволяет
выводить на один монитор несколько камер и вести одновременную запись с нескольких источников видеосигнала. В отличие от квадратора мультиплексор может содержать в себе детектор движения и имеет больше возможностей управления камерами.
Матричные системы - следующий уровень развития мультиплексоров. Они
предназначены для обслуживания крупных предприятий, где установлено большое число камер и имеется несколько операторов.
Монитор для видеонаблюдения отличается от обычного телевизора более
четким изображением и высокой разрешающей способностью. Люминофор, используемый в таких мониторах, имеет повышенную стойкость, т.к. изображение
может много часов оставаться неподвижным.
Как правило, в системах видеонаблюдения используются специальные
устройства записи, записывающие на стандартную видеопленку, но рассчитанные
на большее время записи, т.к. не всегда необходимо плавное изображение с частотой 25 кадров в секунду. Видеомагнитофоны, которые наиболее часто применяются совместно с системами наблюдения, относятся к классу TLVR. (видеомагнитофонов с задержкой времени). Такие устройства позволяют стандартную
трехчасовую пленку "растянуть" при использовании до 960 часов. Скорость протяжки пленки в данном случае меняется ступенчато (3 часа; 12 часов; 24 часа; 48
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
20
часов, .... 960 часов). Кроме того, в таких системах возможна запись изображения
одновременно с нескольких видеокамер.
Цифровые системы видеонаблюдения
1.
1.
. . L
. . M
1.
Удаленный пульт Удаленный пульт
видеоконтроля
видеоконтроля
Сервер резервного Сервер резервного
копирования
копирования
Пульт видеоконтроля
Сетевой видеопринтер
Fast Ethernet
. . К
Сетевой
лазерный принтер
1.
Пульт видеоконтроля
1.
. . N
2.
Локальный
видеосервер
. . 32
Локальный
видеосервер
33.
. . 64.
Локальный
видеосервер
N*32-31
. . N*32
Видеокамеры
Рис. 1.2. Цифровые системы видеонаблюдения
Видеосигналы от телевизионных камер, установленных в локальных зонах
наблюдения, поступают на локальные видео серверы, к каждому локальному видео серверу подключается от 1 до32 телекамер. Локальный видеосервер осуществляет сбор, обработку и накопления видеоинформации:
1.
Ввод и оцифровку аналогового сигнала.
2.
Контроль работоспособности видеокамер.
3.
Видеодетекцию движения.
4.
Компрессию видеоизображения
5.
Запись по тревоге от других систем безопасности или от детектора
движения.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
21
6.
Быстрый поиск видеоинформации.
7.
Возможность экспорта видеозаписей.
8.
Вывод аналоговой видеоинформации.
Далее по высокоскоростному магистральному интерфейсу (в данном случае
рассмотрим Fast Ethernet) поток видеоинформации поступает на пульт видеоконтроля (рабочее место оператора). Оператор в зависимости от конкретной
задачи может наблюдать за каждой локальной зоной на компьютерном мониторе.
Причем наблюдение ведется в разных режимах: полный экран, полиэкран со свободно-настраиваемым размером окна для любого количества видеокамер. Каждое
окно может сопровождаться текстовым заголовком с указанием времени, даты, и
состоянии видеокамеры. Оператор может осуществлять откат необходимой информации на различного рода носители информации, проинсталлированные как
на пульте видеоконтроля, так и на сервере резервного копирования. При необходимости оператор может распечатать интересующую его информацию на лазерном или видеопринтере.
Приведенное выше краткое описание структурных схем цифровых и аналоговых систем наблюдения, а также использование дополнительной информации
позволяет сформулировать основные преимущества цифровых систем перед аналоговыми.
Преимущества цифровых систем перед аналоговыми.
1.
Высокое качество всей системы в целом.
2.
Возможность хранения записанной информации сколь угодно долго
без потерь в качестве.
3.
Небольшие затраты на техническое обслуживание.
4.
Одновременная работа режимов записи и воспроизведения.
5.
Простота и скорость поиска нужного фрагмента или кадра.
6. Простота и надежность копирования на различные носители.(CD, DVD,
DDS, стример) при полном сохранение качества исходного материала при копировании.
7. Возможность передачи видео информации по компьютерным сетям.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
22
8. Гибкость и адаптивность (возможность гибко настраивать систему в зависимости от выполняемой задачи, стоящей перед пользователем).
9. Возможность доработки, модернизации системы, самостоятельной разработки дополнительных приложений.
10.
Возможность получения высококачественного изображения.
11.
Абсолютно стабильный и четкий стоп-кадр.
Эти факторы обусловили появление на рынке значительного числа всевозможных цифровых систем, различающихся как по качеству и функциональным
возможностям, так и по стоимости.
1.3. Выбор модели разработки программного продукта
Для разработки ПО системы компьютерной фоторегистрации целесообразно
использовать спиральную модель разработки.
Использование спиральной модели позволяет осуществлять переход на следующий этап выполнения проекта, не дожидаясь полного завершения текущего недоделанную работу можно будет выполнить на следующей итерации. Главная
задача каждой итерации - как можно быстрее создать работоспособный продукт,
который можно показать пользователям системы. Таким образом, существенно
упрощается процесс внесения уточнений и дополнений в проект.
Рис. 1.3. Спиральная модель жизненного цикла
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
23
Спиральный подход позволяет сделать процесс разработки программного
обеспечения более гибким. Итерационная разработка существенно упрощает внесение изменений в проект при изменении требований заказчика.
При использовании спиральной модели отдельные элементы информационной системы интегрируются в единое целое постепенно. При итерационном подходе интеграция производится фактически непрерывно. Поскольку интеграция
начинается с меньшего количества элементов, то возникает гораздо меньше проблем при ее проведении.
При данной модели разработки уменьшается уровень рисков. Данное преимущество является следствием предыдущего, так как риски обнаруживаются
именно во время интеграции. Поэтому уровень рисков максимален в начале разработки проекта. По мере продвижения разработки ожидаемый уровень рисков
снижается. При использовании спиральной модели снижение уровня рисков происходит с наибольшей скоростью. Это связано с тем, что при итерационном подходе интеграция выполняется уже на первой итерации, и на начальных итерациях выявляются многие аспекты проекта, такие как пригодность используемых инструментальных средств и программного обеспечения, квалификация разработчиков и т.п.
Итерационная разработка обеспечивает большую гибкость в управлении
проектом, давая возможность внесения тактических изменений в разрабатываемое
изделие. Например, можно сократить сроки разработки за счет снижения функциональности системы или использовать в качестве составных частей системы продукцию сторонних фирм вместо собственных разработок. Это может быть актуальным в условиях конкурентной борьбы, когда необходимо противостоять продвижению изделия, предлагаемого конкурентами.
Итерационный подход упрощает повторное использование компонентов.
Это обусловлено тем, что гораздо проще выявить общие части проекта, когда они
уже частично разработаны, чем пытаться выделить их в самом начале проекта.
Анализ проекта после проведения нескольких начальных итераций позволяет выявить общие многократно используемые компоненты, которые на последующих
итерациях будут совершенствоваться.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
24
Спиральная модель позволяет получить более надежную и устойчивую систему. Это связано с тем, что по мере развития системы ошибки и слабые места
обнаруживаются и исправляются на каждой итерации. Одновременно могут корректироваться критические параметры эффективности.
Итерационный подход дает возможность совершенствовать процесс разработки - анализ, проводимый в конце каждой итерации, позволяет проводить оценку того, что должно быть изменено в организации разработки, и улучшить ее на
следующей итерации.
1.4. Обоснование выбранного языка и среды программирования
На основе проведенного анализа существующих языков программирования
было решено использовать среду разработки С++ Builder, так как она является
универсальной средой для разработчиков программного обеспечения, которая
позволяет быстро разрабатывать высокопроизводительные и простые в обслуживании приложения для Windows. С помощью мощной интегрированной среды
разработки, визуального редактора интерфейса, огромного набора компонент и
полноценной поддержки разнообразных баз данных стало возможным создавать
качественные приложения гораздо быстрее, чем ранее. Развитый язык программирования C++ Builder и быстрый компилятор обеспечивают высокую производительность при разработке native-приложений для Windows. C++ Builder обеспечивает разработчикам полным набором средств для редактирования и отладки
программы, предоставляя совершенное решение, которое делает создание приложений быстрее и легче.
C++ Builder
Язык C++ Builder является программным продуктом, в дополнение к которому разработан набор разнообразных библиотек. Поэтому он позволяет решить
практически любую задачу программирования. Тем не менее, в силу разных приДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
25
чин (не всегда технических) для каких-то типов задач он употребляется чаще, а
для каких-то - реже.
C++ Builder, как преемник языка Си, широко используется в системном
программировании. На нем можно писать высокоэффективные программы, в том
числе операционные системы, драйверы и т.п.
Поскольку системное программное обеспечение часто бывает написано на
языке С или C++ Builder, то и программные интерфейсы к подсистемам операционной системы тоже часто пишут на C++ Builder. Соответственно, те программы,
даже и прикладные, которые взаимодействуют с операционными системами,
написаны на языке C++ Builder.
Распределенные системы, функционирующие на разных компьютерах, также разрабатываются на языке C++ Builder.
Обработка сложных структур данных - текста, бизнес-информации, Internetстраниц и т.п. - одна из наиболее распространенных возможностей применения
языка. Разработка графического пользовательского интерфейса на языке C++
Builder выполняется, в основном, тогда, когда необходимо разрабатывать сложные, нестандартные интерфейсы. Простые программы чаще пишутся на языках
Visual Basic, Java и т.п.
Программирование для Internet в основном производится на языках Java,
VBScript, Perl. Язык С++ Builder в настоящее время является одним из наиболее
распространенных языков программирования.
1.5. Выводы
В ходе постановки задачи был проведен анализ предметной области, выбрана спиральная модель разработки программного обеспечения, а также был определен язык программирования, на основе которого будет разрабатываться программный комплекс.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
26
ГЛАВА II. АНАЛИТИЧЕСКАЯ ЧАСТЬ
2.1. Основные требования к программному продукту
В соответствии с анализом предметной области был определен список основных требований к программе:
возможность захвата изображений с любого устройства видеозахвата,
поддерживаемого операционными системами семейства Windows (ХР,Win7,Win8
– проверено в работе);
возможность выделять указанную контрольную область из оригинального
изображения;
возможность производить автоматический баланс уровней контрольной
области, что обеспечивает независимость работы алгоритма обнаружения от
освещенности и уровня усиления видеосигнала;
возможность обрабатывать контрольную область с настраиваемой чувствительностью к движению по 64 подобластям;
возможность визуально представлять каждый этап обработки;
возможность установить пороговые условия для захвата изображения и
вызова тревоги;
при выполнении условий тревоги возможность запускать указанную программу, командный файл, документ или проигрывает звуковой сигнал;
при превышении порога обнаружения движения возможность сохранять
изображение в формате JPEG;
возможность принудительно сохранять изображение через указанные
промежутки времени или при нажатии на кнопку Shoot Now!;
возможность обладать исключительно простым и функциональным интерфейсом без ненужных для такого рода программ графических излишеств.
Также для предоставления большего удобства при пользовании программой
необходимо учесть, чтобы максимальное количество функций можно было использовать при помощи мыши. Таким образом, повысив удобство при работе с
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
27
программой, можно потенциально увеличить привлекательность ее использования в целом, что может выделить программу среди уже существующих конкурентов.
Ни одна из подобных программ не выполняет данных функций. Точнее, все
они работают, то есть получают изображение и сохраняют его на диск. И всё. Ни
о каком качестве обнаружения движения и фильтрации „ложных тревог” речь не
идет.
2.2. Обзор существующих программных продуктов
Gotcha v.3.0.6
Интерфейс данного ПО создает «продвинутого минимализма». С одной стороны, в меню есть все необходимое для создания и настройки одноканальной системы видеонаблюдения, с другой стороны - сам интерфейс программы вызывает
возврата в те времена,
когда WinXP победно шествовала по планете. Можно
сказать, что программа обладает интерфейсом классического типа.
Отличительной особенностью этого ПО являются низкие системные требования (I486, от 16мб оперативной памяти, и практически вся линейка Windows).
Поддерживаются стандартные устройства видеозахвата, например, такие, как различные платы видеозахвата, TV-тюнеры, вебкамеры, и даже такие экзотические
видеокамеры, как Philips parallel port cameras. Единственное требование, которое
программа предъявляет к источникам видеосигнала - это совместимость с
Microsoft Video for Windows.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
28
Рис. 2.1. Главное окно программы Gotcha v.3.0.6
Запись видеоинформации ведется в собственный формат, но в дальнейшем,
при просмотре видеоархива, предоставляется возможность конвертации видео в
контейнер .avi.
GOTCHA v.3.0.6 обладает рядом особенностей, на которые хотелось бы обратить внимание:
настройка чувствительности и зон детектора движения;
настройка действия (можно отправить фото на ftp-сервер, послать e-
mail, проиграть какой-либо звук или запустить выбранное вами приложение);
возможность задать расписание работы системы;
возможность ограничить доступ к программе путем установки пароля
(Option-System Tray Icon Password).
Такие настройки видеоканала, как яркость, контрастность и насыщенность,
определяются
установленным
драйвером
устройства
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
видеозахвата.
Лист
29
Данное ПО экономно расходует дисковое пространство - за период времени с
22.00
до
9.00
было
записано
около
500
МБ
видеоинформации.
Возможности передачи данных в этом ПО крайне скудны.
Таким образом, ПО GOTCHA v.3.0.6 имеет в своем составе практически все
минимально необходимое, что может понадобиться для построения надежной (а
также скрытой) системы видеонаблюдения.
EyeCu Professional v.2.2
Казалось бы, какое ПО может быть проще в настройке и работе, чем ранее
рассмотренная нами Gotcha? Однако есть такое ПО: это EyeCu Professional v.2.2.
Функционально эта программа напоминает ПО GOTCHA v.3.0.6, только снабжена
она еще более спартанским интерфейсом:
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
30
Рис. 2.2. Главное окно программы EyeCu Professional v.2.2
Но то, что может EyeCu Professional v.2.2, в отличие от Gotcha: программа
может отправлять изображения на какой-либо удаленный веб-сервер.
Программа может быть настроена на запись лог-файла своей работы:
запись по расписанию;
запись звукового сопровождения совместно с видео при срабатывании де-
тектора движения;
запись видеосигнала по детектору движения или детектору звука (к сожа-
лению, нельзя произвести точную настройку детектора движения с использованием зон, задаваемых пользователем - такой функции в ПО EyeCu Professional v.2.2
не обнаружилось);
программа может уведомить пользователя о тревожной ситуации не-
сколькими методами - проиграть выбранный заранее звуковой файл, выслать
электронное письмо или сообщение на пейджер, запустить заранее настроенное
пользователем приложение;
автоматический захват изображения в определенный промежуток време-
ни.
Настройки яркости/контрастности/цветности выполняются с помощью
установленного драйвера вебкамеры.
В целом данная программа производит благоприятное впечатление своей
простотой и незатейливостью вкупе с довольно специфическими возможностями.
К недостаткам программы можно отнести невозможность настройки зон детектора движения и отсутствие возможности блокировки программы паролем.
Active WebCam v.7.5
При первом запуске этой программы возникает странное чувство - восхищение пополам с недоумением. Восхищение - это собственно сам интерфейс программы. Очень красивый и функциональный. Особо хочется отметить качественДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
31
ный перевод интерфейса программы. А недоумение - это то, что возникает при
первом знакомстве с меню программы и с настройками по каждому видеоканалу.
Если сказать, что их здесь много - это не сказать ровным счетом ничего. Здесь
есть любые, какие только можно представить себе, настройки.
Рис. 2.3. Главное окно программы Active WebCam v.7.5
И, помимо всего прочего, программа поддерживает одновременную работу
нескольких вебкамер.
Среди основных возможностей программы хочется отметить следующие:
одновременное подключение нескольких Web-камер (интересен принцип
расчета максимального количества видеокамер, предлагаемый создателями ПО:
на запись 1 к/с по одному каналу требуется 100МГц тактовой частоты процессора;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
32
таким образом, при частоте 5 к/с и 6 камерах требуется процессор с тактовой частотой не менее 3 ГГц);
работа с тремя типами видеоустройств: локальная видеокамера, удален-
ная IP-видеокамера и видеокамера, подключенная к другому ПК с установленным
ПО Active Webcam;
удаленный просмотр видеокамер с помощью одного из нескольких спо-
собов:
1. видеоинформация
выкладывается
на
веб-сервер
компании-
производителя ПО;
2. удаленное подключение к компьютеру с установленным ПО Active
Webcam;
3. ПО Active Webcam создает на машине локальный веб-сервер, просмотр
видеоинформации осуществляется с удаленного рабочего места с использованием
обычного веб-браузера;
4. отправка видеоинформации на указанный сервер при помощи FTPпротокола;
5. ПО Active Webcam создает и сохраняет снимки в определенной пользователем сетевой папке;
возможность сохранения видеоряда на выбор в один из трех форматов
файла: формат фирмы-разработчика ПО (.awlive), в контейнер .avi или .mpeg,
причем в случае выбора формата файла от разработчика возможно применение
нескольких (на выбор) методов шифрования записываемой информации;
возможность в произвольном месте кадра вывести (и сохранить на жест-
кий диск) любую пользовательскую информацию (этой информацией могут быть
текущие дата/время, название камеры и т. д.);
возможность очень гибкой настройки датчика движения по каждому ка-
настройка действия ПО при срабатывании датчика движения (среди
налу;
прочих действий хочется отметить возможность автоматического изменения качества видео, качества звука и частоты кадров);
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
33
возможность использования планировщика задач;
возможность разграничения доступа путем создания пользователей и
групп пользователей;
запуск ПО Active Webcam в качестве службы;
возможность обнаружения «зависшего» состояния ПК и автоматическая
перезагрузка.
При максимальном качестве изображения и звука объем записываемой информации достигает 3,9 ГБ в час, что даже по сегодняшним меркам, довольно
много.
Например, на подключенном для экспериментальных целей жестком диске
объемом 120 ГБ, при условии записи кадра размером 640×480 с частотой 8 к/с
вместе со звуком, может разместиться не более 24 часов видеоархива. При этом
для записи используется формат фирмы-разработчика с максимально возможным
качеством.
Подводя краткий итог, можно сказать, что ПО Active Webcam имеет в своем
составе все необходимое для создания полнофункциональной системы видеонаблюдения, в том числе развитые средства сетевого доступа. Единственным недостатком программы, на мой взгляд, является ее чрезмерный дисковый аппетит.
Live WebCam
Live WebCam - это многофункциональная программа для работы с вебкамерой. Приложение может служить пользователю в качестве домашнего фотографа,
шпиона и системы видеонаблюдения. Программа предназначается для получения
и сохранения видеоинформации с вебкамеры в автоматическом режиме. Одно из
основных преимуществ программы - возможность сравнения предыдущего и последующего снимка в автоматическом режиме, которая дает возможность исключить попадания в архив одинаковых кадров. Кроме того, модуль сравнения запрограммирован таким образом, чтобы компенсировать программными средствами
цифровые шумы вебкамеры при съемке в плохом освещении. Благодаря програмДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
34
ме пользователь может иметь гигантский архив домашних фотоснимков - для этого нужно просто запустить программу в режиме автоматической съемки, и направить камеру на то место в квартире, где наблюдается наибольшее оживление.
Также прост процесс создания реалистических анимированных аватарок - без
программы подготовка снимков для создания анимационного изображения, при
помощи обыкновенного цифрового фотоаппарата, отнимала массу времени и не
гарантировала нужного результата.
Рис. 2.4. Главное окно программы Live WebCam
Live WebCam – бесплатная программа, но ничего толком не умеет, только
сохранять снимки либо через заданные интервалы, либо по мере изменения; детектора движения и настраиваемого фильтра нету.
Webcam Tracker
Webcam Tracker является матобеспечением видеосъемки с возможностями
сохранения полученных клипов и изображений и широковещательной передачи
их через Интернет. Можно использовать это матобеспечение для различных це-
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
35
лей, таких как собственное домашнее наблюдение (задачи безопасности) или же
веб-шоу.
Webcam Tracker может работать с любым устройством видеосъемки, поддерживаемым технологией DirectShow Microsoft (r). DirectShow - высокопроизводительная технология мультимедиа, которая обеспечивает быстрый интерфейс
программирования для эффективной обработки аудиоданных и видеоданных.
Webcam Tracker может получить видео в высоких частотах кадров в зависимости
от производительности устройства видеосъемки. Полученные данные могут быть
широковещательно переданы через 3 метода: создание WWW-сервера на компьютере, загрузка изображений к серверу FTP или просто сохранению образов к локальному диску.
События программы регистрируются, таким образом, можно получить полное описание каждого события (информационные события, предупреждения или
сообщения об ошибках).
Рис. 2.5. Главное окно программы Webcam Tracker
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
36
Webcam Tracker – программа именно для трансляции видео или организации сервера вебкамеры, но не для охранного видеонаблюдения, к тому же платная.
HomeWatcher
HomeWatcher - домашний сторож. Через заданный интервал времени делает
моментальный снимок помещения, сравнивает его с предыдущим и, в случае обнаружения изменений (движения), создает html-страницу с изображением, связывается с провайдером и отправляет страницу по ftp на указанный адрес (или сохраняет ее локально). Содержит множество настроек. Требуется наличие видеокамеры.
Рис. 2.6. Главное окно программы HomeWatcher
HomeWatcher – бесплатное и жутко убогое изделие, даже для сравнения захваченных кадров сохраняет их на диск в БМП, при этом постоянно дергая винчестер.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
37
2.3. Выводы
В этой главе рассмотрены основные требования, предъявляемые пользователями к программному продукту и существующие системы видеонаблюдения для
разных целей.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
38
ГЛАВА III. ПРОЕКТНО-КОНСТРУКТОРСКАЯ И
ТЕХНОЛОГИЧЕСКАЯ ЧАСТИ
3.1. Организация программы VideoAlarm
Для создания небольшой системы видеонаблюдения была куплена вебкамера. А для создания программы видеонаблюдения используется Borland C++ Builder 6. Для организации работы программы достаточно компьютера со следующими
параметрами (Celeron 566, 256 MB, 30 GB), который, прекрасно подходит для
выполнения поставленной задачи и записи всего, что происходит, пока никого нет
дома. Питание для видеокамеры (12 В, 100 мА) можно взять от его блока питания,
а сам компьютер такой конфигурации потребляет электроэнергии сравнительно
немного – около 50 Вт (без монитора).
После установки необходимого оборудования, устанавливаем программу
C++ Builder 6. В данном дипломном проекте реализовано создание программы
видеонаблюдения с датчиком движения, в следствии срабатывания датчика - программа начинает запись всего происходящего с камеры видеонаблюдения.
Рассмотрим программу поподробнее.
На рисунке 3.1. отображено главное окно программы.
Рис 3.1. Главное окно программы
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
39
Закладка Исходный кадр отображает кадр, непосредственно полученный с
устройства видеозахвата.
Закладка Область контроля отображает изображение контролируемой области в оттенках серого после выполнения процедуры автобалансировки.
Закладка После фильтра отображает полностью обработанное изображение
в соответствии с установками пользовательского фильтра движения.
Закладка Движение отображает области, где в текущий момент наблюдается движение.
Закладка Лог отображает информацию о статусе, ошибках драйвера видеозахвата и выполненных программой действиях.
Теперь – к настройкам. Настройки под кнопкой Устройство в пояснении не
нуждаются, поскольку являются стандартными.
Рис. 3.2. Настройка формата видео
Нажав на кнопку Фильтр, получаем окошко с важнейшими для этой программы настройками.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
40
Рис. 3.3. Установка фильтра
Закладка Область Контроля – жмем кнопку Задать область и «рисуем»
мышкой прямоугольник на картинке, точно как в Пайнте. Всё, что внутри прямоугольника, - будет «под контролем». Чтобы применить – нажимаем кнопку Применить.
На закладке Области чувствительности устанавливаем чувствительность к
движению отдельных областей контролируемого изображения. Для задания чувствительности нажимаем на кнопку справа с нужным значением, а затем кликаем
левой кнопкой мышки внутри красных прямоугольников на картинке. Ненужные
для контроля области помечаем чувствительностью 0 (кроме всего прочего, это
ускоряет работу фильтра).
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
41
Рис. 3.4. Установка фильтра, закладка Области чувствительности
Закладка Условия сохранения и тревоги содержит настройки порогов.
Значения параметров следующие:
Период захвата – время между захватами изображения с видеокамеры.
Устанавливается в миллисекундах (в 1 секунде 1000 миллисекунд). Оптимальное
значение – 300. Заметьте, что если, к примеру, установить 2, то программа не
сможет выполнить таких условий, и будет обрабатывать изображения с максимально возможной для вашего компьютера скоростью. Влияет на минимальную
скорость движения объекта в кадре, обнаруживаемую программой. Чем меньше
время цикла, тем выше минимальная скорость движения для достижения порога
обнаружения.
Порог движения – минимальное количество точек, в которых программа
засекла движение и должна выполнить сохранение картинки на диск. От этого параметра зависит минимальный размер движущегося объекта, который будет замечен (например, чтобы обнаружить курицу достаточно 20 точек, а пропустить
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
42
курицу, но заметить человека – примерно 100 точек). Конкретные значения зависят от масштабов изображения.
Время движения тревоги – минимальное время, в течение которого непрерывно засекается движение выше порога, заданного предыдущим параметром, через которое надо выполнять процедуру тревоги. Указывается в секундах, эффективно фильтрует случайные захваты из-за движения ветвей деревьев при сильных
порывах ветра или движений собаки, решившей почесать себя за ухом.
Сохранять рисунок каждые – время в секундах (одна минута – 60с, 1 час
– 3600с), через которое картинка будет сохраняться на диск в «принудительном»
порядке.
После внесения изменений нажмите Применить, и если вы не передумали
- то нажмите Ок, иначе – Отмена.
Рис. 3.5. Установка фильтра, закладка Условия Сохранения и Тревоги
При нажатии на кнопку Общие в нем указывается папка, в которую производится сохранение изображений, качество сохраняемых картинок (от 5 до 100,
100 – максимальное качество, но и максимальный размер файлов).
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
43
Кнопки с троеточиями открывают диалоги выбора папки для сохранения
картинок и программы обработки ситуации тревоги.
При тревоге – что программе делать при наступлении условий тревоги.
Если выберите wav файл – проиграет его «своими силами», во всех остальных
случаях попытается выполнить.
Крестик справа – ничего не делает вообще, только записать в лог.
3.2. Принцип работы программы
1.
Убедиться в том, что у вас есть правильно установленное (физически
и драйвера) устройство для захвата изображений в системе. Такими устройствами
являются: вебкамеры, ТВ-тюнеры, видеокарты с видеовходом, цифровые фотоаппараты в режиме вебкамеры.
2.
Подключить к видеовходу устройства захвата источник сигнала (ана-
логовую видеокамеру). Вебкамер и цифровых фотоаппаратов это не касается.
3.
Запустить программу. Нажимая на все пункты меню Установки по
очереди сверху вниз, задать настройки устройства, фильтра, сохранения изображений и действий при тревоге.
4.
Нажать на кнопку Activate. Программа начнет захват и обработку
изображений.
5.
Если что-то пошло «не так», посмотрите на лог системных событий,
находится на закладке Лог. Попробуйте изменить настройки, см. пункт 3.
Настройки применяются «на лету», то есть перезапуска программы не требуют.
Программа сама выполняет все необходимые действия для переинициализации.
Настройки сохраняются автоматически, при выходе из программы (это не касается специфических настроек устройств видеозахвата).
6.
Просмотреть непосредственный результат работы программы можно,
нажав кнопку Просмотр – откроется окно проводника для папки, в которую сохраняются изображения.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
44
Программа управления камерами предназначена для непосредственного
управления камерой или группой камер.
Управление возможно с помощью мыши, клавиатуры, джойстика, задания
камере предустановок (определенной последовательности команд).
Как и в любой системе управления, имеется субъект и объект управления.
Субъект управления - оператор системы безопасности. Объектами управления являются поворотный механизм камеры и трансфокаторы. Поворотный механизм
отвечает за повороты камеры в вертикальной и горизонтальной плоскостях, вверх
и влево, вверх и вправо, вниз и вправо, вниз и влево. Трансфокаторы отвечают за
управлением зумированием и фокусировкой.
3.3. Выводы
В ходе проведения проектно-конструкторской работы была разработана
программа VideoAlarm, которая реализует функцию видеонаблюдения на объекте.
Проектирование программного продукта ввелось с учетом требований изложенных в техническом задании.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
45
ГЛАВА IV. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ
4.1. Тестирование как способ обеспечения качества программного продукта
Качество программного продукта характеризуется набором свойств, определяющих, насколько продукт “хорош” с точки зрения заинтересованных сторон,
таких как заказчик продукта, спонсор, конечный пользователь, разработчики и тестировщики продукта, инженеры поддержки, сотрудники отделов маркетинга,
обучения и продаж. Постановка задачи обеспечения качества продукта выливается в задачу определения заинтересованных лиц, их критериев качества и затем
нахождения оптимального решения, удовлетворяющего этим критериям. Тестирование является одним из наиболее устоявшихся способов обеспечения качества
разработки программного обеспечения и входит в набор эффективных средств современной системы обеспечения качества программного продукта.
С технической точки зрения тестирование заключается в выполнении приложения на некотором множестве исходных данных и сверке получаемых результатов с эталонными, с целью установить соответствие различных свойств и характеристик приложения заказанным свойствам. Как одна из основных фаз процесса
разработки программного продукта (дизайн приложения - разработка кода - тестирование), тестирование характеризуется достаточно большим вкладом в суммарную трудоемкость разработки продукта.
Данная глава дипломного проекта посвящена решению задачи контроля качества разработки программного обеспечения с позиций тестирования.
4.2. Критерии выбора тестов для программного продукта
При составлении тестов необходимо применять структурные критерии выбора.
Структурные критерии используют модель программы в виде “белого ящика”, что предполагает знание исходного текста программы или спецификации
программы в виде потокового графа управления. Структурная информация поДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
46
нятна и доступна разработчикам подсистем и модулей приложения, поэтому данный класс критериев часто используется на этапах модульного и интеграционного
тестирования.
Структурные критерии базируются на операторах, ветвях и путях.
Условие критерия тестирования команд - набор тестов в совокупности должен обеспечить прохождение каждой команды не менее одного раза. Это слабый
критерий, он, как правило, используется в больших программных системах, где
другие критерии применить невозможно.
Условие критерия тестирования ветвей - набор тестов в совокупности должен обеспечить прохождение каждой ветви не менее одного раза. Это достаточно
сильный и при этом экономичный критерий, поскольку множество ветвей в тестируемом приложении конечно и не так уж велико.
Условие критерия тестирования путей - набор тестов в совокупности должен обеспечить прохождение каждого пути не менее 1 раз. Если программа содержит цикл (в особенности с неявно заданным числом итераций), то число итераций ограничивается константой.
4.3. Тестирование программного продукта
Применим структурные критерии выбора тестов для проверки корректности
работы программного продукта.
В табл.4.1 сведены результаты проведенных тестов.
Таблица 4.1.
Протокол тестирования программного продукта
Тест
Ожидаемый
результат
Пользователь запускает
VideoAlarm
VideoAlarm
запускается
Пользователь задает
Успешная
Фактический
результат
Результат
тестирования
VideoAlarm
успешно
запустился
Настройки
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
+
+
Лист
47
настройки устройства,
фильтра, сохранения
изображений и действий
при тревоге
настройка
устройства,
фильтра,
сохранения
изображений и
действий при
тревоге
успешно
сохранены
Пользователь нажимает на
кнопку Activate (захват и
обработка изображения)
Успешное
нажатие на
кнопку Activate
Успешно
начались захват
и обработка
изображения
+
Пользователь нажимает на
кнопку Просмотр (открытие окна проводника для
папки, в которую сохраняются изображения)
Успешное
нажатие на
кнопку Просмотр
Окно
проводника
успешно
открыто
+
Исходя из результатов проведенных тестов, можно заключить:
- было произведено полное покрытие функциональных требований, кода
продукта и множества сценариев;
- количество обнаруженных дефектов программного кода значительно
меньше среднего показателя для данного типа продуктов и оно находится в пределах допустимого статистического отклонения;
- показатель отношения количества найденных дефектов к количеству тестов на данную функцию продукта стремится к единице;
- производная функции отношения количества найденных дефектов к времени их поиска близка к нулю, что свидетельствует о том, что продукт обладает
качеством, достаточным для окончания тестирования и поставки заказчику.
4.4. Руководство пользователя VideoAlarm
4.4.1. Введение
4.4.1.1. Область применения
Программный продукт VideoAlarm предназначен для применения в производственных организациях.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
48
4.4.1.2. Краткое описание возможностей
Программный продукт VideoAlarm предназначен для видеонаблюдения на
объекте.
4.4.1.3. Уровень подготовки пользователя
Конечный пользователь программного продукта должен обладать практическими навыками работы с пользовательским интерфейсом операционной системы
Windows и уметь проводить настройки программного продукта.
4.4.2. Назначение и условия применения
4.4.2.1. Виды деятельности, функции
Программа VideoAlarm обеспечивает выполнение следующих функций:
выполнение захвата изображений с любого устройства видеозахвата,
поддерживаемого операционными системами семейства Windows;
выделение указанной контрольной области из оригинального изображения;
обработку контрольной области с настраиваемой чувствительностью к
движению по 64 подобластям;
визуальное представление каждого этапа обработки;
установка порогового условия для захвата изображения и вызова тревоги;
при выполнении условий тревоги запуск указанной программы, командного файла, документа или проигрывание звукового сигнала;
при превышении порога обнаружения движения сохранение изображения в формате JPEG.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
49
4.4.2.2. Программные и аппаратные требования к системе
Минимальные системные требования:
ОС: Windows XP,
Процессор: Intel Pentium 2ГГц
ОЗУ: 512МБ
Платформа графического адаптера: 1024х768х16
Жесткий диск: 20МБ
Дополнительно: мышь, клавиатура, камера
Необязательно: принтер
4.4.3. Подготовка к работе
4.4.3.1. Состав дистрибутива
В состав дистрибутива программного продукта VideoAlarm входит:
- VideoAlarm;
- руководство пользователя.
4.4.3.2. Запуск программы VideoAlarm
Перед запуском программы необходимо ознакомиться с требованиями к системе и описанием работы данного руководства.
4.4.3.3. Проверка работоспособности системы
Программное обеспечение работоспособно, если в результате запуска программы на экране монитора отобразилось главное окно программы без выдачи
пользователю сообщений о сбое в работе.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
50
4.4.4. Описание работы
4.4.4.1. Запуск программы
Программу можно запустить следующими способами:
при помощи ярлыка на рабочем столе;
непосредственно через проводник или файловый менеджер.
После успешной загрузки должно появиться следующее окно (рис.4.1):
Рис. 4.1. Главное окно программы VideoAlarm
4.4.4.2. Завершение работы
Работу с программой можно завершить тремя способами:
Нажатием крестика в правом верхнем углу;
Нажатием комбинации клавиш Alt+F4;
С помощью диспетчера задач .
4.4.5. Аварийные ситуации
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
51
При сбое в работе аппаратуры восстановление нормальной работы системы
должно производиться после:
- перезагрузки операционной системы;
- запуска исполняемого файла системы.
При ошибках в работе аппаратных средств (кроме носителей данных и программ) восстановление функции системы возлагается на ОС.
При ошибках, связанных с программным обеспечением (ОС и драйверы
устройств), восстановление работоспособности возлагается на ОС.
При неверных действиях пользователей, неверных форматах или недопустимых значениях входных данных, система выдает пользователю соответствующие сообщения, после чего возвращается в рабочее состояние, предшествовавшее
неверной (недопустимой) команде или некорректному вводу данных.
4.5. Выводы
В ходе проведенного тестирования была выявлена готовность программного продукта к его использованию. Также глава дополнена руководством пользователя.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
52
ГЛАВА V. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ
Программу, как любое техническое решение необходимо рассматривать с
экономической точки зрения экономической целесообразности и пользы. Целью
технико-экономического обоснования разработки является количественное и качественное доказательство экономической целесообразности усовершенствования
программы, а также определение организационно-экономических условий ее эффективного функционирования.
Эффективность программного модуля определяется его качеством и эффективностью процесса разработки и сопровождения. Качество программного изделия определяется тремя составляющими:
с точки зрения специалиста-пользователя данного программного про-
дукта;
с позиции использования ресурсов и их оценки;
по выполнению требований на программное изделие.
Программное изделие должно быть разработано так, чтобы оно выполняло
свои функции без лишних затрат ресурсов (оперативной памяти ЭВМ, машинного
времени, пропускной способности каналов передачи данных и др. – на стадии
функционирования; время разработки и денежных ресурсов – на стадии использования программного изделия).
Содержание технико-экономического обоснования разработки программы
заключается в следующем:
расчет трудоемкости создания программного продукта
определение цены программного продукта
расчет показателей эффективности и годового экономического эф-
фекта от внедрения разработанной программы.
В задании на дипломное проектирование содержатся основные данные для
выполнения технико-экономического обоснования результатов разработки. Тема
дипломного проекта, связанная с разработкой программы, предполагает включение отдельных задач, составляющих содержание технико-экономического обосДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
53
нования разработки, непосредственно включенные в технические разделы диплома.
Приведенные в данном разделе дипломной работы результирующие таблицы, перечни данных, позволяют сопоставить результаты разработки и затраты на
нее, чтобы сделать вывод об эффективности проекта. Исходные данные для расчета экономических показателей приведены в таблице
5.1. Расчет трудоемкости создания программного продукта
Трудоемкость разработки программной продукции зависит от ряда факторов, основными из которых являются следующие: степень новизны разрабатываемого программного комплекса, сложность алгоритма его функционирования,
объем используемой информации, вид ее представления и способ обработки, а
также уровень используемого алгоритмического языка программирования. Рассмотрим эти факторы более подробно и с их учетом - порядок и особенности
определения трудоемкости разработки программной продукции.
По степени новизны любая разрабатываемая программа может быть отнесена к одной из четырех групп. В данном случае разрабатываемая подсистема видеонаблюдения относится к так называемой группе В, как программная продукция имеющая аналоги.
По степени сложности алгоритма функционирования программная продукция может быть отнесена к одной из трех групп:
1 группа сложности - программная продукция, реализующая оптимизационные и моделирующие алгоритмы;
2 группа сложности - программная продукция, реализующая учетностатистические алгоритмы;
3 группа сложности - программная продукция, реализующая алгоритмы
стандартных методов решения задач.
Разрабатываемая программа относится к 3 группе сложности. Исходная информация в разрабатываемой подсистеме представлена в форме документов,
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
54
имеющих одинаковый формат и структуру. В то же время требуется вывод на печать одинаковых документов, поэтому согласно классификации по представлению исходной документации программа относится к группам 1.2 и 2.2.
Трудоемкость разработки программной продукции
может быть опреде-
лена как сумма величин трудоемкости выполнения отдельных стадий разработки
ПП из выражения:
tПП=tTЗ+tЭП+tТП+ tРП+ tВ (5.1.1)
где
- трудоемкость разработки технического задания на создание ПП;
трудоемкость разработки эскизного проекта ПП;
технического проекта ПП;
-
- трудоемкость разработки
- трудоемкость разработки рабочего проекта ПП;
- трудоемкость внедрения разрабатываемого ПП.
Рассчитаем каждую из составляющих данной формулы по отдельности.
Трудоемкость разработки технического задания рассчитывается по формуле:
З
(5.1.2)
tТЗ TРЗЗ Т РП
Перечень всех параметров, используемых в данной формуле, с их описанием и значениями приведен в следующей таблице:
Табл.5.1.1.
Параметры для вычисления трудоемкости разработки технического
задания.
Параметр
Описание
Норма времени на разработку ТЗ на
программный продукт в зависимости от
функционального назначения и степени новизны разрабатываемого ПП, чел.-дни.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Значение
3
Лист
55
Коэффициент, учитывающий удельный
вес трудоемкости работ, выполняемых разработчиком постановки задач на стадии ЭП (в
случае самостоятельной разработки ТЗ
=1,0)
1,0
Коэффициент, учитывающий удельный
вес трудоемкости работ, выполняемых разработчиком программного обеспечения на стадии ЭП (в случае самостоятельной разработки ТЗ
=1,0)
1,0
Затраты времени разработчика постановки задач на разработку ЭП, чел. - дни. Параметр
рассчитывается
по
формуле
= 3*1,0 =3.
3
Затраты времени разработчика программного обеспечения
на разработку ЭП,
чел.-дни. Параметр рассчитывается по формуле
= 3*1,0 = 3.
3
Вычислив значения величин,
и
, определяем значение трудоемкости
разработки технического задания:
= 3+3= 6.
Трудоемкость разработки эскизного проекта ПП
рассчитывают по фор-
муле:
З
З
(5.1.3)
tЭП Т РЗ
Т РП
Перечень всех параметров, используемых в данной формуле, с их описанием и значениями приведен в следующей таблице:
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
56
Табл.5.1.2.
Параметры для вычисления трудоемкости разработки эскизного проекта
Параметр
Описание
Значение
Норма времени на разработку ЭП (определяется по такому же принципу, как и параметр
в расчетах по предыдущей формуле)
8
Затраты времени разработчика постановки
задач на разработку ЭП, чел.-дни. Параметр рассчитывается по формуле
= 8*1,0 =8.
.
Затраты времени разработчика программного обеспечения на разработку ЭП, чел.-дни. Параметр рассчитывается по формуле
=
8*1,0 = 8.
8
Вычислив значения величин
и
8
, определяем значение трудоемкости
разработки эскизного проекта:
tЭП Т З Т З 8816 .
РЗ РП
Трудоемкость разработки технического проекта
зависит от функциональ-
ного назначения ПП, количества разновидностей форм входной и выходной информации и определяется как сумма времени, затраченного разработчиком постановки задач и разработчиком программного обеспечения, т.е.
(5.1.4)
Табл.5.1.3.
Параметры для вычисления трудоемкости разработки технического
проекта
Параметр
Описание
Коэффициент учета вида используемой переменной информации. Определяется только группой
новизны программного продукта (в данном случае
группа В) и равен 1,00
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Значение
1,00
Лист
57
Коэффициент учета вида используемой нормативно-справочной информации. Определяется группой новизны программного продукта.
0,72
Коэффициент учета используемых баз данных. Определяется группой новизны программного
продукта.
2,08
Количество видов используемой переменной
информации
Количество видов используемой нормативносправочной информации
28
Количество используемых баз данных
0
0
Коэффициент учета вида используемой информации,
определяется
по
формуле:
=
=(1*28 + 0,72*0 + 2,08* 0 )/(28 +0 + 0) =1
1
Коэффициент учета режима обработки информации. Так как разрабатываемое программное
обеспечение характеризуется телекоммуникационной обработкой и управлением, а также относится к
группе В с точки зрения новизны, то согласно этот
параметр равен 1,36
1,36
Норма времени, затрачиваемого на разработку
ТП разработчиком постановки задач, чел.-дни. Так
как
разрабатываемое программное обеспечение
относится к классу программ по управлению документопотоком, а количество разновидностей входных и выходных форм равно соответственно 4 и 5,
то параметр
будет равен 10
10
Норма времени, затрачиваемого на разработку
ТП разработчиком программного обеспечения, человеко-дни. Значение определяется по аналогии со
значением
и равно 6
6
Вычислив значения величин
,
,
и
, определяем значение трудоем-
кости разработки технического проекта:
= (10+6)*1*1,36 ≈ 21,76
Трудоемкость разработки рабочего проекта
зависит от функционального
назначения ПП, количества разновидностей форм входной и выходной информаДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
58
ции, сложности алгоритма функционирования, сложности контроля информации,
степени использования готовых программных модулей, уровня алгоритмического
языка программирования и определится по формуле:
(5.1.5)
Табл.5.1.4.
Параметры для вычисления трудоемкости разработки рабочего проекта
Параметр
Описание
Коэффициент учета сложности контроля информации. Зависит от групп сложности контроля
информации в программе (в данном случае это
группы 12 и 22)
1,00
Коэффициент учета уровня используемого алгоритмического языка программирования. Зависит
от уровня используемого языка программирования
(для С++ Builder в данном случае этот параметр равен 1,00)
1,00
Коэффициент учета степени использования
готовых программных модулей. Зависит от степени использования готовых программных модулей.
В данном программном обеспечении это значение
примерно равно 25-40%, что соответствует коэффициенту 0,7
0,7
Коэффициент учета сложности алгоритма ПП
и вида используемой переменной информации. Зависит от группы новизны ПП (группа В), сложности алгоритма (3 группа) и в данном случае равен
1,00
1,00
Коэффициент учета сложности алгоритма ПП
и вида используемой нормативно-справочной информации. Зависит от группы новизны ПП (группа
В), сложности алгоритма (3 группа) и в данном случае равен 0,48
0,48
Коэффициент учета сложности алгоритма ПП
и вида используемых баз данных. Зависит от группы новизны ПП (группа В), сложности алгоритма
(3 группа) и в данном случае равен 0,40
0,40
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Значение
Подпись Дата
Лист
59
Коэффициент, рассчитываемый по формуле
=
=(1*28 + 0,48*0 + 0,40*0)/(28 + 0 + 0) = 1
1
Норма времени, затраченного на разработку
РП на алгоритмическом языке высокого уровня
разработчиком программного обеспечения, чел.дни. Значение определяется по аналогии со значением
,
и
равно
30
30
Норма времени, затраченного на разработку
РП на алгоритмическом языке высокого уровня
разработчиком задач, чел.-дни. Так как разрабатываемое программное обеспечение относится к классу программ по управлению документопотоком, а
количество разновидностей входных и выходных
форм равно соответственно 4 и 5, то параметр
будет равен 7
7
Вычислив значения всех необходимых величин, определяем значение трудоемкости разработки рабочего проекта:
tрп*Kк* Kр * Kя * Kз * KИА *( tрзР+ tрпР)=1,00*1,36*1,00*0,7*1*(7+30)=35
Трудоемкость выполнения стадии "Внедрение"
может быть рассчитана по
формуле:
(5.1.6)
Табл.5.1.5.
Параметры для вычисления трудоемкости выполнения стадии "Внедрение"
Параметр
Описание
Значение
Норма времени, затрачиваемого разработчиком постановки задач на выполнение процедур
внедрения ПП, чел.-дни. Так как разрабатываемое
программное обеспечение относится к
классу программ по управлению документопотоком, а количество разновидностей входных и
выходных форм равно соответственно 4 и 5, то
параметр
будет равен 7
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
7
Лист
60
Норма времени, затрачиваемого разработчиком программного обеспечения на выполнение
процедур внедрения ПП, чел.-дни. Значение
определяется по аналогии со значением и равно 10
10
Вычислив значения всех необходимых величин, определяем значение трудоемкости разработки рабочего проекта:
= (7+10)*1,00*1,36*0,7 ≈ 16,1
Вычислив все необходимые параметры для формулы (5.1.1) определяем
трудоемкость создания программного продукта:
tПП = tТЗ + tЭП + tТП + tРП + tВ =6 + 16 + 21,76 + 35 + 16,1 = 95 (чел.-дней)
5.2. Определение цены программного продукта
Разрабатываемый программный продукт рассматривается и создается как
продукция производственно-технического назначения, допускающая многократное тиражирование и отчуждение от непосредственных разработчиков. В этом
случае его цена определяется по формуле.
Ц = К * С + ПР. (5.2.1)
где С - сумма затрат на разработку программной продукции (сметная себестоимость); К - коэффициент учета затрат на изготовление опытного образца ПП
как продукции производственно-технического назначения ( К = 1,1...1,2); Пр нормативная прибыль, рассчитываемая по формуле
Пр = ( С - С м ) - р н / 1 0 0 , (5.2.2)
где рн - норматив рентабельности, %; См - материальные затрат, руб./изд.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
61
Произведем расчет сметной стоимости ПП ведется по каждой статье затрат
и результаты сведем в таблицу.
1. Материалы. Наименование материалов, использовавшихся при производстве программного продукта, и их характеристики приведены в следующей таблице:
Табл.5.2.1.
Затраты на материалы
Наименование мате-
№ п/п
риала
Бумага формата
Диск DVD+RW
А4
Verbatim 4,7 Гб, 1-4х
1
2
Цена за
Единица Кол-во единицу,
руб.
Сумма,
руб.
уп.
шт.
1
1
180
45
180
45
3
speed Kingston
Флэш-диск
шт.
1
190
190
4
1 Гб Logitech
Веб-камера
шт.
1
1120
1120
5
Всего:
КТР
Итого:
0,04
1535
27
1562
27
Затраты состоят из стоимости материалов и транспортно-заготовительных
расходов, т.е.:
= 0,04* 1562 = 62,48
(5.2.3)
где Ктр - коэффициент транспортных расходов, примем равным 0,04; Цi цена единицы i-го материала, руб.; V i - приобретенное количество (объем) i-го
материала.
2. Специальное оборудование. Для разработки рассматриваемого программного продукта не требовалось приобретение или проектирование специальных стендов, приборов и других изделий поэтому С00 = 0.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
62
3. Основная заработная плата. В статью включается основная заработная
плата исполнителя, непосредственно занятого разработкой данного ПП, с учетом
должностного оклада и времени участия в разработке. Расчет ведется по формуле:
= 11278*95/22 = 48700,46 (руб.) (5.2.4)
где 3i - среднемесячный оклад инженера программиста, руб.; а - среднее количество рабочих дней в месяце; - трудоемкость человеко-дни (определяется из
календарного плана-графика).
1. Отчисления
отчисления
в
на
бюджет
страховые
социального
взносы.
В
страхования
статье
по
учитываются
установленному
законодательством тарифу от суммы основной и дополнительной заработной
плате, т.е.:
= 0,26 * 48700,46 = 12662,12 (руб.)
где
(5.2.5)
- коэффициент отчислений на страховые взносы (равен 26%).
2. Накладные расходы. В статье учитываются затраты на общехозяйственные расходы, непроизводительные расходы и расходы на правление. Накладные
расходы определяют в процентном отношении к основной заработной плате, т.е.:
*
где
(5.2.6)
- коэффициент накладных расходов (
= 0,02). Тогда накладные рас-
ходы будут равны:
*
= 0,02*48700,46 = 974,1 (руб.)
Так как в процессе разработки данного программного продукта не проводились работы сторонних организаций и не предусматривались какие-либо команДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
63
дировки, то статьи контрагентские расходы и производственные командировки
можно не учитывать. Сложив все статьи затрат и определив их удельный вес в
сметной себестоимости, получим распределение стоимости по статьям затрат:
Табл.5.2.2.
Распределение сметной стоимости по статьям затрат
Сметная
№п/п
Наименование статьи
1
2
себестоимость,
Материалы
Основная заработная пла-
руб.
1562
48700,46
Отчисления на страховые
12662,12
та
3
взносы
Накладные расходы
4
Итого
974,1
63898,68
Определив сметную себестоимость программного продукта, вычислим цену
одной копии программы. Как уже было описано ранее, если ПП создается как
продукция производственно-технического назначения, допускающая многократное тиражирование и отчуждение от непосредственных разработчиков, то ее цена
определяется по формуле:
Ц = К * С + ПР,
Перечень всех параметров, используемых в данной формуле, с их описанием и значениями приведен в следующей таблице:
Табл.5.2.3.
Параметры для вычисления цены программного продукта
Параметр
С
Описание
Значение
Сумма затрат на разработку программной
продукции (сметная себестоимость), руб.
Материальные затраты
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
63898,68
1562
Лист
64
К
Коэффициент учета затрат на изготовление опытного образца ПП как
продукции
производственно-технического назначения (К =
1,1 — 1,2)
Норматив рентабельности, %. Примем равным 15%
1,1
Нормативная прибыль, рассчитываемая по
формуле Пр = (С - См ) * рн / 100 = (63898,681562)* 0,15 =9350,5
9350,5
15
Вычислив значения всех необходимых величин, определяем цену программного продукта:
Ц = К * С + Пр = 1,1 * 63898,68+9350,5=79639,05 ( руб.)
5.3. Расчет показателей эффективности и годового экономического
эффекта от внедрения разработанной программы
Срок окупаемости дополнительных капитальных вложений рассчитывается
по следующей формуле:
(5.3.1)
Перечень всех параметров, используемых в данной формуле, с их описанием и значениями приведен в следующей таблице:
Табл.5.3.1.
Параметры для вычисления срока окупаемости
Параметр
эвм
Описание
Значение
Машинное время, необходимое потребите192
лю для решения собственных задач с помощью
разработанного ПС, машино-ч/год
Капитальные вложения в ПЭВМ, для которой предназначена данная программа, руб
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
0
Лист
65
Ц
Зi
Тс
Полезный годовой фонд работы данной
ПЭВМ (за вычетом простоев в ремонте), ч/год
Цена новой программы, которую должен
приобрести потребитель, руб./программа
Коэффициент отчислений на дополнительную зарплату
Коэффициент отчислений на страховые
взносы
Основная заработная плата работника, решавшего автоматизируемую задачу вручную,
руб./год
1960
79639,05
0,2
0,26
97841
Машинное время ПЭВМ, нужное данному
потребителю для тех задач, которые он решает с
помощью разработанной программы, машиноч/год
192
Удельные эксплуатационные расходы,
приходящиеся на 1 час машинного времени данной ПЭВМ, руб./машино-ч
5
Срок службы данной программы до ее морального износа, лет
4
Вычислив значения всех необходимых параметров, определим срок окупаемости дополнительных капитальных вложений. Заметим, что в числителе данной формулы находится значение дополнительных капиталовложений К д, связанные с внедрением разработанной программы, а знаменателе - экономия эксплуатационных расходов Еэ приходящаяся на одного потребителя разработанного ПС.
Т ок
0
) 79639,05)
79831,05
1960
1,04 (год)
=
79639,05
76973,7
(1.2 1.26 97841 (192* 5 ))
4
((192
Годовой экономический эффект, получаемый одним потребителем новой
программы Эг (руб./год) составит при Кд и Еэ:
Эг = Еэ – ен * Кд
(5.3.2)
где ен - нормативный коэффициент эффективности дополнительных капитальных вложений (ен = 0,15 1/год); Кд - дополнительные капиталовложения, свяДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
66
занные
с
внедрением
разработанной
программы,
составляют
79831.05
(руб./потребитель программы); Еэ - экономия эксплуатационных расходов, приходящаяся на одного потребителя разработанной программы, составляет 76973,7
руб./год. Соответственно, годовой экономический эффект от внедрения разрабатываемой программы составит:
Эг = Еэ - ен* Кд = 76973,7 - 0,15*79831,05 = 64999,04 ( руб.)
5.4. Вывод
Данная глава посвящена вопросам расчета трудоемкости создания данного
программного продукта, которая составляет 95 чел.- дни. Вычислив значения всех
необходимых величин, определили, что 79639 рублей 05 копеек цена разрабатываемого программного продукта. Срок окупаемости
дополнительных капиталь-
ных вложений составляет 1 год 4 дня, а годовой экономический эффект от внедрения разрабатываемой программы составит 64999,04 руб. Следовательно, данный проект экономически выгоден.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
67
ГЛАВА VI. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ
Эффективная трудовая деятельность человека в настоящее время немыслима без комплекса мероприятий направленных на совершенствование условий труда и мероприятий по охране труда, т.к. забота о здоровье человека в наше время
является основным показателем правильной организации деятельности человека.
Для успешного воплощения в жизнь всех мероприятий по охране труда необходимы знания в области физиологии труда, которые позволяют правильно организовать процесс трудовой деятельности человека.
Широкий диапазон различий между пользователями компьютерных систем
обуславливает поиски новых, не традиционных подходов к организации соответствующих рабочих мест и условий труда. Организация рабочих мест, оснащенных
дисплеями, осуществляется в соответствии с требованиями, определяемыми характером и содержанием выполняемой человеком деятельности, его психофизиологическими возможностями и особенностями, а также антропометрическими и
биомеханическими данными.
В данном разделе дипломного проекта освещаются основные вопросы
безопасности и экологичности рабочего места пользователя. В качестве оптимального рабочего места пользователя приводится анализ опасных и вредных
производственных факторов на рабочем месте, мероприятия по устранению или
уменьшению влияния выявленных факторов, также расчет естественного и искусственного освещения рабочего помещения.
6.1. Анализ опасных и вредных производственных факторов и факторов
воздействия на окружающую среду рабочего места пользователя
При эксплуатации программного продукта работа пользователя в большинстве случаев будет связана с компьютерами, которые оказывают вредное воздействие. Поэтому при анализе процесса эксплуатации программного обеспечения
следует предусмотреть влияние всех возможных и физически
опасных
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
произЛист
68
водственных факторов, как электрический ток, статическое электричество, а также вредных производственных факторов, это повышенный
уровень
шума,
повышенная температура внешней среды, нарушенный ионный режим, отсутствие
или
воздействие
недостаточная
освещенность рабочей зоны. Также оказывают
психофизиологические
перенапряжение
зрительных
и
факторы:
слуховых
умственное
органов,
перенапряжение,
монотонность
труда,
эмоциональные перегрузки.
Воздействие указанных неблагоприятных факторов приводит к снижению
работоспособности, утомлению и раздражению, появлению недомогания и болей.
6.1.1. Электрический ток
Электрический ток представляет собой скрытый тип опасности, т.к. его
трудно определить в токо и нетоковедущих частях оборудования, которые являются хорошими проводниками электричества. Смертельно опасным для жизни
человека считают ток, величина которого превышает 0,05А, ток менее 0,05А –
безопасен (до 1000 В). С целью предупреждения поражений электрическим током к работе должны допускаться только лица, хорошо изучившие основные
правила по технике безопасности.
Электрические установки, к которым относится практически все оборудование ЭВМ,
представляют
для
человека
большую
потенциальную
опасность, так как в процессе эксплуатации или проведении профилактических
работ человек может коснуться частей, находящихся под напряжением.
Специфическая опасность электроустановок – токоведущие проводники,
корпуса стоек ЭВМ и прочего оборудования, оказавшегося под напряжением в
результате повреждения (пробоя) изоляции, не подают каких-либо сигналов,
которые предупреждают человека об опасности. Реакция человека на электрический ток возникает лишь при протекании последнего через тело человека.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
69
6.1.2. Статическое электричество
Опасность статического электричества, создаваемая электризацией различных материалов, состоит в возможности искрового разряда как с диэлектрической
наэлектризованной поверхности, так и с изолированного проводящего объекта.
Вредное воздействие оказывает на человека статическое электричество, возникающее при ношении одежды из синтетических материалов и при контакте с
наэлектризованными поверхностями (например, клавиатура компьютера).
6.1.3. Электромагнитное поле
В процессе работы на пользователя воздействует и электромагнитное излучение видимого спектра, крайне низких, сверхнизких и высоких частот. При эксплуатации видеодисплейных терминалов (ВДТ) на электронно-лучевых трубках в
рабочих зонах регистрируются статические электрические и импульсные электрические и магнитные поля низкой и сверхнизкой частоты, создаваемые системами кадровой и строчной развертки. Кроме ВДТ источниками электромагнитных
полей (ЭМП) являются процессор, принтер, клавиатура, многочисленные соединительные кабели. Воздействие ЭМП широкого спектра частот, импульсного характера, различной интенсивности в сочетании с высоким зрительным и нервноэмоциональным напряжением вызывает существенные изменения со стороны
центральной нервной и сердечно-сосудистой системы, проявляющиеся в субъективных и объективных расстройствах.
6.1.4. Шум и вибрация
Шум - это сочетание звуков различной интенсивности и частоты, которое
оказывает раздражающее и вредное действие на организм человека. Под влиянием шума у человека может изменяться кровяное давление, работа желудочнокишечного тракта, а длительное его действие в ряде случаев приводит к частичДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
70
ной или полной потере слуха. Шум влияет на производительность труда рабочих,
ослабляет внимание, вызывает тугоухость и глухоту, раздражает нервную систему, в результате чего снижается восприимчивость к сигналам опасности, что может привести к несчастному случаю.
Уровень шума на рабочем месте программистом при работе на ВДТ и
ПЭВМ не должен превышать 50 дБ (ГОСТ 12.1.003-83).
В помещениях, в которых работа с ВДТ является основной, вибрация на рабочих местах не должен превышать допустимых норм вибрации (ГОСТ 12.4.01283).
6.1.5. Недостаточная чистота и количество необходимого воздуха
В воздухе могут содержаться химические вещества (озон, фенол, стирол,
формальдегиды и др.), что наблюдается при установке на малых площадках
большого числа компьютеров и несоблюдении требований к организации рабочих мест. Все отмеченные факторы изменяют качество воздуха рабочей зоны, делая его неблагоприятным для протекания трудовой деятельности, и могут при
определенных количественных показателях отрицательно воздействовать на здоровье человека.
Уровни положительных и отрицательных аэроионов в воздухе помещений с
ВДТ и ПЭВМ должны соответствовать нормам (Таблиц 6.1.)
Таблица 6.1.
Уровни ионизации воздуха
Уровни
Число ионов в см куб. воздуха
п+
п-
Минимально необходимые
400
600
Оптимальные
1500-3000
30000 - 50000
Максимально допустимые
50000
50000
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
71
6.1.6. Психофизиологические факторы
При длительной работе за экраном дисплея отмечается выраженное напряжение зрительного аппарата, появляются болезненные ощущения в глазах и в пояснице, головные боли, усталость. Это приводит к нарушению сна, раздражительности, неудовлетворенности работой и др.
6.2. Мероприятия по устранению или уменьшению влияния выявленных факторов
Имеющийся в настоящее время комплекс разработанных организационных мероприятий и технических средств защиты показывает, что имеется возможность добиться значительно больших успехов в деле устранения воздействия на окружающую среду рабочего места программиста опасных и вредных
производственных факторов.
Для снижения ущерба вреда здоровью, необходимо соблюдение установленных гигиенических требований к режимам труда и организации рабочих мест.
6.2.1.Обеспечение электробезопасности
Используемое оборудование должно быть сконструировано и изготовлено
таким образом, чтобы гарантировать защиту персонала при эксплуатации, а также
при возникновении неисправностей от поражения электрическим током.
Элементы конструкции, с которыми соприкасается оператор во время работы оборудования, рекомендуется выполнять из диэлектрического материала или
наносить на них защитное диэлектрическое покрытие.
Оборудование в целом, а также отдельные блоки должны иметь специальные клеммы или другие приспособления для подсоединения заземляющих или зануляющих проводников.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
72
Все токопроводящие части оборудования должны быть ограждены и размещены таким образом, чтобы исключалась возможность прикосновения к ним
при эксплуатации.
Изоляция оборудования должна обладать достаточной диэлектрической
прочностью, предотвращающей пробой, а так же достаточным электрическим сопротивлением, препятствующим появлению чрезмерных токов утечки и возникновению теплового пробоя.
В случае неисправности должна быть предусмотрена возможность немедленного отключения оборудования от первичного источника питания посредством устройства отключения питания. Если устройство отключения питания не
удовлетворяет этому условию, следует предусмотреть устройство аварийной защиты.
Оборудование, при необходимости, должно иметь предупреждающий знак
возможности поражения электрическим током.
6.2.2. Нормирование статического электричества
Для снижения возникновения разрядных токов статического электричества,
возникающее при прикосновении к любому из элементов ЭВМ, покрытие технологических полов следует выполнять из однослойного поливинилхлоридного
антистатического линолеума. Другим методом защиты является нейтрализация
заряда
статического
электричества ионизированным газом. К общим мерам
защиты от статического электричества можно отнести общее и местное увлажнение воздуха.
6.2.3. Нормирование воздействия электромагнитных полей
Для помещений, оборудованных вычислительной техникой (ВТ), предъявляются следующие экологические требования к уровням электромагнитных полей
(ЭМП) и к мероприятиям по их снижению:
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
73
- помещения, оборудованные ВТ, не допускается размещать вблизи источников ЭМП промышленной частоты 50 Гц (силовые кабели, трансформаторные
подстанции и др.);
- в помещениях при организации рабочих мест, оборудованных мониторами, необходимо проводить измерения фоновых уровней ЭМП, при этом напряженность электрического поля должна быть не более 500 В/м.
К профилактическим мероприятиям по предупреждению негативного влияния источников электромагнитных излучений относится прежде всего обеспечение соответствия их технических характеристик нормативным требованиям и
строгое соблюдение правил эксплуатации.
6.2.4. Нормирование уровней аэроионизации
Нормирование содержания вредных веществ, пыли и микроклиматических
параметров воздуха рабочей зоны осуществляет ГОСТ ССБТ 12.1.005-88 «Воздух
рабочей зоны. Общие требования безопасности».
Уровни положительных и отрицательных аэроионов в воздухе помещений с
ВДТ и ПЭВМ должны соответствовать санитарным правилам и нормам СанПиН
2.2.4.1294-03.
Для улучшения уровня ионизации воздуха часто проветривают помещение
и установили кондиционер, который эффективно осуществляет проветривание,
увлажнение и ионизацию воздуха из внешней среды, т.к. параметры окружающего воздуха в целом не превышают ПДК, в соответствии с эффективным воздухообменом.
6.2.5. Вентиляция рабочих зон
Системы вентиляции следует устанавливать так, чтобы ни теплый, ни холодный воздух не направлялся на людей. На производстве рекомендуется создаДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
74
вать динамический климат с определенными перепадами показателей. Температура воздуха у поверхности пола и на уровне головы не должна отличаться более,
чем на 5 градусов. В производственных помещениях помимо естественной вентиляции предусматривают приточно-вытяжную вентиляцию. Основным параметром, определяющим характеристики вентиляционной системы, является кратность обмена, т.е. сколько раз в час сменится воздух в помещении.
Рис 6.1. Влияние загрязнения воздуха в помещении на производительность труда, например, на количество символов, набираемых на компьютере
Рис.6.2. Зависимость между расходом вентиляционного воздуха в офисе и производительностью труда
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
75
Для повышения влажности воздуха в помещениях с ВДТ и ПЭВМ следует
применять увлажнители воздуха, заправляемые ежедневно дистиллированной или
прокипяченной питьевой водой.
6.2.6. Нормирование шума и вибрации
На рабочем месте пользователя ПЭВМ источниками шума, как правило, являются технические средства, как то - компьютер, принтер, вентиляционное оборудование, а также внешний шум. Они издают довольно незначительный шум,
поэтому в помещении достаточно использовать звукопоглощение. Уменьшение
шума, проникающего в помещение извне, достигается уплотнением по периметру
притворов окон и дверей. Под звукопоглощением понимают свойство акустически обработанных поверхностей уменьшать интенсивность отраженных ими волн
за счет преобразования звуковой энергии в тепловую. Звукопоглощение является
достаточно эффективным мероприятием по уменьшению шума. Наиболее выраженными звукопоглощающими свойствами обладают волокнисто-пористые материалы: фибролитовые плиты, стекловолокно, минеральная вата, полиуретановый
поропласт, пористый поливинилхлорид и др. К звукопоглощающим материалам
относятся лишь те, коэффициент звукопоглощения которых не ниже 0.2.
Звукопоглощающие облицовки из указанных материалов (например, маты
из супертонкого стекловолокна с оболочкой из стеклоткани) нужно разместить на
потолке и верхних частях стен. Максимальное звукопоглощение будет достигнуто
при облицовке не менее 60% общей площади ограждающих поверхностей помещения.
Также дополнительным звукопоглощением служат однотонные занавеси из
плотной ткани, гармонирующие с окраской стен и подвешенные в складку на расстоянии 15 - 20 см от ограждения. Ширина занавеси должна быть в 2 раза больше
ширины окна.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
76
Уровень вибрации в помещениях вычислительных центров снижается путем
установки оборудования на специальные виброизоляторы.
6.2.7. Создание рационального освещения
Рациональное освещение рабочего места является одним из важнейших
факторов, влияющих на эффективность трудовой деятельности человека, предупреждающих травматизм и профессиональные заболевания. Правильно организованное освещение создает благоприятные условия труда, повышает работоспособность и производительность труда. Освещение на рабочем месте пользователя
должно быть таким, чтобы работник мог без напряжения зрения выполнять свою
работу.
Помещения для эксплуатации ПЭВМ должны иметь естественное и искусственное освещение. Оконные проемы оборудованы регулируемыми устройствами типа жалюзи из занавесей.
Искусственное освещение выполняется посредством электрических источников света двух видов: ламп накаливания и люминесцентных ламп. Рекомендуется использовать люминесцентные лампы, которые по сравнению с лампами
накаливания имеют существенные преимущества:
по спектральному составу света они близки к дневному, естественному освещению;
обладают более высоким КПД (в 1.5-2 раза выше, чем КПД ламп
накаливания);
обладают повышенной светоотдачей (в 3-4 раза выше, чем у ламп
накаливания);
более длительный срок службы.
Всё поле зрения должно быть освещено достаточно равномерно - это основное гигиеническое требование, т.е. степень освещения помещения и яркость экрана компьютера должны быть примерно одинаковыми, т.к. яркий свет в районе пе-
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
77
риферийного зрения значительно увеличивает напряженность глаз и, как следствие, приводит к их быстрой утомляемости.
6.2.8. Противопожарная безопасность
Предотвращение пожара достигается исключением образования горючей
среды и источников загораний. Пожарная защита реализуется:
применением негорючих веществ и материалов;
ограничением распространения пожара;
созданием условий для эвакуации людей;
применением защиты от дыма;
применением пожарной сигнализации.
Для ликвидации пожаров применяются следующие средства пожаротушений:
внутренние пожарные водоводы;
огнетушители ручные и передвижные;
сухой песок;
асбестовые одеяла.
Пожарные краны устанавливают в коридорах и нишах на высоте1.35 м, где
также находится пожарный рукав с пожарным стволом. Применяются пенные огнетушители ОХП-10, ОХВП-10 и ручные углекислотные огнетушители ОУ-2,
ОУ-5 и ОУ-8. Ручные огнетушители устанавливают в помещении из расчета 1 огнетушитель на 40-50 м площади, но не менее 2-х в помещении.
Для тушения электроустановок под напряжением применяются только углекислотные огнетушители, так как электропроводность углекислоты низка.
Для защиты людей от токсичных продуктов сгорания и дыма применяется
противодымная защита из вентиляторов и вентиляционных каналов. Противодымная защита включается автоматически при срабатывании дымовых автоизве-
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
78
щателей, либо вручную от кнопок у пожарных кранов. Вытяжная вентиляция при
этом удаляет из помещения воздух с вредными примесями.
6.2.9. Защита окружающей среды при работе с программным комплексом
Социальные конфликты, возникающие вокруг экологических проблем, связанных с деятельностью хозяйственных субъектов, во многом вызваны отсутствием адекватной информации о предприятиях и реализованных технологических
процессах. Поэтому в создании и распространении достоверной экологической
информации о предприятии должны быть в первую очередь заинтересованы его
руководители и сотрудники. Но в этом случае обычное копирование сугубо технических материалов или распространение рекламных буклетов не может сыграть
положительной роли. Информация для общественности должна быть особенной,
и одной из активно развивающихся форм разработки такой информации стало в
последнее время декларирование предприятиями экологической политики. Пока
этот термин достаточно нов для России. В соответствии в международными подходами (рекомендациями стандартов ISO 14000), экологическую политику понимают как определенную организацией совокупность намерений и принципов в
отношении экологических показателей ее деятельности, которая создает основу
для разработки конкретных целей и задач.
Экологическая политика должна соответствовать масштабу и природе воздействия на окружающую среду, создаваемого деятельностью, продуктами и
услугами предприятия (или компании, корпорации в целом). Среди прочих, политика должна содержать заявления о стремлении к соответствию нормативам, а
также к постоянному улучшению системы экологического менеджмента и к
предотвращению загрязнения окружающей среды. Экологическая политика предприятия оформляется в виде документа, который доводится до сведения всех сотрудников организации и является доступным общественности.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
79
Центральным документом стандарта считается ISO 14001 – «Спецификации
и руководство по использованию систем экологического менеджмента», который
устанавливает требования к системе экологического менеджмента, которые позволяют любому предприятию сформулировать экологическую политику и цели в
соответствии с требованиями природоохранительного законодательства своей
страны.
Никаких вредных выбросов и загрязнения окружающей среды при разработке, внедрении и эксплуатации программного продукта не образуется.
Поэтому защита окружающей среды сводится к соблюдению следующих
элементарных правил:
- поддержание санитарно-гигиенического состояния рабочего места, т. е.
уборка мусора в специально отведенные для этого урны.
- категорически запрещается утилизировать дистрибутивы с инсталляционным пакетом ненадлежащими для данного действия методами;
- необходимо соблюдать чистоту и порядок в помещении.
6.3. Влияние компьютера на здоровье человека
Компьютеры применяются везде, где только возможно. Но так ли безопасно
это устройство для здоровья человека?
При работе на ПК человек длительное время находится без движения. Такой
режим использования компьютера наносит непоправимый вред здоровью человека. Отсутствие движения приводит к атрофированию мышц спины, брюшной полости, грудной клетки и шеи, что влечет за собой нарушение осанки, искривление
грудной клетки, горбатость, а также различные заболевания позвоночника
(грыжы, смещение дисков).
Помимо этого, отсутствие движения влечет за собой ухудшение здоровья плохое кровообращение и ожирение сердца. Как результат - инсульты, инфаркты
и одышка.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
80
Также компьютер вредно влияет не только на здоровье опорнодвигательной и сердечно-сосудистой систем, но и на зрительную систему человека.
Давайте вспомним немного истории. Издревле, еще во время племенного
строя, глаза человека привыкли смотреть в даль, ищя добычу глазами. Будь то
охотник или собиратель, он все равно искал. Охотник ищет добычу, а собиратель
- плоды растений и деревьев. То есть, фокусное расстояние глаза постоянно изменяется, мышцы глаза работают, их состояние поддерживается в нормальной физической форме и здоровом, по меркам нашего организма, состоянии.
Сегодня же человек, сидя целый день на одном месте, сосредоточен на одной неподвижной вертикальной плоскости. Именно плоскости. Вы можете возразить, сказав, что смотрите не только на монитор, но и на клавиатуру с мышкой, и
на документы, лежащие на столе. Но поверьте, вся эта работа однообразна и никак не связана с поиском чего-либо на расстоянии. Именно из-за однообразной
работы с объектами, расположенными близко, и страдает наше зрение - вот главный вред, который причиняется нашему организму. Зрение просто забывает, как
это - смотреть вдаль, искать взглядом, а соответствующие мышцы глаза атрофируются. Не стоит думать, что только компьютер так негативно влияет на здоровье
человека. Любая работа, связанная с напряжением зрения на близко расположенных объектах, связана с рисками снижения остроты зрения.
Монитор компьютера является источником света, да еще не всегда подходящей частоты. А мониторы на электронно-лучевых трубках, помимо этого электризуют находящиеся перед человеком воздух и пыль, которая оседает на роговице глаза человека, вызывает раздражение и слезливость.
Но это еще не все.
При работе в постоянном шуме (гул вентиляторов ПК) человек становится
раздражительным и нервным.
По нормам труда на предприятиях запрещено нахождение человека в зоне с
повышенной постоянной шумностью дольше определенного периода времени.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
81
Нарушение этих норм влечет за собой развитие слабости, невроза, астении и шизофрении.
Компьютер по нормам создаёт уровень шума, при котором развития нервных и психологических заболеваний не должно быть. Но все равно, повышенная
утомляемость обеспечена. А при наличии внешних неблагоприятных обстоятельств обеспечен ещё и психоз, невроз и т.д.
Все выше сказанное просто кричит о том, что от компьютеров надо отказаться для сохранения зрения и во избежание других болезней, но куда же без них
сегодня? Но как тогда жить и выживать, работать в современном обществе? Уже
практически на каждом, даже не на престижном месте работы, требуется знание и
умение работать на ПК. Так что же все-таки сделать, чтобы сохранить свое здоровье как можно дольше даже при постоянном взаимодействии с ПК?
В японских компаниях применяются некоторые методики, способствующие
улучшению самочувствия работников.
Например, через каждые два часа работник обязан выходить на 15 минутный перерыв, посещать специально оборудованный спортзал с тренажерами для
мышц области торса и ног и не так давно сделали комнаты, где работник может
дать пинка чучелу начальника, чтобы снять стресс.
Для того, чтобы быть здоровой, необходимо чередовать работу с отдыхом,
во время отдыха надо смотреть вдаль или просто посидеть с закрытыми глазами.
Время перерыва в работе на компьютере лучше проводить в тихом месте без посторонних людей.
Ежедневно надо стараться делать физические упражнения для поддержание
мышц и сердечно-сосудистой системы в тонусе.
Расстояние от глаз до монитора должно быть не менее 50 сантиметров.
Просто необходимо соблюдать здоровый режим - следовать описанным
выше правилам, и тогда вы сможете избежать вредного влияния ПК.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
82
6.4. Расчет освещенности помещения
Расчет освещения производится для комнаты площадью 12 м2 , ширина которой 3 м, высота - 2.2 м. Воспользуемся методом светового потока.
Для определения количества светильников определим световой поток, падающий на поверхность по формуле:
F
E K S Z
n
, где
(6.1)
F - рассчитываемый световой поток, Лм;
Е - нормированная минимальная освещенность, Лк (определяется по таблице). Работу пользователя при пользовании программным продуктом, в соответствии с этой таблицей, можно отнести к разряду точных работ, следовательно,
минимальная освещенность будет Е = 300 Лк при газоразрядных лампах;
S - площадь освещаемого помещения ( в нашем случае S = 12 м2 );
Z - отношение средней освещенности к минимальной (обычно принимается
равным 1.1-1.2 , пусть Z = 1.1);
К - коэффициент запаса, учитывающий уменьшение светового потока лампы в результате загрязнения светильников в процессе эксплуатации (его значение
определяется по таблице коэффициентов запаса для различных помещений и в
нашем случае К = 1.5);
n - коэффициент использования, (выражается отношением светового потока,
падающего на расчетную поверхность, к суммарному потоку всех ламп и исчисляется в долях единицы; зависит от характеристик светильника, размеров помещения, окраски стен и потолка, характеризуемых коэффициентами отражения от
стен (Рс) и потолка (Рп)), значение коэффициентов Рс и Рп определим по таблице
зависимостей коэффициентов отражения от характера поверхности: Рс=30%,
Рп=50%. Значение n определим по таблице коэффициентов использования различных светильников. Для этого вычислим индекс помещения по формуле:
I
S
, где
h( A B)
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
(6.2)
Лист
83
S - площадь помещения, S = 12 м2;
h - расчетная высота подвеса, h = 1.3 м;
A - ширина помещения, А = 3 м;
В - длина помещения, В = 4 м.
Подставив значения получим:
I
12
1.3
1.3(3+4)
Зная индекс помещения I, Рс и Рп, по таблице находим n = 0.61
Подставим все значения в формулу для определения светового потока F:
F
3001.5121.1
9737.7 Лм
0.61
Для освещения выбираем люминесцентные лампы типа ЛБ40-1, световой
поток которых F = 2300 Лм.
Рассчитаем необходимое количество ламп по формуле:
N
F , где
Fл
(6.3)
N - определяемое число ламп;
F - световой поток, F = 9737,7 Лм;
Fл- световой поток лампы, Fл = 2300 Лм.
N
9737.7 шт.
4
2300
При выборе осветительных приборов используем светильники с люминесцентными лампами. Размещаются светильники двумя рядами, по два в каждом
ряду.
6.5. Микроклимат и организация воздухообмена
Параметры микроклимата могут меняться в широких пределах, в то время
как необходимым условием жизнедеятельности человека является поддержание
постоянства температуры тела благодаря свойству терморегуляции, т.е. способности организма регулировать отдачу тепла в окружающую среду.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
84
Основной принцип нормирования микроклимата - создание оптимальных
условий для теплообмена тела человека с окружающей средой. В санитарных
правилах и нормах СанПиН 2.2.4.548-96 установлены величины параметров микроклимата, создающие комфортные условия. Эти нормы устанавливаются в зависимости от времени года, характера трудового процесса и характера производственного помещения (значительные или незначительные тепловыделения). Для
рабочих помещений с избыточным тепловыделением до 20 ккал/м3 допустимые и
оптимальные значения параметров микроклимата приведены в табл.6.2.
Таблица 6.2.
Параметры микроклимата
Время года
Холодный
период
Переходный
период
Теплый
период
(t > 100 C)
Скорость
Температура
Относительная
воздуха, 0 C
влажность, %
Оптимальная
18 - 21
40 - 60
< 0.2
Допустимая
17 - 21
< 75
< 0.3
Оптимальная
20 - 25
40 - 60
< 0.3
Допустимая
< 28
< 75
< 0.5
Зона
движения
воздуха, м/с
В данном методическом кабинете применяется водяная система центрального отопления. Она должна обеспечить достаточное, постоянное и равномерное
нагревание воздуха в помещениях в холодный период года.
На микроклимат оказывают влияние источники тепла, находящиеся в помещениях с ПЭВМ. Для обеспечения установленных норм микроклиматических
параметров и чистоты воздуха применяют вентиляцию.
Настоящий стандарт устанавливает минимальные нормы воздухообмена по
наружному воздуху (нормы расхода наружного воздуха), обеспечивающего в обслуживаемых помещениях необходимую чистоту (качество) воздуха и его миниДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
85
мально возможное неблагоприятное воздействие на здоровье человека. Минимальные нормы воздухообмена не являются расчетными. Качество воздуха в помещениях должно быть обеспечено вне зависимости от принятой системы вентиляции и схемы организации воздухообмена. Настоящий стандарт распространяется на все помещения, которые могут занимать люди в жилых и общественных
зданиях, за исключением помещений, для которых другие нормативные документы или специальные условия требуют больший воздухообмен, чем установленный
в настоящем стандарте. Настоящий стандарт распространяется на все помещения,
в которых параметры микроклимата обеспечиваются в соответствии с требованиями ГОСТ 30494-96 «Здания жилые и общественные. Параметры микроклимата в
помещениях», СНиП 31-01-2003 «Здания жилые многоквартирные», СНиП
2.08.02-89* «Общественные здания и сооружения», СНиП 31-05-2003 «Общественные здания административного назначения», МГСН 3.01-01 «Жилые здания». В настоящем стандарте рассмотрены химические, физические и биологические загрязняющие вещества, поступающие, выделяющиеся или образующиеся в
помещении и способные повлиять на качество воздуха. В настоящем стандарте не
рассматриваются такие факторы, влияющие на восприятие человеком качества
воздуха, как: - неустановленные и неизученные загрязняющие вещества; - различие в восприимчивости у разных людей, психологический стресс и т.п.
6.6. Вывод
В данной работе рассмотрены вопросы по безопасности и экологичности
рабочего места оператора. Проведен анализ воздействия опасных
и
вредных
производственных факторов таких, как повышенный уровень шумов, повышенная температура внешней среды, недостаточная освещенность рабочей зоны,
электрический ток, статическое электричество и факторы воздействия на окружающую среду. Определились мероприятия по устранению этих факторов и
обеспечению безопасных условий труда оператора. Произведен расчет рациональной освещенности помещения с установленными в ней ПЭВМ.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
86
При осуществлении приведенных мероприятий по безопасности и экологичности, и соблюдения рекомендаций, данное рабочее место является абсолютно
безопасным как для оператора, так и для окружающей среды.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
87
ЗАКЛЮЧЕНИЕ
Проблемы обеспечения безопасности объектов постоянно возникают в наше
неспокойное время, когда объекты постоянно усложняются, насыщаются сложной
техникой, инженерными системами. Вместе с тем, к сожалению, продолжается
рост криминализации общества, становится глобальной проблема терроризма. Все
это и в последующем приводит к необходимости совершенствования систем интегрированной безопасности. Будут продолжать совершенствоваться системы,
обеспечивающие безопасность объектов, в том числе и революционными темпами
развивается цифровое телевидение.
В настоящее время стоит вопрос о создании нового уровня интеграции ранее созданных на объектах систем безопасности, в том числе создание кризисных
информационных центров. Это требует объединения в некоторых случаях, систем
безопасности различных объектов.
Рассмотренные в данной дипломной работе системы цифрового телевидения и средства обработки и передачи информации уже сейчас позволяют без особых капитальных затрат наращивать систему, интегрировать ее в общие информационные системы в том числе и с системами обычного телевидения, обрабатывать и передавать сигнал на любые расстояния и использовать эту информацию в
интеллектуальных системах, которые способны самостоятельно принимать оптимальные решения по обеспечению безопасности объектов.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
88
СПИСОК ЛИТЕРАТУРЫ
1. Арсентьев М. Системы безопасности. - 2007- №3.
2. Басовский Л.Е. Экономическая оценка инвестиций: Учеб. пособие. – М.: ИНФРА-М, 2007. – 241с.
3. Гузаиров М. Б.б Шангареев Р. З. Технические средства охраны: учебное пособие.- Уфа, 2002.-94 с.
4. Г. Шилдт. Самоучитель С++. - СПб.: БХВ-Петербург, 2001. - 670с.
5. Джесс Либерти. Освой самостоятельно C++ за 21 день. – М.- СПб–Киев, «Вильямс», 2001
6. ЕСКД ГОСТ 2.105-95. Общие требования к текстовым документам.
7. ЕСПД ГОСТ 19.105-78. Общие требования к программным документам.
8. ЕСПД ГОСТ 19.404-79. Пояснительная записка. Требования к содержанию и
оформлению.
9. Культин Н. С/С++ в задачах и примерах - СПб.: БХВ Петербург, 2002. - 288 с.
10.Мейерс С. Наиболее эффективное использование C++ – М: ДМК, 2000 – 296с.
11.Михайлов Л.А. Безопасность жизнедеятельности. Учебник для вузов – СПБ:
Питер, 2007 – 304с.
12.Рекомендации Р 78.36.008-99. Проектирование и монтаж систем охранного телевидения и домофонов.
13.Ример М. И. Экономическая оценка инвестиций. 2-е изд. – СПб.: Питер, 2008 –
480с.
14.Савельев M. Эволюция аналоговых камер. //Системы безопасности.- 2007.-№1.
15.Самоучитель программирования на Borland С++ Builder 5.0 /С.Бобровский
16.СанПиН 2.2.2/2.4.1340-03 Гигиенические требования к персональным электронно-вычислительным машинам и организации работы.
17.Специальный справочник С++/ Борис Карпов, Татьяна Баранова.- Спб.: Питер.
18.Староверова Г.С. Экономическая оценка инвестиций: учебное пособие. – 2-е
изд., стер. – М.: КНОРУС, 2008 – 312с.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
89
ПРИЛОЖЕНИЕ А
ЛИСТИНГ МОДУЛЯ РАБОТЫ С ПРОГРАММОЙ
VideoAlarm
ГЛАВНАЯ ФОРМА
//-------------------------------------------------------------
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
90
#include <vcl.h>
#pragma hdrstop
#include "MainUnit.h"
#include "SetDeviceUnit.h"
#include "SetFilterUnit.h"
#include "SetCommonUnit.h"
#include "ReConst.hpp"
#include "reinit.hpp"
//------------------------------------------------------------#pragma package(smart_init)
#pragma link "trayicon"
#pragma resource "*.dfm"
TMainForm *MainForm;
DevSettings Sets;
bool bWork = false;
AnsiString ConfigName;
//------------------------------------------------------------__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
ConfigName = ExtractFilePath(Application->ExeName) +
"va.cfg";
}
//------------------------------------------------------------void __fastcall TMainForm::ActivateButtonClick(TObject *Sender)
{
bWork = !bWork;
int worktime = GetTickCount(), frametime = 0;
int lastsavetime = 0;
if(bWork && !Sets.Connect()) return;
Graphics::TBitmap *tbmp = new Graphics::TBitmap;
if(bWork) ActivateButton->Caption = "Stop";
else ActivateButton->Caption = "Activate";
while (bWork){
capGrabFrame(Sets.hCaptureW);
switch (MainPageControl->TabIndex){
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
91
case 0: //input frame
PrevPB->Canvas->StretchDraw(PrevPB->ClientRect,
Sets.FramePic->Bitmap);
break;
case 1: //control frame
Sets.PaintArray(Sets.GrayData, tbmp);
FramePB->Canvas->StretchDraw(FramePB->ClientRect,
tbmp);
break;
case 2: //filtered frame
Sets.PaintArray(Sets.FiltData, tbmp);
FiltPB->Canvas->StretchDraw(FiltPB->ClientRect, tbmp);
break;
case 3: //motion frame
Sets.PaintArray(Sets.DifData, tbmp);
MotionPB->Canvas->StretchDraw(MotionPB->ClientRect,
tbmp);
break;
}
if(worktime - lastsavetime > Sets.ForceSaveTime * 1000){
lastsavetime = worktime;
Sets.SaveFrame();
}
StatusBar->Panels->Items[0]->Text = "FPS: " + IntToStr(1000/(frametime == 0?1:frametime)) + " (" + IntToStr(frametime)
+ "ms)";
StatusBar->Panels->Items[1]->Text = "Frames processed: " +
IntToStr(Sets.FramesCaptured);
StatusBar->Panels->Items[2]->Text = "Motion points: " +
IntToStr(Sets.ActivePoints);
frametime = GetTickCount() - worktime;
while(bWork && frametime < Sets.CycleTime){
frametime = GetTickCount() - worktime;
Application->ProcessMessages();
Sleep(5);
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
92
}
worktime = GetTickCount();
Application->ProcessMessages();
}
delete tbmp;
Sets.Disconnect();
}
//------------------------------------------------------------void __fastcall TMainForm::DeviceItemClick(TObject *Sender)
{
if(!Sets.bConnected) Sets.Connect();
SetDeviceForm->ShowModal();
Sets.Connect();
}
//------------------------------------------------------------void __fastcall TMainForm::FormShow(TObject *Sender)
{
Sets.hParentW = CaptPanel->Handle;
Sets.LogMemo = LogMemo;
Sets.LoadFromFile(ConfigName);
AnsiString asLcid;
int iLcid = 0;
asLcid = LoadStr(_SLcid.id);
if(asLcid != "")iLcid = asLcid.ToInt();
if((iLcid != Sets.LocalId) && (Sets.LocalId == ENGLISH ||
Sets.LocalId == RUSSIAN)){
if(LoadNewResourceModule(Sets.LocalId) != 0)
{
ReinitializeForms();
}
}
asLcid = LoadStr(_SLcid.id);
if(asLcid != "") iLcid = asLcid.ToInt();
EnglishItem->Checked = iLcid == EnglishItem->Tag;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
93
RussianItem->Checked = iLcid == RussianItem->Tag;
if(!Sets.bConnected && Sets.Connect()) capGrabFrame(Sets.hCaptureW);
}
//------------------------------------------------------------void DevSettings::SaveToFile(AnsiString FN){
int FH = FileCreate(FN);
if(FH != -1){
FileWrite(FH, &DevIndex, sizeof(DevIndex));
FileWrite(FH, &CaptureParms, sizeof (CAPTUREPARMS));
FileWrite(FH, &CapStatus, sizeof (CAPSTATUS));
FileWrite(FH, &VideoFormatSize, sizeof(VideoFormatSize));
FileWrite(FH, VideoFormat, VideoFormatSize);
FileWrite(FH, &ClipRect, sizeof(ClipRect));
FileWrite(FH, &((int)SensList->Count), sizeof(int));
for(int i=0; i < SensList->Count; i++){
FileWrite(FH, SensList->Items[i], sizeof(SensRegion));
}
FileWrite(FH, &CycleTime, sizeof(CycleTime));
FileWrite(FH, &MaxActivePoints, sizeof(MaxActivePoints));
FileWrite(FH, &AlarmMotionTime, sizeof(AlarmMotionTime));
FileWrite(FH, &ForceSaveTime, sizeof(ForceSaveTime));
FileWrite(FH, &JPEGCompression, sizeof(JPEGCompression));
char cstr[255];
strcpy(cstr, ImagesFolder.c_str());
FileWrite(FH, cstr, sizeof(cstr));
strcpy(cstr, AlarmExecuteFN.c_str());
FileWrite(FH, cstr, sizeof(cstr));
FileWrite(FH, &LocalId, sizeof(LocalId));
strcpy(cstr, FNTemplate.c_str());
FileWrite(FH, cstr, sizeof(cstr));
FileClose(FH);
}
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
94
}
void DevSettings::LoadFromFile(AnsiString FN){
int FH = FileOpen(FN, fmOpenRead);
if(FH != -1){
FileRead(FH, &DevIndex, sizeof(DevIndex));
FileRead(FH, &CaptureParms, sizeof (CAPTUREPARMS));
FileRead(FH, &CapStatus, sizeof (CAPSTATUS));
FileRead(FH, &VideoFormatSize, sizeof(VideoFormatSize));
if(VideoFormat){
delete[] VideoFormat;
VideoFormat = NULL;
}
if(VideoFormatSize > 0){
VideoFormat = (LPBITMAPINFO) new BYTE[VideoFormatSize];
FileRead(FH, VideoFormat, VideoFormatSize);
}
FileRead(FH, &ClipRect, sizeof(ClipRect));
int senscnt;
FileRead(FH, &senscnt, sizeof(senscnt));
for(int i=0; i < senscnt && i < SensList->Count; i++){
FileRead(FH, SensList->Items[i], sizeof(SensRegion));
}
FileRead(FH, &CycleTime, sizeof(CycleTime));
FileRead(FH, &MaxActivePoints, sizeof(MaxActivePoints));
FileRead(FH, &AlarmMotionTime, sizeof(AlarmMotionTime));
FileRead(FH, &ForceSaveTime, sizeof(ForceSaveTime));
FileRead(FH, &JPEGCompression, sizeof(JPEGCompression));
char cstr[255];
FileRead(FH, cstr, sizeof(cstr));
ImagesFolder = cstr;
FileRead(FH, cstr, sizeof(cstr));
AlarmExecuteFN = cstr;
FileRead(FH, &LocalId, sizeof(LocalId));
FileRead(FH, cstr, sizeof(cstr));
FNTemplate = cstr;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
95
if(FNTemplate == "") FNTemplate =
"{dd}_{mm}_{yyyy}\\{dd}{mmm}{yy}-{hh}{nn}{ss}{zzz}";
FileClose(FH);
}
}
// StatusCallbackProc: status callback function
// hWnd:
capture window handle
// nID:
status code for the current status
// lpStatusText:
status text string for the current sta-
tus
//
LRESULT PASCAL DevSettings::StatusCallbackProc(HWND hWnd, int
nID,
LPSTR lpStatusText)
{
if (nID == 0) {
// Clear old status messages.
return (LRESULT) TRUE;
}
// Show the status ID and status text...
Sets.AddToLog("Status("+IntToStr(nID)+"): "+lpStatusText);
return (LRESULT) TRUE;
}
// ErrorCallbackProc: error callback function
// hWnd:
capture window handle
// nErrID:
error code for the encountered error
// lpErrorText:
error text string for the encountered er-
ror
//
LRESULT PASCAL DevSettings::ErrorCallbackProc(HWND hWnd, int
nErrID,
LPSTR lpErrorText)
{
if (nErrID == 0)
return (LRESULT)TRUE;
// Starting a new major function.
// Clear out old errors.
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
96
// Show the error identifier and text.
Sets.AddToLog("Error("+IntToStr(nErrID)+"): "+lpErrorText);
MessageBox(hWnd, lpErrorText, AnsiString("Error
#"+IntToStr(nErrID)).c_str(), MB_OK | MB_ICONEXCLAMATION);
return (LRESULT) TRUE;
}
// FrameCallbackProc: frame callback function
// hWnd:
capture window handle
// lpVHdr:
pointer to struct containing captured
//
frame information
//
LRESULT PASCAL DevSettings::FrameCallbackProc(HWND hWnd,
LPVIDEOHDR lpVHdr)
{
// wsprintf(gachBuffer, "Preview frame# %ld ",
gdwFrameNum++);
// SetWindowText(ghWndMain, (LPSTR)gachBuffer);
//
ShowMessage("Frame");
Sets.UpdateFrame(lpVHdr);
return (LRESULT) TRUE ;
}
bool DevSettings::Connect(){
int nID = 0;
Disconnect();
if(!hCaptureW) hCaptureW = capCreateCaptureWindow("Capture
Window",
WS_CHILD,
0, 0, 100, 100,
hParentW, nID);
bool fOK = false;
if(hCaptureW && DevIndex != -1){
//set callback functions
fOK = capSetCallbackOnError(hCaptureW,
&DevSettings::ErrorCallbackProc);
if(fOK) fOK = capSetCallbackOnStatus(hCaptureW,
&DevSettings::StatusCallbackProc);
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
97
if(fOK) fOK = capSetCallbackOnFrame(hCaptureW,
&DevSettings::FrameCallbackProc);
//connect to driver
if(fOK) fOK = capDriverConnect(hCaptureW, DevIndex);
//set capture params
if(fOK && CaptureParms.dwRequestMicroSecPerFrame > 0){
fOK = capCaptureSetSetup(hCaptureW, &CaptureParms,
sizeof (CAPTUREPARMS));
if(!fOK) fOK = capCaptureGetSetup(hCaptureW,
&CaptureParms, sizeof(CAPTUREPARMS));
}else if(fOK) fOK = capCaptureGetSetup(hCaptureW,
&CaptureParms, sizeof(CAPTUREPARMS));
//set video format
if(fOK && VideoFormat){
fOK = capSetVideoFormat(hCaptureW, VideoFormat, VideoFormatSize);
}
if((!fOK && VideoFormat) || (fOK && !VideoFormat)){
VideoFormatSize = capGetVideoFormatSize(hCaptureW);
if(VideoFormat){
delete[] VideoFormat;
VideoFormat = NULL;
}
if(VideoFormatSize > 0){
VideoFormat = (LPBITMAPINFO) new
BYTE[VideoFormatSize];
fOK = capGetVideoFormat(hCaptureW, VideoFormat, VideoFormatSize);
}
}
if(fOK){
//set window size
capGetStatus(hCaptureW, &CapStatus, sizeof (CAPSTATUS));
// SetWindowPos(hCaptureW, NULL, 0, 0, CapStatus.uiImageWidth,
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
98
//
CapStatus.uiImageHeight, SWP_NOZORDER |
SWP_NOMOVE);
FramePic->Bitmap->Width = CapStatus.uiImageWidth;
FramePic->Bitmap->Height = CapStatus.uiImageHeight;
FramePic->Bitmap->HandleType = bmDIB;
FramePic->Bitmap->PixelFormat = pf24bit;
FramePic->Bitmap->IgnorePalette = true;
GrayPic->Bitmap->Width = pW;
GrayPic->Bitmap->Height = pH;
GrayPic->Bitmap->HandleType = bmDIB;
GrayPic->Bitmap->PixelFormat = pf24bit;
GrayPic->Bitmap->IgnorePalette = true;
if(GrayData) delete[] GrayData;
GrayData = new BYTE[pW * pH];
memset(GrayData, 0, pW*pH);
//if(FiltData) delete[] FiltData;
//FiltData = new BYTE[pW * pH];
}
}
if(!fOK){
AddToLog("Global error: can't connect!");
bConnected = false;
}else{
bConnected = true;
AddToLog("Status: Capture driver connected");
}
CurBufFrame = 0;
FramesCaptured = 0;
return fOK;
}
bool DevSettings::Disconnect(){
if(!bConnected && !hCaptureW) return true;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
99
if(hCaptureW){
//free callback funcs
capSetCallbackOnError(hCaptureW, NULL);
capSetCallbackOnStatus(hCaptureW, NULL);
capSetCallbackOnVideoStream(hCaptureW, NULL);
capSetCallbackOnFrame(hCaptureW, NULL);
//disconnect from device
capDriverDisconnect(hCaptureW);
DestroyWindow(hCaptureW);
hCaptureW = NULL;
}
bConnected = false;
AddToLog("Status: Capture driver disconnected");
return true;
}
void DevSettings::UpdateFrame(LPVIDEOHDR lpVHdr)
{
HDC hdc;
HDRAWDIB hdd;
hdd = DrawDibOpen();
//draw source frame into FramePic
hdc = FramePic->Bitmap->Canvas->Handle ;
FramePic->Bitmap->Canvas->TryLock();
DrawDibBegin(hdd, hdc,
VideoFormat->bmiHeader.biWidth, //dxDest
VideoFormat->bmiHeader.biHeight, //dyDest
&VideoFormat->bmiHeader, //lpbi
VideoFormat->bmiHeader.biWidth, //dxSrc
VideoFormat->bmiHeader.biHeight, //dySrc
NULL);
DrawDibDraw(hdd, hdc,
0, //xDst
0, //yDst
VideoFormat->bmiHeader.biWidth, //dxDst
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
100
VideoFormat->bmiHeader.biHeight, //dyDst
&VideoFormat->bmiHeader, //lpbi
lpVHdr->lpData, //lpBits
0, //xSrc
0, //ySrc
VideoFormat->bmiHeader.biWidth, //dxSrc
VideoFormat->bmiHeader.biHeight, //dySrc
NULL);
DrawDibEnd(hdd);
FramePic->Bitmap->Canvas->Unlock();
//draw source frame into GrayPic (for processing)
DWORD xSrc = 0, ySrc = 0,
dxSrc = VideoFormat->bmiHeader.biWidth,
dySrc = VideoFormat->bmiHeader.biHeight;
if(ClipRect.bottom > 0){
//use clipping
float MX = dxSrc / (float)pW,
MY = dySrc / (float)pH;
xSrc = ClipRect.left * MX;
ySrc = ClipRect.top * MX;
dxSrc = (ClipRect.right - ClipRect.left) * MX;
if(dxSrc > (DWORD)VideoFormat->bmiHeader.biWidth - xSrc)
dxSrc = VideoFormat->bmiHeader.biWidth - xSrc;
dySrc = (ClipRect.bottom - ClipRect.top) * MY;
if(dySrc > (DWORD)VideoFormat->bmiHeader.biHeight - ySrc)
dySrc = VideoFormat->bmiHeader.biHeight - ySrc;
}
hdc = GrayPic->Bitmap->Canvas->Handle ;
GrayPic->Bitmap->Canvas->TryLock();
DrawDibBegin(hdd, hdc,
pW, //dxDest
pH, //dyDest
&VideoFormat->bmiHeader, //lpbi
dxSrc,
dySrc,
NULL);
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
101
//DrawDibRealize(hdd, hdc, fBackground);
DrawDibDraw(hdd, hdc,
0, //xDst
0, //yDst
pW, //dxDst
pH, //dyDst
&VideoFormat->bmiHeader, //lpbi
lpVHdr->lpData, //lpBits
xSrc,
ySrc,
dxSrc,
dySrc,
NULL);
DrawDibEnd(hdd);
DrawDibClose(hdd);
GrayPic->Bitmap->Canvas->Unlock();
// create grayscale image in array and autobalance it;
BITMAP bm;
GetObject(GrayPic->Bitmap->Handle,sizeof(BITMAP),&bm);
register DWORD offs;
DWORD maxoffs = bm.bmHeight * bm.bmWidthBytes ;
register int Y;
BYTE minY = 255, maxY = 0;
for(offs = 0; offs < maxoffs; offs+= 3){
Y =
((int)((BYTE*)bm.bmBits)[offs]+(int)((BYTE*)bm.bmBits)[offs+1]+(int)
((BYTE*)bm.bmBits)[offs+2]) / 3;
if(minY > Y) minY = Y;
if(maxY < Y) maxY = Y;
GrayData[offs/3] = Y;
}
maxoffs = maxoffs/3;
if(maxY - minY == 0){
AddToLog(AnsiString("Image capturing error ")+__LINE__+"
"+__FILE__);
return;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
102
}
static float M = 255/(maxY - minY);
static float avminY = minY, avmaxY = maxY;
avmaxY = 0.95*avmaxY + 0.05*maxY;
if(avmaxY > 255) avmaxY = 255;
avminY = 0.95*avminY + 0.05*minY;
if(avminY > 250) avminY = 250;
if(avmaxY <= avminY) avmaxY = avminY + 1;
M = 255/(avmaxY - avminY);
for(offs = 0; offs < maxoffs; offs++){
Y = ((int)GrayData[offs] - avminY) * M ;
if(Y < 0) GrayData[offs] = 0;
else if(Y > 255) GrayData[offs] = 255;
else GrayData[offs] = Y;
}
CurBufFrame++;
CurBufFrame = CurBufFrame % (FrameBufCnt-1);
FiltData = (BYTE*)FrameBuffer->Items[CurBufFrame];
FilterFrame(GrayData, FiltData);
FramesCaptured ++;
if(FramesCaptured > 2){
CompareFrames(FiltData,
(BYTE*)FrameBuffer>Items[CalcBufIndex(CurBufFrame-1)],
DifData );
}
}
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
{
bWork = false;
Sets.SaveToFile(ConfigName);
Sets.Disconnect();
}
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
103
//------------------------------------------------------------void __fastcall TMainForm::FilterItemClick(TObject *Sender)
{
if(!Sets.bConnected) Sets.Connect();
if(Sets.bConnected) capGrabFrame(Sets.hCaptureW);
SetFilterForm->ShowModal();
}
//------------------------------------------------------------void DevSettings::FilterFrame(BYTE* Src, BYTE* Dst)
{
register int idx, idy, x, y, i, offs, toffs, cnt;
int ytop, ybot, dx, dy, srw, srh;
float SY;
DWORD sum;
SensRegion *sr = (SensRegion*)SensList->Items[0];
srw = sr->right - sr->left;
srh = sr->bottom - sr->top;
for(i=0; i<SensList->Count; i++){
sr = (SensRegion*)SensList->Items[i];
ybot = pH-sr->top; ytop = pH-sr->bottom;
dx = (100 - sr->sens) * (srw)/400;
dy = (100 - sr->sens) * (srh)/300;
SY =
sr->sens/100.0*0.4 + 0.6;
//dx=0; dy=5;
for(y = ytop; y < ybot; y++){
for(x = sr->left; x < sr->right; x++){
offs = pW*y + x;
if(sr->sens == 0){
Dst[offs] = 0;
}else if(sr->sens == 100){
Dst[offs] = Src[offs];
}
else{
sum = 0;
cnt = 0;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
104
for(idy = y-dy; idy <= y+dy; idy++){
for(idx = x-dx; idx <= x+dx; idx++){
toffs = pW*((idy < ytop)? idy+srh : (idy
>= ybot)? idy-srh : idy) +
((idx < sr->left)? idx+srw : ((idx
>= sr->right)? idx-srw : idx));
//
toffs = pW*((idy < 0)? idy+srh : (idy >=
pH)? idy-srh : idy) +
//
((idx < 0)? idx+srw : ((idx >=
pW)? idx-srw : idx));
sum+= Src[toffs];
cnt++;
}
}
Dst[offs] = sum / cnt * SY;
}
}
}
}
}
void DevSettings::PaintArray(BYTE * arr, Graphics::TBitmap *
bmp)
{
BITMAP bm;
bmp->Width = pW;
bmp->Height = pH;
bmp->PixelFormat = pf24bit;
GetObject(bmp->Handle, sizeof(BITMAP), &bm);
DWORD maxoffs = bm.bmHeight * bm.bmWidthBytes,
offs;
BYTE Y;
if(!arr) return;
for(offs = 0; offs < maxoffs; offs+= 3){
Y = arr[offs/3];
((BYTE*)bm.bmBits)[offs] = Y;
((BYTE*)bm.bmBits)[offs+1] = Y;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
105
((BYTE*)bm.bmBits)[offs+2] = Y;
}
}
void DevSettings::CompareFrames(BYTE * f1, BYTE * f2, BYTE *
dest)
{
register int offs, maxoffs = pW * pH, Y;
static int StartMotionTime;
ActivePoints = 0;
for(offs = 0; offs < maxoffs; offs++){
Y = abs(f2[offs] - f1[offs]) * 5;
if(Y >= 255){
Y = 255;
ActivePoints ++;
}
dest[offs] = Y;
}
if(ActivePoints >= MaxActivePoints){
if(MotionTime == 0) StartMotionTime = GetTickCount();
MotionTime = GetTickCount() - StartMotionTime + 1;
SaveFrame();
if(MotionTime > AlarmMotionTime * 1000){
DoAlarm();
MotionTime = 0;
}
}else{
MotionTime = 0;
}
}
int inline DevSettings::CalcBufIndex(int arg)
{
return ((arg >= FrameBufCnt-1)? arg%(FrameBufCnt-1) : ((arg
< 0)? arg + FrameBufCnt - 1 : arg));
}
void __fastcall TMainForm::PrevPBPaint(TObject *Sender)
{
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
106
Graphics::TBitmap *tbmp = new Graphics::TBitmap;
switch (MainPageControl->TabIndex){
case 0: //input frame
PrevPB->Canvas->StretchDraw(PrevPB->ClientRect,
Sets.FramePic->Bitmap);
break;
case 1: //control frame
Sets.PaintArray(Sets.GrayData, tbmp);
FramePB->Canvas->StretchDraw(FramePB->ClientRect,
tbmp);
break;
case 2: //filtered frame
Sets.PaintArray(Sets.FiltData, tbmp);
FiltPB->Canvas->StretchDraw(FiltPB->ClientRect, tbmp);
break;
case 3: //motion frame
Sets.PaintArray(Sets.DifData, tbmp);
MotionPB->Canvas->StretchDraw(MotionPB->ClientRect,
tbmp);
break;
}
delete tbmp;
}
//------------------------------------------------------------void __fastcall TMainForm::SaveItemClick(TObject *Sender)
{
Sets.SaveToFile(ConfigName);
}
//------------------------------------------------------------void __fastcall TMainForm::LogMemoChange(TObject *Sender)
{
if(LogMemo->Lines->Count > 0)
StatusBar->Panels->Items[3]->Text = LogMemo->Lines>Strings[LogMemo->Lines->Count-1];
}
//-------------------------------------------------------------
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
107
void __fastcall TMainForm::Show1Click(TObject *Sender)
{
Application->Restore();
}
//------------------------------------------------------------void __fastcall TMainForm::Hide1Click(TObject *Sender)
{
Application->Minimize();
}
//------------------------------------------------------------void DevSettings::DoAlarm()
{
AddToLog("ALARM!");
if(AlarmExecuteFN != "" && FileExists(AlarmExecuteFN)){
if(ExtractFileExt(AlarmExecuteFN).LowerCase() ==
".wav"){
PlaySound(AlarmExecuteFN.c_str(), NULL,
SND_ASYNC|SND_FILENAME);
}else{
ShellExecute(
hParentW,
// handle to parent window
"open",
// pointer to string that
specifies operation to perform
AlarmExecuteFN.c_str(),
// pointer to
filename or folder name string
NULL, // pointer to string that specifies executable-file parameters
NULL, // pointer to string that specifies default directory
SW_SHOWDEFAULT
// whether file is
shown when opened
);
}
}
}
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
108
void DevSettings::SaveFrame()
{
AnsiString FN = EvalImgPath();
if(!DirectoryExists(ExtractFilePath(FN))) ForceDirectories(ExtractFilePath(FN));
FramePic->Bitmap->Canvas->TextOut(0, 0, DateTimeToStr(Now()));
TJPEGImage *jp = new TJPEGImage();
try
{
jp->Assign(FramePic->Bitmap);
jp->CompressionQuality = JPEGCompression;
jp->Compress();
jp->SaveToFile(FN);
}
catch(...){
delete jp;
return;
}
delete jp;
AddToLog("Frame saved");
}
AnsiString DevSettings::EvalImgPath(){
static unsigned int sn = 0;
sn++ ;
TDateTime dt = Now();
AnsiString tS, res = FNTemplate;
AnsiString dd, ddd, mm, mmm, yy, yyyy, hh, nn, ss, zzz;
DateTimeToString(dd, "dd", dt);
DateTimeToString(ddd, "ddd", dt);
DateTimeToString(mm, "mm", dt);
DateTimeToString(mmm, "mmm", dt);
DateTimeToString(yy, "yy", dt);
DateTimeToString(yyyy, "yyyy", dt);
DateTimeToString(hh, "hh", dt);
DateTimeToString(nn, "nn", dt);
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
109
DateTimeToString(ss, "ss", dt);
DateTimeToString(zzz, "zzz", dt);
DateTimeToString(tS, "dd_mmm_yyyy", dt);
//
{dd}_{mmm}_{yyyy}\\{dd}{mmm}{yy}-{hh}{nn}{ss}{zzz}.jpg
AnsiString FN = ImagesFolder + "\\" + tS + "\\";
//if(!DirectoryExists(FN)) CreateDir(FN);
DateTimeToString(tS, "ddmmmyy-hhnnsszzz", Now());
FN = FN + tS + ".jpg";
TReplaceFlags rf; rf << rfReplaceAll;
res = StringReplace(res, "{dd}", dd, rf);
res = StringReplace(res, "{ddd}", ddd, rf);
res = StringReplace(res, "{mm}", mm, rf);
res = StringReplace(res, "{mmm}", mmm, rf);
res = StringReplace(res, "{yy}", yy, rf);
res = StringReplace(res, "{yyyy}", yyyy, rf);
res = StringReplace(res, "{hh}", hh, rf);
res = StringReplace(res, "{nn}", nn, rf);
res = StringReplace(res, "{ss}", ss, rf);
res = StringReplace(res, "{zzz}", zzz, rf);
res = StringReplace(res, "{sn}", IntToStr(sn), rf);
return ImagesFolder + "\\" + res + ".jpg";
}
void __fastcall TMainForm::CommonItemClick(TObject *Sender)
{
SetCommonForm->ShowModal();
}
//------------------------------------------------------------void __fastcall TMainForm::OpenImgFolderBitBtnClick(TObject
*Sender)
{
ShellExecute(
Handle, // handle to parent window
"open", // pointer to string that specifies operation to perform
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
110
"explorer.exe", // pointer to filename or
folder name string
Sets.ImagesFolder.c_str(), // pointer to
string that specifies executable-file parameters
NULL,
// pointer to string that specifies de-
fault directory
SW_SHOWDEFAULT
// whether file is shown when
opened
);
}
//------------------------------------------------------------void __fastcall TMainForm::ShootNowBitBtnClick(TObject *Sender)
{
if(!Sets.bConnected) Sets.Connect();
if(Sets.bConnected){
capGrabFrame(Sets.hCaptureW);
Sets.SaveFrame();
PrevPBPaint(Sender);
}
}
//------------------------------------------------------------void __fastcall TMainForm::FormCreate(TObject *Sender)
{
EnglishItem->Tag = ENGLISH;
RussianItem->Tag = RUSSIAN;
AnsiString asLcid;
int iLcid = 0;
asLcid = LoadStr(_SLcid.id);
if(asLcid != "") iLcid = asLcid.ToInt();
EnglishItem->Checked = iLcid == EnglishItem->Tag;
RussianItem->Checked = iLcid == RussianItem->Tag;
}
//------------------------------------------------------------void __fastcall TMainForm::EnglishItemClick(TObject *Sender)
{
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
111
if(LoadNewResourceModule(dynamic_cast<TComponent*>(Sender)>Tag) != 0)
{
bWork = false;
Sets.Disconnect();
Application->ProcessMessages();
Sets.LocalId = dynamic_cast<TComponent*>(Sender)->Tag;
Sets.SaveToFile(ConfigName);
ReinitializeForms();
EnglishItem->Checked = EnglishItem == Sender;
RussianItem->Checked
= RussianItem == Sender;
}
}
ПРИЛОЖЕНИЕ Б
ЛИСТИНГ МОДУЛЯ РАБОТЫ С ПРОГРАММОЙ
VideoAlarm
ФОРМА ВЫБОРА УСТРОЙСТВА
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
112
//------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "SetDeviceUnit.h"
#include "MainUnit.h"
//------------------------------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
TSetDeviceForm *SetDeviceForm;
//------------------------------------------------------------__fastcall TSetDeviceForm::TSetDeviceForm(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------void __fastcall TSetDeviceForm::FormShow(TObject *Sender)
{
//save current setting
Sets.SaveToFile("prev.cfg");
UpdateState();
// enumerate devices
char szDeviceName[80];
char szDeviceVersion[80];
DeviceSelect->Items->Clear();
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
113
for (int wIndex = 0; wIndex < 10; wIndex++)
{
if (capGetDriverDescription (wIndex, szDeviceName,
sizeof (szDeviceName), szDeviceVersion,
sizeof (szDeviceVersion)))
{
// Append name to list of installed capture drivers
// and then let the user select a driver to use.
DeviceSelect->Items>Add(AnsiString(szDeviceName)+"("+AnsiString(szDeviceVersion)+")");
if(Sets.DevIndex == wIndex) DeviceSelect->Text = AnsiString(szDeviceName)+"("+AnsiString(szDeviceVersion)+")";
}
}
}
//------------------------------------------------------------void __fastcall TSetDeviceForm::DeviceSelectSelect(TObject
*Sender)
{
//update device index
Sets.DevIndex = DeviceSelect->ItemIndex;
UpdateState();
}
//------------------------------------------------------------void __fastcall TSetDeviceForm::OkBitBtnClick(TObject *Sender)
{
DeleteFile("prev.cfg");
Close();
}
//------------------------------------------------------------void __fastcall TSetDeviceForm::CancelBitBtnClick(TObject
*Sender)
{
Sets.LoadFromFile("prev.cfg");
DeleteFile("prev.cfg");
Close();
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
114
}
//------------------------------------------------------------void __fastcall TSetDeviceForm::VideoSrcBitBtnClick(TObject
*Sender)
{
capDlgVideoSource(Sets.hCaptureW);
}
//------------------------------------------------------------void __fastcall TSetDeviceForm::FormatBitBtnClick(TObject
*Sender)
{
capDlgVideoFormat(Sets.hCaptureW);
capGetStatus(Sets.hCaptureW, &Sets.CapStatus, sizeof (CAPSTATUS));
Sets.VideoFormatSize = capGetVideoFormatSize(Sets.hCaptureW);
if(Sets.VideoFormat){
delete[] Sets.VideoFormat;
Sets.VideoFormat = NULL;
}
if(Sets.VideoFormatSize > 0){
Sets.VideoFormat = (LPBITMAPINFO) new
BYTE[Sets.VideoFormatSize];
capGetVideoFormat(Sets.hCaptureW, Sets.VideoFormat,
Sets.VideoFormatSize);
}
}
//------------------------------------------------------------void __fastcall TSetDeviceForm::DisplayBitBtnClick(TObject
*Sender)
{
capDlgVideoDisplay(Sets.hCaptureW);
}
//------------------------------------------------------------void TSetDeviceForm::UpdateState()
{
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
115
//connect new device
capDriverDisconnect (Sets.hCaptureW);
bool fOK = capDriverConnect(Sets.hCaptureW, Sets.DevIndex);
if(fOK){
//get driver caps
capDriverGetCaps(Sets.hCaptureW, &Sets.CapDrvCaps, sizeof
(CAPDRIVERCAPS));
//get window caps
capGetStatus(Sets.hCaptureW, &Sets.CapStatus, sizeof
(CAPSTATUS));
//get available dialogs for driver
// Video source dialog box.
VideoSrcBitBtn->Visible = false;
if (Sets.CapDrvCaps.fHasDlgVideoSource)
VideoSrcBitBtn->Visible = true;
// Video format dialog box.
FormatBitBtn->Visible = false;
if (Sets.CapDrvCaps.fHasDlgVideoFormat)
FormatBitBtn->Visible = true;
// Video display dialog box.
DisplayBitBtn->Visible = false;
if (Sets.CapDrvCaps.fHasDlgVideoDisplay)
DisplayBitBtn->Visible = true;
}
}
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
116
ПРИЛОЖЕНИЕ
ЛИСТИНГ МОДУЛЯ РАБОТЫ С ПРОГРАММОЙ
VideoAlarm
ФОРМА УСТАНОВОК ФИЛЬТРА
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
117
//------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "SetFilterUnit.h"
#include "MainUnit.h"
//------------------------------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
TSetFilterForm *SetFilterForm;
int SRX1, SRX2, SRY1, SRY2;
int CurSens = -1;
//------------------------------------------------------------__fastcall TSetFilterForm::TSetFilterForm(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------void __fastcall TSetFilterForm::OkBitBtnClick(TObject *Sender)
{
DeleteFile("prev.cfg");
Close();
}
//------------------------------------------------------------void __fastcall TSetFilterForm::CancelBitBtnClick(TObject
*Sender)
{
Sets.LoadFromFile("prev.cfg");
DeleteFile("prev.cfg");
Close();
}
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
118
//------------------------------------------------------------void __fastcall TSetFilterForm::SRPBPaint(TObject *Sender)
{
DrawSR();
}
//------------------------------------------------------------void __fastcall TSetFilterForm::SRPBMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if(DrawRectButton->Down){
SRPB->Cursor = crCross;
if(Shift.Contains(ssLeft)){//left mouse button pressed
SRX2 = X;
SRY2 = Y;
DrawSR();
}
}
else{
SRPB->Cursor = crDefault;
}
}
//------------------------------------------------------------void __fastcall TSetFilterForm::SRPBMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button == mbLeft && DrawRectButton->Down){
SRX1 = SRX2 = X;
SRY1 = SRY2 = Y;
}
}
//------------------------------------------------------------void TSetFilterForm::DrawSR()
{
TPicture *tPic = new TPicture;
tPic->Bitmap->Width = SRPB->Width;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
119
tPic->Bitmap->Height =
SRPB->Height;
tPic->Bitmap->Canvas->Brush->Color = (TColor)RGB(100,100,100);
tPic->Bitmap->Canvas->FillRect(tPic->Bitmap->Canvas>ClipRect);
tPic->Bitmap->Canvas->Brush->Color = clWhite;
tPic->Bitmap->Canvas->FillRect(Rect(SRX1, SRY1, SRX2,
SRY2));
tPic->Bitmap->Canvas->CopyMode = cmSrcAnd;
tPic->Bitmap->Canvas->StretchDraw(tPic->Bitmap->Canvas>ClipRect, Sets.FramePic->Bitmap);
SRPB->Canvas->Draw(0, 0, tPic->Bitmap);
delete tPic;
}
void __fastcall TSetFilterForm::FormShow(TObject *Sender)
{
//save current setting
Sets.SaveToFile("prev.cfg");
SRPB->Width = Sets.pW;
SRPB->Height = Sets.pH;
SensPB->Width = Sets.pW;
SensPB->Height = Sets.pH;
if(Sets.ClipRect.bottom > 0){
SRX1 = Sets.ClipRect.left;
SRX2 = Sets.ClipRect.right;
SRY1 = Sets.ClipRect.top;
SRY2 = Sets.ClipRect.bottom;
}else{
SRX1 = SRY1 = 0;
SRX2 = Sets.pW;
SRY2 = Sets.pH;
}
ActivePointsEdit->Text = IntToStr(Sets.MaxActivePoints);
AlarmTimeEdit->Text = IntToStr(Sets.AlarmMotionTime);
CycleTimeEdit->Text = IntToStr(Sets.CycleTime);
ForceSaveEdit->Text = IntToStr(Sets.ForceSaveTime);
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
120
}
//------------------------------------------------------------void __fastcall TSetFilterForm::RectSaveButtonClick(TObject
*Sender)
{
int t;
if(SRX1 > SRX2){
t = SRX1; SRX1 = SRX2; SRX2 = t;
}
if(SRY1 > SRY2){
t = SRY1; SRY1 = SRY2; SRY2 = t;
}
Sets.ClipRect.left = SRX1;
Sets.ClipRect.right = SRX2;
Sets.ClipRect.top = SRY1;
Sets.ClipRect.bottom = SRY2;
if(Sets.bConnected) capGrabFrame(Sets.hCaptureW);
}
//------------------------------------------------------------void __fastcall TSetFilterForm::SensPBPaint(TObject *Sender)
{
DrawSensRegions();
}
//------------------------------------------------------------void TSetFilterForm::DrawSensRegions()
{
int i;
SensRegion *sR;
TPicture *tPic = new TPicture;
tPic->Bitmap->Width = SensPB->Width;
tPic->Bitmap->Height =
SensPB->Height;
for(i = 0; i < Sets.SensList->Count; i++){
sR = (SensRegion*)Sets.SensList->Items[i];
int cl = sR->sens * 255.0 / 100.0;
tPic->Bitmap->Canvas->Brush->Color = (TColor)RGB(cl, cl,
cl);
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
121
tPic->Bitmap->Canvas->FillRect(*sR);
}
tPic->Bitmap->Canvas->CopyMode = cmSrcAnd;
tPic->Bitmap->Canvas->Draw(0, 0, Sets.GrayPic->Bitmap);
tPic->Bitmap->Canvas->Font->Color = clRed;
tPic->Bitmap->Canvas->Pen->Width = 1;
for(i = 0; i < Sets.SensList->Count; i++){
sR = (SensRegion*)Sets.SensList->Items[i];
tPic->Bitmap->Canvas->Brush->Style = bsSolid;
tPic->Bitmap->Canvas->Brush->Color = clRed;
tPic->Bitmap->Canvas->FrameRect(*sR);
tPic->Bitmap->Canvas->Brush->Style = bsClear;
tPic->Bitmap->Canvas->TextOut((sR->left+sR->right)*0.510, (sR->top+sR->bottom)*0.5-10, IntToStr(sR->sens));
}
SensPB->Canvas->Draw(0, 0, tPic->Bitmap);
delete tPic;
// SensPB->Canvas->Draw(0, 0, Sets.GrayPic->Bitmap);
}
void __fastcall TSetFilterForm::SensSpeedButtonClick(TObject
*Sender)
{
if(!((TSpeedButton*)Sender)->Down){
CurSens = -1;
}else{
CurSens = StrToInt(((TSpeedButton*)Sender)->Caption);
}
}
//------------------------------------------------------------void __fastcall TSetFilterForm::SensPBMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
int i;
SensRegion *sR;
if(CurSens != -1 && Button == mbLeft){
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
122
for(i = 0; i < Sets.SensList->Count; i++){
sR = (SensRegion*)Sets.SensList->Items[i];
if(sR->left < X && sR->right > X && sR->top < Y && sR>bottom > Y){
sR->sens = CurSens;
}
}
DrawSensRegions();
}
}
//------------------------------------------------------------void __fastcall TSetFilterForm::SensPBMouseMove(TObject
*Sender,
TShiftState Shift, int X, int Y)
{
if(CurSens != -1){
SensPB->Cursor = crHandPoint;
}else{
SensPB->Cursor = crDefault;
}
}
//------------------------------------------------------------void __fastcall TSetFilterForm::SensClearButtonClick(TObject
*Sender)
{
int i;
SensRegion *sR;
for(i = 0; i < Sets.SensList->Count; i++){
sR = (SensRegion*)Sets.SensList->Items[i];
sR->sens = 90;
}
DrawSensRegions();
}
//------------------------------------------------------------void __fastcall TSetFilterForm::AlarmApplyBitBtnClick(TObject
*Sender)
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
123
{
try{
Sets.MaxActivePoints = StrToInt(ActivePointsEdit>Text.Trim());
Sets.AlarmMotionTime = StrToInt(AlarmTimeEdit>Text.Trim());
Sets.CycleTime = StrToInt(CycleTimeEdit->Text.Trim());
Sets.ForceSaveTime = StrToInt(ForceSaveEdit>Text.Trim());
}catch(...){
ShowMessage("It seems that is something wrong in your
numbers, check please!");
}
}
//-------------------------------------------------------------
ПРИЛОЖЕНИЕ Г
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
124
ЛИСТИНГ МОДУЛЯ РАБОТЫ С ПРОГРАММОЙ
VideoAlarm
ФОРМА ОБЩИХ НАСТРОЕК
//------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "SetCommonUnit.h"
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
125
#include "MainUnit.h"
//------------------------------------------------------------#pragma package(smart_init)
#pragma link "cdiroutl"
#pragma link "CSPIN"
#pragma resource "*.dfm"
TSetCommonForm *SetCommonForm;
//------------------------------------------------------------__fastcall TSetCommonForm::TSetCommonForm(TComponent* Owner)
: TForm(Owner)
{
}
//------------------------------------------------------------void __fastcall TSetCommonForm::OkBitBtnClick(TObject *Sender)
{
Sets.ImagesFolder = ImageDirEdit->Text;
Sets.JPEGCompression = JPEGCompressionEdit->Value;
Sets.AlarmExecuteFN = AlarmOpenEdit->Text;
DeleteFile("prev.cfg");
Close();
}
//------------------------------------------------------------void __fastcall TSetCommonForm::CancelBitBtnClick(TObject
*Sender)
{
Sets.LoadFromFile("prev.cfg");
DeleteFile("prev.cfg");
Close();
}
//------------------------------------------------------------void __fastcall TSetCommonForm::FormShow(TObject *Sender)
{
//save current setting
Sets.SaveToFile("prev.cfg");
DLB->Directory = Sets.ImagesFolder;
ImageDirEdit->Text = Sets.ImagesFolder;
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
126
FNTemplateEdit->Text = Sets.FNTemplate;
FNExampleLabel->Caption = Sets.EvalImgPath();
JPEGCompressionEdit->Value = Sets.JPEGCompression;
AlarmOpenEdit->Text = Sets.AlarmExecuteFN;
AlarmOpenDialog->FileName = Sets.AlarmExecuteFN;
}
//------------------------------------------------------------void __fastcall TSetCommonForm::ImagePathSpeedButtonClick(TObject *Sender)
{
DLPanel->Show();
}
//------------------------------------------------------------void __fastcall TSetCommonForm::DLOkButtonClick(TObject
*Sender)
{
ImageDirEdit->Text = DLB->Directory;
DLPanel->Hide();
Sets.ImagesFolder = ImageDirEdit->Text;
Sets.FNTemplate = FNTemplateEdit->Text;
FNExampleLabel->Caption = Sets.EvalImgPath();
}
//------------------------------------------------------------void __fastcall TSetCommonForm::DLCancelButtonClick(TObject
*Sender)
{
DLPanel->Hide();
}
//------------------------------------------------------------void __fastcall TSetCommonForm::AlarmExecuteSpeedButtonClick(
TObject *Sender)
{
if(AlarmOpenDialog->Execute()){
AlarmOpenEdit->Text = AlarmOpenDialog->FileName;
}
}
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
127
//------------------------------------------------------------void __fastcall TSetCommonForm::OnAlarmNOExecuteSpeedButtonClick(
TObject *Sender)
{
AlarmOpenEdit->Clear();
}
//------------------------------------------------------------void __fastcall TSetCommonForm::FNTemplateEditKeyUp(TObject
*Sender,
WORD &Key, TShiftState Shift)
{
Sets.FNTemplate = FNTemplateEdit->Text;
FNExampleLabel->Caption = Sets.EvalImgPath();
}
//------------------------------------------------------------void __fastcall TSetCommonForm::HideFNHelpButtonClick(TObject
*Sender)
{
FNHelpBox->Visible = false;
}
//------------------------------------------------------------void __fastcall TSetCommonForm::SpeedButton2Click(TObject
*Sender)
{
FNHelpBox->Visible = true;
}
//------------------------------------------------------------void __fastcall TSetCommonForm::ClearFNTemplateButtonClick(TObject *Sender)
{
FNTemplateEdit->Text = "{dd}_{mm}_{yyyy}\\{dd}{mmm}{yy}{hh}{nn}{ss}{zzz}";
Sets.FNTemplate = FNTemplateEdit->Text;
FNExampleLabel->Caption = Sets.EvalImgPath();
}
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
128
//-------------------------------------------------------------
ДП 230102.5009.013 ПЗ
Изм. Лист
ФГБ
ОУ
№ докум.
Подпись Дата
Лист
129
Автор
kanmeduchprog
Документ
Категория
Без категории
Просмотров
992
Размер файла
2 592 Кб
Теги
часть, основная
1/--страниц
Пожаловаться на содержимое документа