Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Электронно-картографическая система спутниковой связи в судовождении

ДипломнаяПомощь в написанииУзнать стоимостьмоей работы

Информация о движении транспортного средства, состоянии груза находится в памяти компьютера и может быть при необходимости воспроизведена. Диспетчер может получать данные по объектам в автоматическом режиме через любой необходимый интервал времени, будь то часы или минуты. Наряду с этим диспетчер имеет возможность связаться с любым объектом и запросить его местоположение, направить срочную… Читать ещё >

Электронно-картографическая система спутниковой связи в судовождении (реферат, курсовая, диплом, контрольная)

Электронно-картографическая система спутниковой связи в судовождении

спутниковый мониторинг судно мобильный

1. Анализ предметной области

1.1 Системы спутниковой связи

Уже более двух лет в нашей стране предоставляются услуги спутниковой связи на базе глобальной мобильной системы Globalstar. Оператором и эксклюзивным поставщиком услуг Globalstar в России является ЗАО «ГлобалТел». Ее учредители — лидер российского рынка телекоммуникаций, крупнейший национальный оператор междугородной и международной связи ОАО «Ростелеком» (51% акций) и международный консорциум «Globalstar LP» (49% акций).

Несмотря на процесс реорганизации в 2002 году, практически завершенный к настоящему времени, компания Глобалстар продолжала увеличивать продажи терминалов на рынках подвижной связи во всем мире. В 2003 году Глобалстар планирует ускорить развитие и внедрение новых продуктов и услуг. Особое внимание будет уделено продуктам следующего поколения для внедрения на морском флоте, в авиации и на других специализированных рынках путем использования возможностей, заложенных в технологию Глобалстар. Глобалстар также продолжит строительство станций сопряжения для расширения зоны покрытия.

Инфраструктура Российского сегмента Глобалстар, используемая корпоративными и частными абонентами, включает 3 связанные между собой и интегрированные в ТфОП станции сопряжения, центры управления, поддержки абонентов, сервисный и биллинговый центры. «ГлобалТел» входит в тройку лидирующих мировых операторов Глобалстар и демонстрирует стабильный рост абонентов, количество которых за прошедший 2002 год выросло на 106,4% и составляет более 8000. Абсолютный прирост трафика составил 104,3%.

Области применения спутниковой связи глобалстар Рыночные ниши Глобалстар в России и других странах в основном определяются ценовым уровнем терминалов и стоимостью минуты трафика, что в первую очередь ориентирует на потребности корпоративных клиентов, которые составляют почти 90% от общего числа обслуживаемых абонентов. По мере снижения стоимости терминалов и удешевления трафика будет возрастать доля частных абонентов. На основе перечисленных выше базовых услуг достаточно быстро создаются законченные технологические решения для применения в различных отраслях, таких как: добыча и транспортировка нефти и газа, энергетика, лесозаготовка, строительство, геологоразведка, транспорт, рыболовство, речной транспорт, авиация и других.

Эксплуатация российского сегмента Глобалстар показала, что возможности этой системы могут широко использоваться в системах мониторинга, управления распределенными технологическими процессами, сбора данных, как составная часть других телекоммуникационных систем. Мобильность Глобалстар определяет все виды транспорта как основную область применения. Сегодня в поездах работают стационарные терминалы с таксофонами для пассажиров, терминалами Глобалстар оснащены все аварийные поезда и бригады для служебной связи. Планируется подключение к поездным терминалам Глобалстар АРМ «Экспресс-2». Использование терминалов Глобалстар на борту самолетов и вертолетов обеспечивает постоянную связь экипажей с диспетчером, передачу необходимых данных наземному центру. Телефонизация труднодоступных и удаленных населенных пунктов идет в Якутии, Тыве, Хабаровском крае, Чукотке. При этом простота установки и работы фиксированных терминалов Глобалстар обеспечивает высокую оперативность телефонизации. Так за один день в поселках Мугур-Аксы и Качык (самых удаленных от столицы Тувы населенных пунктах) были установлены и включены стационарные спутниковые терминалы FAU-200 Ericsson. В рамках республиканской программы развития информационно-телекоммуникационной инфраструкту-ры Республики Саха (Якутия) идет установка таксофонов на базе спутниковых стационаров Глобалстар в 50 удаленных населенных пунктах этого региона России. Первые 4 таксофона уже установлены. Начало предоставления услуг связи в труднодоступных и удаленных регионах обеспечивает жителей возможностью получения медицинских и других социальных услуг, вызов служб спасения, милиции, оживлению хозяйственной деятельности.

Федеральная структура ГлобалТел позволяет легко и быстро внедрить единый номер службы спасения 112 по аналогии с европейскими странами. «Федеральность» инфраструктуры ГлобалТел обеспечивает также реализацию оперативного межведомственного взаимодействия на всех уровнях управления территорий РФ и других стран. Использование возможностей Globalstar может стать перспективным направлением развития связи и информатизации многих ведомств, предприятии топливно-энергетического комплекса, различных государственных органов и т. д.

На сегодня внедрено и находится в эксплуатации несколько систем мониторинга подвижных и стационарных объектов на базе АТ Глобалстар. Реальный масштаб работы систем мониторинга на базе АТ Глобалстар с предоставлением услуг телефонии, передачи данных и коротких сообщений обеспечивает надежность, безопасность, эффективность и управляемость работы компаний, что способствует быстрой окупаемости таких систем.

Двухмодовые АТ GSM/Globalstar SAT550/600, R290 работают в режиме Глобалстар или в GSM, что даёт возможность в зонах действия сотовых операторов оставаться «на связи» внутри закрытых помещений. Абоненты с картой GSM оператора, практически неограниченно расширяют зону работы своего терминала SAT550/600, R290, используя услугу роуминга в Глобалстар за пределами сотовой сети. Аналогичные возможности могут быть реализованы при пользовании трехмодовыми АТ AMPS/CDMA/Globalstar GSP1600, позволяющих программировать три отдельных номера от операторов перечисленных стандартов, обеспечивая непрерывность связи благодаря возможности перенаправления вызовов «по кольцу» на эти номера.

ЗАО «ГлобалТел» и компания Глобалстар постоянно ведут работы по дальнейшему развитию российского сегмента с целью максимального увеличения количества, качества услуг и продуктов.

В ближайшее время открывается роуминг с Китаем и рядом стран Ближнего Востока. Завершается подготовка к внедрению предоплаченных карточек дозвона и пополнения счета. Готов к вводу режим пакетной передачи данных (аналог GPRS). Поступили в продажу 1-, и 2- канальные модемы GSP1620×1×2, производства российской компании Микран, в которых антенна может быть удалена от модемного блока до 30 метров.

Одной из сфер применения таких модемов является резервирование и удаленный мониторинг РРЛ, распределенные АСУТП, банковские технологии и др.

Абонентское оборудование Абоненты используют 4 модели портативных абонентских терминалов (телефонные трубки), 2 модели стационарных терминалов, подключаемых к стандартному телефону, таксофону, малой АТС, компьютеру, транспортные чемоданные комплекты «Пеликан», 1-и 2-х канальные спутниковые модемы, а также широкий спектр дополнительных аксессуаров.

Мобильные терминалы (Qualcomm GSP-1600, Telit SAT-550, Telit SAT-600, Ericsson R-290) представляют собой портативные телефонные трубки, аналогичные по величине, внешнему оформлению и выполняемым функциям сотовым телефонам. Портативные терминалы обеспечивают возможность работы не только в спутниковом режиме Globalstar, но и в существующих сетях наземных сотовых систем, что значительно расширяет область использования.

Автомобильные комплекты (GCK-1410, GCK-1410-А для мобильного терминала Qualcomm GSP-1600; SAT-551 для мобильного терминала Telit SAT-550) предназначены для удобства пользования связью при движении на транспортном средстве. Комплект использует портативный терминал и состоит из внешней антенны на магнитной подушке, внутрикабинного держателя для терминала, микрофона и громкоговорителя с системой шумои эхоподавления. Автомобильный комплект может быть установлен на большинстве видов легкового и грузового транспорта. Обеспечивает режим «руки свободны» и подзарядку портативного терминала от бортовой сети автомобиля.

Для стационарной и подвижной связи в системе Globalstar применяются стационарные терминалы Ericsson FAU200 или Qualcomm GSP2800. К стационару может быть подключен стандартный аналоговый телефонный аппарат, офисная АТС (PABX) малой емкости, таксофон, компьютер. Установка и включение стационарного терминала не требует специальных знаний и производится по принципу «ВКЛЮЧИЛ В РОЗЕТКУ И ПОЛЬЗУЙСЯ».

Терминалы, специально изготовленные для установки на речных и морских судах, GSP 2800M Qualcomm и SAT 550X (XF) компании ICS Electronics имеют сертификаты Речного Регистра РФ и проходят сертификацию Морского Регистра. К этим АТ подключается различное абонентское оборудование (телефон, таксофон, мини-АТС, компьютер).

В интересах речного транспорта систему связи «Глобалстар» можно успешно применять в различных областях, например:

— обеспечение надежной двухсторонней голосовой телефонной связи между судами и судном и/или береговыми объектами, включая установку таксофонов для пассажиров и экипажа;

— обеспечение передачи данных и изображений, сообщений по e-mail, выхода в Интернет, обслуживание судовых пунктов продаж по электронным карточкам через каналы Глобалстар;

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

— контроль состояния судов и работы систем судна, управление исполнительными устройствами судна по командам диспетчера, доставка телеметрической информации с судов в диспетчерские пункты (например, о наличии аварийной ситуации на судне);

— передача в реальном времени лоцманско-навигационной информации на корабль и обновление электронных карт реки с серверов поставщиков карт;

— скрытый видеои аудиоконтроль с стороны диспетчеров за салоном и кабиной экипажа судна.

Спутниковые модемы GSP1620×1×2 для асинхронной и пакетной передачи данных 9600 и 16 000 бит/сек обеспечивают двухсторонний канал связи с наземным, морским или авиационным коммуникационным оборудованием. Модемы могут использоваться в системах мониторинга, системах телеметрии, приложениях АСУТП, АСКУЭ и т. п.

Инмарсат-С Одна из основных спутниковых систем, обеспечивающая мониторинг местоположения судов — это система спутниковой связи Inmarsat-C. Inmarsat-C — система передачи сообщений, которая дает возможность пользователю посылать и принимать данные между мобильными станциями связи, работающими в системе Inmarsat-C, а также между станциями и береговыми стационарными телекоммуникационными сетями (например, Интернет).

Связь с мобильными станциями в системе Inmarsat-C осуществляется через наземные спутниковые станции-посредники. Система Inmarsat-С использует два типа береговых спутниковых станций. Один тип — станции NCS (Network Coordination Station — Станция управления сетью), другой — станции LES (Land Earth Station — Береговая Земная Станция). NCS осуществляет регистрацию мобильных станций в системе Inmarsat-С, содержит конфигурацию сети (имеющиеся БЗС, их характеристики, параметры каналов и т. д.) и служит для передачи команд на мобильную станцию непосредственно через спутник. Данный тип станций «невидим» для центра мониторинга и исполняет роль посредника для БЗС. Спутники системы Inmarsat располагаются на геостационарной орбите, на высоте 35 786 км. Каждый спутник покрывает приблизительно третью часть Земли и стратегически расположен над одним из трех океанов. Спутники покрывают следующие районы: восточный район Атлантического океана, западный район Атлантического океана, район. Индийского океана и район Тихого океана. Система Inmarsat-C имеет четыре NCS, одну для каждого так называемого «океанского района». Каждая NCS управляет своим «океанским районом».

Рис. 1.1 Схема сбора данных спутникового позиционирования на базе системы Инмарсат Мобильные станция Inmarsat-C имеет встроенный приемник Глобальной спутниковой навигационной системы (GPS), что позволяет определить местоположение судна с высокой точностью.

Для управления мобильной станцией, в нее из через БЗС загружается идентификатор сети данных (DNID) и номер внутри сети данных (Member Number). Данные два параметра однозначно определяет станцию для мониторинга. Существует два варианта получения координат местонахождения судна (позиции) — либо по индивидуальному опросу (или групповому, если речь идет о группе судов), либо через расписание.

Индивидуальный опрос — это одноразовый запрос позиции у мобильной станции. Схема опроса следующая — диспетчер мониторинга с помощью программы управления в центре, инициирует функцию опроса. Программа системы мониторинга, отвечающая за пересылку данных, формирует опросный пакет и направляет его на БЗС. БЗС принимает опросный пакет и отправляет его далее на NCS, которая уже непосредственно через спутник Inmarsat-C передает закодированный опрос на мобильную станцию. Мобильная станция, приняв опросный вызов, отсылает обратно позицию, вычисленную на основе данных, полученных от навигационных спутников GPS. и далее позиция попадает в базу данных.

Второй вариант более предпочтителен, так как обладает большей гибкостью и меньшей стоимостью по сравнению с индивидуальным опросом, в случае, если речь идет о непрерывном мониторинге. Суть его следующая — на мобильную станцию загружается расписание подачи позиций. Способ загрузки аналогичен способу опроса позиции. Меняется лишь формат пакета. В пакете указывается время начала подачи позиции и период, с которым станция будет отсылать позиции в центр. То есть, в данном случае, нет необходимости постоянно отсылать на мобильную станцию опросный вызов, что значительно экономит денежные средства. Загрузив расписание, необходимо послать команду инициализации (старта) расписания для того, чтобы передвижная станция начала отсылать позиции в центр мониторинга.

Аргос Спутниковая система Аргос состоит из сегмента трансмиттеров (радиомаяков) Аргос, которые устанавливаются на суда, сегмента низкоорбитальных спутников, сегмента приемных спутниковых станций и сегмента центров мониторинга. Каждый трансмиттер имеет свой уникальный идентификационный номер. Центр мониторинга получает заявки на включение судов в систему мониторинга, содержащие сведения о судне и идентификационном номере трансмиттера Аргос. Эти сведения заносятся в базу данных и используются в дальнейшем для идентификации судна, на котором находится трансмиттер. Трансмиттеры периодически излучают сигналы, которые принимаются низкоорбитальными спутниками, имеющими на своем борту оборудование системы Аргос (6 спутников серии NOAA и один спутник ADEOS-2). Эти сигналы передаются на приемные спутниковые станции, откуда по наземным телекоммуникационным каналам поступают в центры мониторинга.

Вычисление координат трансмиттеров производится в глобальных или региональных центрах обработки Аргос. Координаты рассчитываются на основе доплеровского смещения несущей частоты сигнала, излучаемого трансмиттером. Доплеровское смещение возникает за счет относительного движения приемника (спутника) и передатчика (трансмиттера) сигнала.

Доставка координат трансмиттеров из центров обработки информации Аргос в центр мониторинга осуществляется по телекоммуникационным каналам сети Интернет или Х.25. В центре мониторинга на основе имеющихся регистрационных сведений поступающие координаты связываются с тем или иным судном.

Рис. 1.2 Схема сбора данных спутникового позиционирования на базе системы Аргос

В современных трансмиттерах Аргос дополнительно устанавливается GPS — приемник. Это позволяет принимать и запоминать координаты местонахождения трансмиттера с высокой точностью, накапливать их, а затем, в момент связи с низкоорбитальным спутником Аргос, передавать в центр всю последовательность записанных в память координат.

1.2 Использование систем спутниковой связи в судовождении

1 февраля 1999 г. вступили в силу поправки 1988 года к Международной конвенции по охране человеческой жизни на море СОЛАС-74, регламентирующие внедрение Глобальной морской системы связи при бедствии и для обеспечения безопасности (ГМССБ).

С указанной даты все суда, подпадающие под требования СОЛАС-74/88, должны быть оснащены соответствующим комплектом оборудования в зависимости от районов плавания.

Для обеспечения безопасности мореплавания и возможности использования ГМССБ всеми без исключения судами, в т. ч. не подпадающими под требования Конвенции СОЛАС-74/88 (неконвенционными), Комитет по безопасности на море (КБМ) Международной морской организации (ИМО) выработал рекомендации по участию в ГМССБ неконвенционных судов и их оснащению соответствующим оборудованием.

Одним из основных видов судового оборудования ГМССБ, определенных Конвенцией СОЛАС, являются судовые земные станции (СЗС) спутниковой системы связи (ССС) Инмарсат стандартов А, В, С, Флит-77, Мини-С.

СЗС Инмарсат могут обеспечивать выполнение, практически, всех функциональных требований ГМССБ, а именно:

Передачу оповещений о бедствии в направлении «судно-берег»;

Прием оповещений о бедствии в направлении «берег-судно»;

Передачу и прием оповещений о бедствии в направлении «судно-судно»;

Передачу и прием сообщений для координации поиска и спасания;

Передача и прием сообщений на месте бедствия;

Передачу и прием информации по безопасности мореплавания;

Передачу и прием радиосообщений общего назначения.

Ниже дана схема оперативных инструкций ГМССБ для капитанов морских судов, терпящих бедствие (Руководство по международному авиационному и морскому поиску и спасению).

. АРБ — указатель местоположения должен всплывать и приводиться в действие автоматически, если он не может быть взят в спасательную шлюпку или плот.

. При необходимости суда должны использовать любые соответствующие средства для оповещения других судов.

. Ничто из вышеуказанного не может расцениваться как ограничение использования любых и всех возможных средств оповещения о бедствии Таблица

Радиосвязь при бедствии

Цифровой избирательный вызов (ЦИВ)

Радиотелефон

Радиотелекс

УКВ пв КВ4 КВ6 КВ8 КВ12 KB 16

канал 70 2187,5 4207,5 кГц 63 12 кГц 8414,5 кГц 12 577 кГц 16 804,5 кГц

канал 16 2 182 кГц 4125 кГц 6215 кГц 8291 кГц 12 290 кГц 16 420 кГц

2175,4 кГц 4177,5 кГц 6268 кГц 8376,5 кГц 12 520 кГц 16 695 кГц

Использование системы связи Инмарсат в ГМССБ Оповещение о бедствии в направлении «судно-берег»

ССС Инмарсат обеспечивает приоритетное оповещение о бедствии. Оповещение с приоритетом «Бедствие» автоматически передается на спасательно-координационный центр (СКЦ). Каждая береговая земная станция (БЗС) системы обеспечена надежной связью с соответствующим закрепленным СКЦ. Такие СКЦ называются «ассоциированными».

