Meta tags:
keywords= Документация,Робоинтеллект;
description= Что такое RoboIntellect SDK?;
Headings (most frequently used words):
компонентов, risdk, sdk, принципы, работы, что, такое, robointellect, содержание, руководящие, разработки, ri, архитектурные, дорожная, карта, планы, на, будущее, комментарии, навигация, иерархическая, организация, обобщенное, описание, сигнатуры, функций, api, инициализация, создание, их, логическое, связывание, друг, другом, расширение, заверешние, очистка, памяти, завершение, обработка, ошибок,
Text of the page (most frequently used words):
#компонентов (41), risdk (37), для (37), sdk (33), шим (30), функции (28), сервопривода (25), компонента (23), api (19), i2c (19), управления (19), работы (18), тип (17), блок (16), устройства (16), подключение (15), robointellect (15), инициализация (15), вращения (14), поворот (14), тока (13), установка (13), датчик (12), вращение (12), модели (12), функция (12), сервопривод (11), значение (11), группы (11), или (11), при (11), уровня (11), устройств (10), светодиода (10), пульт (10), роботов (10), функций (9), устройство (9), связывания (9), python (9), компоненты (9), объекта (9), этого (9), дескриптор (9), интерфейс (9), исполнительное (8), коннектор (8), относительной (8), скоростью (8), байтов (8), считать (8), цикл (8), которые (8), ошибки (8), например (8), типа (8), можно (8), все (8), запись (7), байт (7), датчика (7), программирования (7), принципы (7), этом (7), необходимо (7), объект (7), компонент (7), документация (6), ошибок (6), функциональный (6), памяти (6), создания (6), ri_sdk_initsdk (6), инициализации (6), только (6), что (6), онлайн (6), остановка (6), импульсу (6), чтение (6), преобразователи (6), вызов (6), операции (6), оператор (6), роботами (6), разработки (6), дистанционное (6), друг (6), другом (6), ядра (6), объекты (6), чтобы (6), того (6), робоинтеллект (5), проекта (5), регистрация (5), обработка (5), напряжения (5), мощности (5), адаптер (5), программ (5), помощью (5), windows (5), linux (5), регистр (5), заданной (5), всех (5), коннектора (5), типы (5), выполнения (5), сервоприводов (5), через (5), так (5), ошибка (5), который (5), номер (5), функцию (5), как (5), расширить (5), связывает (5), характеристики (5), образовательный (4), модуль (4), поддержка (4), коннекторов (4), завершения (4), ri_sdk_destroycomponent (4), php (4), golang (4), настройка (4), ide (4), запуск (4), такое (4), роботу (4), управление (4), программирование (4), сервоприводы (4), регистра (4), напряжение (4), датчики (4), действий (4), мигание (4), положение (4), сброс (4), порта (4), возвращающей (4), объявление (4), элемента (4), условный (4), переменной (4), массив (4), число (4), обзор (4), blockly (4), манипуляторами (4), манипуляторов (4), экосистемы (4), расширение (4), создание (4), связывание (4), архитектурные (4), реализация (4), коннекторы (4), интерфейсов (4), это (4), равен (4), корректно (4), каждая (4), будет (4), вызывать (4), будут (4), вызова (4), является (4), светодиод (4), могут (4), устройствами (4), создаёт (4), реализованы (4), алгоритмы (4), определены (4), момент (4), corona (4), уровне (4), войти (3), контроллер (3), датчиков (3), ri_sdk_destroysdk (3), ri_sdk_linkvoltagesensortocontroller (3), ri_sdk_linkledtocontroller (3), ri_sdk_linkrservodrivetocontroller (3), ri_sdk_linkservodrivetocontroller (3), ri_sdk_linkpwmtocontroller (3), ri_sdk_createmodelcomponent (3), ri_sdk_createdevicecomponent (3), ri_sdk_creategroupcomponent (3), ri_sdk_createbasic (3), использования (3), gpio (3), данных (3), комментарии (3), методы (3), интерфейса (3), рекомендации (3), конструктор (3), дорожная (3), карта (3), планы (3), будущее (3), завершение (3), заверешние (3), очистка (3), логическое (3), обобщенное (3), описание (3), сигнатуры (3), иерархическая (3), организация (3), руководящие (3), гироскоп (3), произошла (3), соответствующий (3), номеру (3), всегда (3), объектов (3), которому (3), она (3), если (3), затем (3), соединения (3), нём (3), реестра (3), контроллера (3), имплементирующие (3), интерфейсы (3), рода (3), протокола (3), являются (3), либо (3), другим (3), уже (3), есть (3), исполнительные (3), инициализировать (3), принимает (3), группа (3), возможность (3), систем (3), популярных (3), библиотека (3), rutube (2), youtube (2), telegram (2), главная (2), история (2), версий (2), чаво (2), скачать (2), блог (2), pwm (2), 001 (2), техническая (2), видеоматериалы (2), возможных (2), вызовов (2), ri_sdk_sensor_voltagesensor_writeregbytes (2), ri_sdk_sensor_voltagesensor_readregbytes (2), ri_sdk_sensor_voltagesensor_current (2), ri_sdk_sensor_voltagesensor_power (2), ri_sdk_sensor_voltagesensor_sense (2), ri_sdk_sensor_voltagesensor_shunt (2), ri_sdk_sensor_voltagesensor_voltage (2), ri_sdk_sensor_voltagesensor_customdeviceinit (2), ri_sdk_sensor_voltagesensor_extendtomodel (2), ri_sdk_sensor_voltagesensor_extend (2), ri_sdk_sensor_extend (2), ri_sdk_exec_rgb_led_getcolor (2), ri_sdk_exec_rgb_led_getstate (2), ri_sdk_exec_rgb_led_stop (2), ri_sdk_exec_rgb_led_flicker (2), ri_sdk_exec_rgb_led_flashingwithpause (2), ri_sdk_exec_rgb_led_flashingwithfrequency (2), ri_sdk_exec_rgb_led_singlepulse (2), ri_sdk_exec_rgb_led_extendtomodel (2), ri_sdk_exec_rgb_led_extend (2), cветодиод (2), ri_sdk_exec_rservodrive_stop (2), ri_sdk_exec_rservodrive_rotatewithrelativespeedovertime (2), ri_sdk_exec_rservodrive_rotatewithrelativespeed (2), ri_sdk_exec_rservodrive_rotatebypulseovertime (2), ri_sdk_exec_rservodrive_rotatebypulse (2), ri_sdk_exec_rservodrive_getstate (2), ri_sdk_exec_rservodrive_customdeviceinit (2), ri_sdk_exec_rservodrive_extendtomodel (2), ri_sdk_exec_rservodrive_extend (2), ri_sdk_exec_servodrive_setpositiontomidworkingrange (2), ri_sdk_exec_servodrive_stop (2), ri_sdk_exec_servodrive_rotatewithrelativespeed (2), ri_sdk_exec_servodrive_turnwithrelativespeed (2), ri_sdk_exec_servodrive_rotate (2), ri_sdk_exec_servodrive_turn (2), ri_sdk_exec_servodrive_minsteprotate (2), ri_sdk_exec_servodrive_getstate (2), ri_sdk_exec_servodrive_getcurrentangle (2), ri_sdk_exec_servodrive_turnbypulse (2), ri_sdk_exec_servodrive_turnbydutycycle (2), ri_sdk_exec_servodrive_customdeviceinit (2), ri_sdk_exec_servodrive_extendtomodel (2), ri_sdk_exec_servodrive_extend (2), ri_sdk_executor_state (2), ri_sdk_executor_extend (2), исполнительных (2), ri_sdk_sigmod_pwm_close (2), ri_sdk_sigmod_pwm_setportdutycycle (2), ri_sdk_sigmod_pwm_getportdutycycle (2), ri_sdk_sigmod_pwm_resetall (2), ri_sdk_sigmod_pwm_resetport (2), ri_sdk_sigmod_pwm_setportfreq (2), ri_sdk_sigmod_pwm_getportfreq (2), ri_sdk_sigmod_pwm_readbyte (2), ri_sdk_sigmod_pwm_writebyte (2), ri_sdk_sigmod_pwm_readregbytes (2), ri_sdk_sigmod_pwm_writeregbytes (2), ri_sdk_sigmod_pwm_setfreq (2), ri_sdk_sigmod_pwm_getfreq (2), ri_sdk_sigmod_pwm_getresolution (2), ri_sdk_sigmod_pwm_extendtomodel (2), ri_sdk_sigmod_pwm_extend (2), ri_sdk_connector_i2c_writebytes (2), ri_sdk_connector_i2c_readbytes (2), ri_sdk_connector_i2c_writebyte (2), ri_sdk_connector_i2c_readbyte (2), ri_sdk_connector_i2c_state (2), ri_sdk_connector_i2c_closeall (2), ri_sdk_connector_i2c_close (2), ri_sdk_connector_i2c_open (2), ri_sdk_connector_i2c_setbus (2), ri_sdk_connector_i2c_extendtomodel (2), ri_sdk_connector_i2c_extend (2), ri_sdk_connector_extend (2), очистки (2), логического (2), программных (2), ri_sdk_device_modellist (2), начала (2), примеры (2), окружения (2), выполнение (2), отдельно (2), инсталлятора (2), обновление (2), удаление (2), составе (2), пульта (2), начало (2), видеотрансляция (2), удалённое (2), отключение (2), восстановление (2), ручного (2), сервису (2), удаленное (2), сервиса (2), состояние (2), таймеру (2), заданным (2), таймером (2), мощность (2), силу (2), шунте (2), мерцание (2), паузой (2), частотой (2), свечение (2), rgb (2), светодиоды (2), среднее (2), шагам (2), минимальный (2), шаг (2), портов (2), скважности (2), выходной (2), частоты (2), преобразователь (2), преобразователя (2), возврат (2), изменение (2), массиве (2), получение (2), массива (2), массивами (2), арифметические (2), математические (2), операторы (2), досрочный (2), выход (2), переход (2), следующему (2), шагу (2), цикла (2), массиву (2), счетчиком (2), условием (2), простой (2), циклы (2), тернарный (2), отрицание (2), логических (2), операций (2), сравнения (2), логические (2), присвоить (2), получить (2), переменные (2), цвет (2), угол (2), логический (2), строка (2), стартовое (2), ожидания (2), печать (2), базовые (2), визуальное (2), список (2), оповещений (2), демонстрационных (2), калибровка (2), позиционирование (2), локальное (2), программированию (2), средства (2), беспилотные (2), летательные (2), аппараты (2), самоходные (2), машины (2), кинематические (2), схемы (2), расчёт (2), угла (2), поворота (2), rm002 (2), учебный (2), робот (2), сборе (2), rm001 (2), самостоятельной (2), сборки (2), роботы (2), манипуляторы (2), учебных (2), трансляция (2), видео (2), авторизация (2), сервис (2), отдельная (2), утилита (2), конструкторов (2), общая (2), информация (2), проекте (2), пользователем (2), страница (2), плагинов (2), расширения (2), системами (2), реле (2), необходимых (2), где (2), понять (2), себя (2), код (2), объекте (2), компонетнов (2), завершении (2), программы (2), эта (2), работу (2), реестр (2), диспетчер (2), вызовы (2), любых (2), кроме (2), компонентом (2), электронного (2), предназначена (2), соответствие (2), компонета (2), порте (2), удалит (2), этим (2), каждый (2), моделью (2), mg90s (2), клиента (2), обязаны (2), предоставлять (2), проверки (2), возможности (2), трёх (2), типов (2), устройствам (2), адаптеру (2), контроллеру (2), контроллером (2), которым (2), подключить (2), адаптером (2), открывается (2), заданном (2), адресе (2), каждого (2), важно (2), именно (2), между (2), компонентами (2), которых (2), конкретных (2), исполнительного (2), вызвать (2), этот (2), иеарархию (2), групп (2), которая (2), уровней (2), несколько (2), может (2), ключом (2), конкретные (2), управлять (2), устройством (2), физическим (2), уровень (2), параметром (2), указатель (2), взаимодействия (2), имяфункции (2), реализации (2), данный (2), etc (2), базовый (2), основные (2), наиболее (2), архитектуру (2), библиотеки (2), электронными (2), автоматизированных (2), устройствах (2), работает (2), основной, портал, официальная, 2026, навигация, разделы, участия, обсуждении, должны, быть, авторизованным, следующая, предыдущая, комментариев, 3059, просмотров, механизма, применения, целях, функционала, событийно, ориентированного, автоматизированными, новых, расстояния, освященности, рефакторинг, разделение, физических, вывод, opensource, информационных, ресурсов, сообщества, разделе, описаны, крупные, задачи, предстоит, решить, полного, соответствия, обозначенным, целям, другой, способ, заключается, сверке, полученного, номера, реестром, помимо, описания, приводятся, устранению, один, способов, какая, вывести, терминал, errortext, последний, параметр, любой, представляет, передаваемый, ссылке, записывает, текст, 211011, обозначает, адаптеров, порядковый, ядре, состоит, шести, регистров, abcdxx, формируется, следующиему, принципу, любая, сообщает, том, выполнилась, возвращает, целое, возвращаемое, равно, отработала, ходе, возникла, возвращено, положительное, являющееся, номером, пользовательской, обратную, сути, завершит, разрушит, внутренние, такие, последующие, приводить, ошибкам, целесообразно, разрушать, завершает, типом, закроет, открытые, сбросит, импульса, подключен, освободит, занятиый, созданный, иерархической, вызвав, соответствующую, внешнего, создать, его, конкретной, переопределены, свойства, реализуют, передачи, специфичные, геттеры, подключения, свойств, сеттер, принимать, запросы, выполнять, возвращать, внутренний, механизм, основан, использовании, связываемого, подключаемыми, контроллерам, контроллерами, подключаемых, тем, одновременно, подключается, сам, технически, невозможно, другие, соединение, подключаться, различным, образом, поэтому, существует, своя, связывании, открываются, определенных, регистрируется, логическом, после, логически, связать, процесс, контроллеров, двумя, они, могли, обмениваться, данные, осуществлять, определенные, некоторые, самостоятельными, получать, управляющие, сигналы, другого, физически, отразить, физическое, известен, опредляются, значением, такого, нет, детализации, виде, реализованных, алгоритмов, характеристик, позволяют, чтения, состояния, самого, пустой, которого, учитывать, компоненьы, разделяются, внутри, представлен, определенной, определяет, позволяет, компонеты, любом, представлено, возвращается, программу, вызвала, программа, передавая, качестве, первого, аргумента, полученный, сохраняется, реестре, создан, была, вызвана, причём, записи, сгенерированный, шаге, генерируется, уникальный, создаётся, задана, модель, инициализированы, программно, собранным, автоматическим, виртуальные, соответствующие, реальным, компонентам, происходит, следующее, этапе, определяется, логирования, выполнить, инициализацию, правильно, библиотеку, действие, выделить, место, внутренних, первую, очередь, храниться, указатели, созданных, доступа, указателям, дескрипторы, возвращаемые, клиентский, обязательном, порядке, последним, char, записана, случае, некорректного, одним, параметров, int, записан, созданного, последующего, внешнем, коде, первым, имеют, следующую, типовую, сигнатуру, имени, ri_sdk, обязательный, префикс, функциональная, физического, соответствует, названию, метода, внутренней, ina219, ky016, mg996r, sd238mg, ds843mg, 9039, ds929mg, mg996, a0090, pca9685, cp2112, ch341, представлены, следующией, задают, изменяются, выше, параметры, влияющие, вычисления, этих, алгоритмах, изменяться, желании, пользователь, задавать, собственные, доступные, относятся, одной, информацию, окружающей, среде, влажности, способны, воздействовать, внешнюю, среду, передают, управляющий, сигнал, встраивают, опредлён, любого, ядро, входит, однако, котрый, реализует, алгоритм, виртуального, компонетов, генератор, дескрипторов, ответственный, генерацию, уникальных, целочисленных, идентификаторов, различных, хранилище, указателей, созданные, подключенному, компьютеру, проинициализировать, разделяется, эффективно, применять, решении, своих, задач, полезно, понимать, этой, хотя, базовом, ниже, перечислены, характеризуют, длительная, разработчками, низкий, порог, вхождения, spi, uart, асинхронное, взаимодействие, управляемых, основе, событий, отдельными, запуска, iot, разработчиками, пользователями, счёт, специализированного, высокое, быстродействие, низком, потреблении, встраивания, высокоуровневых, языках, платформонезависимость, различными, архитектурами, amd64, i368, aarch64, операционными, предоставляется, исчерпывающий, человекопонятный, проектировании, разработке, разработчики, руководствуются, определенными, принципами, определяют, проприетарной, разрабатывается, ооо, нпо, интеллект, кроссплатформенным, под, управлением, операционных, архитектурах, процессора, предоставляет, высокоуровневый, языков, расширяемая, роботехники, электронных, периферийных, содержание,
Text of the page (random words):
destroysdk функциональный ri sdk api коннекторов ri_sdk_connector_extend коннектор i2c адаптер ri_sdk_connector_i2c_extend ri_sdk_connector_i2c_extendtomodel ri_sdk_connector_i2c_setbus ri_sdk_connector_i2c_open ri_sdk_connector_i2c_close ri_sdk_connector_i2c_closeall ri_sdk_connector_i2c_state ri_sdk_connector_i2c_readbyte ri_sdk_connector_i2c_writebyte ri_sdk_connector_i2c_readbytes ri_sdk_connector_i2c_writebytes коннектор шим ri_sdk_sigmod_pwm_extend ri_sdk_sigmod_pwm_extendtomodel ri_sdk_sigmod_pwm_getresolution ri_sdk_sigmod_pwm_getfreq ri_sdk_sigmod_pwm_setfreq ri_sdk_sigmod_pwm_writeregbytes ri_sdk_sigmod_pwm_readregbytes ri_sdk_sigmod_pwm_writebyte ri_sdk_sigmod_pwm_readbyte ri_sdk_sigmod_pwm_getportfreq ri_sdk_sigmod_pwm_setportfreq ri_sdk_sigmod_pwm_resetport ri_sdk_sigmod_pwm_resetall ri_sdk_sigmod_pwm_getportdutycycle ri_sdk_sigmod_pwm_setportdutycycle ri_sdk_sigmod_pwm_close функциональный ri sdk api исполнительных устройств ri_sdk_executor_extend ri_sdk_executor_state исполнительное устройство сервопривод ri_sdk_exec_servodrive_extend ri_sdk_exec_servodrive_extendtomodel ri_sdk_exec_servodrive_customdeviceinit ri_sdk_exec_servodrive_turnbydutycycle ri_sdk_exec_servodrive_turnbypulse ri_sdk_exec_servodrive_getcurrentangle ri_sdk_exec_servodrive_getstate ri_sdk_exec_servodrive_minsteprotate ri_sdk_exec_servodrive_turn ri_sdk_exec_servodrive_rotate ri_sdk_exec_servodrive_turnwithrelativespeed ri_sdk_exec_servodrive_rotatewithrelativespeed ri_sdk_exec_servodrive_stop ri_sdk_exec_servodrive_setpositiontomidworkingrange исполнительное устройство сервопривод вращения ri_sdk_exec_rservodrive_extend ri_sdk_exec_rservodrive_extendtomodel ri_sdk_exec_rservodrive_customdeviceinit ri_sdk_exec_rservodrive_getstate ri_sdk_exec_rservodrive_rotatebypulse ri_sdk_exec_rservodrive_rotatebypulseovertime ri_sdk_exec_rservodrive_rotatewithrelativespeed ri_sdk_exec_rservodrive_rotatewithrelativespeedovertime ri_sdk_exec_rservodrive_stop исполнительное устройство cветодиод ri_sdk_exec_rgb_led_extend ri_sdk_exec_rgb_led_extendtomodel ri_sdk_exec_rgb_led_singlepulse ri_sdk_exec_rgb_led_flashingwithfrequency ri_sdk_exec_rgb_led_flashingwithpause ri_sdk_exec_rgb_led_flicker ri_sdk_exec_rgb_led_stop ri_sdk_exec_rgb_led_getstate ri_sdk_exec_rgb_led_getcolor функциональный ri sdk api датчиков ri_sdk_sensor_extend датчик тока напряжения и мощности ri_sdk_sensor_voltagesensor_extend ri_sdk_sensor_voltagesensor_extendtomodel ri_sdk_sensor_voltagesensor_customdeviceinit ri_sdk_sensor_voltagesensor_voltage ri_sdk_sensor_voltagesensor_shunt ri_sdk_sensor_voltagesensor_sense ri_sdk_sensor_voltagesensor_power ri_sdk_sensor_voltagesensor_current ri_sdk_sensor_voltagesensor_readregbytes ri_sdk_sensor_voltagesensor_writeregbytes обработка возможных ошибок вызовов функций risdk видеоматериалы проекта техническая поддержка образовательный модуль pwm шим контроллер 001 что такое robointellect sdk содержание руководящие принципы разработки ri sdk архитектурные принципы иерархическая организация компонентов обобщенное описание сигнатуры функций api risdk инициализация risdk создание компонентов и их логическое связывание друг с другом расширение компонентов risdk заверешние работы компонентов и очистка памяти завершение работы risdk обработка ошибок дорожная карта планы на будущее расширяемая библиотека risdk предназначена для программирования роботехники автоматизированных систем электронных компонентов и периферийных устройств risdk предоставляет высокоуровневый интерфейс для популярных языков программирования python c c php golang и т д risdk является кроссплатформенным по и работает под управлением всех операционных систем на наиболее популярных архитектурах процессора на данный момент библиотека является проприетарной и разрабатывается ооо нпо интеллект руководящие принципы разработки ri sdk при проектировании и разработке risdk разработчики руководствуются определенными принципами которые и определяют архитектуру библиотеки для каждого электронного компонента предоставляется исчерпывающий человекопонятный api платформонезависимость библиотека работает на устройствах с различными архитектурами amd64 i368 aarch64 и операционными системами linux windows возможность встраивания в программы на популярных высокоуровневых языках программирования python php golang c c высокое быстродействие при низком потреблении памяти расширение разработчиками и пользователями за счёт плагинов и специализированного api возможность запуска на iot устройствах возможность реализации автоматизированных систем управляемых на основе событий между отдельными электронными устройствами асинхронное взаимодействие с электронными компонентами поддержка интерфейсов i2c spi uart gpio низкий порог вхождения длительная поддержка разработчками архитектурные принципы для того чтобы наиболее эффективно применять risdk при решении своих задач полезно понимать архитектуру этой библиотеки хотя бы на базовом уровне ниже перечислены основные архитектурные принципы которые характеризуют risdk иерархическая организация компонентов для того чтобы управлять физическим устройством подключенному к компьютеру необходимо проинициализировать соответствующий компонент risdk risdk разделяется на несколько уровней ядро этот уровень не входит в иеарархию компонентов однако именно на нём реализованы основные объекты ядра реестр компонентов хранилище указателей на созданные объекты компонентов генератор дескрипторов ответственный за генерацию уникальных целочисленных идентификаторов по которым можно вызывать api компонентов из программ на различных яп диспетчер связывания котрый реализует алгоритм виртуального связывания компонетов друг с другом базовый компонент все компоненты встраивают в себя базовый компонент так как в нём опредлён дескриптор который есть у любого компонента группы компонентов все компоненты относятся к одной из трёх групп коннекторы устройства которые передают управляющий сигнал другим устройствам i2c адаптер шим исполнительные устройства которые способны воздействовать на внешнюю среду светодиод реле etc датчики устройства которые могут предоставлять информацию об окружающей среде датчик влажности гироскоп датчик тока etc типы компонентов на этом уровне определены функции доступные для конкретных компонетнов и реализованы их алгоритмы модели компонентов на этом уровне определены конкретные модели устройств которые задают их характеристики то есть алгоритмы не изменяются так как определены выше на уровне типов но параметры влияющие на вычисления в этих алгоритмах могут изменяться при желании пользователь может задавать собственные характеристики устройств на данный момент в risdk представлены следующией компоненты коннекторы i2c адаптер ch341 cp2112 шим pca9685 исполнительные устройства сервопривод mg90s a0090 mg996 corona ds929mg corona sb 9039 corona ds843mg corona sd238mg сервопривод вращения mg996r светодиод ky016 датчик датчик тока напряжения и мощности ina219 обобщенное описание сигнатуры функций api risdk каждая функция api в обязательном порядке принимает последним параметром указатель на массив char в который будет записана ошибка в случае некорректного выполнения функции каждая функция конструктор принимает одним из параметров указатель на int в который будет записан дескриптор созданного компонента для последующего использования во внешнем коде каждая функция взаимодействия с устройствами первым параметром принимает дескриптор компонента функции взаимодействия с устройствами имеют следующую типовую сигнатуру имени ri sdk группа тип имяфункции где ri_sdk обязательный префикс группа функциональная группа компонента коннектор исполнительное устройство или датчик тип тип физического устройства сервопривод шим светодиод адаптер i2c а имяфункции соответствует названию метода объекта компонента во внутренней реализации инициализация risdk до выполнения любых функций компонентов правильно инициализировать библиотеку это действие необходимо для того чтобы выделить место для внутренних объектов уровня ядра в первую очередь реестра компонентов в реестра компонентов будут храниться указатели всех созданных пользователем компонентов ключом доступа к этим указателям являются дескрипторы возвращаемые в клиентский код в момент создания компонента кроме того на этом этапе определяется уровень логирования risdk для того чтобы выполнить инициализацию необходимо вызвать функцию ri_sdk_initsdk создание компонентов и их логическое связывание друг с другом для того чтобы программно управлять собранным автоматическим устройством необходимо в risdk инициализировать виртуальные компоненты соответствующие реальным физическим компонентам в момент инициализации происходит следующее создаётся компонент заданной группы типа модели если задана модель то будут инициализированы конкретные характеристики компонента генерируется уникальный дескриптор компонента по которому можно будет вызывать api компонента компонент сохраняется в реестре компонентов который уже создан так как была вызвана функция ri_sdk_initsdk причём ключом записи компонета является сгенерированный на шаге 2 дескриптор дескриптор компонента возвращается в программу которая вызвала функцию создания компонента программа может вызывать api компонента передавая в качестве первого аргумента функций полученный дескриптор при инициализации компонента важно учитывать иеарархию компонентов в risdk все компоненьы разделяются на группы коннекторы исполнительные устройства и датчики внутри групп определены типы устройств сервопривод гироскоп шим а каждый тип устройств представлен определенной моделью которая определяет характеристики устройства risdk позволяет инициализировать компонеты на любом из уровней для этого в api risdk представлено несколько функций ri_sdk_createbasic создаёт пустой объект у которого есть только дескриптор этот объект можно через функции расширения расширить до объекта уровня группы коннектора исполнительного устройства или датчика ri_sdk_creategroupcomponent создаёт объект уровня группы коннектор исполнительного устройство или датчик у такого объекта нет детализации в виде реализованных алгоритмов или характеристик объекты этого уровня позволяют только вызвать функцию чтения состояния самого объекта объект уровня группы можно расширить до объекта уровня типа ri_sdk_createdevicecomponent создаёт объекты в которых реализованы алгоритмы работы конкретных компонентов объект уровня типа можно расширить до объекта уровня модели ri_sdk_createmodelcomponent создаёт объекты в которых не только реализованы алгоритмы работы так как тип устройства уже известен но и характеристики компонентов которые опредляются значением модели после создания компонентов их необходимо логически связать друг с другом в risdk связывание это процесс создания контроллеров между двумя компонентами чтобы они могли обмениваться друг с другом данные и осуществлять определенные вызовы некоторые типы не являются самостоятельными устройствами и могут получать управляющие сигналы только от другого устройства например коннектора для этого необходимо физически подключить исполнительное устройство или датчик например к шим или адаптеру и отразить физическое подключение через вызов функции связывания устройства с контроллером важно что именно при связывании открываются соединения с помощью определенных интерфейсов ос например i2c или регистрируется подключение устройства на логическом порте коннектора типа шим устройства могут подключаться к контроллеру различным образом поэтому для каждого типа устройства существует своя функция связывания ri_sdk_linkpwmtocontroller связывает шим с i2c адаптером при этом открывается i2c соединение на заданном адресе ri_sdk_linkvoltagesensortocontroller связывает датчик тока с i2c адаптером при этом открывается i2c соединения на заданном адресе ri_sdk_linkservodrivetocontroller связывает сервопривод с шим ri_sdk_linkrservodrivetocontroller связывает сервопривод вращения с шим ri_sdk_linkledtocontroller связывает светодиод с шим все устройства являются либо подключаемыми к другим устройствам контроллерам либо контроллерами для подключаемых устройств либо и тем и другим одновременно например шим подключается к i2c адаптеру контроллеру но и сам является контроллером для сервоприводов к которым уже технически невозможно подключить другие устройства внутренний механизм связывания основан на использовании трёх типов интерфейсов интерфейс протокола интерфейс контроллера он же интерфейс вызова и интерфейс связываемого клиента интерфейс протокола все компоненты имплементирующие интерфейсы этого рода обязаны принимать запросы на подключение выполнять проверки возможности связывания и возвращать интерфейс вызова т е контроллер интерфейс клиента все компоненты имплементирующие интерфейсы этого рода обязаны предоставлять геттеры необходимых для проверки возможности подключения свойств и сеттер интерфейса вызова контроллера интерфейс вызова контроллера все компоненты имплементирующие интерфейсы этого рода реализуют методы передачи данных специфичные для протокола расширение компонентов risdk каждый созданный компонент можно расширить в соответствие с иерархической моделью этого компонента вызвав соответствующую функцию внешнего api например можно создать компонент сервопривода уровня типа а затем расширить его до конкретной модели mg90s уровня модели при этом будут переопределены свойства компонента уровня сервопривода заверешние работы компонентов и очистка памяти при завершении работы с компонентом целесообразно корректно разрушать объект электронного компонента для этого предназначена функция ri_sdk_destroycomponent она корректно завершает работу компонента в соответствие с типом компонета например для коннекторов она закроет все открытые соединения а для сервопривода сбросит значение импульса на порте шим к которому подключен сервопривод затем эта функция удалит объект компонента удалит запись о нём из реестра компонентов и освободит занятиый этим компонентом дескриптор завершение работы risdk при завершении работы пользовательской программы например на python необходимо вызывать функцию обратную по сути ri_sdk_initsdk ri_sdk_destroysdk эта функция завершит работу всех компонентов через вызов ri_sdk_destroycomponent а затем разрушит внутренние объекты ядра risdk такие как реестр компонентов и диспетчер связывания последующие вызовы любых функций кроме ri_sdk_initsdk будут приводить к ошибкам обработка ошибок любая функция risdk всегда сообщает о том корректно ли она выполнилась для этого каждая функция возвращает целое число если возвращаемое значение равно 0 то функция отработала корректно если в ходе выполнения функция возникла ошибка будет возвращено положительное число являющееся номером ошибки номер ошибки состоит из шести регистров abcdxx и формируется по следующиему принципу a это регистр по которому можно понять произошла ошибка в ядре risdk или в объекте компонентов b соответствующий номер объекта ядра или номер группы компонента c всегда равен 0 для объектов ядра или равен номеру типа объекта компонента d всегда равен 0 для объ...
|