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

RI_SDK_LinkVoltageSensorToController

!!! ИНФОРМАЦИЯ

RI_SDK - библиотека Robo Intellect Software Development Kit

LinkVoltageSensorToController - название метода связывания датчика тока, напряжения и мощности с i2c адаптером

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

  • Shared object
RI_SDK_LinkVoltageSensorToController(descriptor, to, addr, errorText):errorCode
  • Golang gRPC
RI_SDK_LinkVoltageSensorToController(descriptor, to int64, addr uint64) (errorText string, errorCode int64, err error)

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

Сообщает библиотеке, что необходимо программно связать датчик тока, напряжения и мощности с дескриптором descriptor с i2c адаптером с дескриптором to по адресу addr

Эту функцию необходимо вызывать перед вызовом функций управления соответствующим датчиком тока, напряжения и мощности.

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

Параметр Тип для Shared object Тип для Golang gRPC Описание
descriptor int (тип C) int64 Дескриптор датчика тока, напряжения и мощности, который будет подключаться к i2c адаптеру
to int (тип C) int64 Дескриптор i2c адаптера, к которому будет подключаться датчик тока, напряжения и мощности
addr uint8_t (тип C) uint64 Адрес подключения
errorText char[1000] (тип C) string Текст ошибки (передается как параметр, если происходит ошибка метод записывает в этот параметр текст ошибки)
errorCode int (тип C) int64 Код ошибки

Примеры

Пример №1 - Подключение датчика тока, напряжения и мощности к i2c адаптеру

В данном примере осуществляется связывание датчика тока, напряжения и мощности с дескриптором, записанным в переменной voltageSensor, к i2c адаптеру с дескриптором, записанным в переменной i2c, по адресу 0x41

  • Python
# Связывание i2c с датчиком тока, напряжения и мощности
errCode = lib.RI_SDK_LinkVoltageSensorToController(voltage_sensor, i2c, 0x41, errTextC)
if errCode != 0:
    print(errCode, errTextC.raw.decode())
    sys.exit(2)
  
  • C

  • C++

  • Golang

  • Golang gRPC

  • PHP

Полный текст примера
  • Python

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_CreateModelComponent.argtypes = [c_char_p, c_char_p, c_char_p, POINTER(c_int), c_char_p]
lib.RI_SDK_LinkVoltageSensorToController.argtypes = [c_int, c_int, c_uint8, c_char_p]
lib.RI_SDK_DestroySDK.argtypes = [c_bool, c_char_p]

def main():
    errTextC = create_string_buffer(1000)  # Текст ошибки. C type: char*
    i2c = c_int()
    voltage_sensor = c_int()

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

    # Создание компонента i2c адаптера модели ch341
    errCode = lib.RI_SDK_CreateModelComponent("connector".encode(), "i2c_adapter".encode(), "ch341".encode(), i2c, errTextC)
    if errCode != 0:
        print(errCode, errTextC.raw.decode())
        sys.exit(2)

    print("i2c: ", i2c.value)

    # Создание компонента датчика тока, напряжения и мощности модели ina219
    errCode = lib.RI_SDK_CreateModelComponent("sensor".encode(), "voltage_sensor".encode(), "ina219".encode(), voltage_sensor, errTextC)
    if errCode != 0:
        print(errCode, errTextC.raw.decode())
        sys.exit(2)

    print("voltage_sensor: ", voltage_sensor.value)

    # Связывание i2c с датчиком тока, напряжения и мощности
    errCode = lib.RI_SDK_LinkVoltageSensorToController(voltage_sensor, i2c, 0x41, errTextC)
    if errCode != 0:
        print(errCode, errTextC.raw.decode())
        sys.exit(2)

    # Удаление библиотеки со всеми компонентами
    errCode = lib.RI_SDK_DestroySDK(True, errTextC)
    if errCode != 0:
        print(errCode, errTextC.raw.decode())
        sys.exit(2)

    print("Success")

main()

  • C

  • C++

  • Golang

  • Golang gRPC

  • PHP


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

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

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

Навигация

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