БЗС и СКЦ могут быть соединены между собой как специально выделенными линиями связи, так и коммутируемыми линиями связи сети общего пользования. Таким образом, любое сообщение о бедствии, принятое БЗС, будет обработано и передано на ассоциированный СКЦ.

Ассоциированный СКЦ, при необходимости, может передать соответствующую информацию национальным властям поиска и спасания того государства, чье судно терпит бедствие, а также другим СКЦ.

Суда, оборудованные СЗС, могут выйти на связь с нужным СКЦ, используя вызов с обычным приоритетом (без приоритета «Бедствие»). В этом случае судовому оператору необходимо набрать полный международный номер телекса или телефона требуемого СКЦ.

Одним из главных достоинств системы Инмарсат является то, что нет необходимости в специально выделенных каналах для связи, относящейся к бедствию и безопасности. Сообщения о бедствии, переданные через Инмарсат, передаются по каналам связи общего назначения на приоритетной основе, что обеспечивает их быструю доставку адресатам.

Оповещение о бедствии в подсистеме связи Инмарсат-А Каждая СЗС подсистемы Инмарсат-А может передать в адрес БЗС запросное сообщение с приоритетом «Бедствие», при этом береговая земная станция автоматически его «узнает» и немедленно предоставит спутниковый канал связи. Если все каналы связи в это время окажутся занятыми, один из них будет освобожден и предоставлен в распоряжение СЗС, которая передала запрос с приоритетом «Бедствие». Обработка приоритетных вызовов на БЗС полностью автоматизирована и не требует вмешательства обслуживающего персонала. Однако, персонал уведомляется о приеме и обработке сообщения с приоритетом «Бедствие» средствами подачи визуального и звукового сигнала тревоги.

Чтобы гарантировать безошибочную обработку запросов с приоритетом «Бедствие», координирующая станция сети (КСС) каждого океанского района автоматически контролирует их прохождение через все БЗС. При обнаружении какого-либо сбоя в обработке сигнала бедствия, КСС предпримет соответствующие меры для установления конечной двусторонней связи. КСС также регистрирует идентификационный номер БЗС, который содержится в запросном сообщении о бедствии и сама автоматически «перехватывает» этот вызов, если номер БЗС в нем указан неправильно, что может случиться, например, по ошибке судового оператора.

Запросное сообщение с приоритетом «Бедствие» передается от СЗС через спутник на БЗС. Большинство БЗС, принявших такое сообщение, автоматически адресуют его непосредственно в СКЦ. Таким образом, судовому оператору нет необходимости набирать телексный или телефонный номер СКЦ.

Если сигнал бедствия, принятый БЗС, не получил прямого соединения с СКЦ, судовой оператор не знает номера телекса или телефона СКЦ, или произошла задержка с набором этого номера, оператор КСС данного океанского района окажет помощь в установлении связи. Таким образом, ни один вызов с приоритетом «Бедствие» не останется без ответа.

Оповещение о бедствии в подсистеме связи Инмарсат-В СЗС подсистемы связи Инмарсат-В могут передавать сигналы бедствия, как в телефонном, так и в телексном режимах. В обоих режимах процедура вызова, закрепления и освобождения канала одинакова.

СЗС хранит в памяти номер БЗС, который был предварительно выбран судовым оператором для связи, и используется при вызовах бедствия. Информация о статусе береговых станций данного океанского района автоматически обновляется при приеме от КСС «доски объявлений» (NCS Bulletin Board).

Если при передаче с судна вызова бедствия в телексном или телефонном режиме КСС зафиксирует, что в вызове содержится недействительный номер БЗС, или БЗС не сообщила в адрес СЗС о закреплении рабочего канала, КСС заменит этот номер на номер резервной БЗС и передаст в ее адрес данный вызов. Приняв вызов, резервная БЗС обработает его и установит соединение.

Для СЗС подсистемы связи ИНМАРСАТ-В класса I (с телексным аппаратом) обязательно наличие генератора сообщения о бедствии (ГСБ). Стандартизированное сообщение о бедствии, содержащее идентификационный номер СЗС, координаты, курс, скорость судна хранится в памяти СЗС (данные о координатах, курсе, скорости поступают от навигационного приемника, если он подключен к СЗС). Как только устанавливается телексный дуплексный канал с приоритетом 3 «Бедствие» (этот режим может быть установлен путем нажатия и удержания в течение, примерно 6 сек., кнопки «Бедствие»), СЗС примет команду GA+ (БЗС готова к приему), судовой оператор может начать передачу сообщения о бедствии или передать готовое сообщение, хранимое в ГСБ.

Оповещение о бедствии в подсистеме связи Инмарсат-С В подсистеме связи Инмарсат-С для оповещения о бедствии используется канал сигнализации. При нажатии кнопки «Бедствие» на СЗС, короткое запрограммированное сообщение передается на БЗС или КСС. Приоритет «Бедствие» гарантирует специальную обработку сообщения и его немедленную доставку в СКЦ.

Информация о характере бедствия, которая является составной частью оповещения о бедствии, может быть введена вручную с клавиатуры терминала. Координаты, скорость, курс судна обновляются автоматически от встроенного в СЗС или сопряженного с СЗС спутникового навигационного приемника GPS. В некоторых типах СЗС Инмарсат-С эти данные могут быть обновлены вручную с клавиатуры терминала.

Оповещение о бедствии в подсистеме связи Флит-77

В случае бедствия СЗС подсистемы Инмарсат Fleet-77 обеспечивают предоставление телефонного канала с приоритетом РЗ «Бедствие».

Для предоставления телефонного канала с приоритетом РЗ оператору необходимо нажать и удерживать кнопку «Distress» более 5 секунд. При этом, если запросный сигнал подается с судна, ему предоставляется прямой телефонный канал с СКЦ.

После установления связи с СКЦ оператор может передавать голосом сообщение о бедствии в соответствии с установленной процедурой.

СЗС Инмарсат Fleet-77, как и СЗС других стандартов, могут быть установлены в СКЦ.

При использовании приоритета РЗ СКЦ Инмарсат Fleet-77 позволяют прерывать трафик с более низкими приоритетами (РО-Р2). Эта функция наиболее эффективно может быть использована в случае, когда капитану-координатору СКЦ, например, необходимо подключить к поисково-спасательной операции находящиеся поблизости от места бедствия судно, СЗС которого занята другим обменом.

Если оператор вызываемой СЗС Инмарсат Fleet-77 по каким-либо причина не ответил на приоритетный вызов (РЗ), то на вызываемой СЗС включается индикатор приоритетного вызова, указывающий на то, что такой вызов был принят, но ответа на него не последовало.

Отмена ложных сигналов бедствия, переданных через Инмарсат Если сигнал тревоги в случаях бедствия передан неумышленно, необходимо принять меры для отмены этого сигнала, для чего следует известить соответствующий спасательный координационный центр (СКЦ) о том, что сигнал тревоги аннулируется, путем передачи приоритетного сообщения бедствия через ту же береговую земную станцию (БЗС), через которую был передан ложный сигнал тревоги в случаях бедствия. Указать название судна, позывной сигнал и идентификационный номер СЗС Инмарсат вместе с аннулированным сообщением о тревоге.

В системе ИНМАРСАТ функционирует система контроля за сигналами бедствия (Distress Alert Control System), позволяющая идентифицировать мобильные станции, передавшие сигналы бедствия.

Оповещение о бедствии в направлении «берег-судно»

В ССС Инмарсат оповещение о бедствии в направлении берег-судно может быть ретранслировано по следующим направлениям:

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

группе судов (некоторые БЗС обеспечивают этот режим с помощью операторов). Такая услуга может быть полезна для оповещения определенных групп судов (например, спасательных);

в район NAVAREA;

— в определенный географический район, ограниченный окружностью или прямоугольником.

В системе связи ИНМАРСАТ-С ретрансляция оповещений о бедствии в направлении «берег-судно» осуществляется через Международную службу сети безопасности (SafetyNET). Прием таких оповещений возможен только при наличии на судах приемника Расширенного Группового Вызова (РГВ), который, как правило, является составной частью СЗС ИНМАРСАТ-С. См. Рис. 3.3

Связь для координации поиска и спасания Для контроля и координации поисково-спасательных работ СКЦ должен поддерживать связь с судном, терпящим бедствие, и с судами, участвующими в поиске и спасании. Эти возможности ограничиваются средствами связи, которыми оснащены суда. Суда, оборудованные СЗС Инмарсат и использующие процедуру вызова с приоритетом «Бедствие» (или обычным приоритетом с указанием прямого номера телекса или телефона СКЦ), имеют определенные преимущества в установлении быстрой и надежной связи с СКЦ через БЗС. Удобство заключается также в том, что многие СКЦ оснащены СЗС Инмарсат, и судно может связаться непосредственно с СКЦ, используя процедуру связи «судно-судно».

Для передачи информации в направлении СКЦ-судно могут быть использованы как индивидуальные вызовы судов, так и все типы вызовов, упомянутых выше.

Связь на месте проведения поисково-спасательных работ Связь на месте проведения поисково-спасательных работ между судами и координатором поисково-спасательной операции или координатором на месте проведения операции обычно осуществляется на УКВ или ПВ на специально выделенных частотах. Однако, если суда оборудованы СЗС Инмарсат, то спутниковая связь, при необходимости, может использоваться как дополнение к УКВ и ПВ радиосвязи.

Передача сообщений с категориями «срочность» и «безопасность»

Для передачи сообщений таких категорий используются специальные двухцифровые коды доступа. Использование кодов позволяет передать сообщение в определенный адрес или получить прямое соединение с соответствующей организацией.

Распространение информации по безопасности мореплавания (ИБМ) Распространение информации по безопасности мореплавания в системе связи Инмарсат-С осуществляется через международную службу SafetyNET.

Прием на судне сообщений, передаваемых через SafetyNET, возможен при наличии приемника РГВ.

1.3 Задачи решаемые системой связи Inmarsat

Глобальная система мониторинга подвижных объектов на базе подсистемы связи Инмарсат-С Подсистема связи Инмарсат-С обеспечивает передачу информационных и служебных сообщений в пакетной форме на основе накопления, хранения и последующей передачи информации. Приемо-передающие станции Инмарсат-С малогабаритны и могут быть установлены даже на малотоннажных судах, автомобилях и поездах. Станции работают в автоматическом режиме, что позволяет эффективно использовать их в системе мониторинга и диспетчерского управления судами речного и морского флота, а также сухопутными автотранспортными компаниями.

Краткая информация о подсистеме связи Инмарсат-С Установка на любом судне станции Инмарсат-С отвечает всем требованиям системы ГМССБ для оповещения о бедствии, связи при бедствии и обеспечения безопасности мореплавания. Эта подсистема была специально разработана для двустороннего обмена служебными сообщениями в пакетной форме на основе накопления, хранения и последующей передачи информации через компактные и недорогие терминалы, которые могут быть установлены на судах, автомобилях, на удаленных (необслуживаемых) объектах, а также переноситься в виде портативного чемоданчика.

Подсистема связи Инмарсат-С обладает рядом преимуществ перед другими системами связи. Подвижные станции Инмарсат-С малогабаритны и легко устанавливаются даже на малотоннажных судах и в автомобилях, они очень просты в эксплуатации, весьма надежны, кроме этого, в подсистеме довольно низкая стоимость оплаты коротких сообщений, без каких либо модификаций терминала могут быть использованы для передачи и приема сообщений по E-mail. Наиболее эффективнее использование электронной почты в системе Инмарсат-С будет в том случае, если сообщение не будет превышать одной страницы формата А4.

Обладая такими уникальными возможностями, подсистема Инмарсат-С широко используется в различных системах мониторинга как подвижных, так и стационарных объектов (трубопроводы, насосные станции) и окружающей среды (уровень воды в реках, озерах, плотины и т. п.).

Опрос, сбор данных и передача сводок Режим опроса и сбора данных в подсистеме Инмарсат-С используется для запуска автоматической передачи сообщений или сводок данных с подвижного терминала или группы терминалов, принадлежащих, например, одной компании. Подвижная земная станция (ПЗС) Инмарсат-С получает инструкции о времени и порядке передачи этой информации. Опросные сообщения могут содержать текстовую или цифровую информацию и используются для передачи небольшого количества информации в адрес ПЗС.

Сводки данных представляют из себя короткие пакеты информации, передаваемые ПЗС в сигнальных пакетах. Поскольку отсутствует процесс установления связи, а сами сигнальные пакеты очень короткие, то данная служба является относительно дешевой.

Типовое применение опроса, сбора данных и передачи сводок включает:

— Сводки о местонахождении;

— Дистанционный надзор и контроль, например, системы диспетчерского контроля и сбора данных ДКСД.

В соответствии с Приказом Департамента морского транспорта № 31 от 27 апреля 1994 года в целях обеспечения безопасности мореплавания судовладелец обязан постоянно осуществлять контроль за движением своего флота. Для контроля суда, находящиеся в море, должны два раза в сутки передавать в адрес судовладельца служебную радиограмму о своем местонахождении («контрольное сообщение»).

Системы ДКСД дают возможность контролировать и управлять работой различных механизмов и оборудования из центрального поста управления, который может быть расположен на расстоянии сотен километров от самого объекта. Подсистема связи Инмарсат-С хорошо подходит для этих целей, так как сами терминалы компактны по размерам, надежны в работе, просты в обслуживании и имеют большие возможности в обработке данных.

Режим автоматической передачи данных является надежным и более дешевым способом передачи коротких сообщений в диспетчерский пункт регулярно в заранее установленные интервалы времени.

Использование Инмарсат-С для эффективного управления работой судов. В настоящее время широко применяются программы для электронного обмена данными (ЭОД), т. е. при обмене данными в соответствии с принятыми стандартами от одной компьютерной системы к другой. Применение новейших технологий в области спутниковой навигации и связи позволяет встраивать приемник спутниковой навигационной системы Navstar/GPS в станцию Инмарсат-С, подключать к станции различные сенсорные датчики и передавать в автоматическом режиме координаты местоположения подвижного объекта с точностью не хуже 100 метров, а также информацию о состоянии груза, транспортного средства и пр.

На базе системы связи Инмарсат-С и электронной карты были разработаны Системы диспетчерского управления, предназначенные для слежения за подвижными объектами с отображением их местоположения на электронной карте на компьютере диспетчера.

Информация о движении транспортного средства, состоянии груза находится в памяти компьютера и может быть при необходимости воспроизведена. Диспетчер может получать данные по объектам в автоматическом режиме через любой необходимый интервал времени, будь то часы или минуты. Наряду с этим диспетчер имеет возможность связаться с любым объектом и запросить его местоположение, направить срочную информацию об изменившейся обстановке на дорогах и в пунктах пересечения границ. В случае необходимости он имеет возможность переадресовать груз в новый пункт назначения, или направить транспортное средство для оказания срочной помощи другому транспортному средству, находящемуся в этом районе. Как уже отмечалось, информация с подвижного объекта к абоненту и от абонента поступает через спутники системы Инмарсат, сухопутные земные станции и по сетям передачи данных (Телекс, PSTN, X.25, Х-400 и др.). Для районов с хорошо развитой инфраструктурой связи это не вызывает никаких проблем. Для районов же с плохо развитой инфраструктурой связи в различных регионах России Морсвязьспутник разработал новый отечественный программный пакет для осуществления связи через станции Инмарсат-С, которые устанавливаются в диспетчерском центре. Это позволяет полностью исключить использование наземных линий связи. Пакет позволяет диспетчеру передавать сообщения на подвижные объекты и хранить их в базе данных.

Система мониторинга судов «Виктория»

В соответствии с приказом Министра транспорта РФ «О создании глобальной автоматизированной системы мониторинга и контроля за местоположением российских морских и смешанного (река-море) плавания судов» от 17.07.2000 года при головной роли Морсвязьспутника была создана Система Мониторинга Судов (CMC) «Виктория».

Основными целями создания Системы являются:

— совершенствование организации обеспечения безопасности мореплавания;

— повышение эффективности проведения поисково-спасательных операций на море;

— совершенствование организации информационного обеспечения в целях предотвращения и ликвидации последствий чрезвычайных ситуаций на море;

— совершенствование организации оперативного управления и контроля за безопасностью судоходства;

— информационное обеспечение при проведении анализа нештатных и аварийных ситуаций с судами;

— предоставление информации о местонахождении судов судовладельцам.

В настоящее время созданная система мониторинга обеспечивает наблюдение за перемещением судов в реальном масштабе времени, рассылку циркуляров и оперативный обмен с ними сообщениями по электронной почте через подсистему спутниковой связи Инмарсат-С. Она также предоставляет возможность проводить анализ ранее накопленных данных. CMC «Виктория» доступна пользователям через Интернет. Картографический интерфейс системы позволяет использовать для работы с ней стандартный браузер (Microsoft Internet Explorer или Netscape Communicator). Три высокопроизводительных сервера системы подключены к линии Интернет с высокой пропускной способностью, что позволяет одновременно обслуживать несколько сотен пользователей.

Таким образом, CMC «Виктория» воплощает в себе три передовые технологии:

— спутниковое позиционирование (GPS);

— спутниковую связь (Inmarsat-C);

— интернет.

Необходимое оборудование и программы В состав необходимого оборудования, в первую очередь, входит любой компьютер, подключенный к Интернету по выделенной линии или посредством коммутируемого (dial-up) соединения, с установленным на нем браузером Internet Explorer или Netscape Communicator версии не ниже 4.0.

Если на компьютере установлен устаревший браузер версии 3.0, то система предложит его обновить посредством загрузки через Интернет новой бесплатной версии браузера. Работа с картографическим интерфейсом нуждается в загрузке при первом входе в систему вспомогательного программного инструментария Autodesk Mapguide Viewer. Эта загрузка производится новым пользователем лишь один раз, на что требуется несколько минут.

— Если Вы используете браузер Netscape Communicator 4.0+, загрузите Viewer (plug-in). Запустите mapguide plugin. exe, и в директории, созданной в результате распаковки, запустите файл setup. exe

— Если Вы используете Internet Explorer 4.0+, — загрузите Active-X компонент. Запустите activex. exe, и в директории, созданной в результате распаковки, запустите файл setup. exe

Интерфейс

1 Стандартный графический интерфейс («Виктория — Стандарт»)

Этот интерфейс реализует все функции, заложенные в систему, с использованием карт. Он требует постоянного или коммутируемого подсоединения к Интернету с пропускной способностью не ниже 19 200 бит/сек. При более низкой пропускной способности и больших помехах на линии связи время загрузки векторной карты объемом около 100−150 Кбит может вызывать дискомфорт от продолжительного ожидания обновления экрана. Поэтому при плохих линиях Интернет предлагается использовать текстовый интерфейс.

