Разработка мобильного приложения робота-бегуна. Часть 2 | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 27 апреля, печатный экземпляр отправим 1 мая.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №24 (366) июнь 2021 г.

Дата публикации: 10.06.2021

Статья просмотрена: 11 раз

Библиографическое описание:

Гугуев, Ю. Д. Разработка мобильного приложения робота-бегуна. Часть 2 / Ю. Д. Гугуев, А. И. Изюмов. — Текст : непосредственный // Молодой ученый. — 2021. — № 24 (366). — С. 21-26. — URL: https://moluch.ru/archive/366/82176/ (дата обращения: 19.04.2024).



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

Ключевые слова: мобильный робот, приложение, android, программирование

Долгосрочное локальное хранение данных работы робота

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

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

— Создание быстрых записей

— Локальное хранение

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

— Легко интегрируется в Xamarin forms

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

— Существует ORM решение для Xamarin forms

— База данных локальна

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

Парсинг сообщений

При получении байта 10 (перенос строки) происходит проверка полученного набора байт на совпадение CRC кода.

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

Для парсинга сообщения был сделан словарь, с ключом — id сообщения, и значение — метод генерирующий объект из сообщения, что позволяет легко пополнять набор типов сообщений, сам метод реализуется в классе описывающем тело сообщения, как статический метод возвращающий экземпляр объекта уже получившего данные из сообщения, для последующей работы с данными, посредством передачи объектов сообщений в дальнейший конвейер приложения через вызов события OnMessage(object message), что позволит получить данное сообщение всем подписанным на данное событие частям программы.

Главное меню приложения

Рис. 1. Главное меню приложения

По своей структуре главное меню приложения представляет собой страницу типа Master page — объект Page, который управляет двумя областями сведений: главной страницей, на которой приводятся обобщенные данные, и страницей подробностей, на которой приводятся более подробные сведения об элементах на главной странице.

Настройки приложения

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

Как видно из рисунка 2 страница настроек изображения представляет из себя обычный набор компонентов ввода данных для редактирования тем самым самих настроек.

Страница настроек приложения

Рис. 2. Страница настроек приложения

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

Выбор интерфейса соединения

При старте приложения пользователь должен выбрать интерфейс соединения с роботом.

Выбор устройства для соединения

Рис. 3. Выбор устройства для соединения

Модальное окно с сообщение об ошибке подключения к удаленному устройству

Рис. 4. Модальное окно с сообщение об ошибке подключения к удаленному устройству

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

Само же окно представляет из себя список сопряженных с Android Bluetooth адаптеров, это значит, что в список выводятся все удаленные устройства, которые мы до этого добавили в наше устройство.

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

Сообщением считается набор байт заканчивающихся переводом каретки (байт — 10).

Страница “Монитор сообщений”

Рис. 5. Страница “Монитор сообщений”

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

На странице есть две кнопки:

Стоп — отвечает за паузу считывания сообщений.

Очистить — отвечает за очистку списка сообщений.

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

Страница “Состояние робота”

Рис. 6. Страница “Состояние робота”

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

Для отображения графиков будет использована библиотека визуальных компонентов с открытым кодом Microcharts. Ее преимущества:

— Бесплатная

— Легко интегрируется в платформу

— Хорошая документация

— Открытый исходный код

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

Сессия

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

Данные о сессии будут храниться в базе данных SQLite, потому что:

— Быстрое добавление и чтение.

— Хранение в памяти устройства что позволит не засорять оперативную память устройства.

— Проверено решение в плане отказоустойчивости.

— Простое в обращении.

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

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

Панели информации о записанных сессиях Панели информации о записанных сессиях

Рис. 7. Панели информации о записанных сессиях

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

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

Реализация web API . База данных

Для хранения данных будет использоваться база данных MSSql

— Отлично работает в связке с Asp net

— Проверенная и надежная

— Обладает отличной документацией

— Легко интегрируется на локальный компьютер

