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

RI_SDK_exec_RGB_LED_FlashingWithPause

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

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

exec - группа исполнителей

RGB_LED - название устройства светодиод

FlashingWithFrequency - название метода мигания с заданной продолжительностью и паузой

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

  • Golang DLL
RI_SDK_exec_RGB_LED_FlashingWithPause(descriptor, r, g, b, duration, pause, qty, async, errorText):errorCode
  • Golang gRPC
RI_SDK_Exec_RGB_LED_FlashingWithPause(descriptor, r, g, b, duration, pause, qty int64, async bool) (errorText string, errorCode int64, err error)

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

Мигание с заданной продолжительностью и паузой.

Дает команду светодиоду с дескриптором descriptor мигать с паузой между миганиями равной pause. Параметр duration устанавливает время одного светового импульса . Количество миганий задается параметром qty. Параметры r, g, b устанавливают яркость свечения для красного, зеленого и синего цвета соответственно. Параметр async устанавливает режим выполнения команды - асинхронный или синхронный.

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

*При значении qty = 0 операция выполняется до тех пор, пока не придет другая команда или команда остановки

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

Параметр Тип для Shared object Тип для Golang gRPC Описание
descriptor int (тип C) int64 Дескриптор компонента светодиода
r int (тип C) int64 Значение яркости для красного цвета (0 -255)
g int (тип C) int64 Значение яркости для зеленого цвета (0 -255)
b int (тип C) int64 Значение яркости для синего цвета (0 -255)
duration int (тип C) int64 Продолжительность одного светового импульса(миллисекунды)
pause int (тип C) int64 Пауза между импульсами (миллисекунды)
qty int (тип C) int64 Количество итераций (миганий)
async bool (тип C) bool Признак асинхронного выполнения команды
errorText char[1000] (тип C) string Текст ошибки (передается как параметр, если происходит ошибка метод записывает в этот параметр текст ошибки)
errorCode int (тип C) int64 Код ошибки

Примеры

Пример №1 - Мигание светодиода синим цветом

В данном примере осуществляется мигание светодиодом с дескриптором led с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд. Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.

  • Python
# Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
# Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
errCode = lib.RI_SDK_exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, False, errTextC)
if errCode != 0:
    print(errCode, errTextC.raw.decode())
    sys.exit(2)
    
  • C
// Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
// Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
errCode = RI_SDK_exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, false, errorText);
if (errCode != 0) {
    printf("errorText:%s\n", errorText);
    return errCode;
}
  • C++
// Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
// Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
errCode = RI_SDK_exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, false, errorText);
if (errCode != 0) {
    printf("errorText:%s\n", errorText);
    return errCode;
}
  • Golang
// Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
// Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
errCode = C.RI_SDK_exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, false, &errorTextC[0])
if errCode != 0 {
    fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
    return
}
  • Golang gRPC
// Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
// Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
errorText, errCode, err = client.RoboSdkApi.RI_SDK_Exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, false)
if err != nil {
    fmt.Printf("gRPC Error: %v\n", err)
    return
}
if errCode != 0 {
    fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
    return
}
  • PHP
// Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
// Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
$errCode = $ffi->RI_SDK_exec_RGB_LED_FlashingWithPause($led->cdata, 0, 0, 150, 700, 300, 10, false, $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText). " errCode: " . $errCode . " \n");
    return $errCode;
}
Полный текст примера
  • 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_LinkPWMToController.argtypes = [c_int, c_int, c_uint8, c_char_p]
lib.RI_SDK_LinkLedToController.argtypes = [c_int, c_int, c_int, c_int, c_int, c_char_p]
lib.RI_SDK_DestroySDK.argtypes = [c_bool, c_char_p]
lib.RI_SDK_exec_RGB_LED_FlashingWithPause.argtypes = [c_int, c_int, c_int, c_int, c_int, c_int, c_int, c_bool, c_char_p]