2 Текстовый интерфейс (облегченная текстовая версия — «Виктория — Текст»)

Этот интерфейс сокращает до минимума объем передаваемой информации за счет отказа от картографического представления данных. Все данные представлены в виде таблиц. Это позволяет работать с системой на линиях Интернет плохого качества или с большими задержками.

3 Расширенный графический интерфейс («Виктория — Техник»)

Этот интерфейс требует знания технического устройства мобильных станций. Он расширяет возможности пользователя по программированию мобильных станций и оптимизации полинга, содержит богатый набор команд (полинг в круге, прямоугольнике и т. д.), поддерживает сбор телеметрической информации с судна.

2. Проектирование

2.1 Выбор среды разработки

Реализация дипломной работы проводится в системе программирования Delphi 7.0, располагающей широкими возможностями по созданию приложений баз данных. Уже с более ранних версии система Delphi снабжена необходимым набором драйверов для доступа к самым известным форматам баз данных, удобными и развитыми средствами для доступа к информации, расположенной как на локальном диске, так и на удаленном сервере. В поставку продукта входит большое количество коллекций визуальных компонент для построения, отображаемых на экране окон, что необходимо для создания удобного интерфейса между пользователем и исполняемым кодом.

Пакет Delphi — продолжение линии компиляторов языка Pascal корпорации Borland. Pascal как язык очень прост, а строгий контроль типов данных способствует раннему обнаружению ошибок и позволяет быстро создавать надежные и эффективные программы.

Компиляторы языка Pascal компании Borland никогда не заставляли пользователя подолгу ждать результатов компиляции. Производители утверждают, что на сегодня данный компилятор — самый быстрый в мире. Компилятор, встроенный в Delphi позволяет обрабатывать до 390 тыс. строк исходного текста в минуту. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL.

В смысле проектирования Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10−20 раз быстрее, чем тоже самое, сделанное при помощи интерпретатора.

Следует отметить также, что благодаря опции оптимизации сегментов удается существенно сократить размер выполняемого файла. Можно запустить компилятор в режиме проверки синтаксиса. При этом наиболее длительная операция компоновки и изготовления исполняемого файла выполняться не будет.

Поскольку использование баз данных является одним из краеугольных камней, на которых построено существование различных организаций, пристальное внимание разработчиков приложений баз данных вызывают инструменты, при помощи которых такие приложения можно было бы создавать. Выдвигаемые к ним требования в общем, виде можно сформулировать как: «быстрота, простота, эффективность, надежность» .

Вероятно, то обстоятельство, что Delphi позиционируется как средство создания приложений, взаимодействующих с базами данных, и ориентировано преимущественно на рынок инструментальных средств клиент/сервер, где до настоящего момента доминируют интерпретируемые языки, позволило его авторам не задумываться над созданием оптимизирующего компилятора, способного использовать все достоинства архитектур современных процессоров.

Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре — процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database Application Programming Interface (IDAPI). В принципе, сейчас не различают эти два названия (BDE и IDAPI) и считают их синонимами. BDE позволяет осуществлять доступ к данным как с использованием традиционного record-ориентированного (навигационного) подхода, так и с использованием set-ориентированного подхода, используемого в SQL-серверах баз данных. Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC) фирмы Microsoft. Но, как показывает практика, производительность систем с использованием BDE гораздо выше, чем оных при использовании ODBC. ODBC драйвера работают через специальный «ODBC socket», который позволяет встраивать их в BDE.

Все инструментальные средства баз данных Borland — Paradox, dBase, Database Desktop — используют BDE. Все особенности, имеющиеся в Paradox или dBase, «наследуются» BDE, и поэтому этими же особенностями обладает и Delphi.

Библиотека объектов содержит набор визуальных компонент, значительно упрощающих разработку приложений для СУБД с архитектурой клиент-сервер. Объекты инкапсулируют в себя нижний уровень — Borland Database Engine.

Предусмотрены специальные наборы компонент, отвечающих за доступ к данным, и компонент, отображающих данные. Компоненты доступа к данным позволяют осуществлять соединения с БД, производить выборку, копирование данных, и т. п.

Компоненты визуализации данных позволяют отображать данные виде таблиц, полей, списков. Отображаемые данные могут быть текстового, графического или произвольного формата.