Для встраивания данной базы данных в проект будет использована библиотека Entity Framework, так как она реализует описанный выше ROM что позволит значительно облегчить взаимодействие с базой данных. Для создания экземпляра базы данных в программе необходимо создать класс, который будет являться наследником DbContext, данный класс позволяет взаимодействовать с базой данных.

Класс для взаимодействия с базой данных

Рис. 8. Класс для взаимодействия с базой данных

— Sessions — коллекция, описывающая таблицу сессий

— Users — коллекция, описывающая таблицу пользователей

— DBContext (метод) — метод, инициализирующий базу данных

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

Класс, описывающий модель пользователя в базе данных

Рис. 9. Класс, описывающий модель пользователя в базе данных

— Id — ключ, индекс пользователя в базе данных

— Login — логин пользователя

— Password — пароль пользователя

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

Класс, описывающий модель сессии в базе данных

Рис. 10. Класс, описывающий модель сессии в базе данных

— Id — ключ, индекс пользователя в базе данных

— Name — имя сессии

— Path — путь к файлу с сессией

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


Похожие статьи

Организация доступа к реляционной базе данных на основе...

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

Сравнение производительности ORM-библиотек как критерия...

Стандартная база данных SQLite, предоставленная с классами-помощниками в комплекте

Многие разработчики Android приложений используют сторонние ORM-библиотеки, которые

ORM — это полезный инструмент, который помогает сохранить время при разработке...

Особенности разработки и администрирования базы данных...

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

Веб-приложение для кафедры физвоспитания | Статья в журнале...

Спроектированная база данных была реализована с использованием СУБД MySQL [2–3]. Разработка веб-приложения. Спроектированная система (веб-приложение и база данных) представлена на рисунке 2. Архитектура системы построена с использованием MVC...

Программное обеспечение информационной системы...

Данные хранятся в БД, но благодаря технологии программирования ORM, данные используются как объекты.

Была разработана база данных для данной системы. Так же была показана структура страницы веб-приложения.

Разработка объектного источника данных для унифицированного...

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

ORM(Object Relational Mapping) - отображение объектов какого-либо объектно-ориентированного языка в структуры реляционных баз данных.

Системы управления реляционными базами данных...

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

Методы выполнения запросов к хранилищу данных в Hadoop...

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

Особенности применения баз данных и систем управления...

База данных — организованная в соответствии с определёнными правилами и

Между данными, которые физически хранятся на компьютере, и пользователями системы

Главная задача СУБД — обеспечить пользователю БД возможность работать с ней без вникания в...

Похожие статьи

Организация доступа к реляционной базе данных на основе...

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

Сравнение производительности ORM-библиотек как критерия...

Стандартная база данных SQLite, предоставленная с классами-помощниками в комплекте

Многие разработчики Android приложений используют сторонние ORM-библиотеки, которые

ORM — это полезный инструмент, который помогает сохранить время при разработке...

Особенности разработки и администрирования базы данных...

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

Веб-приложение для кафедры физвоспитания | Статья в журнале...

Спроектированная база данных была реализована с использованием СУБД MySQL [2–3]. Разработка веб-приложения. Спроектированная система (веб-приложение и база данных) представлена на рисунке 2. Архитектура системы построена с использованием MVC...

Программное обеспечение информационной системы...

Данные хранятся в БД, но благодаря технологии программирования ORM, данные используются как объекты.

Была разработана база данных для данной системы. Так же была показана структура страницы веб-приложения.

Разработка объектного источника данных для унифицированного...

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

ORM(Object Relational Mapping) - отображение объектов какого-либо объектно-ориентированного языка в структуры реляционных баз данных.

Системы управления реляционными базами данных...

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

Методы выполнения запросов к хранилищу данных в Hadoop...

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

Особенности применения баз данных и систем управления...

База данных — организованная в соответствии с определёнными правилами и

Между данными, которые физически хранятся на компьютере, и пользователями системы

Главная задача СУБД — обеспечить пользователю БД возможность работать с ней без вникания в...

Задать вопрос