Разработка анализатора спектра ультразвукового сигнала

Автор работы: Пользователь скрыл имя, 17 Мая 2012 в 18:17, дипломная работа

Описание

Целью является расширить функциональные возможности ультразвукового акустического тракта «ТРАК», посредством разработки программного модуля, реализующего обмен данными с IBM PC и анализ спектра получаемого сигнала.

Содержание

Введение

1
Ультразвуковая дефектоскопия


1.1 Теневой метод ультразвуковой дефектоскопии


1.2 Эхо - импульсный метод ультразвуковой дефектоскопии


1.3 ''ТРАК'' Акустический модуль

2
Параллельный интерфейс: LPT-порт


2.1 Традиционный LPT-порт

3
Язык программирования - Delphi


3.1 Функциональные задачи при конструировании интерфейса


3.2 Разработка DLL в среде Borland Delphi

4
Теоретический анализ существующих алгоритмов спектрального анализа.


4.1 Задача спектрального оценивания


4.2 Преобразование Фурье


4.3 Быстрое преобразование Фурье


Заключение


Список использованных источников


Приложение А


Приложение Б


CD-диск

Работа состоит из  1 файл

диплом 22.06.doc

— 998.50 Кб (Скачать документ)

Рисунок 4 - Три панельные области.

 

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

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

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

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

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

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

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

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

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

 

3.1.3 Принцип проектирования: объект – действие

 

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

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

 

3.1.4 Удержание и сохранение информации

 

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

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

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

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

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

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

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

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

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

 

3.2 Разработка DLL в среде Borland Delphi

 

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

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

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

LoadCursor - функция Windows API, которая вызывается приложением из динамической библиотеки User 32.dll. Примером хранимых в динамической библиотеке ресурсов могут являться такие стандартные диалоги Windows, как диалог открытия файла, диалог печати или настройки принтера. Эти диалоги находятся в файле Comctl32.dll.

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

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

-во-первых, это повторное использование кода;

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

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

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

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

 

Программа 1

library MyFirstDLL;

uses

        SysUtils,

        Classes,

        Forms,

        Windows;

procedure HelloWorld(AForm : TForm);

        begin

                MessageBox(AForm.Handle, Hello world!',

                        DLL Message Box', MB_OK or MB_ICONEXCLAMATION);

        end;

exports

        HelloWorld;

 

begin

end.

 

Первое, на что следует обратить внимание, это ключевое слово library, находящееся вверху страницы. Library определяет этот модуль как модуль библиотеки DLL. Далее идет название библиотеки. В примере имеем дело с динамической библиотекой, содержащей единственную процедуру: HelloWorld. Причем обратим внимание, что данная процедура по структуре ничем не отличается от тех, которые помещаем в модули своих приложений. Ключевое слово exports сигнализирует компилятору о том, что перечисленные ниже функции и/или процедуры должны быть доступны из вызывающих приложений (т.е. они как бы "экспортируются" из библиотеки).

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

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

Описание и реализация процедур и функций, вызываемых в пределах текущей DLL, ничем не отличаются от их аналогов в обычных проектах-приложениях. Их специфика заключается лишь в том, что вызывающая программа не будет иметь к ним доступа. Она просто не будет ничего знать об их существования, так же, как одни классы ничего не знают о тех методах, которые описаны в секции private других классов. В дополнение к процедурам и функциям, DLL может содержать глобальные данные, доступ к которым разрешен для всех процедур и функций в библиотеке. Для 16-битных приложений эти данные существовали в единственном экземпляре независимо от количества загруженных в оперативную память программ, которые используют текущую библиотеку. Другими словами, если одна программа изменяет значение глобальной переменной a на 100, то для всех остальных приложений a будет значение 100. Для 32-битных приложений это не так. Теперь для каждого приложения создается отдельная копия глобальной области данных.

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