Таблицы сохраняются в базе данных. Некоторые СУБД сохраняют базу данных в виде нескольких отдельных файлов, представляющих собой таблицы (в основном, все локальные СУБД), в то время как другие состоят из одного файла, который содержит в себе все таблицы и индексы (InterBase). Например, таблицы dBase и Paradox всегда сохраняются в отдельных файлах на диске. Директорий, содержащий dBase .DBF файлы или Paradox .DB файлы, рассматривается как база данных. Другими словами, любой директорий, содержащий файлы в формате Paradox или dBase, рассматривается Delphi как единая база данных. Для переключения на другую базу данных нужно просто переключиться на другой директорий. InterBase сохраняет все таблицы в одном файле, имеющем расширение .GDB, поэтому этот файл и есть база данных InterBase.

Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения в офлайновом режиме. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины (к примеру, небольшую систему учета медицинских карточек для одного компьютера), может использовать для хранения информации файлы формата .dbf (как в dBase или Clipper) или .db (Paradox). Если же он будет использовать локальный InterBase for Windows 4.0 (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер.

Масштабируемость на практике — одно и то же приложение можно использовать как для локального, так и для более серьезного клиент-серверного вариантов.

В начале работы над дипломным проектом возникла необходимость изучить ряд теоретических вопросов, связанных с выбором средств программной и аппаратной реализации поставленной задачи. К ним относится изучение принципов построения автоматизированных рабочих мест, локальных сетей и технологии клиент-сервер. Также были углублены знания относительно применения языка структурированных запросов SQL в среде программирования Delphi.

2.2 Построение концептуальной модели

В качестве средств моделирования данных используем диаграммы «сущность-связь». С их помощью определяются важные для предметной области объекты (сущности), их свойства (атрибуты) и отношения друг с другом (связи). Для построения концептуальной модели применяется один из возможных вариантов представления ER-диаграмм, который носит название модель Баркера.

Согласно этой модели, сущность (Entity) — это реальный либо воображаемый объект, имеющий существенное значение для рассматриваемой предметной области, информация о котором подлежит хранению. Каждая сущность должна обладать уникальным идентификатором, таким образом, каждый экземпляр сущности должен однозначно идентифицироваться и отличаться от всех других экземпляров данного типа сущности.

Связь (Relationship) — поименованная ассоциация между двумя сущностями, значимая для рассматриваемой предметной области.

Создание концептуальной модели предшествует формированию логической модели данных. При анализе функциональной структуры, в системе можно выделить следующие сущности:

Рис. Концептуальная модель

2.3 Построение логической структуры баз данных

Рис. Логическая модель

2.4 Выбор языка манипулирования данными

Важной составной частью СУБД является язык манипулирования данными, который используется при работе различных приложений с БД. Как правило, язык манипулирования данными встраивается в язык программирования. Кроме того, при выборе СУБД, реализующей конкретную БД, необходимо оценить и техническую сторону дела, которая непосредственно связана с производительностью системы. В целом необходимо оценить семь групп параметров для выбора СУБД:

? характеристики ПК: тип, модель, фирма производитель;

? управление файлами и поиск: тип связи, модификация нескольких файлов, двунаправленное соединение таблиц, язык манипулирования данными, тип поиска;

? средства поддержки приложений: каталог данных, генератор приложений, процедурный язык, подпрограммы, макросы, отладчик, система поддержки исполнения, шифровка программ и данных, разграничения доступа, графика, текстовый редактор, статистика;

? ввод и поддержка целостности: управление с помощью команд, управление с помощью меню, проверка целостности по таблице, проверка уникальности ключа, проверка по дате, независимость данных;

? отчеты: отчеты по нескольким файлам, сохранение форматов отчетов, выдача отчета на экран, выдача отчета на устройство внешней памяти, вычисляемые поля, группы, переопределение формата даты, заголовки отчетов, генератор отчетов, итоговые поля, максимальная ширина отчета;

? операционная среда: тип операционной системы, объем требуемой оперативной памяти, необходимость использования постоянной памяти, объем требуемой постоянной памяти, язык подсистемы;

? дополнительные сведения: наличие сетевого варианта, стоимость, примечание, источники.

СУБД Access является системой управления базами данных реляционного типа. Данные хранятся в такой базе в виде таблиц, строки (записи) которых состоят из наборов полей определенных типов. С каждой таблицей могут быть связаны индексы (ключи), задающие нужные пользователю порядки на множестве строк. Таблицы могут иметь однотипные поля (столбцы), и это позволяет устанавливать между ними связи, выполнять операции реляционной алгебры. Типичными операциями над базами данных являются определение, создание и удаление таблиц, модификация определений (структур, схем) существующих таблиц, поиск данных в таблицах по определенным критериям (выполнение запросов), создание отчетов о содержимом базы данных.

Для работы с СУБД Access 6.0 требуются:

? IBM PC или совместимый компьютер с процессором 386 или выше;

? Microsoft Windows 95 или выше;

? Не менее 8 МВ оперативной памяти (рекомендуется 16 МВ);

? 20 МВ свободной памяти на жестком диске;

? манипулятор типа мышь.

СУБД позволяет задавать типы данных и способы их хранения. Можно также задать критерии (условия), которые СУБД будет в дальнейшем использовать для обеспечения правильности ввода данных. В самом простом случае условие на значение должно гарантировать, что не будет введен случайно в числовое поле буквенный символ. Другие условия могут определять область или диапазоны допустимых значений вводимых данных.

Microsoft Access предоставляет максимальную свободу в задании типа данных (текст, числовые данные, даты, время, денежные значения, рисунки, звук, электронные таблицы). Можно задавать также форматы хранения представления этих данных при выводе на экран или печать. Для уверенности, что в базе хранятся только корректные значения, можно задать условия на значения различной степени сложности.

Так как Microsoft Access является современным приложением Windows, можно использовать в работе все возможности DDE (динамический обмен данными) и OLE (связь и внедрение объектов). DDE позволяет осуществлять обмен данными между Access и любым другим поддерживающим DDE приложением Windows. В Microsoft Access можно при помощи макросов или Access Basic осуществлять динамический обмен данными с другими приложениями.

OLE является более изощренным средством Windows, которое позволяет установить связь с объектами другого приложения или внедрить какие-либо объекты в базу данных Access. Такими объектами могут быть картинки, диаграммы, электронные таблицы или документы из других поддерживающих OLE приложений Windows.

В Microsoft Access для обработки данных базовых таблиц используется мощный язык SQL (структурированный язык запросов). Используя SQL можно выделить из одной или нескольких таблиц необходимую для решения конкретной задачи информацию. Access значительно упрощает задачу обработки данных. Совсем не обязательно знать язык SQL. При любой обработке данных из нескольких таблиц Access использует однажды заданные связи между таблицами.

В Microsoft Access имеется также простое и в то же время богатое возможностями средство графического задания запроса — так называемый «запрос по образцу» (query by example), которое используется для задания данных, необходимых для решения некоторой задачи. Используя для выделения и перемещения элементов на экране стандартные приемы работы с мышью в Windows и несколько клавиш на клавиатуре, можно буквально за секунды построить довольно сложный запрос.

Microsoft Access спроектирован таким образом, что он может быть использован как в качестве самостоятельной СУБД на отдельной рабочей станции, так и в сети — в режиме «клиент-сервер». Поскольку в Microsoft Access к данным могут иметь доступ одновременно несколько пользователей, в нем предусмотрены надежные средства защиты и обеспечения целостности данных. Можно заранее указать, какие пользователи или группы пользователей могут иметь доступ к объектам (таблицам, формам, запросам) базы данных. Microsoft Access автоматически обеспечивает защиту данных от одновременной их корректировки разными пользователями. Access также опознает и учитывает защитные средства других подсоединенных к базе данных структур (таких, как базы данных Paradox, dBASE и SQL).

Практически все существующие СУБД имеют средства разработки приложений, которые могут использованы программистами или квалифицированными пользователями при создании процедур для автоматизации управления и обработки данных.

Microsoft Access предоставляет дополнительные средства разработки приложений, которые могут работать не только с собственными форматами данных, но и с форматами других наиболее распространенных СУБД. Возможно, наиболее сильной стороной Access является его способность обрабатывать данные электронных таблиц, текстовых файлов, файлов dBASE, Paradox, Btrieve, FoxPro и любой другой базы данных SQL, поддерживающей стандарт ODBE. Это означает, что можно использовать Access для создания такого приложения Windows, которое может обрабатывать данные, поступающие с сетевого сервера SQL или базы данных SQL на главной ЭВМ.

Все выше сказанное позволило остановить выбор на СУБД Access для постановки и решения задачи автоматизации процесса ведения документации и отчетности в учебном заведении, а также оперативной справочной информации об имеющемся в наличии компьютерном оборудовании.

2.5 Построение физической модели баз данных

Рис. Физическая модель

3. Программная реализация системы

3.1 Инструкция пользователя по работе с системой

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

— автоматическую инициализацию программного обеспечения при включении компьютера;

— автоматическую инициализацию электронных карт при запуске программы;

— ручной выбор электронной карты из имеющегося перечня;

— создание «закладок» для выбора необходимых районов карт в нужном масштабе;

— перемещение карт в любом направлении и изменение их масштаба;

— идентификацию объектов на карте;

— поиск объектов на карте;

— создание, редактирование и удаление маршрутов;

— проверку вновь созданных маршрутов на безопасность плавания;

— движение судна в режимах «без маршрута», «по маршруту»;

— решение задачи безопасного плавания в процессе плавания;

— индикацию направленности применяемой во время движения судна карты на север;

— визуальное и голосовое сопровождение при движении «по маршруту»;

— вывод на экран в режиме реального времени информации о координатах судна, его курсе и скорости, масштабе применяемой в данный момент карты, и текущем времени;

— запись в «историю» параметров движения судна и возможность последующего ее воспроизведения;

— широкий набор служебных настроек, позволяющих оптимизировать параметры применения системы;

— диагностику основных параметров.

Как запустить систему Чтобы запустить систему необходимо в стартовом меню компьютера найти и запустить SaveNavigation. Появится первый экран.

Система предложит ввести пароль (по умолчанию он не установлен). Если необходимо его установить, нужно нажать кнопку «Изменить». Появиться стандартный диалог установки или изменения пароля.

Рис. 1. Диалоги ввода и изменения пароля Главный экран системы Вверху и внизу вы видите информационные поля. Верхнее поле в главном экране отображает широту и долготу местоположения судна, его курс и скорость.

Рис 2. Главный экран системы

Информация нижнего поля — служебного плана. В нем отображается масштаб карты, выведенной в данный момент времени на экран, текущее время (компьютерное).

Внизу экрана справа и слева две кнопки, которые позволяют изменять масштаб отображаемой карты.

А вот в положении кнопки «открепить» с картой можно делать все, что угодно: и масштабировать, и перемещать.

Слева вверху кнопка с пиктограммой парусной лодки. Эта кнопка вызывает главное меню системы. Оно будет рассмотрено в дальнейшем.

Если в процессе работы с картой нужно будет убрать все кнопки и информационные поля и сделать доступной всю площадь экрана для обзора, нажмите указанную кнопку. Для восстановления исходной картины нажмите ее повторно.

Рис 3. Окно без кнопок управления системой Работа в окне отображения карты и его меню Нажатие левой клавиши «мыши», приводит к перемещению карты по экрану. Чем дальше от центра вы щелкаете кнопкой мыши, тем на большее расстояние перемещается карта, причем в противоположную от точки касания сторону. Координаты точки касания становятся центром экрана.

Изменение масштаба отображаемой карты помимо кнопок окна может осуществляться и другим способом. Нарисуйте на карте, отображаемой в данный момент в окне, прямоугольник, задав его координаты по диагонали (при выполнении этой операции не отпускайте кнопку манипулятора). Участок карты, ограниченный этим прямоугольником и будет отображен на экране, заполнив его целиком. Для того, чтобы вернуться к карте исходного масштаба, совершите щелчок «мыши» на участке отображения масштаба в нижнем информационном поле.

Рис 4. Изменение масштаба карты растягиванием прямоугольника Щелчок правой кнопки манипулятора приводит к появлению контекстного меню, причем в режиме электронной линейки, и в режиме создания и редактирования маршрутов оно несколько отличается. В общем случае меню имеет вид, приведенный на рисунке 5.

Рис 5. Отображение контекстного меню (в общем виде) Разберем назначение каждого пункта.

«Идентификация»

Если заинтересовал какой-либо объект на карте, нужно отметить его правой клавишей «мыши» и после появления меню выберать пункт «Идентификация».

Появиться информационное поле, которое содержит всю имеющуюся в базе данных информацию о данном объекте.

«Поиск объекта».

При выборе этого пункта появляется соответствующая форма, рис. 6.

Рис. 6. Поиск объекта на карте Понятно, что объектов одного типа может быть множество. По названию объекта и его атрибутам нужно выбрать именно тот объект, который необходим. Опять-таки, объект может быть или картографическим, или пользовательским. После нажатия кнопки «Показать» система покажет его на карте. Этот режим очень полезен при прокладке маршрутов, о чем будет описано чуть позже.

В режиме электронной линейки и режиме создания и редактирования маршрутов в контекстном меню появляются еще две кнопки «Добавить точку» и «Удалить точку» («Удалить точку» появляется в том случае, если вы обозначили ранее нанесенную точку).

Рис 7. Контекстное меню в режиме электронной линейки Назначение этих кнопок очевидно и следует из их названия. Если маршрут уже создан или проложены линии измерения в электронной линейке, а потребовалось между двумя точками вставить еще одну, не придется все перестраивать заново. «Зацепите» манипулятором линию между этими двумя точками в любом месте и перемещайте не отпуская кнопки манипулятора до тех пор, пока не установите новую точку в необходимом месте.

Рис 8. Главное меню системы Главное меню имеет следующие позиции:

— работа с картой;

— история;

— служебные;

— выход.

Рассмотрим их по очереди.

При выборе этой позиции «Работа с картой» появляется подменю:

Рис. 9. Подменю пункта «Работа с картой»

— открыть карту/закладку;

— создать закладку;

— электронная линейка.

При нажатии кнопки «Открыть карту/закладку» появляется экран диалога выбора карты. В верхнем окне «Выберите карту:» перечислены все электронные карты, цифровые данные которых записаны по вашему требованию на Compact Flash карту. Выберите ту, которая вам необходима, затем, если вам необходимо, выберите необходимую закладку (что это такое — я вам сейчас расскажу). Если вы не убеждены, что выбрали нужную карту, нажмите кнопку «Просмотр». На короткое время на экране отобразиться выбранная вами карта. Если это то, что вам нужно — нажмите кнопку «Открыть». Для отказа нажмите кнопку «Отмена».

Рис 10. Диалог выбора карты Предлагается очень интересный инструмент выбора необходимого района карты — закладки. Закладки формируются пользователем. Для этого, перемещая карту и изменяя ее масштаб, нужно добиться, чтобы на экране отобразился необходимый вам район карты. В главном меню нажмите кнопку «Работа с картой», из подменю выберите «Создать закладку», появиться экран диалога создания закладки. В информационных строках «Широта», «Долгота» отразятся координаты центра выбранного экрана, в строке «Масштаб» — его масштаб. Вам остается только ввести имя закладки, под которым вы хотите запомнить этот район и нажать кнопку «Создать». Теперь имя этой закладки будет автоматически появляться в окне «Выберите закладку:» экрана «Открыть карту/закладку». Это позволит вам в любой момент времени открыть необходимый вам участок карты в течение нескольких секунд. Закладка может быть удалена соответствующей кнопкой.

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

В этом подменю осталась последняя кнопка «Эл. линейка». Используя контекстное меню («+Добавить точку», «-Удалить точку») постройте прямую или кривую измеряемого расстояния. В отличие от обычной линейки эта позволяет измерять участки от точки до точки. В верхнем информационном окне в этом режиме отображаются координаты устанавливаемой точки, пеленг и дистанция участка до этой точки и общее измеренное расстояние нарастающим итогом.

Рис 11. Построение кривой измерения По итогам измерения в верхнем информационном окне будут отображаться координаты карты в центре экрана и общая длина измеряемого участка. Пеленг и дистанция будут отображаться как нулевые.

История.

При выборе этой позиции Главного меню появляется экран диалога «История». По умолчанию все файлы записи истории идут с именем «Без имени» с указанием даты времени начала записи, ее окончания и размера самой записи.

В любой момент времени файлу можно задать свое собственное имя с помощью кнопки «Переименовать».

Соответствующей кнопкой запись можно удалить.

При нажатии кнопки «Настройки» появляется экран диалога «Настройки ведения истории». Активизация и установка значения «Автоматическое удаление устаревших записей через ____ дней» приведет к автоматическому удалению устаревших записей, что экономит память компьютера. Установка «Пропускать точки истории на расстоянии ближе, чем ___ метров или ___ сек.» необходима для уменьшения количества точек, выводимых при воспроизведении.

Рис 12. Настройка истории Кнопка «Воспроизвести» выводит соответствующий экран. Назначение кнопок такое же, как на обычном магнитофоне:

— «Шаг вперед»;

— «Шаг назад»;

— «В начало»;

— «В конец»;

Кнопка в правом верхнем углу имеет в зависимости от режима два значения: «Начать воспроизведение» и «Стоп».

В верхнем информационном экране в режиме воспроизведения появляется дополнительно линейка скорости, которую можно менять, передвигая указатель. В среднем положении скорость воспроизведения соответствует скорости записи, т. е. реальному движению судна (1:1). В крайнем левом положении скорость воспроизведения уменьшается в 10 раз (0,1x), в крайнем правом — увеличивается в 10 раз (10x).

Кнопка в верхнем левом углу завершает режим.

Служебные.

Настройки.

Как уже говорилось, система позволяет осуществлять широкий набор служебных настроек, оптимизирующих параметры применения системы, и включающих следующие группы:

— Общие;

— Габариты судна;

— История;

— Сопровождение по маршруту.

В группах «Общие» и «Сопровождение по маршруту» смысл настроек следует из имени переменной. Изменить значение можно, дважды коснувшись поля «Значение» соответствующей переменной.

Система поставляется с настройками, которые определены как «Значения по умолчанию». Однако вам лучше самому определить эти параметры в процессе эксплуатации системы, что будет больше соответствовать именно вашему судну.

Диагностика.

Система осуществляет некоторые операции диагностики, результаты которых наглядно представляются на экране.

О программе.

На экране представлена вся необходимая информация о разработчике системы.

Выход.

Нажатие кнопки приведет к завершению работы и выходу из системы.

Управление маршрутами Сама кнопка — кнопка «Навигация» — включает режим, определяющий режим навигации (движение по одному из выбранных маршрутов или без него).

Нижние пронумерованные кнопки 1 — 5 это кнопки «быстрого выбора» маршрутов. Это пять маршрутов, которые пользователь назначает кнопками сам.

Верхняя кнопка отключает режим движения по маршруту, если он был введен, и переводит систему в режим движения «без маршрута».

Если вы нажмете кнопку «Новый» вам будет предложено ввести имя создаваемого маршрута, после чего система перейдет в соответствующий экран.

При создании маршрута основным инструментом является контекстное меню. Используя его, вы можете:

— создать маршрут, расставив поворотные точки в требуемых местах. При этом могут быть использованы режимы идентификации и поиска объектов;

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

Рис 13. Процесс создания маршрута В процессе создания маршрута необходимо задать ширину коридора допустимого отклонения, которую система будет отслеживать при сопровождении. Для этого необходимо нажать верхнюю правую кнопку, после чего появиться подменю.

Верхняя кнопка подменю включает режим задания ширины коридора. Этот параметр может быть введен или для каждого участка маршрута конкретно, или для всего маршрута сразу. После создания маршрута необходимо запустить проверку безопасности плавания средней кнопкой подменю. В данном режиме проверяемый участок подсвечивается широкой линией синего цвета. В том случае, если на участке обнаруживается опасность, он подсвечивается широкой линией красного цвета.

Рис. 14. Проверка созданного маршрута Нажатием нижней кнопки подменю информация о созданном маршруте выводится в табличном виде, где определяются:

— номер каждой точки, ее широта и долгота;

— длина каждого участка пути, курс судна на этом участке;

— время прохождения каждого участка со средней скоростью (если в настройках вы задали эту скорость);

— допустимое отклонение от маршрута на участке.

Рис. 15. Вывод информации о созданном маршруте Кроме этого, предлагается общие результаты: длина всего маршрута (L= миль), время его прохождения со средней скоростью (T= час, мин), расход топлива на весь маршрут (G= литров). Приблизительное время прохождения маршрута и расход топлива будут определены в том случае, если вы в настройках в группе переменных «Общие» укажите среднюю скорость вашего судна и расход топлива на милю.

После нажатия кнопки «Сохранить» маршрут под выбранным именем сохраняется в таблице «Маршруты». В дальнейшем этот маршрут может быть отредактирован или удален. Если уже есть созданные маршруты, то нажатие кнопки «Выбрать» приведет к выбору отмеченного маршрута, причем пройти его можно как от старта к финишу, так и от финиша к старту. Для этого надо установить соответствующий флажок. После запуска маршрута необходимо выполнять голосовые и визуальные команды, выдаваемые компьютером. Первой командой будет: «Укажите начальную точку маршрута». Вы можете указать любую точку на маршруте с помощью красного флажка, который изначально стоит в точке начала маршрута. Если даже вы будете на значительном расстоянии от начальной точки, система с определенным вами в настройках периодом будет подсказывать курс, каким необходимо следовать, чтобы попасть в эту точку. В дальнейшем выполняйте все команды и система выведет вас к концу маршрута.

Система предусматривает голосовые команды, которые дублируются командами в соответствующих окнах на экране компьютера. Они несколько отличаются от голосовых большей информативностью.

Рис. 16. Пример вывода на экран сообщения, сопровождаемого звуковым сигналом

Предусмотрены следующие команды:

— предупреждение о приближению к повороту: «Поворот» (время предупреждения задается вами в настройках);

— команда на выполнение поворота, например: «Влево 89» (время выдачи команды также задается вами в настройках).

— команда возвращения на маршрут, например: «Уход с маршрута. Вправо12».

Цифры обозначают градусы, а курс при уходе с маршрута указывается на ближайшую поворотную точку.

Таким образом, выполняя команды системы, вы придете в конечную точку: «Конец маршрута».

3.2 Комплекс технических средств

Для нормального функционирования системы «SaveNavigation» необходимы следующие технические и программные средства:

Для сервера:

— ЭВМ не ниже Pentium II Atlon 850/AMD Duron 800;

— 124 Мбайт ОЗУ;

— 500 Мбайт дискового пространства;

— ОС Windows NT, 2000, XP;

— BDE Administrator фирмы Borland.

— MS SQL Server 2000.

Для рабочей станции:

— ЭВМ не ниже Celeron 300;

— 64 Мбайт ОЗУ;

— 100 Мбайт дискового пространства;

— ОС Windows 98, NT, 2000, XP;

— BDE Administrator фирмы Borland.

Разработанная система может функционировать как автономно, так и в составе вычислительной сети.

Аутентификация пользователей происходит при заполнении пароля и имени. Защита от несанкционированного доступа к базам денных встроена в СУБД MS Access поэтому нет необходимости разрабатывать свою систему безопасности. Дополнительную защиту предоставляет и ОС Windows 9х, 2000, XP.

4. Экономическая часть

4.1 Организационно-экономическое обоснование проекта

В этой главе произведен расчет затрат на разработку данного программного комплекса.

Краткая характеристика работы и её назначение.

Данная работа нацелена на помощь в разработке электронных средств обучения и автоматизацию учебного процесса. В результате внедрения разработанного комплекса программ ожидается повышение качества и скорости обучения студентов, а также облегчение труда преподавательского состава.

Определение затрат на создание программного продукта Затраты на создание программного продукта складываются из расходов по оплате труда разработчика программы и расходов по оплате машинного времени при отладке программы:

Зспп = Ззпспп + Змвспп + Зобщ, где Зспп — затраты на создание программного продукта;

Ззпспп — затраты на оплату труда разработчика программы;

Змвспп — затраты на оплату машинного времени;

Зобщ — общие затраты.

Расходы на оплату труда разработчика программы Расходы на оплату труда разработчика программы определяются путем умножения трудоёмкости создания программного продукта на среднюю часовую оплату программиста (с учётом коэффициента отчислений на социальные нужды) :

Ззпспп=t * Tчас.

Расчёт трудоёмкости создания программного продукта Трудоёмкость разработки программного продукта можно определить следующим образом :

t = t о+ tа + tб + tп + tд + tот где

tо — затраты труда на подготовку описания задачи;

tа — затраты труда на разработку алгоритма решения задачи;

tб — затраты труда на разработку блок-схемы алгоритма решения задачи;

tп — затраты труда на составление программы по готовой блок-схеме;

tд — затраты труда на подготовку документации задачи;

tот — затраты труда на отладку программы на ЭВМ при комплексной отладке задачи;

Составляющие затрат, в свою очередь можно вычислить через условное число операторов Q. В нашем случае число операторов в отлаженной программе Q = 4000.

Расчёт затрат труда на подготовку описания Оценить затраты труда на подготовку описания задачи не возможно, так как это связано с творческим характером работы, вместо этого оценим затраты труда на изучение описания задачи с учётом уточнения описания и квалификации программиста определяются:

tи = Q * B /(75…85 * K),

где

B — коэффициент увеличения затрат труда вследствие недостаточного описания задачи, уточнений и некоторой не доработки, B=1,2…5;

K — коэффициент квалификации разработчика, для работающих до 2 лет К=0.8;

В связи с тем, что при изучении описания данной задачи потребовалось много уточнений и доработок в описании коэффициент B принимаем равным 4.

Таким образом, получим

tи = 4000 * 4/(80 * 0.8) = 250 (чел-час).

Расчёт затрат труда на разработку алгоритма Затраты труда на разработку алгоритма решения задачи :

tа = Q/(60…75 * K) = 4000/(70*0.8) = 71.43(чел-час).

Расчёт затрат труда на разработку блок-схемы Затраты труда на разработку блок-схемы алгоритма решения задачи вычислим следующим образом:

tб = Q /(60…75 * K) = 4000/(70*0.8) = 71.43(чел-час).

Расчёт затрат труда на составление программы Затраты труда на составление программы по готовой блок-схеме вычислим по формуле:

tп = Q/(60…75 * K) = 4000/(70*0.8) = 71.43(чел-час).

Расчёт затрат труда на отладку программы Затраты труда на отладку программы на ЭВМ при комплексной отладке задачи:

tот = 1.5 * tAот ,

где

tAот — затраты труда на отладку программы на ЭВМ при автономной отладке одной задачи;

tAот = Q/(40…50 * K) = 4000/(45*0.8) = 111.11(чел-час).

Отсюда

tот = 1.5*111.11 = 166.67(чел-час).

Расчёт затрат труда на подготовку документации Затраты труда на подготовку документации по задаче определяются:

tд = tдр + tдо ,

где

tдр — затраты труда на подготовку материалов в рукописи;

tдо — затраты на редактирование, печать и оформление документации;

tдр = Q/(150…200 * K) = 4000/(200*0.8) = 25(чел-час);

tдо = 0.75 * tдр = 0.75*25 = 18.75(чел-час);

Отсюда

tд = 18.75 + 25 = 43.75(чел-час).

Итак общую трудоёмкость программного продукта можем рассчитать:

t = 250+71.43+71.43+71.43+43.75+166.67 = 674.71(чел-час).

Расчёт средней зарплаты программиста Средняя зарплата программиста в современных рыночных условиях может варьироваться в широком диапазоне. Для расчёта возьмём среднюю часовую оплату труда, которая составляет Тчас = 10 руб/час, что составляет 1760 руб/мес при 8-ми часовом рабочем дне и 5-ти дневной рабочей неделе. Эта цифра близка к реальной заработной плате программиста на предприятии, где проводилась работа.

Затраты на оплату труда программиста состоят из зарплаты программиста и отчислений на социальные нужды. Отчисления на социальные нужды включают в себя:

* пенсионный фонд (28%),

* медстрах (3.6%),

* соцстрах (4%),

* фонд занятости (1.5%),

* сбор на образование (1%).

Итого отчисления на социальные нужды составляют 40.5%. Отсюда затраты на оплату труда программиста составляют:

Ззпспп = 674.71 * 10 * 1.405= 9479.68 руб.

Затраты на оплату машинного времени Затраты на оплату машинного времени при отладке программы определяются путём умножения фактического времени отладки программы на цену машино-часа арендного времени:

Змвспп = Счас * t эвм, где Счас — цена машино-часа арендного времени, руб/час;

tэвм — фактическое время отладки программы на ЭВМ;

Расчёт фактического времени отладки Фактическое время отладки вычислим по формуле:

tэвм = tп + tдо + tот;

tэвм = 71.43 +18.75 +166.67= 256.85 часа.

Расчёт цены машино-часа Цену машино-часа найдём по формуле:

Счас = Зэвм/Тэвм ,

где Зэвм — полные затраты на эксплуатацию ЭВМ в течении года;

Тэвм — действительный годовой фонд времени ЭВМ, час/год;

Расчёт годового фонда времени работы ПЭВМ IBM PC AT

Общее количество дней в году — 365.

Число праздничных и выходных дней — 119.

Время простоя в профилактических работах определяется как еженедельная профилактика по 4 часа.

Итого годовой фонд рабочего времени ПЭВМ составляет :

Тэвм = 8*(365−119) — 52*4 = 1760 часа.

Расчёт полных затрат на эксплуатацию ЭВМ Полные затраты на эксплуатацию ЭВМ можно определить по формуле:

Зэвм = (Ззп + Зам + Зэл + Звм + Зтр + Зпр),

где Ззп — годовые издержки на заработную плату обслуживающего персонала, руб/год;

Зам — годовые издержки на амортизацию, руб/год;

Зэл — годовые издержки на электроэнергию, потребляемую ЭВМ, руб/год;

Звм — годовые издержки на вспомогательные материалы, руб/год;

Зтр — затраты на текущий ремонт компьютера, руб/год;

Зпр — годовые издержки на прочие и накладные расходы, руб/год;

Амортизационные отчисления Сумма годовых амортизационных отчислений определяется по формуле :

Зам = Сбал * Нам ,

где Сбал — балансовая стоимость компьютера, руб/шт.;

Нам — норма амортизации, %;

Согласно постановления совета министров СССР от 22 октября 1990 года № 1072 «#G0О единых нормах амортизационных отчислений на полное восстановление основных фондов народного хозяйства СССР» Нам = 12.5%.

Балансовая стоимость ПЭВМ включает отпускную цену, расходы на транспортировку, монтаж оборудования и его наладку :

Сбал = Срын + Зуст ;

где Срын — рыночная стоимость компьютера, руб/шт.,

Зуст — затраты на доставку и установку компьютера, руб/шт.

Компьютер, на котором велась работа, был приобретен по цене Срын = 9000 руб, затраты на установку и наладку составили примерно 10% от стоимости компьютера Зуст = 10% * Срын = 0.1 * 9000 =900 руб.

Отсюда Сбал = 9000 + 900 = 9900 руб./шт.

а Зам = 9900 * 0.125= 1237.5 руб/год.

Расчёт затрат на электроэнергию Стоимость электроэнергии, потребляемой за год, определяется по формуле:

Зэл = Рэл * Тэвм * Сэл * А, где Рэвм — суммарная мощность ЭВМ, Сэл — стоимость 1кВт*ч электроэнергии, А — коэффициент интенсивного использования мощности машины.

Согласно техническому паспорту ЭВМ Рэвм = 0.22 кВт, стоимость 1кВт*ч электроэнергии для предприятий Сэл = 0.548 руб., интенсивность использования машины, А = 0.98.

Тогда расчётное значение затрат на электроэнергию:

Зэл = 0.22*1760*0.548*0.98 = 207.94 руб.

Расчёт затрат на текущий ремонт Затраты на текущий и профилактический ремонт принимаются равными 5% от стоимости ЭВМ:

Зтр = 0.05 * Сбал = 0.05*9900 = 495 руб.

Расчёт затрат на вспомогательные материалы Затраты на материалы, необходимые для обеспечения нормальной работы ПЭВМ составляют около 1% от стоимости ЭВМ :

Звм = 0.01*9900 = 99 руб.

Прочие затраты по эксплуатации ПЭВМ Прочие косвенные затраты, связанные с эксплуатацией ПЭВМ, состоят из амортизационных отчислений на здания, стоимости услуг сторонних организаций и составляют 5% от стоимости ЭВМ:

Зпр = 0.05*9900 = 495 руб.

Годовые издержки на заработную плату обслуживающего персонала Издержки на заработную плату обслуживающего персонала складываются из основной заработной платы, дополнительной и отчислений на заработную плату:

Ззп = Зоснзп + Здопзп + Зотчзп .

Сумма основной заработной платы определяется исходя из общей численности работающих в штате:

Зоснзп = 12*?Зiокл ,

где Зiокл — тарифная ставка i-го работника в месяц, руб.;

В штат обслуживающего персонала должны входить инженер-электронщик с месячным окладом 1000 руб. и электрослесарь с окладом 500 руб.

Тогда, учитывая, что данный персонал обслуживает 10 машин, имеем издержки на основную заработную плату обслуживающего персонала составят:

Зоснзп = 12*(1000 + 500)/10 = 1800 руб.

Сумма дополнительной заработной платы составляет 60% от основной заработной платы:

Здопзп = 0.6*1800 = 1080 руб.

Сумма отчислений на социальные нужды составляет 40.5% от суммы дополнительной и основной заработных плат:

Зотчзп = 0.405*(1800 + 1080) = 1166.4 руб.

Тогда годовые издержки на заработную плату обслуживающего персонала составят:

Ззп = 1800 + 1080 +1166.4= 4046.4 руб.

Полные затраты на эксплуатацию ЭВМ в течении года составят:

Зэвм = 4046.4+1237.5+207.94+99+495+495= 6580.84 руб.

Тогда цена машино-часа арендуемого времени составит Счас = 6580.84 / 1760 = 3.74 руб.

А затраты на оплату машинного времени составят:

Змвспп = 3.74 * 256.85 = 960.62 руб.

Расчёт общих расходов Общие расходы это расходы на освещение, отопление, коммунальные услуги и т. п. Они принимаются равными одной трети основой зарплате разработчика программы то есть 2249.03 руб.

Тогда затраты на создание программного продукта составят:

Зспп =9479.68 + 960.62 + 2249.03= 12 689.33 руб.

Выводы:

В результате расчета затраты на создание данного программного продукта составили 12 689.33 руб. Данная цифру сложно оценить, так как имеющиеся на рынке подобные продукты слишком специфичны и количество их очень мало. Но можно предположить, что для потенциальных покупателей, она окажется достаточно большой. Для снижения затрат можно предложить следующие решения. Как видно, три четверти расходов представляют из себя затраты на оплату труда программиста. Снизить эти затраты можно путем повышения эффективности труда программиста за счет использования более современных ЭВМ для работы, повышения удобства рабочего места и прочих факторов. Например, при замене использовавшегося при разработке компьютера Pentium-166 на более современный Pentium II-300 время составления программы и ее отладки сократилось бы почти вдвое, а цена машино-часа выросла бы приблизительно на 20%. Также при более бережном и аккуратном отношении к компьютерной технике возможно снизить затраты на ремонт, а так же уменьшить привлечение дополнительного персонала на обслуживание компьютеров.

5. Безопасность жизнедеятельности

5.1 Анализ опасных и вредных факторов на рабочем месте сотрудника деканата АФ МГСУ

5.1.1 Номенклатура опасностей

Трудно представить себе современный офис без компьютеров. За последнее десятилетие они прочно вошли в нашу жизнь. Автоматизация затронула практически все предприятия страны и это не удивляет: компьютеры обеспечивают быстроту поиска, точность и большие объемы хранимой информации, удобство работы и дружественность интерфейса. Однако использование компьютеров сопряжено с некоторыми опасностями для здоровья человека. Прежде всего, это мерцание мониторов, выпуклая поверхность электронно-лучевой трубки, искажающая изображение, вредные, а также еще не изученные электромагнитные излучения, шум от вентиляторов компьютера и некоторой периферийной аппаратуры, такой, например, как принтеры, форма клавиатуры, вызывающая при постоянной и активной работе туннельный синдром (острые боли из-за перегрузки и повреждения сухожилий запястий). Не следует забывать и редкие, но всё же возможные опасности поражения электрическим током и даже возгорание.

Именно поэтому очень важно при разработке информационных систем уделять внимание охране труда. В настоящее время существует целая серия стандартов, призванная защитить пользователей компьютеров от вредных для здоровья факторов. В России, например, приняты санитарные правила и нормы «Гигиенические требования к видео — дисплейным терминалам, персональным электронно-вычислительным машинам и организации работы. Широкую известность во всём мире получили шведские стандарты MPRII, регулирующий электромагнитные излучения, TCO92, TCO95, TCO99, которые определяют также эргономические, энергосберегающие и экологические параметры. Эти стандарты являются более жесткими по сравнению с российскими. Они являются стандартом де-факто во всём мире. Очень радует то, что оборудование, отвечающее данным стандартам сейчас можно легко приобрести в любом регионе России. Цены на него не намного выше подобного, но не стандартизированного оборудования.

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

Биологические и химические факторы можно опустить, так как на автоматизируемых рабочих местах работа не связана с бактериологическими и химическими процессами.

На рассматриваемом рабочем месте на сотрудника могут негативно действовать следующие физические факторы:

1) повышенная или пониженная температура воздуха;

