Перейти к основному содержимому

RI_SDK_Device_ModelList

Информация

RI_SDK - библиотека Robo Intellect Software Development Kit
RI_SDK_Device_ModelList - метод получающий список доступных моделей для указанного устройства

Сигнатура функции

RI_SDK_Device_ModelList(deviceType, modelList, errorText):errorCode

Описание метода

Метод получает все доступные модели для устройства (modelList) по его названию (deviceType)

Параметры и возвращаемые значения

ПараметрТип для Shared objectТип для Golang gRPCОписание
deviceTypechar[] (тип C)stringТип устройства : servodrive, rservodrive, i2c_adapter, pwm, led, voltage_sensor
modelListchar[] (тип C)stringСписок доступных моделей устройства
errorTextchar[1000] (тип C)stringТекст ошибки (передается как параметр, если происходит ошибка метод записывает в этот параметр текст ошибки)
errorCodeint (тип C)int64Код ошибки

Доступные модели устройств

УстройствоДоступные модели
PWM контроллер (pwm)pca9685
I2C контроллер (i2c_adapter)ch341, cp2112
Сервопривод (servodrive)mg90s, a0090, mg996, Corona DS929MG, Corona SB-9039, Corona DS843MG, Corona DS238MG
Сервопривод вращения (rservodrive)mg996r
Светодиод (led)ky016
Датчик тока (voltage_sensor)ina219

Примеры

Пример №1 - Получение доступных моделей для сервопривода

# Получение доступных моделей сервопривода
errCode = lib.RI_SDK_Device_ModelList("servodrive".encode('utf-8'), modelList, errTextC)
if errCode != 0:
print(errCode, errTextC.raw.decode())
sys.exit(2)
Полный текст примера

from ctypes.util import find_library
import platform
import sys
from ctypes import *

# Подключаем внешнюю библиотеку для работы с SDK
platform = platform.system()
if platform == "Windows":
libName = "librisdk.dll"
if platform == "Linux":
libName = "librisdk.so"

pathLib = find_library(libName)
lib = cdll.LoadLibrary(pathLib)


# Указываем типы аргументов для функций библиотеки RI_SDK
lib.RI_SDK_InitSDK.argtypes = [c_int, c_char_p]
lib.RI_SDK_Device_ModelList.argtypes = [c_char_p, c_char_p, c_char_p]

def main():
errTextC = create_string_buffer(1000) # Текст ошибки. C type: char*
modelList = create_string_buffer(200) # Модели устройства

# Инициализация библиотеки RI SDK с уровнем логирования 3
errCode = lib.RI_SDK_InitSDK(3, errTextC)
if errCode != 0:
print(errCode, errTextC.raw.decode())
sys.exit(2)


# Получение доступных моделей сервопривода
errCode = lib.RI_SDK_Device_ModelList("servodrive".encode('utf-8'), modelList, errTextC)
if errCode != 0:
print(errCode, errTextC.raw.decode())
sys.exit(2)

print("Модели устройства: ",modelList.raw.decode())

main()