Разработка кроссплатформенного программного инструментария для работы с платами сбора данных с интерфейсами PCI и USB

Содержание

 

Аннотация..................................................................................................................................................... 2

Введение....................................................................................................................................................... 6

1. Обзорно-аналитическая часть................................................................................................................ 8

1.1 Обзор российского рынка плат сбора данных................................................................................ 8

1.1.1 Введение..................................................................................................................................... 8

1.1.2 ООО «L-Card»............................................................................................................................ 8

1.1.3 ЗАО «Руднев-Шиляев».............................................................................................................. 9

1.1.4 ЗАО «Электронные технологии и метрологические системы»............................................ 9

1.1.5 НПГ R-Technology................................................................................................................... 10

1.1.6 Итоги......................................................................................................................................... 11

1.1.7 Вывод........................................................................................................................................ 12

1.2. Обзор кроссплатформенных инструментариев разработчика для создания приложений с графическим интерфейсом................................................................................................................... 12

1.2.1. Введение.................................................................................................................................. 12

1.2.2. Qt.............................................................................................................................................. 16

1.2.3. GTK+....................................................................................................................................... 17

1.2.4. wxWidgets................................................................................................................................ 18

1.2.5. Выводы.................................................................................................................................... 19

1.3. Исследование архитектурных подходов к созданию инструментария разработчика............. 19

2. Технологическая часть.......................................................................................................................... 22

2.1. Выбор инструментов разработки................................................................................................. 22

2.1.1. Обоснование выбора языка разработки............................................................................... 22

2.1.2. Системы управления версиями............................................................................................. 22

2.1.2.1 Централизованные системы управления версиями...................................................... 23

2.1.2.2 Распределенные системы управления версиями.......................................................... 23

2.1.2.3. Subversion........................................................................................................................ 24

2.1.2.4. Git..................................................................................................................................... 26

2.1.2.5. Mercurial.......................................................................................................................... 27

2.1.2.6. Сравнение Subversion, Git и Mercurial.......................................................................... 28

2.1.2.7. Вывод............................................................................................................................... 29

2.1.3. Системы автоматической генерации документации........................................................... 29

2.2. Разработка программной архитектуры инструментария разработчика.................................... 30

2.2.1. Введение.................................................................................................................................. 30

2.2.2. Модули разрабатываемого инструментария........................................................................ 32

2.2.2.1. RSHSignalSaver............................................................................................................... 32

2.2.2.2. DPA................................................................................................................................... 32

2.2.2.3. DM.................................................................................................................................... 33

2.2.2.4. DC..................................................................................................................................... 33

2.2.2.5. RSHPCI............................................................................................................................ 33

2.2.2.6. RSHUSB........................................................................................................................... 33

2.2.2.7. RshDeviceBase................................................................................................................. 33

2.2.3. Паттерны проектирования..................................................................................................... 34

2.2.3.1. Паттерн «Фасад»............................................................................................................. 35

2.2.3.2. Паттерн «Абстрактная Фабрика».................................................................................. 35

2.3. Проектирование программных интерфейсов (API) инструментария....................................... 36

2.3.1 Введение................................................................................................................................... 36

2.3.2.Требования и общие рекомендации к API............................................................................ 37

2.3.3. Типы данных и структуры..................................................................................................... 38

2.3.3.1. Типы возвращаемых значений...................................................................................... 38

2.3.3.2. Базовый тип RshBaseType.............................................................................................. 38

2.3.4. Внутреннее API...................................................................................................................... 39

2.3.4.1. Интерфейс IFactory......................................................................................................... 39

2.3.4.2. Программный интерфейс IRSHDeviceBase................................................................. 39

2.3.4.3. Программный интерфейс IRSHUSB............................................................................. 40

2.3.4.4. Программный интерфейс IRSHPCI.............................................................................. 40

2.3.5. Внешнее API........................................................................................................................... 41

2.3.5.1. Интерфейс IRSHDevice.................................................................................................. 41

2.3.5.2. Программный интерфейс IDM...................................................................................... 42

2.3.5.3. Программный интефейс IDC......................................................................................... 43

2.3.5.4. Программный интерфейс IDPA..................................................................................... 43

2.3.5.5. Программный интерфейс IRSHSignalSaver................................................................. 44

2.3.6. Выводы.................................................................................................................................... 44

3. Разработка............................................................................................................................................... 46

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

3.1.1. Введение.................................................................................................................................. 46

3.1.2. Разработка платформонезависимых модулей инструментария......................................... 46

3.1.2.1. Модуль RshDllClient....................................................................................................... 46

3.1.2.2. Модули DC и DM............................................................................................................ 47

3.1.2.2. Модуль DPA..................................................................................................................... 48

3.1.2.3. Модуль RSHSignalSaver................................................................................................. 49

3.1.2.4. Библиотеки драйверов высокого уровня для устройств и интерфейс IRSHDevice. 50

3.1.2.5. Модуль RSHUSB............................................................................................................. 50

3.1.2.6. RSHPCI............................................................................................................................ 51

3.1.3. Выводы.................................................................................................................................... 51

3.2. Разработка USB-драйвера под ОС Linux..................................................................................... 51

3.2.1. Основные понятия USB......................................................................................................... 52

3.2.1.1. Дескриптор устройства.................................................................................................. 52

3.2.1.2. Дескриптор конфигурации............................................................................................ 52

3.2.1.3. Дескриптор интерфейса................................................................................................. 53

3.2.1.4. Конечные точки............................................................................................................... 53