2) неправильная освещенность рабочего места;

3) ненормированный уровень шума;

4) повышенная или пониженная ионизация воздуха;

5) опасность поражения электрическим током.

6) повышенный уровень статического электричества;

7) повышенная напряженность электромагнитного поля;

8) повышенный уровень электромагнитных излучений;

К опасным психофизиологическим факторам относятся:

1) умственное перенапряжение;

2) перенапряжение анализаторов;

3) монотонность труда;

4) эмоциональные перегрузки.

Основываясь на вышеизложенном, можно предложить следующую номенклатуру опасностей рабочего места сотрудника.

Таблица 5.1. Номенклатура опасностей рабочего места сотрудника

Опасность

Причина опасности

Повышенная температура воздуха рабочего места

Тепловыделения от работающих компьютеров, искусственного освещения, людей, солнечной радиации, плохая вентиляция

Пониженная темп. воздуха рабочего места

Некачественное отопление, щели в окнах

Недостаточное освещение рабочего места

Неправильно спроектированное освещение; неправильное расположение рабочих мест

Повышенная яркость света на рабочем месте

Неправильно спроектированное освещение; неправильное расположение рабочих мест

Отраженная блесткость

Неправильно спроектированное освещение; неправильное расположение рабочих мест

Повышенный уровень шума на рабочем месте

Шум от системных блоков компьютеров, принтеров, кондиционеров, разговоры сотрудников

Пов. уровень электромагнитных излучений

Использование компьютеров, особенно устаревших или неисправных

Повышенная ионизация воздуха

Плохая вентиляция; применение устаревших или неисправных мониторов

Пониженная ионизация воздуха

Плохая вентиляция; применение устаревших или неисправных мониторов

Умственное перенапряжение оператора

Сложный интерфейс информационной системы, нарушение режима труда и отдыха

Перенапряжение органов зрения оператора

Неправильное расположение рабочих мест; неправильно спроектированное освещение; прод. восприятия информации с экрана монитора; применение устаревших или неисправных мониторов

Физическое перенапряжение оператора

Неправильно спроектированное рабочее место; нарушение режима труда и отдыха.

Поражение электрическим током

Пренебрежение ПУЭ и ПУБЭ, неисправность оборудования, кабелей или розеток.

На основе перечисленных опасностей и требований к организации рабочего места предлагаю следующие инженерно-технические мероприятия по нормализации условий труда.

5.1.2 Санитарно-гигиенические требования к микроклимату

Выделяют следующие показатели, характеризующие микроклимат:

1) температура воздуха;

2) относительная влажность воздуха;

3) скорость движения воздуха;

4) интенсивность теплового излучения.

Нормативные документы определяют допустимые и оптимальные значения показателей микроклимата для холодного и теплого времени года согласно категории тяжести работ. В помещениях, в которых работа на компьютерах является основной, должны обеспечиваться оптимальные параметры микроклимата.

Работу сотрудника деканата можно отнести к категории «легкая — 1а»: работа, производимая сидя и не требующая физического напряжения, при которой расход энергии составляет до 120 ккал/ч. Оптимальные значения параметров микроклимата сведены в таблице 5.2.

Таблица 5.2. Оптимальные значения параметров микроклимата

Период года

Температура воздуха, оС не более

Относительная влажность воздуха, %

Скорость движения воздуха, м/с

Холодный

22 — 24

40 — 60

0,1

Теплый

23 — 25

40 — 60

0,1

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

5.1.3 Санитарно-гигиенические требования к ионизации воздуха

Уровни положительных и отрицательных аэроионов в воздухе помещений с компьютерами должны соответствовать нормам, приведенным в таблице 5.3.

Таблица 5.3. Уровни аэроионов

Уровни

Число ионов в 1 см куб. воздуха

n+

n;

Минимально необходимые

Оптимальные

1500 — 3000

30 000 — 50 000

Максимально допустимые

Достичь необходимых показателей можно периодическим проветриванием помещений, установкой кондиционеров, использованием современных моделей мониторов, удовлетворяющих стандартам TCO95 или TCO99.

5.1.4 Санитарно-гигиенические требования к уровню шума

Производственный шум, представляет собой совокупность нежелательных звуков, возникающих в процессе работы и негативно воздействующих на человека, вызывая преждевременную усталость, рассредоточенность и раздражительность.

Согласно СанПиН 2.2.2.542−96 при выполнении основной работы на компьютерах уровень звука и эквивалентные уровни звука на рабочем месте не должны превышать 50 дБ. Соответствующие допустимые уровни звукового давления в октавных полосах частот для широкополосного постоянного и непостоянного шума сведены в таблице 5.4.

Таблица 5.4. Уровни звукового давления в октавных полосах частот

Уровни звукового давления, дБ, в октавных полосах со среднегеометрич. частотами в Гц

Уровни звука и эквивалентные уровни звука, дБ

31,5

Основными источниками шума на рабочем месте сотрудника деканата являются: шум, создаваемый системным блоком компьютера (главным образом, вентиляторами и накопителем на жестких магнитных дисках (НЖМД)), кондиционером, принтером, клавиатурой, речью сотрудников. Уменьшить шум можно использованием современных тихих моделей (например, корпус системного блока компьютера стандарта ATX содержит меньшее число вентиляторов по сравнению со старым стандартом AT), проведением своевременного сервисного обслуживания оборудования (смазка), использованием однотонных занавесей из плотной ткани, подвешенных в складку, облицовкой стен и потолка звукопоглощающими материалами.

5.1.5 Защита от вредных излучений и электромагнитных полей

Любой компьютер, особенно электронно-лучевая трубка (ЭЛТ) монитора, является источником электромагнитных полей и излучений, таких, например, как излучения низкой и сверхнизкой частоты, мягкое рентгеновское, ультрафиолетовое и инфракрасное излучения. Влияние излучения сверхнизкой частоты на организм человека ещё до конца не изучено, однако рекомендуется сводить их к минимуму. Мягкое рентгеновское излучение, а также высокое напряжение на токоведущих участках схемы монитора вызывают ионизацию воздуха, что отрицательно сказывается на самочувствии человека. В таблице 5.5 приведены допустимые значения параметров неионизирующих электромагнитных излучений для видео — дисплейных терминалов (ВДТ).

Таблица 5.5. Допустимые значения параметров неионизирующих электромагнитных излучений

Наименование параметров

Допустимое значение

Напряженность электромагнитного поля на расстоянии 50 см вокруг ВДТ по электрической составляющей должна быть не более: — в диапазоне частот 5 Гц — 2 кГц;

25 В/м

— в диапазоне частот 2 — 400 кГц

2,5 В/м

Плотность магнитного потока должна быть не более: — в диапазоне частот 5 Гц — 2 кГц;

250 нТл

— в диапазоне частот 2 — 400 кГц

25 нТл

Поверх. электростатический потенциал не должен превышать

500 В

Существуют более жесткие международные стандарты, такие как MPRII, TCO92, TCO95, TCO99. Поэтому лучше всего использовать мониторы, прошедшие сертификацию по этим стандартам. Среди недорогих мониторов удовлетворяющих данным стандартам можно выделить LG StudioWorks 575C, Samsung SyncMaster 550S, ViewSonic G655 и другие.

В настоящее время получают распространение жидкокристаллические мониторы, уровень излучения которых заметно ниже мониторов с ЭЛТ. Однако они ещё очень дороги.

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

5.1.6 Требования ПУЭ к электробезопасности технических средств

Так как компьютеры являются электрическими приборами, следует уделять особое внимание электробезопасности.

Применяемые компьютеры можно отнести к классу I электротехнических изделий по способу защиты человека от поражения электрическим током, а именно: они имеют рабочую изоляцию и сетевой провод со специальной заземляющей (зануляющей) жилой (ГОСТ 12.2.007−75 ССБТ).

5.2 Расчет необходимого воздухообмена по избыткам тепла и кондиционирование

Источниками выделения теплоты в помещениях с компьютерами являются: механическое и электрическое оборудование (компьютеры, принтеры), люди, солнечная радиация и искусственное освещение.

Расчет необходимого воздухообмена проводится для кабинета деканата. Ее размеры:

1) ширина 6,6 м;

2) длина 6,5 м;

3) высота 3,5 м;

4) пятый этаж;

5) имеет одно окно размером 2,5 м х 2 м, выходящими на восток;

6) площадь комнаты 42,9 м2;

7) объем комнаты 193,05 м3.

В комнате расположены 6 рабочих мест, 6 из них с компьютерами.

Рассчитаем избыточное тепло от оборудования, людей, солнечной радиации, искусственного освещения.

Тепловыделение от нагретых поверхностей оборудования, Вт:

где — площади нагретых поверхностей, м2;

— коэффициенты теплоотдачи от стенок наружных поверхностей к воздуху помещения, Вт/(м2· оС);

— температуры наружных стенок, оС;

— температура воздуха помещения, оС.

Тогда для одного системного блока компьютера:

= 2 ??0,3 м ??0,4 м + 2 ??0,15 м ??0,4 м + 2 ??0,15 м ??0,3 м = 0,45 м2;

= 35 оС;

= 25 оС;

= 9 Вт/(м2· оС);

Для одного монитора:

= 4 ??0,25 м ??0,35 м + 0,15 м ??0,15 м = 0,37 м2;

= 42 оС;

= 9,42 Вт/(м2 · оС).

Тогда в целом для компьютера:

=0,45 ??9 ??(35−25) + 0,37 ??9,42 ??(42−25) = 99,75 Вт.

Тепловыделение от освещения, Вт:

где — суммарная мощность источников освещения, Вт.

= 10 ??40 = 400 Вт.

Тепловыделение от персонала, Вт:

где Nколичество людей в помещении,

— количество полной теплоты, выделяемой одним работником, Вт. Для работы сотрудника УМУ = 70 Вт.

= 7 ??70 = 490 Вт.

Теплопоступления через наружные ограждения в теплый период года происходят за счет теплопередачи и солнечной радиации. Для остекленных поверхностей:

где — поверхность остекления, м2; - количество теплоты от солнечной радиации, зависящее от ориентации по странам света, Вт; - коэффициент, зависящий от характера остекления. Для остекления в двойной деревянной раме = 0,9.

Таким образом, для двух окон:

= 2 Ч—2м Ч—2,5 м = 10 м2; = 70, так как окно выходит на восток;

= 10 Ч—7_—Ч—_, 9 = 630 Вт.

Тогда избыточное количество теплоты равно:

= 5 Ч—99,75—+ 400 + 490 + 630 = 2018,75 Вт.

Воздухообмен равен, м3/час:

где tуд — температура уходящего воздуха, оС;

tпр — температура приточного воздуха, оС;

c — теплоемкость воздуха, кДж/(кг ??оС).

В свою очередь

где tрз — температура воздуха рабочей зоны, оС;

—= 0,5 оС/м — нарастание температуры воздуха на каждый метр высоты выше 2 м; H — высота помещения, м.

tуд = 25 + 0,5 Ч (4,5 — 2) = 26,25 оС Температура приточного воздуха считается по формуле

где tопт — оптимальная температура воздуха рабочей зоны, оС;

tдоп — допустимый перепад температуры подаваемого в помещение воздуха, оС;

tдоп = 27,3 — 23 = 4,5 оС

tпр = 23 — 4,3 = 18,7 оС Используя формулу (5.1), найдем необходимый воздухообмен:

L = м3/час.

Среди разных типов кондиционеров остановимся на оконном, как самом дешевом и быстро устанавливаемом. Наиболее подходящим является использование двух кондиционеров LW-G0760ACG компании LG, которые имеют следующие характеристики: охлаждающая мощность — 2000 Вт, воздухообмен — 348 м3/час, средняя стоимость — 450 условных единиц каждый.

5.3 Оценка класса условий труда сотрудника деканата

Гигиенические критерии оценки и классификации условий труда основаны на принципе дифференциации условий труда по степени отклонения параметров производственной среды и трудового процесса от действующих гигиенических нормативов в соответствии с выявленным влиянием этих отклонений на функциональное состояние и здоровье работающих. Для оценки составим ряд карт:

Таблица 5.6. Карта условий труда по физическим факторам

Код фактора

Наименование фактора

ПД, ПДУ, доп. уровень

Фактическое значение

Величина отклонения

Класс условий труда

Продолжительность воздействия

4.62

Температура, ОС

21−25

100%

4.63

Скорость движения воздуха, м/с

Не более 0,1

0,1

100%

4.64

Влажность, %

Не более 75

100%

4.67

Естественное освещение, КЕО, %

1,5

1,5

100%

4.68

Освещенность, Лк

100%

4.70

Отраженная слепящая блескость

;

Отсутствует

;

100%

4.50

Шум (эквивалентный уровень звука), дБА

100%

4.57

Электростатическое поле, кВ/м

100%

4.58

Электромагнитное излучение радиочастотного диапазона (0,2−2 кГц), В/м

100%

Таблица 5.7. Карта условий труда по тяжести трудового процесса

Наименование факторов

Содержание работы

Класс условий труда

Продолжительность воздействия

Рабочая поза

Периодическое нахождение в неудобной, фиксированной позе

3.1

25%

Результирующая категория тяжести труда по тяжести трудового процесса 3.1.

Таблица 5.8. Карта условий труда по напряженности работы