def main():
    errTextC = create_string_buffer(1000)  # Текст ошибки. C type: char*
    i2c = c_int()
    pwm = c_int()
    led = 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)

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

    print("pwm: ", pwm.value)

     # Создание компонента светодиода модели ky016
    errCode = lib.RI_SDK_CreateModelComponent("executor".encode(), "led".encode(), "ky016".encode(), led, errTextC)
    if errCode != 0:
        print(errCode, errTextC.raw.decode())
        sys.exit(2)

    print("led: ", led.value)

    # Связывание i2c с ШИМ
    errCode = lib.RI_SDK_LinkPWMToController(pwm, i2c, 0x40, errTextC)
    if errCode != 0:
        print(errCode, errTextC.raw.decode())
        sys.exit(2)
    
    # Связывание ШИМ со светодиодом
    errCode = lib.RI_SDK_LinkLedToController(led, pwm, 15, 14, 13, errTextC)
    if errCode != 0:
        print(errCode, errTextC.raw.decode())
        sys.exit(2)

    # Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
    # Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
    errCode = lib.RI_SDK_exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, False, 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
#include <stdbool.h>
#include "./librisdk.h" // Подключение библиотеки

int main(){
    char errorText[1000]; // текст ошибки. Передается как входной параметр,при возникновении ошибки в эту переменную будет записан текст ошибки
    int errCode; //код ошибки
    int i2c;
    int pwm;
    int led;

    // Инициализация библиотеки RI SDK с уровнем логирования 3
    errCode = RI_SDK_InitSDK(3, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    // Создание компонента i2c адаптера модели ch341
    errCode = RI_SDK_CreateModelComponent("connector", "i2c_adapter", "ch341", &i2c, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    printf("i2c: %d\n", i2c);

    // Создание компонента ШИМ модели pca9685
    errCode = RI_SDK_CreateModelComponent("connector", "pwm", "pca9685", &pwm, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    printf("pwm: %d\n", pwm);

    // Создание компонента светодиода модели ky016
    errCode = RI_SDK_CreateModelComponent("executor", "led", "ky016", &led, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    printf("led: %d\n", led);

    // Связывание i2c с ШИМ
    errCode = RI_SDK_LinkPWMToController(pwm, i2c, 0x40, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    // Связывание ШИМ со светодиодом
    errCode = RI_SDK_LinkLedToController(led, pwm, 15, 14, 13, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    // Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
    // Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
    errCode = RI_SDK_exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, false, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    // Удаление библиотеки со всеми компонентами
    errCode = RI_SDK_DestroySDK(true, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    printf("Success");
    return 0;
}
  • C++
#include <stdbool.h> 
#include "./librisdk.h" // Подключение библиотеки

int main(){
    char errorText[1000]; // текст ошибки. Передается как входной параметр,при возникновении ошибки в эту переменную будет записан текст ошибки
    int errCode; //код ошибки
    int i2c;
    int pwm;
    int led;

    // Инициализация библиотеки RI SDK с уровнем логирования 3
    errCode = RI_SDK_InitSDK(3, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    // Создание компонента i2c адаптера модели ch341
    char i2cGroup[] = "connector";
    char i2cDevice[] = "i2c_adapter";
    char i2cModel[] = "ch341";
    errCode = RI_SDK_CreateModelComponent(i2cGroup, i2cDevice, i2cModel, &i2c, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    printf("i2c: %d\n", i2c);

    // Создание компонента ШИМ модели pca9685
    char pwmGroup[] = "connector";
    char pwmDevice[] = "pwm";
    char pwmModel[] = "pca9685";
    errCode = RI_SDK_CreateModelComponent(pwmGroup, pwmDevice, pwmModel, &pwm, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    printf("pwm: %d\n", pwm);

    // Создание компонента светодиода модели ky016
    char ledGroup[] = "executor";
    char ledDevice[] = "led";
    char ledModel[] = "ky016";
    errCode = RI_SDK_CreateModelComponent(ledGroup, ledDevice, ledModel, &led, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    printf("led: %d\n", led);

    // Связывание i2c с ШИМ
    errCode = RI_SDK_LinkPWMToController(pwm, i2c, 0x40, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    // Связывание ШИМ со светодиодом
    errCode = RI_SDK_LinkLedToController(led, pwm, 15, 14, 13, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    // Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
    // Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
    errCode = RI_SDK_exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, false, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    // Удаление библиотеки со всеми компонентами
    errCode = RI_SDK_DestroySDK(true, errorText);
    if (errCode != 0) {
        printf("errorText:%s\n", errorText);
        return errCode;
    }

    printf("Success");
    return 0;
}
  • Golang
package main

/*
#cgo CFLAGS: -I.
#cgo LDFLAGS: -L. -lrisdk
#include <librisdk.h> // Подключаем внешнюю библиотеку для работы с SDK.
*/
import "C"
import (
    "fmt"
)

var (
    errorTextC [1000]C.char // Текст ошибки. C type: char*
    errCode    C.int        // Код ошибки. C type: int
    i2c        C.int
    pwm        C.int
    led        C.int
)

func main() {

    // Инициализация библиотеки RI SDK с уровнем логирования 3
    errCode = C.RI_SDK_InitSDK(3, &errorTextC[0])
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
        return
    }

    // Создание компонента i2c адаптера модели ch341
    errCode = C.RI_SDK_CreateModelComponent(C.CString("connector"), C.CString("i2c_adapter"), C.CString("ch341"), &i2c, &errorTextC[0])
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
        return
    }

    fmt.Println("i2c: ", i2c)

    // Создание компонента ШИМ модели pca9685
    errCode = C.RI_SDK_CreateModelComponent(C.CString("connector"), C.CString("pwm"), C.CString("pca9685"), &pwm, &errorTextC[0])
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
        return
    }

    fmt.Println("pwm: ", pwm)

    // Создание компонента светодиода модели ky016
    errCode = C.RI_SDK_CreateModelComponent(C.CString("executor"), C.CString("led"), C.CString("ky016"), &led, &errorTextC[0])
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
        return
    }

    fmt.Println("led: ", led)

    // Связывание i2c с ШИМ
    errCode = C.RI_SDK_LinkPWMToController(pwm, i2c, 0x40, &errorTextC[0])
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
        return
    }

    // Связывание ШИМ со светодиодом
    errCode = C.RI_SDK_LinkLedToController(led, pwm, 15, 14, 13, &errorTextC[0])
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
        return
    }

    // Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
    // Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
    errCode = C.RI_SDK_exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, false, &errorTextC[0])
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
        return
    }

    // Удаление библиотеки со всеми компонентами
    errCode = C.RI_SDK_DestroySDK(true, &errorTextC[0])
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, C.GoString(&errorTextC[0]))
        return
    }

    fmt.Println("Success")

}
  • Golang gRPC
package main

import (
    "fmt"

    "github.com/rbs-ri/go-risdk"
)

var (
    client    *risdk.ClientRPC // Объект взяимодействия с API SDK
    errorText string           // Текст ошибки
    errCode   int64            // Код ошибки
    err       error            // Ошибка gRPC
    i2c       int64
    pwm       int64
    led       int64
)

func main() {

    // Открываем соединение для работы с API SDK по RPC
    client = risdk.GetClientRPC()

    // Закрываем соединение с RPC
    defer client.Client.Kill()

    // Инициализация библиотеки RI SDK с уровнем логирования 3
    errorText, errCode, err = client.RoboSdkApi.RI_SDK_InitSDK(3)
    if err != nil {
        fmt.Printf("gRPC Error: %v\n", err)
        return
    }
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
        return
    }

    // Создание компонента i2c адаптера модели ch341
    i2c, errorText, errCode, err = client.RoboSdkApi.RI_SDK_CreateModelComponent("connector", "i2c_adapter", "ch341")
    if err != nil {
        fmt.Printf("gRPC Error: %v\n", err)
        return
    }
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
        return
    }

    fmt.Println("i2c: ", i2c)

    // Создание компонента ШИМ модели pca9685
    pwm, errorText, errCode, err = client.RoboSdkApi.RI_SDK_CreateModelComponent("connector", "pwm", "pca9685")
    if err != nil {
        fmt.Printf("gRPC Error: %v\n", err)
        return
    }
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
        return
    }

    fmt.Println("pwm: ", pwm)

    // Создание компонента светодиода модели ky016
    led, errorText, errCode, err = client.RoboSdkApi.RI_SDK_CreateModelComponent("executor", "led", "ky016")
    if err != nil {
        fmt.Printf("gRPC Error: %v\n", err)
        return
    }
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
        return
    }

    fmt.Println("led: ", led)

    // Связывание i2c с ШИМ
    errorText, errCode, err = client.RoboSdkApi.RI_SDK_LinkPWMToController(pwm, i2c, 0x40)
    if err != nil {
        fmt.Printf("gRPC Error: %v\n", err)
        return
    }
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
        return
    }

    // Связывание ШИМ со светодиодом
    errorText, errCode, err = client.RoboSdkApi.RI_SDK_LinkLedToController(led, pwm, 15, 14, 13)
    if err != nil {
        fmt.Printf("gRPC Error: %v\n", err)
        return
    }
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
        return
    }

    // Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
    // Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
    errorText, errCode, err = client.RoboSdkApi.RI_SDK_Exec_RGB_LED_FlashingWithPause(led, 0, 0, 150, 700, 300, 10, false)
    if err != nil {
        fmt.Printf("gRPC Error: %v\n", err)
        return
    }
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
        return
    }

    // Удаление библиотеки со всеми компонентами
    errorText, errCode, err = client.RoboSdkApi.RI_SDK_DestroySDK(true)
    if err != nil {
        fmt.Printf("gRPC Error: %v\n", err)
        return
    }
    if errCode != 0 {
        fmt.Printf("errorCode:%d - errorText:%s\n", errCode, errorText)
        return
    }

    fmt.Println("Success")

}
  • PHP
