Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПОВМ_курсач_26 / 890541_Kalenchits_K_V_Poyasnitelnaya_zapiska.docx
Скачиваний:
2
Добавлен:
29.07.2022
Размер:
109.01 Кб
Скачать

3.3 Реализация модуля сбора данных

Модуль сбора данных о системных устройствах реализован в отдельном программном модуле языка С++. Заголовок модуля, как уже описывалось, содержит описание структуры USBDevice и прототип функции GetUSBDeviceList.

В реализации этого модуля содержится описание двух глобальных массивов. Массив props содержит значения типа DEVPROPKEY, которые описывают ключи характеристик описания устройств. Массив props_name содержит строки – текстовые описания этих характеристик. Также в этом модуле описана реализация функции GetUSBDeviceList.

Функция GetDeviceList является внешней функций модуля, так как она должна вызывать основным модулем, реализующим графический интерфейс. В эту функцию передается указатель на объект класса vector<USBDevice> содержащий список устройств, который нужно заполнить USB устройствами, информация о которых получена с помощью функций Win32 API. Ранее отмечалось, что для получения информации об устройствах в этом модуле используется системная библиотека SetupAPI. Сначала осуществляется вызов функции SetupDiGetClassDevs, которая формирует список устройств присутствующих в системе. Вызов этой функции осуществляется таким образом, чтобы в список попали только USB устройства. Для этого в первом параметре указывается стандартный класс USB устройств - GUID_DEVCLASS_USB. Далее все устройства в списке перечисляются в цикле с помощью функции SetupDiEnumDeviceInfo, которая возвращает заполненную структуру SP_DEVINFO_DATA, содержащую информацию об устройстве. Для каждого устройства запрашивается текстовое локализованное описание его класса с помощью функции SetupDiGetClassDescription. Далее для каждого устройства запрашивается его наименование (описание). Для этого с помощью функции SetupDiGetDeviceProperty считывается значение свойства с ключом DEVPKEY_NAME. Далее в цикле запрашиваются значения всех остальных стандартных свойств. На основе полученной информации заполняется переменная типа USBDevice, которая впоследствии заносится в результирующий список устройств.

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

4 Тестирование программного обеспечения

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

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

Заключение

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

Разработка программы велась на языке С++ в интегрированной среде разработки Qt.

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

Соседние файлы в папке СПОВМ_курсач_26