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

    uRPC - web интерфейс, при помощи которого создаётся, сохраняется и загружается протокол взаимодействия устройств. По готовому протоколу, в свою очередь, можно скачать готовую и работающую прошивку, документацию с описанием протокола, исходные коды кроссплатформенной библиотеки управления с подготовленными скриптами её сборки, графический интерфейс для всех функций библиотеки, набор врапперов для управления библиотекой из разнообразных языков программирования (python, C#) и другие дополнительные решения В результате, после создания на web сайте протокола, можно сгенерировать набор файлов, чтобы уже через 30 минут управлять микроконтроллером через GUI, или через Python скрипты или другим удобным способом. Главная цель проекта: облегченный запуск новых электронных устройств с микроконтроллером, работающих под управлением компьютера.

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

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

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

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

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

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

    Общение посредством аксессоров.

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