<?php
// Подключаем внешнюю библиотеку для работы с SDK
$RELATIVE_PATH = '';
$headers = file_get_contents(__DIR__ . $RELATIVE_PATH . '/librisdk.h');
$headers = preg_replace(['/#ifdef __cplusplus\s*extern "C" {\s*#endif/i', '/#ifdef __cplusplus\s*}\s*#endif/i'], '', $headers);
$ffi = FFI::cdef($headers, __DIR__ . $RELATIVE_PATH . '/librisdk.dll');

$errorText = $ffi->new('char[1000]', 0); // Текст ошибки. Передается как входной параметр,при возникновении ошибки в эту переменную будет записан текст ошибки
$i2c = $ffi->new('int', 0);
$pwm = $ffi->new('int', 0);
$led = $ffi->new('int', 0);

// Инициализация библиотеки RI SDK с уровнем логирования 3
$errCode = $ffi->RI_SDK_InitSDK(3, $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText) . " errCode: " . $errCode . " \n");
    return $errCode;
}

// Создание компонента i2c адаптера модели ch341
$errCode = $ffi->RI_SDK_CreateModelComponent("connector", "i2c_adapter", "ch341", FFI::addr($i2c), $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText). " errCode: " . $errCode . " \n");
    return $errCode;
}