Наименование факторов

Содержание работы

Класс ус. труда

Продолжительность воздействия

Интеллектуальные нагрузки

Содержание работы

Решение простых альтернативных задач по инструкции

100%

Восп. сигналов (информ.) и их оценка

Восприятие сигналов с последующей коррекцией действий и операций

100%

Степень сложности задания

Обработка, выполнение задания и его проверка

100%

Характер выполненной работы

Работа по установленному графику с возможной его коррекцией по ходу деятельности

100%

Нагрузка на зрительный анализатор

Размер объекта различения

0,3−1 мм

3.1

50%

Наблюдение за экраном ВДТ

3.2

Более 4 ч за смену

Эмоциональные нагрузки

Степень ответ. Значимость ошибки

Несет ответ. за функциональное качество вспомогательных работ

Режим работы

Фактическая прод. рабочего дня

8 ч

Сменность работы

Односменная работа (без ночной смены)

Число оптимальных факторов:8

Число допустимых факторов:6

Число вредных факторов 3.1: 1

Число вредных факторов 3.2: 1

Результирующая категория тяжести труда по напряженности работы 3.1

Таблица 5.9. Оценка условий труда по степени вредности и опасности

Фактор производственной среды

Классы условий труда

Вредные

3.1

3.2

3.3

3.4

Химические

Х

Биологические

Х

Физические:

Микроклимат

Х

Освещенность

Х

Шум

Х

Электростатическое поле

Х

Электромагнитное поле

Х

Тяжесть труда

Х

Напряженность труда

Х

Общая оценка условий труда

Х

На основании проведенных оценок, можно сделать вывод о том, что работа сотрудника деканата имеет вредную категорию тяжести труда 1 степени. То есть условия труда характеризуются такими отклонениями от гигиенических нормативов, которые, как правило, вызывают обратимые функциональные изменения и обуславливают риск развития заболевания.

5.4. Требования к организации режима труда и отдыха при работе с компьютером

Согласно СанПиН 2.2.2.542−96 режимы труда и отдыха при работе с компьютером организуются в зависимости от вида и категории трудовой деятельности. Работа сотрудника деканата относится к группе Б — работа по вводу информации. Категория работы для группы Б при вводе за смену до 15 000 знаков является первой. При 8-часовой рабочей смене для такого вида и категории работы полагается в сумме 30 минут регламентированных перерывов. Так как продолжительность непрерывной работы за компьютером без регламентированного перерыва не должна превышать 2 часов, целесообразно установить перерывы через 2 часа от начала рабочей смены и через 2 часа после обеденного перерыва продолжительностью 15 минут каждый. Во время регламентированных перерывов с целью снижения нервно-эмоционального напряжения, утомления зрительного анализатора, устранения влияния гиподинамии и гипокинезии, предотвращения развития познотонического утомления целесообразно выполнять комплексы физических упражнений.

5.5 Мероприятия по обеспечению безопасности в чрезвычайных ситуациях

5.5.1 Чрезвычайные ситуации наиболее вероятные для рабочего корпуса

При проектировании мероприятий по обеспечению безопасности жизнедеятельности сотрудников необходимо учитывать возможность возникновения чрезвычайной ситуации (ЧС). Для рабочего корпуса можно выделить следующие наиболее вероятные ЧС:

1) пожар, из-за нарушении мер пожарной безопасности, в результате разрядов молнии, неисправности электропроводки, самовозгорания и др. причин;

2) эпидемии респираторных заболеваний, передающихся воздушно-капельным путем, из-за большого скопления людей;

3) угроза террактов (заложенные взрывные устройства);

4) химическое заражение вследствие аварии на предприятиях города.

Рассмотрим более подробно чрезвычайную ситуацию — пожар. Проанализируем возможные причины возникновения пожара и мероприятия по обеспечению пожарной безопасности.

5.5.2 Общие положения пожарной безопасности

В соответствии с ГОСТ 12.1.004−91 пожарная безопасность объекта должна обеспечиваться системами предотвращения пожара и противопожарной защиты, в том числе организационно-техническими мероприятиями.

Все системы пожарной безопасности должны характеризоваться уровнем обеспечения пожарной безопасности людей и материальных ценностей и выполнять одну из следующих задач:

1) исключать возникновение пожара;

2) обеспечивать пожарную безопасность людей;

3) обеспечивать пожарную безопасность материальных ценностей;

4) обеспечивать пожарную безопасность людей и материальных ценностей одновременно.

Данная система направлена на предотвращение воздействия на людей опасных факторов пожара и их вторичных проявлений.

Причинами пожара в кабинете рабочего корпуса может быть следующее:

1) нарушение изоляции проводов в электропроводке;

2) курение в помещении;

3) неисправность электрооборудования (в том числе компьютеров).

4) использование электрических кипятильников;

Таким образом, опасными факторами пожара, воздействующими на людей и материальные ценности являются:

1) пламя и искры;

2) повышенная температура окружающей среды;

3) дым.

К вторичным проявлениям опасных факторов относятся:

1) осколки, части разрушившегося оборудования, конструкций;

2) токсичные продукты горения и вещества, вышедшие из разрушенного оборудования;

3) электрический ток, возникший в результате выноса высокого напряжения на токопроводящие части оборудования.

5.5.3 Классификация помещения по пожарной безопасности

В соответствии с СНиП 21−01−97 пожарно-техническая классификация предназначается для установления необходимых требований по противопожарной защите конструкций, помещений в зависимости от их огнестойкости и (или) пожарной опасности.

Здания подразделяются по степеням огнестойкости, классам конструктивной и функциональной опасности. Степень огнестойкости здания определяется огнестойкостью его строительных конструкций. Предел огнестойкости строительных конструкций составляет не менее:

1) несущие элементы имеют потери несущей способности R не менее 45мин;

2) наружные стены теряют несущую способность R и целостность E не менее чем через 15 мин;

3) междуэтажные перекрытия характеризуются величиной RE 45мин и потерей теплоизолирующей способности I не менее 45 мин;

4) внутренние стены лестничных клеток характеризуются величиной REI 90 мин;

5) марши и площадки лестниц — R 45 мин.

Класс конструктивной пожарной опасности здания определяется степенью участия строительных конструкций в развитии пожара и образовании его опасных факторов. Класс конструктивной пожарной опасности главного корпуса — C1, т. е. класс пожарной опасности его строительных конструкций не ниже:

1) несущие стержневые элементы (колонны, фермы) имеют класс К1 — малопожароопасные;

2) наружные стены с внешней стороны — К2 — умереннопожароопасные;

3) стены, перекрытия, перегородки имеют класс К1;

4) стены лестничных клеток и марши лестниц характеризуются классом К0 — непожароопасные.

По функциональной пожарной опасности здания подразделяются на классы в зависимости от способа их использования и от того, в какой мере безопасность людей в них в случае возникновения пожара находится под угрозой. Кабинет 512, в соответствии с СНиП 21−01−97, относится к классу Ф4.3, т.к. она используется в течение суток некоторое время и в ней находится постоянный, привыкший к местным условиям состав людей.

5.5.4 Обеспечение пожарной безопасности персонала

Для прекращения горения применяют следующие способы:

1) охлаждение зоны реакции или самих горящих веществ;

2) разбавление реагирующих веществ;

3) химическое торможение реакции сгорания;

4) изоляция реагирующих веществ от зоны сгорания.

Необходимо учитывать, что возможно возгорание компьютера или другого электрооборудования. Если горящий компьютер не отключен и находится под напряжением, то его тушение представляет опасность поражения электрическим током.

При обнаружении возникновения пожара или срабатывания пожарной сигнализации необходимо предпринять следующие действия:

1) вызвать пожарную службу по телефону 911;

2) приступить к эвакуации людей из помещений корпуса согласно схеме эвакуации;

3) немедленно открыть все выходы;

4) немедленно отключить электропитание, все электропитающие устройства;

5) дежурной пожарной команде (ДПК) приступить к тушению пожара, применяя огнетушители, водяной гидрант, песок и другие средства пожаротушения.

Эвакуация, в соответствии с СНиП 21−01−97, определяется как процесс организованного самостоятельного движения людей наружу из помещений, в которых имеется возможность воздействия на них опасных факторов пожара и осуществляется по путям эвакуации через эвакуационные выходы. Эвакуационные пути в пределах помещения должны обеспечивать безопасную эвакуацию людей через выходы из данного помещения без учета применяемых в нем средств пожаротушения и противодымной защиты.

1.ГОСТ 12.0.003−74 ССБТ Опасные и вредные производственные факторы. Классификация;

2.Государственная система санитарно-эпидемиологического нормирования Российской Федерации. 2.2. Гигиена труда. Гигиенические критерии оценки условий труда по показателям вредности и опасности факторов производственной среды, тяжести и напряженности трудового процесса. Утв. 12.07.94. Р 2.2.0 13−94. Охрана труда и социальное страхование;

3.СанПиН 2.2.2.542−96 Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы;

4.Амарина Е. Е. Учет в Интернет-магазине. // www.consalting.ru, 2003;

5.Афонин С. Современные технологии по созданию сайтов и интернет-магазинов. // www.mags.ru, 2004;

6.Беляев В. Зарубежные информационные и аналитические ресурсы в сети Интернет. // Рынок ценных бумаг. — 1999. № 7, с. 26;

7.Бурдинский А. Перспективы развития рынка финансовых Интернет-услуг. // www.osp.ru, 2000;

8.Бурмистров А. Золотая лихорадка русского Интернета. // www.osp.ru, 2000;

9.Вайнман Л., Вайнман В. Динамический HTML. Руководство разработчика Web-сайтов. — Киев.: Диасофт, 2001. — 464 с.;

10.Вартанян М. SETне догма., М.: Мир Интернет, 1999. — 254 с.;

11.Гайкович В., Першин А. Безопасность электронных банковских систем. — М.: Единая Европа, 2002. — 264 c.;

12.Гилстер П. Новый навигатор Internet. — Киев: Диалектика, 2003. — 495 c.;

13.Гофман В. Э., Хомоненко А. Д. Delphi 6. — СПб.: БХВ-Петербург, 2002. — 1152 с.;

14.Гудман Д. JavaScript. Библия пользователя. — М.: Вильямс, — Изд. 4-е, 2002. — 960 с.;

15.ДиалогСибирь // www. dialog-it.ru/ecommerce/, 2004;

16.Дмитриева М. В. Самоучитель JavaScript. — СПб.: БХВ-Петербург, 2001. — 512 с.;

17.Долгов В., Интернет-магазин OZON лидер электронной коммерции сегмента B2C в России. // www.rocit.ru, 2003;

18.Егорова Е. Интернет-магазины: взгляд изнутри. // www.cnt.online.ru, 2001;

19.Игер Б. Работа в Internet / Под ред. А. Тихонова; Пер. c англ. — М.: БИНОМ, 2001. — 313 c.;

20.Ильин М. MySQL. // www.infocity.kiev.ua, 2003;

21.Кент П. Internet / Перевод c английского В. Л. Григорьева. — М.: Компьютер, ЮНИТИ, 2003. — 267 c.;

22.Колесников О. Э. Интернет для делового человека. — M.: МЦФ, 2001. — 281 c.;

23.Костарев А. Ф. PHP в Web-дизайне. — СПб.: БХВ-Петербург, 2002. — 592 с.;

24.Котеров Д. В. Самоучитель PHP 4. — СПб.: БХВ-Петербург, 2003. — 576 с.;

25.Кривопалов Д. В. Консультации для успешного бизнеса. Интернет-магазины. // www.consalting.ru, 2003;

26.Крол Эд. Все об Internet: Руководство и каталог / Перевод c английского С. М. Тимачева. — Киев: BNV, 2003. 591 c.;

27.Левин В. К. Защита информации в информационно-вычислительных системах и сетях // Программирование. — 2002. № 5, с. 5;

28.Мацяшек Л. А. Анализ требований и проектирование систем. Разработка информационных систем с использованием UML. — М.: Вильямс, 2002. — 432 с.;

29.Методические указания по дипломному проектированию для МГСУ, специальности «Автоматизированные системы обработки информации и управления» 220 200. М., 2002. — 76 с.;

30.Новомлинский Л. Электронная коммерция. Решения компании TopS. // www.topsbi.ru, 1998;

31.Нольден М. Ваш первый выход в Internet: Для начинающих пользователей Internet и широкого круга пользователей PC / Под ред. Е. В. Кондукова; Перевод с немецкого К. А. Шиндер. — Спб.: ИКС, 2002. — 238 с.;

32.Рейлли Б. Эскиз электронного магазина. // www.osp.ru, 2000;

33.Стерн М., Монти Г., Бэчман В. Сети предприятий на основе Windows NT. — СПб.: Питер, 1999. — 448 с.;

34.Томсон Л., Веллинг Л. Разработка Web-приложений на PHP и MySQL. — СПб.: ДиасофтЮП, 2003. — 672 с.;

35.Фролов А. В., Фролов Г. В. Глобальные сети компьютеров. Практическое введение в Internet, E-mail, FTP, WWW, и HTML, программирование для Windiws Sockets. — М.: Диалог — МИФИ, 2003. — 283 c.;

36.Хансен Г., Хансен Д. Базы данных: разработка и управление. — М.: Бином, 2000. — 525 c.;

37.Хоникат Д. Internet Windows 2000: Руководство пользователя / Перевод с английского В. М. Неклюдовой. — М.: БИНОМ, 2003. — 334 с.;

38.Cheswick W.R., Bellovin S.M. Firewalls and Internet Security: Repelling the Wily Hacker. — Addison-Wesley, 2002. — 275 c.;

39.An Introduction to Computer Security: The NIST Handbook. Draft. — National Institute of Standards and Technology, Technology Administration, U.S. Department of Commerce, 2001. — 310 c.;

40.E-Commerce.ru, Программный комплекс управления Интернет-магазином. // www. e-commerce.ru, 2003.

Приложения

unit Unit1;

interface

uses

Windows, SysUtils, Graphics, Classes, Controls, Forms,

Dialogs, ImgList, IdGlobal, Menus, ComCtrls, StdCtrls, Buttons,

Masks;

type

First_Or_Second = (First, Second);

TwoPanels = record

road: string;

nDir, nfiles: integer;

fkbyte: integer;

numSort: byte

end;

TForm1 = class (TForm)

ListView1: TListView;

Edit1: TEdit;

ListView2: TListView;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

StatusBar1: TStatusBar;

ImageList1: TImageList;

OpenDialog1: TOpenDialog;

PopupMenu1: TPopupMenu;

Characteristic: TMenuItem;

PopupRazd: TMenuItem;

GoOut: TMenuItem;

MainMenu1: TMainMenu;

MenuFile: TMenuItem;

MenuAttr: TMenuItem;

Razd1: TMenuItem;

MenuF2: TMenuItem;

MenuF3: TMenuItem;

MenuF4: TMenuItem;

MenuF5: TMenuItem;

MenuF6: TMenuItem;

MenuF7: TMenuItem;

MenuF8: TMenuItem;

Razd2: TMenuItem;

MenuExit: TMenuItem;

MenuSelect: TMenuItem;

MenuSelectAll: TMenuItem;

MenuSelectInvert: TMenuItem;

MenuComand: TMenuItem;

MenuMemory: TMenuItem;

MenuWorkWindows: TMenuItem;

Razd3: TMenuItem;

MenuCascadno: TMenuItem;

MenuSvernutOkna: TMenuItem;

MenuUpdateDesctop: TMenuItem;

MenuRebootExsplorer: TMenuItem;

Razd4: TMenuItem;

MenuControlPanel: TMenuItem;

MenuDisplayProperties: TMenuItem;

Razd5: TMenuItem;

MenuCopyDiskA: TMenuItem;

MenuFormatA: TMenuItem;

Razd6: TMenuItem;

MenuBistroExitWindows: TMenuItem;

MenuCloseSeans: TMenuItem;

MenuPowerOff: TMenuItem;

MenuHelp: TMenuItem;

SpeedButton1: TSpeedButton;

Label5: TLabel;

Label6: TLabel;

Memo1: TMemo;

procedure FormCreate (Sender: TObject);

procedure AddNewFile (F: TSearchRec; var ListView: TListView);

procedure ShowDirectory (road: string; var ListView: TListView);

procedure ListView0Compare (Item1, Item2: TListItem; var Compare: Integer; n: byte);

procedure Edit1KeyDown (Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure ListViewKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);

procedure ListViewClick (Sender: TObject);

procedure ListView0DblClick (var road: string; var ListView: TListView);

procedure ListViewCompare (Sender: TObject; Item1, Item2: TListItem;

Data: Integer; var Compare: Integer);

procedure ListViewColumnClick (Sender: TObject; Column: TListColumn);

procedure ListViewDblClick (Sender: TObject);

procedure ComboBoxDropDown (Sender: TObject);

procedure ComboBoxCloseUp (Sender: TObject);

procedure FormMouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure CharacteristicClick (Sender: TObject);

procedure GoOutClick (Sender: TObject);

procedure ListViewMouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure MenuF2Click (Sender: TObject);

procedure MenuF3Click (Sender: TObject);

procedure MenuF4Click (Sender: TObject);

procedure MenuF5Click (Sender: TObject);

procedure MenuF6Click (Sender: TObject);

procedure MenuF7Click (Sender: TObject);

procedure MenuF8Click (Sender: TObject);

procedure MenuSelectAllClick (Sender: TObject);

procedure MenuSelectInvertClick (Sender: TObject);

procedure MenuMemoryClick (Sender: TObject);

procedure MenuWorkWindowsClick (Sender: TObject);

procedure MenuCascadnoClick (Sender: TObject);

procedure MenuSvernutOknaClick (Sender: TObject);

procedure MenuUpdateDesctopClick (Sender: TObject);

procedure MenuRebootExsplorerClick (Sender: TObject);

procedure MenuControlPanelClick (Sender: TObject);

procedure MenuDisplayPropertiesClick (Sender: TObject);

procedure MenuCopyDiskAClick (Sender: TObject);

procedure MenuFormatAClick (Sender: TObject);

procedure MenuBistroExitWindowsClick (Sender: TObject);

procedure MenuCloseSeansClick (Sender: TObject);

procedure MenuPowerOffClick (Sender: TObject);

procedure MenuHelpClick (Sender: TObject);

procedure SpeedButton1Click (Sender: TObject);

procedure Memo1DblClick (Sender: TObject);

end;

var

Form1: TForm1;

Chesked_1Or2: First_Or_Second;

