Программирование на Blockly
Документация по RoboIntellect SDK (RI SDK)
Функциональный RI SDK API исполнительных устройств

Обработка возможных ошибок вызовов функций RISDK

Обработка ошибок

Любая функция RISDK всегда "сообщает" о том, корректно ли она выполнилась. Для этого каждая функция возвращает целое число. Если возвращаемое значение равно 0, то функция отработала корректно. Если в ходе выполнения функция возникла ошибка, будет возвращено положительное число, являющееся номером ошибки.

Номер ошибки состоит из шести регистров (ABCDXX), и формируется по следующиему принципу:

  • A - это регистр, по которому можно понять, произошла ошибка в ядре RISDK, или в объекте компонентов;
  • B - соответствующий номер объекта ядра или номер группы компонента;
  • C - всегда равен 0 для объектов ядра, и равен номеру типа объекта компонента;
  • D - всегда равен 0 для объектов ядра, и равен номеру модели объекта компонента;
  • XX - порядковый номер ошибки.

Один из способов понять, какая произошла ошибка, это вывести в терминал значение ErrorText - последний параметр в любой функции RISDK. Представляет из себя передаваемый по ссылке массив байт, в который RISDK записывает соответствующий номеру текст ошибки.

Другой способ заключается в сверке полученного номера ошибки с реестром ошибок, где помимо описания ошибки так же приводятся рекомендации по её устранению.

Реестр ошибок

