main_ubi_sdk v 0.1.3
This is UBI4 documentation
Welcome page

Прежде чем начать

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

Для кого эта документация (кто ты из фиксиков?)

Данная документация предназначена для 3 типов разрабочиков

  • Embedded разработчик, пишуший код для микроконтроллера с установленным внутрь sdk в виде git submodule
  • Embedded разработчик, пишуший внутрь sdk
  • Сторонний разработчик, пищущий на высокоуровневых языках. Он не использует непосредственно код из этого sdk, но хочет понимать, как работать со всей системой, формировать пакеты запросов и тд.

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

Верхнеуровневое описание

С точки зрения проекта в микроконтроллере sdk можно предстваить в виде модели OSI

Вот описание каждого из слоев, разбитые по папкам в проекте:

  • /Apps Стороння дериктория, в которой располагается локальная логика программы.
    • Local logic programm - Это код программы за пределами sdk. Обычно располагается в /Apps или подобном. Здесь реализуется непосредственно задача, которую выполняет устройство. Управление моторами, снятие данных EMG и тд.
  • /SDK Локальная для проекта папка с декларацией данных устройства.
    • Device info - Это информация об устройстве, которая обычно хранится /SDK. Здесь декларируются информационные поля, с помощью которых выполняется обмен данными между устройствами. Поля делятся на два типа: параметры и слоты данных.
      • Parameters - Это параметры устройства, которые могут быть прочитаны или записаны. Через них можно предоставлять или получать данные из системы во время ее работы.
      • Data table - Это слоты данных, хранящиеся в энергонезависимой памяти. Могут быть использованы для сохраниения настроек локальной логики.
  • /main_ubi_sdk (submodule) Папка с sdk, которая содержит в себе все необходимые библиотеки для работы с устройством. Она подключается и не изменяется в процессе разработки проекта.
    • Receiver - Это слой обработки пакета. Он принимает пакет, обрабатывает его и вызывает соответствующие функции.
    • Protocol - Этот слой оборачивает пакет в header, CRC и тд.
    • Port - Этот слой отправляет и принимает пакеты в HW порт.
  • /Core
    • HardWare - Это аппаратный уровень, который работает с портами микроконтроллера. Он настраивает порты, DMA, прерывания и тд. Реализуется руками разработчика, после чего подключается к Port sdk


protcols Читать про протоколы общения
Device info Читать про device info

План работы разработчика проекта на микроконтроллере

  1. Выбрать hw порт для общения, и настроить /Core по примеру
    • Ссылка на описание порта.
  2. Инициализировать Port, Protocol, Receiver по примеру (Сделать ссылку)
    • Ссылка на пример
  3. Задекларировать в /SDK дата слоты и параметры. (Дополнительно настроить виджеты)
    • Ссылка на описание device_info
  4. Настроить логику работы локального уровня с параметрами и дата слотами
    • Ссылка на примеры работы со слотами

План работы разработчика других языков программирования

  1. Выбрать данные из device_info, которые хочется узнать
    • Ссылка на описание device info
  2. Сформировать запрос в соответствии с Receiver
  3. Обернуть запрос в header в соответствии с нужным Protocol
  4. Распарсить данные в соответствии с полученной структурой.

Также стоит посмотреть

Прочие гайды