print("i2c: " . $i2c->cdata . "\n");

// Создание компонента ШИМ модели pca9685
$errCode = $ffi->RI_SDK_CreateModelComponent("connector", "pwm", "pca9685", FFI::addr($pwm), $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText). " errCode: " . $errCode . " \n");
    return $errCode;
}

print("pwm: " . $pwm->cdata . "\n");

// Создание компонента светодиода модели ky016
$errCode = $ffi->RI_SDK_CreateModelComponent("executor", "led", "ky016", FFI::addr($led), $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText). " errCode: " . $errCode . " \n");
    return $errCode;
}

print("led: " . $led->cdata . "\n");

// Связывание i2c с ШИМ
$errCode = $ffi->RI_SDK_LinkPWMToController($pwm->cdata, $i2c->cdata, 0x40, $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText). " errCode: " . $errCode . " \n");
    return $errCode;
}

// Связывание ШИМ со светодиодом
$errCode = $ffi->RI_SDK_LinkLedToController($led->cdata, $pwm->cdata, 15, 14, 13, $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText). " errCode: " . $errCode . " \n");
    return $errCode;
}

// Мигание светодиода синем цветом с продолжительностью 1 импульса в 700 миллисекунд и паузой между импульсами в 300 миллисекунд.
// Количество миганий - 10. Яркость синего цвета - 150. Яркость остальных цветов - 0.
$errCode = $ffi->RI_SDK_exec_RGB_LED_FlashingWithPause($led->cdata, 0, 0, 150, 700, 300, 10, false, $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText). " errCode: " . $errCode . " \n");
    return $errCode;
}

// Удаление библиотеки со всеми компонентами
$errCode = $ffi->RI_SDK_DestroySDK(true, $errorText);
if ($errCode) {
    print("errorText:" . FFI::string($errorText). " errCode: " . $errCode . " \n");
    return $errCode;
}

print("Success \n");
?>

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

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

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

Навигация

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