• О проекте
  • Создание проекта
  • Библиотека
  • Документация
  • Прошивка
  • Qt debugger
  • Python
  • C#
  • TANGO
  • Конвертер профилей
  • uRPC

    uRPC - веб-интерфейс, при помощи которого создаётся, сохраняется и загружается протокол взаимодействия устройств. Главная цель проекта: облегченный запуск новых электронных устройств с микроконтроллером, работающих под управлением компьютера.

    После создания описания протокола, можно сгенерировать:

    uRPC позволяет создать полный комплект ПО для управления микроконтроллером с компьютера по USB или UART.

    Общие принципы работы uRPC

    Все коммуникации между ПК и микроконтроллером осуществляются по принципу клиент-сервер. При этом микроконтроллер является сервером, а ПК – клиентом. Это значит, что все коммуникации инициируются компьютером. Микроконтроллер не может отправить какие-либо данные на ПК самостоятельно, для этого ему требуется соответствующий запрос клиента (компьютера).

    uRPC позволяет осуществлять коммуникации двух типов:

    Коммуникация посредством команд осуществляется следующим образом:

    1. Клиент (ПК) готовит данные для отправки на сервер (данный этап не является обязательным, поскольку допускаются команды, не передающие никаких данных на сервер).
    2. Клиент (ПК) отправляет запрос на выполнение команды клиенту (микроконтроллеру). В запросе также передаются входные данные
    3. После получения запроса на сервере (микроконтроллере) запускается обработчик, в котором производится обработка входных данных, собственно выполнение команды, подготовка выходных данных. По умолчанию uRPC генерирует пустой обработчик, код обработчика пишется пользователем. Сразу после завершения обработчика сервер отправляет ответ клиенту вместе с набором выходных данных.
    4. Получив ответ сервера, клиент (ПК) передаёт управление пользовательской программе, которая может приступить к обработке выходных данных, полученных с сервера (допускаются команды без выходных данных).

    Входные и выходные данные никак не зависят друг от друга и могут иметь любой формат. Единственное ограничение: суммарный объём всех входных данных, также как и суммарный объём всех выходных данных не должен превышать 250 байт.
    Команды могут иметь входные и выходные аргументы, только входные аргументы, только выходные аргументы, а могут вообще не иметь аргументов.

    Общение посредством аксессоров осуществляется следующим образом:

    Аксессор – это специальная команда (а точнее set/get пара команд), предназначенная для работы с данными на сервере.
    Отправка данных с клиента на сервер осуществляется посредством set-функции аксессора, получение данных – посредством вызова get-функции аксессора. Обе функции могут быть вызваны только клиентом (ПК).
    Set-функция имеет только входные аргументы, get-функция – только выходные. Формат входных и выходных данных set и get функций одного аксессора должен быть одинаковым.
    Также как и в случае команд, после получения set и get запросов аксессора сервер (микроконтроллер) запускает соответствующие обработчики, содержание которых определяется пользователем.