Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Збірник.doc
Скачиваний:
9
Добавлен:
12.11.2019
Размер:
1.97 Mб
Скачать

Лабораторна робота №12

Тема: «Підключення периферійних пристроїв до універсального порту USB»

Мета роботи: Розробити бібліотеку й додаток для взаємодії з периферійними пристроями по інтерфейсу USB. Набути вмінь і навиків при конфігуруванні параметрів USB портів.

Матеріальне забезпечення занять

1. Типове робоче місце: персональний комп’ютер.

2. Оболонки програмування мовою Сі.

3. Лінк для USB-порта.

Короткі теоретичні відомості

Вхід

Для керування додатком пропонується використовувати ключі командного рядка:

/ls – одержання списку пристроїв.

/els – одержання списку пристроїв, а також їх детальний опис.

/i:<device index> - одержання детальної інформації про конкретний пристрій, індекс якого зазначений.

/e:<device index> - підготовка до добування пристрою, індекс якого зазначений.

/o:<filename> - ім'я файлу звіту, куди виводиться список пристроїв і інформація про них. Якщо ім'я файлу не зазначене, то вивід проводиться на консоль.

/? - вивід інформації про припустимі ключі командного рядка.

Приклад

Проводиться перерахування всіх USB пристроїв, підключених до обчислювальної

системі, у файл звіту report.txt.

C:/>usbinfo.exe /ls /o:report.txt

Проводиться перерахування всіх USB пристроїв, а також видається повна інформація про них, підключені до обчислювальної системи, у файл звіту report.txt.

C:/>usbinfo.exe /els /o:report.txt

Вивід

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

Volume Name (\\?\Volume{6dd35872-37a1-11dd-8f5b-0019d2344ab9}\)

Logical Drive (H:)

Is USB (True)

Disks

o Capability (Uniqueid)

o Class (Diskdrive)

o Class Guid ({4D36E967-E325-11CE-BFC1-08002BE10318})

o Description (Дисковий накопичувач)

o Friendly Name (Jetflash TS4GJFV30 USB Device)

o Index (1)

o Instance Handle (3300)

o Is USB (True)

o Parent (інформація про батьківський USB пристрої, виводиться вся

інформація у вигляді дерева, за аналогією поточної галузей)

o Path

(\\?\usbstor#disk&ven_jetflash&prod_ts4gjfv30&rev_8.07#b5fgkjmu&0#{53f

56307-b6bf-11d0-94f2-00a0c91efb8b})

o Removable Devices (інформація про батьківський USB, що витягає

пристрої, виводиться вся інформація у вигляді дерева, за аналогією

поточної галузей)

Index (2)

Path (\\?\storage#removablemedia#7&278a5df&0&rm#{53f5630d-b6bf-11d0-94f2-

00a0c91efb8b})

Instance Handle (3220)

Class (Volume)

Class Guid ({71A27CDD-812A-11D0-BEC7-08002BE2092F})

Description (Універсальний тому)

Friendly Name

Capabilities (…)

Допускається перенапрямок виводу консолі в текстовий файл, наприклад:

C:/>usbinfo.exe /els >report.txt

Вимоги

Архітектура додатка будується по модульному принципу.

За основу ухвалюється стандартна бібліотека С++ (у випадку розробки на C++).

Рекомендується використовувати захищені ресурси й покажчики.

Обов'язковим є обробка виключень.

Вихідний код зобов'язано бути коментований. Для C# слід використовувати нотацію Microsoft, для C++ слід використовувати нотацію doxygen.

Методичні вказівки для самостійної роботи

При підготовці до лабораторної роботи необхідно:

Ознайомитися з поняттями введення-виводу в ОС.

Ознайомитися з особливостями керування пам'яттю засобами C/C++/C#.

Наприклад:

o std::cin, std::out.

o read, write.

Ознайомитися з особливостями введення-виводу засобами Microsoft Windows:

o Createfile/Closehandle.

o Deviceiocontrol.

Алгоритм

Дане завдання слід розв'язати декількома способами.

Перший підхід, який реалізує поставлене завдання, описаний нижче.

1. Розбір ключів командного рядка.

2. Одержання інформації про пристрій.

3. Вивід інформації на консоль або у файл.

Тестування

Тестування додатка здійснюється в кілька етапів:

Розробка Unit Test у рамках проекту. Даний підхід дозволить перевірити

коректність реалізації алгоритму.

Завдання для попередньої підготовки.

1. Ознайомитися з поняттями введення-виводу в ОС.

2. Ознайомитися з особливостями введення-виводу засобами C/C++/C#.

3. Ознайомитися з особливостями введення-виводу засобами Microsoft Windows:

  • Одержання інформації про пристрій.

  • Безпечне видалення пристрою з ОС.

4. Опрацювати контрольні запитання.

5. Розробити консольний додаток для одержання інформації про всі USB пристроях в ОС.

6. Оформити функціональну специфікацію на додаток. У функціональній специфікації обов'язково вказати, яким чином проводиться тестування на коректність.

7. Оформити звіт до лабораторної роботи.

Хід роботи.

1. Ознайомитися з універсальним інтерфейсом USB.

2. З’єднати два комп’ютера за допомогою лінків для USB-портів (FT232,FT245).

3. Виконати обмін даними у різних напрямках.

4. Визначити швидкість передавання даних.

Контрольні запитання

1. Які переваги забезпечують популярність порту USB?

2. Як збільшити число USB роз’ємів?

3. Організація шини USB.

4. Моделі й протокол передачі даних в інтерфейсі USB.

Обробка результатів

1. За результатами роботи оформити звіт.

2. Надати скріншот виконання програми.

3. Результати обчислення швидкості передавання даних.