3.2.1.5. Блоки запроса USB......................................................................................................... 55

3.2.2 Разработка драйвера USB....................................................................................................... 56

3.2.2.1 Инициализация устройства............................................................................................ 56

3.2.2.2 Обмен данными с устройством...................................................................................... 59

3.2.3. Наименование файлов устройств......................................................................................... 62

3.2.4. Заключение............................................................................................................................. 63

4. Экспериментальная часть..................................................................................................................... 64

4.1. Разработка методики испытания.................................................................................................. 64

4.2. Разработка тестового стенда......................................................................................................... 64

4.3. Проведение натурного эксперимента........................................................................................... 64

5. Охрана труда.......................................................................................................................................... 65

5.1. Выявление опасных и вредных факторов при эксплуатации ЭВМ и их влияния на пользователей................................................................................................................................................................. 65

5.1.1. Опасные и вредные факторы при работе с ВДТ и ПЭВМ.................................................. 66

5.1.1.1. Повышенные статические и динамические нагрузки................................................. 66

5.1.1.2. Повышенные нервно-психические нагрузки............................................................... 66

5.1.1.3. Воздействие ВДТ на органы зрения............................................................................. 66

5.1.1.4. Воздействие электрического тока................................................................................. 67

5.1.1.5. Влияние статического электричества........................................................................... 68

5.1.1.6. Влияние электромагнитного излучения низких частот.............................................. 68

5.2. Методы и средства защиты пользователей от воздействия на них опасных и вредных факторов при эксплуатации ЭВМ........................................................................................................................ 68

5.2.1. Основные требования к видеодисплейным терминалам.................................................... 68

5.2.1.1. Цветовые параметры ВДТ............................................................................................. 69

5.2.1.2. Основные требования к конструкции ВДТ.................................................................. 69

5.2.2. Организация рабочего места пользователя ВДТ и ПЭВМ................................................. 70

5.2.3. Режим работы операторов ВДТ и ПЭВМ............................................................................. 71

5.2.4. Помещение для работы с ВДТ и ПЭВМ.............................................................................. 72

5.2.5. Защитные меры электробезопасности................................................................................. 73

5.2.5.1. Защитное заземление и зануление................................................................................ 73

5.2.5.3. Двойная изоляция........................................................................................................... 75

5.2.5.4. Разделяющие трансформаторы..................................................................................... 75

5.2.5.5. Блокировки и быстроотключающие устройства......................................................... 76

5.2.6. Требования к электропроводкам........................................................................................... 76

5.2.6 Требование к освещению для работы с ВДТ и ПЭВМ........................................................ 77

5.2.6.1. Естественное освещение................................................................................................ 78

5.2.6.2. Внутренне искусственное освещение.......................................................................... 79

5.2.6.3. Особенности устройства освещения в помещениях для работы с ВДТ и ПЭВМ.... 79

5.3. Выводы............................................................................................................................................ 80

Заключение................................................................................................................................................. 81

Итоги...................................................................................................................................................... 81

Выводы................................................................................................................................................... 82

Список литературы.................................................................................................................................... 83

 

Введение

Актуальность. Разработка программных продуктов в рамках одного предприятия зачастую сводится к решению типовых задач. Для экономии времени на разработку целесообразно применить методологию повторного использования кода и реализовать часто требующийся функционал в виде программного инструментария. В таких сферах как разработка компьютерных игр или веб-сайтов существует множество готовых сторонних решений. Но сама специфика производимой предприятием ЗАО «Руднев-Шиляев» продукции (платы сбора данных) требует разработки индивидуального программного инструментария, учитывающего специфику конкретной аппаратной продукции.

Требование кросс-платформенности было мотивировано увеличением доли ОС Linux в Росcии среди потенциальных клиентов предприятия. Но, пожалуй, самым важным аргументов для включения этого пункта в список требований послужило сотрудничество между ЗАО «Руднев-Шиляев» и Военно-промышленным комплексом, в структурах которого используется МСВС – операционная система на базе Linux.

Анализ кроссплатформенных инструментариев для построения пользовательского интерфейса, поддерживающих в том числе мобильные платформы iOS и Android позволит оценить перспективы добавления кроссплатформенности в клиентское программное обеспечение. Наличие такого программного обеспечения даст возможность ЗАО “Руднев-Шиляев” занять пустующую в настоящее время на российском рынке нишу плат сбора данных для мобильных устройств (планшетных компьютеров и смартфонов) и создать аналоги таких западных продуктов как OsciPrime и iMSO-104.

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

Задачи, которые были решены в этой работе:

  • Анализ современных технологий и подходов используемых при разработке ПО.
  • Анализ типовых сценариев использования (use-case'ов) продукции и выявление на основе полученной информации требований к разрабатываемому ПО.
  • Проектирование и разработка программного инструментария, адаптация под него программы осциллографа-спектроанализатора.
  • Анализ сущетсвующих кроссплатформенных программных инструментариев для построения графического интерфейса пользователя и выбор ниаоболее соответсвующего поставленным требованиям инструментария для портирования на него в дальнейшем приложения осциллографа-спектроанализатора.
  • Тестирование и внедрение разработанного ПО на предприятии.

Практическая значимость данной работы подтверждена успешным внедрением разработанного программного инструментария в работу организации ЗАО «Руднев-Шиляев».

Апробация работы

Программный инструментарий успешно протестирован и функционирует на предприятии ЗАО «Руднев-Шиляев».

04.09.2018 16:19