Код ошибки Описание ошибки Рекомендуемые действия
100001 Неопределенный режим инициализации. Измените уровень глубины логирования на положительное число или 0.
100002 Недопустимый тип компонента. Проверьте правильность данных создаваемого компонента.
100003 Параметр длины буфера больше размера буфера. Укажите параметр длины буфера равным размеру буфера.
110001 Реестр компонентов не инициализирован. Выполните инициализацию RISDK (RI_SDK_InitSDK).
110002 Компонент не найден в реестре. Проверьте правильность данных создаваемого компонента.
110003 Дескриптор компонентов уже занят. Измените значение дескриптора.
110004 Ошибка конструктора компонента. Проверьте правильность данных создаваемого компонента.
110005 Реестр компонентов не пуст. Укажите признак полного очищения реестра равным true.
110006 Невалидный дескриптор. Измените значение дескриптора.
120001 Группа не существует. Укажите верный тип компонента ("executor", "connector" или "sensor").
120002 Не удалось создать компонент уровня типа устройства. Укажите верный тип устройства ("i2c", "pwm", "servodrive", "led", "voltage_sensor" или "servodrive_rotate").
120003 Не удалось создать компонент уровня модели устройства. Укажите верный тип модели компонента.
120004 Не удалось сохранить компонент в реестр. Проверьте правильность данных создаваемого компонента.
120005 Не удалось сохранить базовый компонент реестр. Проверьте правильность данных создаваемого компонента.
120006 Не удалось сохранить компонент уровня модели устройства в реестр. Проверьте правильность данных создаваемого компонента.
120007 Не удалось сохранить компонент уровня группы в реестр. Проверьте правильность данных создаваемого компонента.
120008 Неизвестный тип устройства. Укажите верный тип устройства ("i2c", "pwm", "servodrive", "led", "voltage_sensor", "servodrive_rotate").
120009 Неизвестный тип модели. Укажите верный тип модели компонента.
130001 Ошибка связывания pwm с адаптером. Проверьте правильность введенных дескрипторов для pwm и i2c.
130002 Указанный компонент не обладает функционалом связывания. Проверьте правильность введенного дескриптора для связываемого компонента.
130003 Указанный компонент не поддерживает протокол связывания. Проверьте правильность введенного дескриптора ("pwm" или "i2c").
130004 Ошибка связывания сервопривода с ШИМ. Проверьте правильность введенных дескрипторов сервопривода и ШИМ модулятора и порт подключения.
130005 Ошибка связывания сервопривода с ШИМ на порту. Проверьте корректность введенных портов для подключения красного, зеленого и синего цветов светодиода.
130006 Ошибка связывания датчика тока с i2c адаптером. Проверьте правильность введенных дескрипторов для датчика тока и i2c адаптера.
211001 Адрес уже занят. Укажите другой адрес, по которому будет открыто соединение.
211002 Ошибка создания соединения. Проверьте корректность адреса, по которому будет открыто соединение.
211003 Ошибка закрытия соединения по адресу. Убедитесь, что существуют открытые соединения и проверьте корректность адреса, по которому будет закрыто соединение.
211004 Подключение к устройству по адресу уже существует. Проверьте дублирование функций связывания компонентов в вашем программном коде.
211005 I2C адаптер еще не расширен до конкретной модели. Необходимо использовать "ch341" или "cp2112" модели для i2c адаптера.
211006 Ошибка при создании подключения по I2C. Проверьте корректность адреса, по которому будет открыто соединение и номер шины i2c, если вы его задавали самостоятельно.
211007 Ошибка записи одного байта. Проверьте корректность введенного указателя на байт для записи.
211008 Ошибка чтения первого байта. Попробуйте перезапустить программу и проверьте версию библиотеки.
211009 Подключение по адресу I2C не существует. Проверьте, было ли создано соединение по указанному адресу (RI_SDK_connector_i2c_Open).
211010 Ошибка чтения в пустой буфер. Укажите длину массива байт, в который будут записаны прочитанные байты, большую нуля.
211011 Ошибка установки шины i2c: значение шины отрицательное. Укажите неотрицательное значение шины i2c.
211012 Ошибка установки шины i2c: существуют открытые соединения. Закройте все открытые с помощью заданного i2c адаптера соединения (RI_SDK_connector_i2c_CloseAll или RI_SDK_connector_i2c_Close для каждого открытого соединения).
212001 Не поддерживается такое соотношение разрешения и частоты. Проверьте корректность установленных значений разрешения и частоты.
212002 Не задан контроллер соединения. Установите контроллер соединения.
212003 Неверное значение On on - Количество тактов до перевода выхода в состояние логической «1», проверьте значение переданное в RI_SDK_sigmod_PWM_SetPortDutyCycle третьим аргументом. Если все корректно, обратитесь в тех. поддержку.
212004 Неверное значение Off off - Количество тактов до перевода выхода в состояние логического «0», проверьте значение переданное в RI_SDK_sigmod_PWM_SetPortDutyCycle четвертым аргументом. Если все корректно, обратитесь в тех. поддержку.
212005 Порт уже занят Выберите другой порт для подключения устройства, текущий занят.
212006 Нет порта с данным индексом Выбран некорректный порт для подключения устройства, выберите другой.
212007 Частота не установлена Проверьте первый аргумент, переданный в SetProperties для ШИМ, он не должен быть равен 0. Если все корректно, обратитесь в тех. поддержку.
212008 Разрешение не установлено Проверьте второй аргумент, переданный в SetProperties для ШИМ, он не должен быть равен 0. Если все корректно, обратитесь в тех. поддержку.
212009 Количество портов не установлено Проверьте третий аргумент, переданный в SetProperties для ШИМ, он не должен быть равен 0. Если все корректно, обратитесь в тех. поддержку.
212010 Тактовая частота не установлена Проверьте четвертый аргумент, переданный в SetProperties для ШИМ, он не должен быть равен 0. Если все корректно, обратитесь в тех. поддержку.
212011 Не установлено соединение с контроллером Проверьте соединение ШИМ с контроллером и корректность создания соединения и объектов.
212012 Соединение с i2c шиной не существует Проверьте соединение с шиной и корректность конструктора объектов и их соединения.
212013 Не верное значение значение импульса в доле от рабочего диапазона Попробуйте изменить импульс, который подается на устройство, проверьте версию библиотеки и модель ШИМ, созданную программой.
212014 Максимальный импульс устройства не установлен Проверьте значение, переданное в SetMaxImpulse, оно не должно быть равно 0. Если все корректно, обратитесь в тех. поддержку.
212015 Настройка частоты для определенного порта не поддерживается на этом устройстве Изменить частоту, которую Вы передали при настройке частоты порта или проверьте подходит ли модель устройства для данной частоты.
212016 Получение частоты для определенного порта, не поддерживаемого на этом устройстве Невозможно получить частоту порта на этом устройстве.
221001 Выход за пределы рабочего диапазона Измените передаваемый импульс для сервопривода или градус поворота.
221002 Тип полученного направления вращения не определен Указано некорректное направление угла движения сервопривода, проверьте второй аргумент при вызове функций, связанных с перемещением.
221003 Рабочий диапазон не может быть равен нулю или быть отрицательным Изменить размер рабочего диапазона.
221004 ШИМ-модулятор не установлен Проверьте соединение с ШИМ, корректность созданных объектов и инициализации соединения.
221005 Значение максимальной ширины управляющего импульса не установлено Проверьте значение максимального импульса в SetProperties и SetMaxPulse. Оно не должно быть равно 0. Если всё корректно, обратитесь в тех. поддержку.
221006 Максимальная скорость не установлена Проверьте значение максимальной скорости в SetProperties и SetMaxSpeed. Оно не должно быть равно 0. Если всё корректно, обратитесь в тех. поддержку.
221007 Количество шагов не может быть больше разрешения Уменьшите скважность в шагах, переданную в RI_SDK_exec_ServoDrive_TurnByDutyCycle, текущее значение некорректно для сервопривода.
221008 Тип полученной команды не определен Попробуйте перезапустить программу и проверьте версию библиотеки, правильно ли проинициализирован объект и корректно ли вызвана функция. Если все в порядке, обратитесь в тех. поддержку.
221009 Скорость вращения больше максимальной Уменьшите скорость вращения сервопривода.
221010 Скорость вращения меньше или равна нулю Увеличьте скорость вращения сервопривода.
221011 Выход за пределы рабочего диапазона вращения Проверьте диапазоны вращения у сервоприводов,углу поворота при вызове функций.
221012 Целевой угол поворота сервопривода меньше нуля Проверьте, не передается ли Вы в качестве угла порота отрицательное значение.
221013 Максимальное значение ширины управляющего импульса Рабочий диапазон импульса серводрайвера превышает значение максимального импульса, уменьшите его.
222001 Неправильное значение цвета Для светодиода передано некорректное значение цвета, проверьте значения цвета, передаваемые в функции светового импульса (RI_SDK_exec_RGB_LED_SinglePulse, RI_SDK_Exec_RGB_LED_FlashingWithFrequency и т. д.).
222002 Не заданы контроллеры для одного из портов подключения светодиода Проверьте наличие портов для светодиодов (переданные порты в RI_SDK_LinkLedToController).
222003 Тип полученной команды не определен Проверьте корректность инициализации объекта.
211101 Адрес уже занят Адрес, который Вы передали в RI_SDK_connector_i2c_Open, уже занят, смените его.
211102 Ошибка создания подключения Проверьте корректно ли инициализирован и подключен (физически) адаптер.
211103 Подключение к адресу устройства уже существует Подключение уже существует, если вы его создаете впервые, то убейте процесс и попробуйте заново.
211201 Адрес уже занят Адрес, который Вы передали в RI_SDK_connector_i2c_Open, уже занят, смените его.
211202 Ошибка создания подключения Проверьте корректно ли инициализирован и подключен (физически) адаптер.
211203 Подключение к адресу устройства уже существует Подключение уже существует, если вы его создаете впервые, то убейте процесс и попробуйте заново.
212101 Нет модели для модулятора PWM В RI_SDK_sigmod_PWM_ExtendToModel передана некорректная модель, проверьте второй аргумент функции. Допустимое значение: pca9685.
221101 Модель для сервопривода не существует В RI_SDK_exec_ServoDrive_ExtendToModel или RI_SDK_exec_RServoDrive_ExtendToModel передана некорректная модель, проверьте второй аргумент функции. Допустимые значения: mg996r, mg996, mg90s, a0090, corona_ds929mg, corona_sb9039, corona_ds843mg, corona_ds238mg.
222101 Модель для светодиода не существует В RI_SDK_exec_RGB_LED_ExtendToModel передана некорректная модель, проверьте второй аргумент функции. Допустимое значение: ky016.

36 просмотров0 комментариев

Комментарии (0)

Для участия в обсуждении вы должны быть авторизованным пользователем
Разделы
Программирование на Blockly
Документация по RoboIntellect SDK (RI SDK)
Функциональный RI SDK API исполнительных устройств

Навигация

ВойтиРегистрация