FirstP, SecondP: TwoPanels;

implementation

{$R *.dfm}

procedure FindFiles (Path, Mask: string; var List: TStrings; IncludeSubDir: Boolean = True);

var

SearchRec: TSearchRec;

FindResult: Integer;

begin

List.BeginUpdate;

try

Path:=IncludeTrailingBackSlash (Path);

FindResult:=FindFirst (Path+'*.*', faAnyFile, SearchRec);

try

while FindResult = 0 do with SearchRec do begin

if (Attr and faDirectory<>0) then begin

if IncludeSubDir and (Name<>'.') and (Name<>'.')

then FindFiles (Path+Name, Mask, List, IncludeSubDir);

end

else begin

if MatchesMask (Name, Mask) then List. Add (Path+Name);

end;

FindResult:=FindNext (SearchRec);

end;

finally

FindClose (SearchRec);

end;

finally

List.EndUpdate;

end;

end;

function MyWinExec (FileName: String; Visibility: integer = SW_SHOWDEFAULT): boolean;

var

zAppName:array[0.512] of char;

StartupInfo:TStartupInfo;

ProcessInfo:TProcessInformation;

begin

StrPCopy (zAppName, FileName);

FillChar (StartupInfo, Sizeof (StartupInfo),#0);

StartupInfo.cb := Sizeof (StartupInfo);

StartupInfo.dwFlags := STARTF_USESHOWWINDOW;

StartupInfo.wShowWindow := Visibility;

result := CreateProcess (nil,

zAppName, { указатель командной строки }

nil, { указатель на процесс атрибутов безопасности }

nil, { указатель на поток атрибутов безопасности }

false, { флаг родительского обработчика }

CREATE_NEW_CONSOLE or { флаг создания }

NORMAL_PRIORITY_CLASS,

nil, { указатель на новую среду процесса }

nil, { указатель на имя текущей директории }

StartupInfo, { указатель на STARTUPINFO }

ProcessInfo) { указатель на PROCESS_INF }

end;

procedure TForm1. FormCreate (Sender: TObject);

var i: integer;

procedure CreateColumn (var ListView: TListView);

var

NewColumn: TListColumn;

begin

with ListView do begin

ViewStyle := vsReport;

NewColumn := Columns. Add;

NewColumn.Caption := 'Название';

NewColumn := Columns. Add;

NewColumn.Caption := 'Расш.';

NewColumn := Columns. Add;

NewColumn.Caption := 'Размер, б';

NewColumn := Columns. Add;

NewColumn.Caption := 'Дата создания';

NewColumn := Columns. Add;

NewColumn.Caption := 'Скрытый';

NewColumn := Columns. Add;

NewColumn.Caption := 'Сист.';

Columns[0]. Width := 120;

Columns[1]. Width := 45;

Columns[2]. Width := 80;

Columns[3]. Width := 100;

Columns[4]. Width := 58;

Columns[5]. Width := 40;

end

end;

begin

CreateColumn (ListView1);

CreateColumn (ListView2);

SecondP.road := GetCurrentDir;

SecondP.numSort := 0;

Chesked_1Or2 := Second;

ShowDirectory (SecondP.road, ListView2);

ListView2.Items[0]. Selected := true;

FirstP.road := 'C:';

FirstP.numSort := 0;

Chesked_1Or2 := First;

ShowDirectory (FirstP.road, ListView1);

ListView1.Items[0]. Selected := true;

for i := 0 to 7 do begin

StatusBar1.Panels.Add;

StatusBar1.Panels[i]. Width := form1. Width div 8;

StatusBar1.Panels[i]. Bevel := pbRaised;

StatusBar1.Panels[i]. Alignment := taCenter;

end;

StatusBar1.Panels.Items[0]. Text := 'F1 — Помощь';

StatusBar1.Panels.Items[1]. Text := 'F2 — Переимен.';

StatusBar1.Panels.Items[2]. Text := 'F3 — Найти файл';

StatusBar1.Panels.Items[3]. Text := 'F4 — Редактир.';

StatusBar1.Panels.Items[4]. Text := 'F5 — Копировать';

StatusBar1.Panels.Items[5]. Text := 'F6 — Переместить';

StatusBar1.Panels.Items[6]. Text := 'F7 — Созд. кат.';

StatusBar1.Panels.Items[7]. Text := 'F8 — Удалить';

end;

procedure TForm1. AddNewFile (F: TSearchRec; var ListView: TListView);

var i: integer;

ext: string;

begin

if F.Name <> '.' then

with ListView.Items.Add, F do begin

if (Attr and faDirectory) <> 0 then begin

Caption := AnsiUpperCase (Name);

SubItems.Add ('');

ImageIndex := 0;

SubItems.Add ('Папка')

end

else begin

Name := AnsiLowerCase (Name);

ext := ExtractFileExt (Name);

i := pos (ext, Name);

if i = 0 then Caption := Name

else begin

Caption := copy (Name, 1, i-1);

ext := copy (ext, 2, length (ext)-1)

end;

SubItems.Add (ext);

if (ext = 'bmp')or (ext = 'jpg')or (ext = 'jpeg')or (ext = 'gif') then ImageIndex := else

if (ext = 'txt')or (ext = 'doc')or (ext = 'log') then ImageIndex := 2

else

if (ext = 'exe')or (ext = 'com')or (ext = 'bat') then ImageIndex := 3

else

if (ext = 'ini')or (ext = 'dll')or (ext = 'sys') then ImageIndex := 4

else ImageIndex := 5;

SubItems.Add (IntToStr (Size))

end;

SubItems.Add (DateTimeToStr (FileDateToDateTime (Time)));

if (Attr and faHidden) <> 0 then SubItems. Add ('Да')

else SubItems. Add ('Нет');

if (Attr and faSysFile) <> 0 then SubItems. Add ('Да')

else SubItems. Add ('Нет')

end

end;

procedure TForm1. ShowDirectory (road: string; var ListView: TListView);

var

F: TSearchRec;

numD, numF, filesize: integer;

begin

ListView.Clear;

numD := 0;

numF := 0;

filesize := 0;

if FindFirst (road+'*.*', faAnyFile, F) = 0 then begin

repeat

AddNewFile (F, ListView);

if (F.Attr and faDirectory) <> 0 then begin

if (F.Name<>'.')and (F.Name<>'.') then inc (numD)

end

else begin

inc (numF);

inc (filesize, round (F.Size/1000))

end

until FindNext (F) <> 0;

ListView.AlphaSort;

ListView.ItemIndex := 0

end;

FindClose (F);

if Chesked_1Or2 = First then begin

label3.Caption := road;

label5.Caption := 'Папок '+IntToStr (numD)+' В '+IntToStr (numF)+' файлах — '+IntToStr (filesize)+' Kб'

end

else begin

label4.Caption := road;

label6.Caption := 'Папок '+IntToStr (numD)+' В '+IntToStr (numF)+' файлах — '+IntToStr (filesize)+' Kб'

end

end;

procedure TForm1. ListView0Compare (Item1, Item2: TListItem; var Compare: Integer; n: byte);

label repeatCase;

begin

if ((Item1.ImageIndex=Item2.ImageIndex)and (Item1.ImageIndex=0))or

((Item1.ImageIndex<>0)and (Item2.ImageIndex<>0)) then

repeatCase :

case n of

0: if Item1. Caption = Item2. Caption then begin

n := 1; goto repeatCase

end

else

if Item1. Caption < Item2. Caption then Compare := -1

{Название} else Compare := +1;

1: if Item1. SubItems[0] = Item2. SubItems[0] then begin

n := 0; goto repeatCase

end

else

if Item1. SubItems[0] < Item2. SubItems[0] then Compare := -1

{Расш.} else Compare := +1;

2: if Item1. SubItems[1] = Item2. SubItems[1] then begin

n := 0; goto repeatCase

end

else

if Item1. ImageIndex<>0 then begin

if (StrToInt (Item1.SubItems[1]) < StrToInt (Item2.SubItems[1])) then Compare := -1

{Размер, б} else Compare := +1

end;

3: if Item1. SubItems[2] = Item2. SubItems[2] then begin

n := 0; goto repeatCase

end

else

if DateTimeToFileDate (StrToDateTime (Item1.SubItems[2])) < DateTimeToFileDate (StrToDateTime (Item2.SubItems[2])) then Compare := -1

{Дата создания} else Compare := +1;

4: if Item1. SubItems[3] = Item2. SubItems[3] then begin

n := 0; goto repeatCase

end

else

if Item1. SubItems[3] < Item2. SubItems[3] then Compare := -1

{Скрытый} else Compare := +1;

5: if Item1. SubItems[4] = Item2. SubItems[4] then begin

n := 0; goto repeatCase

end

else

if Item1. SubItems[4] < Item2. SubItems[4] then Compare := -1

{Сист.} else Compare := +1;

end{case}

else

if Item1. ImageIndex

else Compare := +1

end;

procedure TForm1. Edit1KeyDown (Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if key = 13 then begin

if FileExists (Edit1.Text) then begin

if not MyWinExec (Edit1.Text) then ShowMessage ('Ошибка выполнения программы!')

end

else

if DirectoryExists (Edit1.Text) then

if Chesked_1Or2 = First then begin

FirstP.road := Edit1. Text;

ShowDirectory (FirstP.road, ListView1)

end

else begin

SecondP.road := Edit1. Text;

ShowDirectory (SecondP.road, ListView2)

end

else ShowMessage ('Файл или папка не найдены!')

end

end;

function CopyDir (from, into: String): boolean;

var

F: TSearchRec;

begin

into := into+''+ExtractFileName (from);

result := ForceDirectories (into); //MkDir

FindFirst (from+'*.*', faAnyFile, F);

FindNext (F);

while FindNext (F) = 0 do

if (F.Attr and faDirectory)<>0 then CopyDir (from+''+F.Name, into)

else copyFileTo (from+''+F.Name, into+''+F.Name);

FindClose (F)

end;

function RemoveTree (dir: String): boolean;

var

F: TSearchRec;

begin

FindFirst (dir+'*.*', faAnyFile, F);

FindNext (F);

while FindNext (F) = 0 do

if (F.Attr and faDirectory)<>0 then RemoveTree (dir+''+F.Name)

else DeleteFile (dir+''+F.Name);

FindClose (F);

result := RemoveDir (dir)

end;

procedure TForm1. ListViewKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);

var

road, filename, road2: string;

ListView: TListView;

Item: TListItem;

List: TStrings;

begin

case Key of

192: if Chesked_1Or2 = First then begin

ListView2.SetFocus;

ListViewClick (ListView2)

end

else begin

ListView1.SetFocus;

ListViewClick (ListView1)

end;

13: ListViewDblClick (Sender);

112: ShowMessage ('Программy составили студенты МГСУ'+#13#10+

'факультета АиИТ (АСУ):'+#13#10+

' Рашидов Р.'+#13#10+

' Зотов Т.'+#13#10+

' Троицкий А.'); //F1 — Помощь

46,113.119: begin

if Chesked_1Or2 = First then begin

road := FirstP. road;

ListView := ListView1

end

else begin

road := SecondP. road;

ListView := ListView2

end;

Item := ListView. Items[ListView.ItemIndex];

case Key of

113: if Item <> nil then begin //F2 — Переимен.

filename := Item. Caption;

if Item. ImageIndex<>0 then begin

if Item. SubItems[0]<>'' then filename := filename+'.'+Item.SubItems[0];

if RenameFile (road+''+filename, road+''+InputBox ('Переименовать…','Файл '+filename+' в', filename)) then ShowDirectory (road, ListView)

else ShowMessage ('Невозможно переименовать файл')

end

else

if Item. Caption<>'.' then

if RenameFile (road+''+filename, road+''+InputBox ('Переименовать…','Директорию '+filename+' в', filename)) then ShowDirectory (road, ListView)

else ShowMessage ('Невозможно переименовать каталог')

end;

114: begin

repeat

if not InputQuery ('Найти…','Введите имя или маску икомого файла', filename) then exit//F3 — Найти

until InputQuery ('Найти. .','Введите каталог, где будет вестись поиск', road);

Memo1.Show;

Memo1.ShowHint := true;

List := Memo1. Lines;

FindFiles (road, filename, List);

if List. Count > 1 then List. Delete (0);

end;

115: while Item <> nil do begin//F4 — Редактир.

if Item. ImageIndex<>0 then

if Item. SubItems[0] = '' then

MyWinExec ('C:WINDOWSNOTEPAD.EXE '+road+''+Item.Caption)

else

MyWinExec ('C:WINDOWSNOTEPAD.EXE '+road+''+Item.Caption+'.'+Item.SubItems[0]);

Item := ListView. GetNextItem (Item, sdAll, [isSelected])

end;

116: if Item <> nil then begin//F5 — Копировать

if Chesked_1Or2 = First then road2 := SecondP. road

else road2 := FirstP. road;

if InputQuery ('Копировать…','Куда…', road2) then

repeat

filename := Item. Caption;

if Item. ImageIndex<>0 then begin

if Item. SubItems[0]<>'' then filename := filename+'.'+Item.SubItems[0];

if not copyFileTo (road+''+filename, road2+''+filename) then showMessage ('Не удалось скопировать '+filename)

end

else begin

copyDir (road+''+filename, road2)

end;

Item := ListView. GetNextItem (Item, sdAll, [isSelected])

until Item = nil;

if Chesked_1Or2 = First then begin

ListViewClick (ListView2);

ShowDirectory (SecondP.road, ListView2);

ListViewClick (ListView1)

end

else begin

ListViewClick (ListView1);

ShowDirectory (FirstP.road, ListView1);

ListViewClick (ListView2)

end

end;

117: if ((Item <> nil) and (Item.Caption<>'.'))or (ListView.SelCount>1) then begin

if Chesked_1Or2 = First then road2 := SecondP. road

else road2 := FirstP. road;

if InputQuery ('Comander','Переместить в …', road2) then begin

repeat

if Item. Caption<>'.' then begin

filename := Item. Caption;

if (Item.ImageIndex<>0)and (Item.SubItems[0]<>'') then filename := filename+'.'+Item.SubItems[0];

if road[1]<>road2[1] then

if Item. ImageIndex=0 then begin

if copyDir (road+''+filename, road2) then

if not RemoveTree (road+''+filename) then showMessage ('Hе удаётся удалить каталог '+filename)

end

else begin

if CopyFileTo (road+''+filename, road2+''+filename) then

if not DeleteFile (road+''+filename) then showMessage ('Hе удаётся удалить файл '+filename)

end

else

if not RenameFile (road+''+filename, road2+''+filename) then ShowMessage ('Невозможно переместить файл/каталог: '+filename)

end;

Item := ListView. GetNextItem (Item, sdAll, [isSelected])

until Item = nil;

if Chesked_1Or2 = First then begin

ShowDirectory (FirstP.road, ListView1);

Chesked_1Or2 := Second;

ShowDirectory (SecondP.road, ListView2);

Chesked_1Or2 := First

end

else begin

Chesked_1Or2 := First;

ShowDirectory (FirstP.road, ListView1);

Chesked_1Or2 := Second;

ShowDirectory (SecondP.road, ListView2)

end

end

end;

118: if InputQuery ('Comander','Новая директория', road2) then//F7 — Созд. кат.

if ForceDirectories (road+''+road2) then ShowDirectory (road, ListView)

else ShowMessage ('Невозможно создать каталог (и)');

46,119: if Item <> nil then begin //F8 — Удалить

if ListView. SelCount = 1 then begin//выделен 1 файл

if Item. Caption<>'.' then

if Item. ImageIndex = 0 then begin//папка

if Application. MessageBox (PChar ('Вы Уверены,'+#13#10+'что хотите удалить каталог '+Item.Caption+'?'),'Удаление…', MB_OkCancel)=1 then

if not RemoveTree (road+''+Item.Caption) then ShowMessage ('Hевозможно удалить каталог '+Item.Caption)

end

else begin//файл

filename := Item. Caption;

if Item. SubItems[0]<>'' then filename := filename+'.'+Item.SubItems[0];

if Application. MessageBox (PChar ('Вы Уверены,'+#13#10+'что хотите удалить файл '+filename+'?'),'Удаление…', MB_OkCancel)=1 then

if not DeleteFile (road+''+filename) then ShowMessage ('невозможно удалить файл '+filename)

end

end

else //выделено несколько файлов

if Application. MessageBox (PChar ('Вы Уверены,'+#13#10+'что хотите удалить '+IntToStr (ListView.SelCount)+' файлов (а) ?'),'Удаление…', MB_OkCancel)=1 then

repeat

if Item. Caption<>'.' then

if Item. ImageIndex = 0 then begin//папка

if not RemoveTree (road+''+Item.Caption) then ShowMessage ('Hевозможно удалить каталог '+Item.Caption)

end

else begin//файл

filename := Item. Caption;

if Item. SubItems[0]<>'' then filename := filename+'.'+Item.SubItems[0];

if not DeleteFile (road+''+filename) then ShowMessage ('невозможно удалить файл '+filename)

end;

Item := ListView. GetNextItem (Item, sdAll, [isSelected])

until Item = nil;

showDirectory (road, ListView)

end //Удалить заканчивается

end{case}

end

end{case}

end;

procedure TForm1. ListViewClick (Sender: TObject);

begin

if Sender = ListView1 then begin

ListView2.Color := clScrollBar;

ListView1.Color := clWindow;

Chesked_1Or2 := First

end

else begin

ListView1.Color := clScrollBar;

ListView2.Color := clWindow;

Chesked_1Or2 := Second

end

end;

procedure TForm1. ListView0DblClick (var road: string; var ListView: TListView);

var i: integer; Item: TListItem;

begin

if ListView. Items[ListView.ItemIndex]. ImageIndex = 0 then {directory}

if ListView. Items[ListView.ItemIndex]. Caption = '.' then begin

i := length (road);

while road[i]<>'' do dec (i);

road := copy (road, 1, i-1);

ShowDirectory (road, ListView)

end

else begin

road := road+''+ListView.Items[ListView.ItemIndex]. Caption;

ShowDirectory (road, ListView)

end

else begin{Любой файл}

Item := ListView. Items[ListView.ItemIndex];

with Item do

while Item<>nil do begin

if (SubItems[0] = 'exe')or (SubItems[0] = 'bat')or (SubItems[0] = 'com') then

MyWinExec (road+''+Caption+'.'+SubItems[0])

else

if (SubItems[0] = 'txt')or (SubItems[0] = 'log')or (SubItems[0] = 'ini')or (SubItems[0] = 'doc') then

MyWinExec ('C:WINDOWSNOTEPAD.EXE '+road+''+Caption+'.'+SubItems[0])

else

if (SubItems[0] = 'bmp')or (SubItems[0] = 'jpg') then

MyWinExec ('C:WINDOWSpbrush.EXE '+road+''+Caption+'.'+SubItems[0])

else

if (SubItems[0] = 'gif')or (SubItems[0] = 'jpeg')or (SubItems[0] = 'htm')or (SubItems[0] = 'html') then

MyWinExec ('C:Program FilesInternet ExplorerIEXPLORE. EXE '+road+''+Caption+'.'+SubItems[0])

else begin

OpenDialog1.Filter := 'Приложения (*.ехе)|*.exe';

OpenDialog1.InitialDir := 'C:Windows';

OpenDialog1.Title := 'Файл '+Caption+'.'+SubItems[0]+' открыть с помощью…';

if OpenDialog1. Execute then

if SubItems[0] = '' then

MyWinExec (OpenDialog1.FileName+' '+road+''+Caption)

else

MyWinExec (OpenDialog1.FileName+' '+road+''+Caption+'.'+SubItems[0])

end;

Item := ListView. GetNextItem (Item, sdAll, [isSelected])

end

end

end;

procedure TForm1. ListViewCompare (Sender: TObject; Item1, Item2: TListItem;

Data: Integer; var Compare: Integer);

begin

if Sender = ListView1 then ListView0Compare (Item1, Item2, Compare, FirstP. numSort)

else ListView0Compare (Item1, Item2, Compare, SecondP. numSort)

end;

procedure TForm1. ListViewColumnClick (Sender: TObject;

Column: TListColumn);

begin

if Sender = ListView1 then begin

if Column. Caption = 'Название' then FirstP. numSort := 0

else

if Column. Caption = 'Расш.' then FirstP. numSort := 1

else

if Column. Caption = 'Размер, б' then FirstP. numSort := 2

else

if Column. Caption = 'Дата создания' then FirstP. numSort := 3

else

if Column. Caption = 'Скрытый' then FirstP. numSort := 4

else FirstP. numSort := 5;

ListView1.AlphaSort

end

else begin

if Column. Caption = 'Название' then SecondP. numSort := 0

else

if Column. Caption = 'Расш.' then SecondP. numSort := 1

else

if Column. Caption = 'Размер, б' then SecondP. numSort := 2

else

if Column. Caption = 'Дата создания' then SecondP. numSort := 3

else

if Column. Caption = 'Скрытый' then SecondP. numSort := 4

else SecondP. numSort := 5;

ListView2.AlphaSort

end

end;

procedure TForm1. ListViewDblClick (Sender: TObject);

begin

if Sender = ListView1 then begin

if ListView1. ItemIndex >= 0 then ListView0DblClick (FirstP.road, ListView1)

end

else begin

if ListView2. ItemIndex >= 0 then ListView0DblClick (SecondP.road, ListView2)

end

end;

procedure TForm1. ComboBoxDropDown (Sender: TObject);

var disk: char;

ComboBox: TComboBox;

begin

if Sender = ComboBox1 then ComboBox := ComboBox1

else ComboBox := ComboBox2;

ComboBox.Clear;

try

if DirectoryExists ('A:') then ComboBox. AddItem ('A:', nil);

if DirectoryExists ('B:') then ComboBox. AddItem ('B:', nil);

for disk := 'C' to 'Z' do

if DirectoryExists (disk+':') then ComboBox. AddItem (disk+':', nil)

finally

end

{disk := 'C';

while DirectoryExists (disk+':') do begin

ComboBox.AddItem (disk+':', nil);

inc (Byte (disk))

end}

end;

procedure TForm1. ComboBoxCloseUp (Sender: TObject);

begin

if Sender = ComboBox1 then begin

ListViewClick (ListView1);

if ComboBox1. Items[ComboBox1.Itemindex] <> '' then FirstP. road := ComboBox1. Items[ComboBox1.Itemindex];

ShowDirectory (FirstP.road, ListView1)

end

else begin

ListViewClick (ListView2);

if ComboBox2. Items[ComboBox2.Itemindex] <> '' then SecondP. road := ComboBox2. Items[ComboBox2.Itemindex];

ShowDirectory (SecondP.road, ListView2)

end

end;

procedure TForm1. FormMouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var p: TPoint;

begin

if Button = mbRight then begin

p := GetClientOrigin;

if Sender is TListView then PopupMenu1. Items[0]. Enabled := True

else PopupMenu1. Items[0]. Enabled := False;

PopupMenu1.Popup (p.X+X, p. Y+Y)

end;

end;

function InputD (Namef: string): boolean;

var

Form: TForm;

Prompt: TLabel;

CheckBox: array [0.3] of TCheckBox;

ButtonOk, ButtonCansel: TButton;

i, attr: integer;

begin

result := false;

Form := TForm. Create (Application);

attr := FileGetAttr (Namef);

with Form do

try

Canvas.Font := Font; BorderStyle := bsDialog;

Caption := 'Свойства'; ClientWidth := 250;

ClientHeight := 150; Position := poScreenCenter;

Prompt := TLabel. Create (Form);

with Prompt do begin

Parent := Form;

Constraints.MaxWidth := form. Width;

Caption := ExtractFileName (Namef);

Left := (Form.Width — Prompt. Width) shr 1;

Top := 1

end;

for i := 0 to 3 do begin

CheckBox[i] := TCheckBox. Create (Form);

with CheckBox[i] do begin

Parent := Form; Left := 5; Top := 20+i*20

end

end;

CheckBox[0]. Caption := 'Только чтение';

CheckBox[1]. Caption := 'Скрытый';

CheckBox[2]. Caption := 'Системный';

CheckBox[3]. Caption := 'Архивный';

ButtonOk := TButton. Create (Form);

with ButtonOk do begin

Parent := Form;

Caption := 'Ok';

ModalResult := mrOk;

Default := True;

SetBounds (35,form.Height-60,75,25)

end;

ButtonCansel := TButton. Create (Form);

with ButtonCansel do begin

Parent := Form;

Caption := 'Cansel';

ModalResult := mrCancel;

Cancel := True;

SetBounds (form.Width-110,form.Height-60,75,25)

end;

if attr and faReadOnly <> 0 then CheckBox[0]. Checked := true;

if attr and faHidden <> 0 then CheckBox[1]. Checked := true;

if attr and faSysFile <> 0 then CheckBox[2]. Checked := true;

if attr and faArchive <> 0 then CheckBox[3]. Checked := true;

if ShowModal = mrOk then begin

if CheckBox[0]. Checked then attr := attr or faReadOnly

else attr := attr and not faReadOnly;

if CheckBox[1]. Checked then attr := attr or faHidden

else attr := attr and not faHidden;

if CheckBox[2]. Checked then attr := attr or faSysFile

else attr := attr and not faSysFile;

if CheckBox[3]. Checked then attr := attr or faArchive

else attr := attr and not faArchive;

if FileSetAttr (Namef, attr) = 0 then Result := True

end;

finally

Form.Free

end

end;

procedure TForm1. CharacteristicClick (Sender: TObject);

var ListView: TListView;

filename: string;

begin

if Chesked_1Or2 = First then begin

filename := FirstP. road;

ListView := ListView1

end

else begin

filename := SecondP. road;

ListView := ListView2

end;

if (ListView.SelCount<>0)and (ListView.Items[ListView.ItemIndex]. Caption<>'.') then begin

filename := filename+''+ListView.Items[ListView.ItemIndex]. Caption;

if ListView. Items[ListView.ItemIndex]. ImageIndex<>0 then

if ListView. Items[ListView.ItemIndex]. SubItems[0]<>'' then filename := filename+'.'+ListView.Items[ListView.ItemIndex]. SubItems[0];

InputD (filename)

end

end;

procedure TForm1. GoOutClick (Sender: TObject);

begin

if CloseQuery then Close

end;

procedure TForm1. ListViewMouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if Sender = ListView1 then FormMouseUp (Sender, Button, Shift, X, Y+ListView1.Top)

else FormMouseUp (Sender, Button, Shift, X+ListView2.Left, Y+ListView2.Top)

end;

procedure TForm1. MenuF2Click (Sender: TObject);

var Key: word;

begin

Key := 113;

ListViewKeyDown (Sender, Key,[ssLeft])

end;

procedure TForm1. MenuF3Click (Sender: TObject);

var Key: word;

begin

Key := 114;

ListViewKeyDown (Sender, Key,[ssLeft])

end;

procedure TForm1. MenuF4Click (Sender: TObject);

var Key: word;

begin

Key := 115;

ListViewKeyDown (Sender, Key,[ssLeft])

end;

procedure TForm1. MenuF5Click (Sender: TObject);

var Key: word;

begin

Key := 116;

ListViewKeyDown (Sender, Key,[ssLeft])

end;

procedure TForm1. MenuF6Click (Sender: TObject);

var Key: word;

begin

Key := 117;

ListViewKeyDown (Sender, Key,[ssLeft])

end;

procedure TForm1. MenuF7Click (Sender: TObject);

var Key: word;

begin

Key := 118;

ListViewKeyDown (Sender, Key,[ssLeft])

end;

procedure TForm1. MenuF8Click (Sender: TObject);

var Key: word;

begin

Key := 119;

ListViewKeyDown (Sender, Key,[ssLeft])

end;

TForm1.MenuSelectAllClick (Sender: TObject);

begin

if Chesked_1Or2 = First then ListView1. SelectAll

else ListView2. SelectAll

end;

procedure TForm1. MenuSelectInvertClick (Sender: TObject);

var ListView: TListView;

Item: TListItem;

begin

if Chesked_1Or2 = First then ListView := ListView1

else ListView := ListView2;

Item := ListView. Items[0];

while Item <> nil do begin

Item.Selected := not Item. Selected;

Item := ListView. GetNextItem (Item, sdAll, [isNone])

end

end;

procedure TForm1. MenuMemoryClick (Sender: TObject);

var Status: TMemoryStatus;

Form: TForm;

Labels: array [0.6] of TLabel;

Button: TButton;

i: integer;

begin

Status.dwLength := sizeof (TMemoryStatus);

GlobalMemoryStatus (Status);

Form := TForm. Create (Application);

with Form do

try

Canvas.Font := Font;

BorderStyle := bsDialog;

Caption := 'Вся Память';

ClientWidth := 350;

ClientHeight := 180;

Position := poScreenCenter;

for i := 0 to 6 do begin

Labels[i] := TLabel. Create (Form);

with Labels[i] do begin

Parent := Form;

Top := 5 + i*20

end

end;

labels[0]. Caption := 'Количество используемой памяти в процентах (%) '+IntToStr (Status.dwMemoryLoad);

labels[1]. Caption := 'Общее количество физической памяти '+IntToStr (Status.dwTotalPhys shr 10)+' Кб';

labels[2]. Caption := 'Количество оставшейся физической памяти '+IntToStr (Status.dwAvailPhys shr 10)+' Кб';

labels[3]. Caption := 'Объём страничного файла '+IntToStr (Status.dwTotalPageFile shr 10)+' Кб'#13#10;

labels[4]. Caption := 'Свободного места в страничном файле '+IntToStr (Status.dwAvailPageFile shr 10)+' Кб';

labels[5]. Caption := 'Общий объём виртуальной памяти '+IntToStr (Status.dwTotalVirtual shr 10)+' Кб';

labels[6]. Caption := 'Количество свободной виртуальной памяти '+IntToStr (Status.dwAvailVirtual shr 10)+' Кб.';

for i := 0 to 6 do labels[i]. Left := (Form.Width — Labels[i]. Width) shr 1;

Button := TButton. Create (Form);

with Button do begin

Parent := Form;

Caption := 'Ok';

ModalResult := mrOk;

Default := True;

SetBounds ((form.Width-Button.Width) shr 1, form. Height-60,75,25)

end;

ShowModal

finally

Form.Free

end

end;

procedure TForm1. MenuWorkWindowsClick (Sender: TObject);

begin

ShowMessage ('Windows уже работает'+ FormatDateTime (' h «ч.» n «м.» s «с.» ', GetTickCount/86 400 000))

end;

procedure TForm1. MenuCascadnoClick (Sender: TObject);

begin

MyWinExec ('rundll32 user, cascadechildwindows')

end;

procedure TForm1. MenuSvernutOknaClick (Sender: TObject);

begin

MyWinExec ('rundll32 user, tilechildwindows')

end;

procedure TForm1. MenuUpdateDesctopClick (Sender: TObject);

begin

MyWinExec ('rundll32 user, repaintscreen')

end;

procedure TForm1. MenuRebootExsplorerClick (Sender: TObject);

begin

MyWinExec ('rundll32 shell, shellexecute Explorer')

end;

procedure TForm1. MenuControlPanelClick (Sender: TObject);

begin

MyWinExec ('rundll32 shell32, Control_RunDLL')

end;

procedure TForm1. MenuDisplayPropertiesClick (Sender: TObject);

begin

MyWinExec ('rundll32 shell32, Control_RunDLL desk. cpl')

end;

procedure TForm1. MenuCopyDiskAClick (Sender: TObject);

begin

MyWinExec ('rundll32 diskcopy, DiskCopyRunDll')

end;

procedure TForm1. MenuFormatAClick (Sender: TObject);

begin

MyWinExec ('rundll32 shell32, SHFormatDrive')

end;

procedure TForm1. MenuBistroExitWindowsClick (Sender: TObject);

begin

MyWinExec ('rundll32 shell32, SHExitWindowsEx 2')

end;

procedure TForm1. MenuCloseSeansClick (Sender: TObject);

begin

MyWinExec ('rundll32 shell32, SHExitWindowsEx 0')

end;

procedure TForm1. MenuPowerOffClick (Sender: TObject);

begin

MyWinExec ('rundll32 shell32, SHExitWindowsEx 1')

end;

procedure TForm1. MenuHelpClick (Sender: TObject);

var Key: word;

begin

Key := 112;

ListViewKeyDown (Sender, Key,[ssLeft])

end;

procedure TForm1. SpeedButton1Click (Sender: TObject);

begin

if Chesked_1Or2 = First then showDirectory (FirstP.road, ListView1)

else showDirectory (SecondP.road, ListView2)

end;

procedure TForm1. Memo1DblClick (Sender: TObject);

begin

Memo1.Clear;

Memo1.Lines.Append ('Ничего не найдено.');

Memo1.ShowHint := false;

Memo1.Hide

end;

end.

program WinSock_Server;

{$APPTYPE CONSOLE}

uses

SysUtils,

Winsock,

Windows,

dialogs;

var

vWSAData: TWSAData;

vListenSocket, vSocket: TSocket;

vSockAddr: TSockAddr;

trId: THandle;

const

cPort = word (33);

cSigExit = 'q';

procedure SocketThread;

var SockName: TSockAddr;

aBuf: array of char;

vBuf: string;

vSize: integer;

s :TSocket;

BufSize: integer;

f: text;

begin

s := vSocket;

if s = INVALID_SOCKET then exit;

vSize := SizeOf (TSockAddr);

getpeername (s, SockName, vSize);

Writeln (format ('Client accepted, remote address [%s]. ',[inet_ntoa (SockName.sin_addr)]));

vSize := sizeOf (BufSize);

getsockopt (s, SOL_SOCKET, SO_RCVBUF, PChar (@BufSize), vSize);

writeln (format ('Receive buffer size [%d]',[BufSize]));

SetLength (aBuf, BufSize);

assignfile (f,'2.txt');

rewrite (f);

repeat

vSize := recv (s, aBuf[0], BufSize, 0);

if vSize<=0 then Break;

SetLength (vBuf, vSize);

lstrcpyn (@vBuf[1],@aBuf[0], vSize);

write (f, vBuf);

writeln (format ('Received from cleint: %s',[vBuf]));

until vBuf = 'q';

Writeln (format ('Client disconnected, remote address [%s]. ',[inet_ntoa (SockName.sin_addr)]));

SetLength (aBuf, 0);

closesocket (s);

closefile (f);

end;

begin

Writeln ('Starting application…');

if WSAStartup ($ 101,vWSAData)<>0 then Halt (1);

Writeln ('Using Windows Sockets.');

vListenSocket := socket (AF_INET, SOCK_STREAM, IPPROTO_IP);

Writeln (format ('Creating socket on port [%d]. ',[cPort]));

if vListenSocket = INVALID_SOCKET then Halt (1);

FillChar (vSockAddr, SizeOf (TSockAddr), 0);

vSockAddr.sin_family := AF_INET;

vSockAddr.sin_port := htons (cPort);

vSockAddr.sin_addr.S_addr := INADDR_ANY;

Writeln ('Binding socket…');

if bind (vListenSocket, vSockAddr, SizeOf (TSockAddr)) <> 0

then Halt (1);

if listen (vListenSocket, SOMAXCONN) <> 0

then Halt (1);

Writeln ('Socket status: listening.');

repeat

vSocket := accept (vListenSocket, nil, nil);

CreateThread (nil, 0,@SocketThread, 0,0,trId);

until false;

closesocket (vListenSocket);

WSACleanup;

end.

program WinSockC;

{$APPTYPE CONSOLE}

uses

SysUtils,

winsock,

dialogs;

const

cPort = 33;

var

vWSAData: TWSAData;

vSocket: TSocket;

vSockAddr: TSockAddr;

F: file;

NumRead: integer;

buf: array[1.2048] of Char;

begin

if WSAStartup ($ 101,vWSAData)<>0 then Halt (1);

vSocket := socket (AF_INET, SOCK_STREAM, IPPROTO_IP);

if vSocket = INVALID_SOCKET then Halt (1);

FillChar (vSockAddr, SizeOf (TSockAddr), 0);

vSockAddr.sin_family := AF_INET;

vSockAddr.sin_port := htons (cPort);

vSockAddr.sin_addr.S_addr := inet_addr ('127.0.0.1');

if connect (vSocket, vSockAddr, SizeOf (TSockAddr)) = SOCKET_ERROR then Halt (1);

AssignFile (f,'1.txt');

reset (f, 1);

repeat

BlockRead (f, Buf, SizeOf (Buf), NumRead);

if send (vSocket, buf[1], Length (buf)+1,0) = SOCKET_ERROR then Break;

until EOF (f);

closesocket (vSocket);

WSACleanup;

end.

Размещено на

Показать весь текст
Заполнить форму текущей работой