16. Inne interfejsy

16.1. Pobieranie klucza publicznego SSH

Prototyp

GetSSHKeygen()

Opis

Pobieranie klucza publicznego SSH

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • keygen: Klucz publiczny

16.2. Wysyłanie polecenia SCP

Dodane w wersji python: SDK-v2.1.3

Prototyp

SetSSHScpCmd(mode, sshname, sship, usr_file_url, robot_file_url)

Opis

Wysyłanie polecenia SCP

Parametry wymagane

  • mode: 0-upload (komputer nadrzędny -> kontroler), 1-pobranie (kontroler -> komputer nadrzędny)

  • sshname: Nazwa użytkownika komputera nadrzędnego

  • sship: Adres IP komputera nadrzędnego

  • usr_file_url: Ścieżka do pliku na komputerze nadrzędnym

  • robot_file_url: Ścieżka do pliku w kontrolerze robota

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.3. Obliczanie wartości MD5 pliku w określonej ścieżce

Prototyp

ComputeFileMD5(file_path)

Opis

Obliczanie wartości MD5 pliku w określonej ścieżce

Parametry wymagane

  • file_path: Ścieżka do pliku wraz z nazwą. Domyślna ścieżka folderu Traj to:/fruser/traj/, np. /fruser/traj/trajHelix_aima_1.txt

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • md5: Wartość MD5 pliku

16.4. Przykład kodu dla poleceń SSH i MD5 robota

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6file_path = "/fruser/airlab.lua"
 7md5 = ""
 8emerg_state = 0
 9si0_state = 0
10si1_state = 0
11sdk_com_state = 0
12ssh_keygen = ""
13retval,ssh_keygen = robot.GetSSHKeygen()
14print(f"GetSSHKeygen retval is: {retval}")
15print(f"ssh key is: {ssh_keygen}")
16ssh_name = "fr"
17ssh_ip = "192.168.58.45"
18ssh_route = "/home/fr"
19ssh_robot_url = "/root/robot/dhpara.config"
20retval = robot.SetSSHScpCmd(1, ssh_name, ssh_ip, ssh_route, ssh_robot_url)
21print(f"SetSSHScpCmd retval is: {retval}")
22print(f"robot url is: {ssh_robot_url}")
23error, md5 = robot.ComputeFileMD5(file_path)
24print(f"md5 is: {md5}")
25robot.CloseRPC()

16.5. Ustawianie okresu zwrotnego portu 20004 robota

Dodane w wersji python: SDK-v2.0.5

Prototyp

SetRobotRealtimeStateSamplePeriod(period)

Opis

Ustawianie okresu zwrotnego portu 20004 robota

Parametry wymagane

  • period: Okres zwrotny portu 20004 robota (ms)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.6. Pobieranie okresu zwrotnego portu 20004 robota

Dodane w wersji python: SDK-v2.0.5

Prototyp

GetRobotRealtimeStateSamplePeriod()

Opis

Pobieranie okresu zwrotnego portu 20004 robota

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • period: Okres zwrotny portu 20004 robota (ms)

16.7. Przykład konfiguracji okresu zwrotnego stanu portu 20004 robota

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6robot.SetRobotRealtimeStateSamplePeriod(10)
 7error,getPeriod = robot.GetRobotRealtimeStateSamplePeriod()
 8print(f"period is {getPeriod}")
 9time.sleep(1)
10robot.CloseRPC()

16.8. Aktualizacja oprogramowania robota

Dodane w wersji python: SDK-v2.0.5

Prototyp

SoftwareUpgrade(filePath, block)

Opis

Aktualizacja oprogramowania robota

Parametry wymagane

  • filePath: Pełna ścieżka pakietu aktualizacyjnego oprogramowania

  • block: Czy blokować do czasu zakończenia aktualizacji true: blokuj; false: nieblokujący

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

16.9. Pobieranie statusu aktualizacji oprogramowania robota

Dodane w wersji python: SDK-v2.0.5

Prototyp

GetSoftwareUpgradeState()

Opis

Pobieranie statusu aktualizacji oprogramowania robota

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

  • Kod błędu sukces-0 błąd- errcode

  • state: Status aktualizacji pakietu oprogramowania robota, 0: bezczynność lub przesyłanie pakietu aktualizacyjnego, 1~100: procent ukończenia aktualizacji, -1: niepowodzenie aktualizacji oprogramowania, -2: niepowodzenie weryfikacji, -3: niepowodzenie weryfikacji wersji, -4: niepowodzenie dekompresji, -5: niepowodzenie aktualizacji konfiguracji użytkownika, -6: niepowodzenie aktualizacji konfiguracji urządzeń peryferyjnych, -7: niepowodzenie aktualizacji konfiguracji osi rozszerzenia, -8: niepowodzenie aktualizacji konfiguracji robota, -9: niepowodzenie aktualizacji konfiguracji parametrów DH

16.10. Przykład kodu aktualizacji oprogramowania robota

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6error = robot.SoftwareUpgrade("D://zUP/QNX382/software.tar.gz", False)
 7print(f"SoftwareUpgrade error is {error}")
 8while True:
 9    curState = robot.GetSoftwareUpgradeState()
10    print(f"upgrade state is {curState}")
11    time.sleep(3)
12robot.CloseRPC()

16.11. Pobieranie bazy danych tabeli punktów

Dodane w wersji python: SDK-v2.0.1

Prototyp

PointTableDownLoad(point_table_name, save_file_path)

Opis

Pobieranie bazy danych tabeli punktów

Parametry wymagane

  • point_table_name: Nazwa tabeli punktów do pobrania pointTable1.db;

  • save_file_path: Ścieżka zapisu pobranej tabeli punktów C://test/;

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.12. Przesyłanie bazy danych tabeli punktów

Dodane w wersji python: SDK-v2.0.1

Prototyp

PointTableUpLoad(point_table_file_path)

Opis

Przesyłanie bazy danych tabeli punktów

Parametry wymagane

  • point_table_file_path: Pełna ścieżka przesyłanej tabeli punktów C://test/pointTable1.db

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.13. Aktualizacja pliku Lua tabeli punktów

Dodane w wersji python: SDK-v2.0.1

Prototyp

PointTableUpdateLua(point_table_name, lua_file_name)

Opis

Aktualizacja pliku Lua tabeli punktów

Parametry wymagane

  • point_table_name: Nazwa tabeli punktów do przełączenia pointTable1.db. Gdy tabela punktów jest pusta, tzn. „, oznacza to aktualizację programu Lua do programu początkowego bez zastosowanej tabeli punktów

  • lua_file_name: Nazwa pliku Lua do aktualizacji testPointTable.lua

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.14. Przełącz i zastosuj tabelę punktów

Prototyp

PointTableSwitch(self, point_table_name)

Opis

Przełącz tabelę punktów

Parametry wymagane

  • point_table_name: Nazwa tabeli punktów do przełączenia, «pointTable1.db». Gdy tabela punktów jest pusta, tj. «», oznacza to aktualizację programu lua do programu początkowego bez zastosowanej tabeli punktów

Parametry domyślne

Brak

Wartość zwracana

Kod błędu Sukces-0 Błąd- errcode

16.15. Przykład operacji na tabeli punktów robota

 1from fairino import Robot
 2# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 3robot = Robot.RPC('192.168.58.2')
 4save_path = "D://zDOWN/"
 5point_table_name = "point_table_FR5.db"
 6rtn = robot.PointTableDownLoad(point_table_name, save_path)
 7print(f"download : {point_table_name} fail: {rtn}")
 8upload_path = "D://zDOWN/point_table_FR5.db"
 9rtn = robot.PointTableUpLoad(upload_path)
10print(f"retval is: {rtn}")
11point_tablename = "point_table_FR5.db"
12lua_name = "test0610.lua"
13rtn,error = robot.PointTableUpdateLua(point_tablename, lua_name)
14print(f"retval is: {rtn}")
15robot.CloseRPC()

16.16. Pobieranie logów kontrolera

Dodane w wersji python: SDK-v2.1.1

Prototyp

RbLogDownload(savePath)

Opis

Pobieranie logów kontrolera

Parametry wymagane

  • savePath: Ścieżka zapisu pliku D://zDown/

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.17. Pobieranie wszystkich źródeł danych

Dodane w wersji python: SDK-v2.1.1

Prototyp

AllDataSourceDownload(savePath)

Opis

Pobieranie wszystkich źródeł danych

Parametry wymagane

  • savePath: Ścieżka zapisu pliku D://zDown/

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.18. Pobieranie pakietu kopii zapasowej danych

Dodane w wersji python: SDK-v2.1.1

Prototyp

DataPackageDownload(savePath)

Opis

Pobieranie pakietu kopii zapasowej danych

Parametry wymagane

  • savePath: Ścieżka zapisu pliku D://zDown/

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.19. Przykład kodu pobierania danych z kontrolera

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6rtn = robot.RbLogDownload("D://zDOWN/")
 7print(f"RbLogDownload rtn is {rtn}")
 8rtn = robot.AllDataSourceDownload("D://zDOWN/")
 9print(f"AllDataSourceDownload rtn is {rtn}")
10rtn = robot.DataPackageDownload("D://zDOWN/")
11print(f"DataPackageDownload rtn is {rtn}")
12robot.CloseRPC()

16.20. Ustawianie aktualizacji enkodera

Dodane w wersji python: SDK-v2.1.4

Prototyp

SetEncoderUpgrade(path)

Opis

Ustawianie aktualizacji enkodera

Parametry wymagane

  • path: Pełna ścieżka lokalnego pakietu aktualizacyjnego (D://zUP/XXXXX.bin)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.21. Ustawianie aktualizacji firmware przegubów

Dodane w wersji python: SDK-v2.1.4

Prototyp

SetJointFirmwareUpgrade(type, path)

Opis

Ustawianie aktualizacji firmware przegubów

Parametry wymagane

  • type: Typ pliku aktualizacyjnego; 1-aktualizacja firmware; 2-aktualizacja pliku konfiguracyjnego węzła podrzędnego

  • path: Pełna ścieżka lokalnego pakietu aktualizacyjnego (D://zUP/XXXXX.bin)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.22. Ustawianie aktualizacji firmware skrzynki kontrolnej

Dodane w wersji python: SDK-v2.1.4

Prototyp

SetCtrlFirmwareUpgrade(type, path)

Opis

Ustawianie aktualizacji firmware skrzynki kontrolnej

Parametry wymagane

  • type: Typ pliku aktualizacyjnego; 1-aktualizacja firmware; 2-aktualizacja pliku konfiguracyjnego węzła podrzędnego

  • path: Pełna ścieżka lokalnego pakietu aktualizacyjnego (D://zUP/XXXXX.bin)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.23. Ustawianie aktualizacji firmware końcówki

Dodane w wersji python: SDK-v2.1.4

Prototyp

SetEndFirmwareUpgrade(type, path)

Opis

Ustawianie aktualizacji firmware końcówki

Parametry wymagane

  • type: Typ pliku aktualizacyjnego; 1-aktualizacja firmware; 2-aktualizacja pliku konfiguracyjnego węzła podrzędnego

  • path: Pełna ścieżka lokalnego pakietu aktualizacyjnego (D://zUP/XXXXX.bin)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.24. Aktualizacja pliku konfiguracji pełnych parametrów przegubu

Dodane w wersji python: SDK-v2.1.4

Prototyp

JointAllParamUpgrade(path)

Opis

Aktualizacja pliku konfiguracji pełnych parametrów przegubu

Parametry wymagane

  • path: Pełna ścieżka lokalnego pakietu aktualizacyjnego (D://zUP/XXXXX.bin)

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.25. Przykład kodu aktualizacji firmware węzła podrzędnego robota

 1from fairino import Robot
 2import time
 3import threading
 4# Połączenie z kontrolerem robota, po pomyślnym połączeniu zwraca obiekt robota
 5robot = Robot.RPC('192.168.58.2')
 6robot.RobotEnable(0)
 7time.sleep(0.2)
 8rtn = robot.JointAllParamUpgrade("D://zUP/MT/joint0603/jointallparameters.db")
 9print(f"robot JointAllParamUpgrade rtn is {rtn}")
10rtn = robot.SetCtrlFirmwareUpgrade(2, "D://zUP/MT/FAIR_Cobot_Cbd_Asix_V2.0.bin")
11print(f"robot SetCtrlFirmwareUpgrade rtn is {rtn}")
12rtn = robot.SetEndFirmwareUpgrade(2, "D://zUP/MT/FAIR_Cobot_Axle_Asix_V2.4.bin")
13print(f"robot SetEndFirmwareUpgrade rtn is {rtn}")
14robot.SetSysServoBootMode()
15time.sleep(0.2)
16rtn = robot.SetCtrlFirmwareUpgrade(1, "D://zUP/MT/FR_CTRL_PRIMCU_FV201412_MAIN_U4_T01_20250630(MT).bin")
17print(f"robot SetCtrlFirmwareUpgrade rtn is {rtn}")
18rtn = robot.SetEndFirmwareUpgrade(1, "D://zUP/MT/FR_END_FV2010010_MAIN_U1_T01_20250603.bin")
19print(f"robot SetEndFirmwareUpgrade rtn is {rtn}")
20rtn = robot.SetJointFirmwareUpgrade(1, "D://zUP/MT/FR_SERVO_FV504215_MAIN_U7_T07_20250603.bin")
21print(f"robot SetJointFirmwareUpgrade rtn is {rtn}")
22robot.CloseRPC()

16.26. Aktualizacja systemu operacyjnego robota (skrzynka kontrolna LA)

Dodane w wersji python: SDK-v2.1.6

Prototyp

KernelUpgrade(filePath)

Opis

Aktualizacja systemu operacyjnego robota (skrzynka kontrolna LA)

Parametry wymagane

  • filePath: Pełna ścieżka pakietu aktualizacyjnego systemu operacyjnego

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.27. Pobieranie wyniku aktualizacji systemu operacyjnego robota (skrzynka kontrolna LA)

Dodane w wersji python: SDK-v2.1.6

Prototyp

GetKernelUpgradeResult()

Opis

Pobieranie wyniku aktualizacji systemu operacyjnego robota (skrzynka kontrolna LA)

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.28. Generowanie logów MCU robota

Dodane w wersji python: SDK-v2.1.7

Prototyp

RobotMCULogCollect()

Opis

Generowanie logów MCU robota

Parametry wymagane

Brak

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.29. Ustawianie zatrzymania robota po rozłączeniu komunikacji portu

Prototyp

SetRobotStopOnComDisc(portID, enable, confirmTime)

Opis

Ustawianie zatrzymania robota po rozłączeniu komunikacji portu

Parametry wymagane

  • portID: Numer portu 0-8080; 1-8083; 2-20002; 3-20004

  • enable: 0-wyłączone; 1-włączone

  • confirmTime: Czas potwierdzenia przerwania komunikacji (ms)[0-5000]

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.30. Pobieranie parametrów zatrzymania robota po rozłączeniu komunikacji portu

Prototyp

GetRobotStopOnComDisc(portID)

Opis

Pobieranie parametrów zatrzymania robota po rozłączeniu komunikacji portu

Parametry wymagane

  • portID: Numer portu 0-8080; 1-8083; 2-20002; 3-20004

  • enable: 0-wyłączone; 1-włączone

  • confirmTime: Czas potwierdzenia przerwania komunikacji (ms)[0-5000]

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.31. Przykład kodu parametrów zatrzymania robota po rozłączeniu komunikacji portu

 1from time import sleep
 2import time
 3from fairino import Robot
 4# Połączenie z kontrolerem robota
 5robot = Robot.RPC('192.168.58.2')
 6
 7def test_robot_stop_on_com_disc(self):
 8    # Inicjalizacja parametrów
 9    enable = False
10    confirm_time = 0
11
12    # Ustawienie funkcji zatrzymania robota po rozłączeniu komunikacji
13    rtn = robot.SetRobotStopOnComDisc(0, True, 330)
14    print(f"SetRobotStopOnComDisc index0: {rtn}")
15
16    rtn = robot.SetRobotStopOnComDisc(1, True, 550)
17    print(f"SetRobotStopOnComDisc index1: {rtn}")
18
19    rtn = robot.SetRobotStopOnComDisc(2, True, 110)
20    print(f"SetRobotStopOnComDisc index2: {rtn}")
21
22    rtn = robot.SetRobotStopOnComDisc(3, True, 220)
23    print(f"SetRobotStopOnComDisc index3: {rtn}")
24
25    # Pobranie ustawień zatrzymania robota po rozłączeniu komunikacji
26    rtn, enable, confirm_time = robot.GetRobotStopOnComDisc(0)
27    print(f"GetRobotStopOnComDisc 8080 rtn {rtn}; enable is {enable}; confirm time is {confirm_time}")
28
29    rtn, enable, confirm_time = robot.GetRobotStopOnComDisc(1)
30    print(f"GetRobotStopOnComDisc 80803 rtn {rtn}; enable is {enable}; confirm time is {confirm_time}")
31
32    rtn, enable, confirm_time = robot.GetRobotStopOnComDisc(2)
33    print(f"GetRobotStopOnComDisc 20002 rtn {rtn}; enable is {enable}; confirm time is {confirm_time}")
34
35    rtn, enable, confirm_time = robot.GetRobotStopOnComDisc(3)
36    print(f"GetRobotStopOnComDisc 20004 rtn {rtn}; enable is {enable}; confirm time is {confirm_time}")
37
38    # Zamknięcie połączenia RPC
39    robot.CloseRPC()
40    return 0
41
42test_robot_stop_on_com_disc(robot)

16.32. Wysyłanie ramki polecenia UDP

Prototyp

SendUDPFrame(frame)

Opis

Wysyłanie ramki polecenia UDP

Parametry wymagane

  • frame: Wysyłane dane UDP, transmisja przezroczysta, bez enkapsulacji

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.33. Przykład kodu SDK dla komunikacji UDP

 1from time import sleep
 2import time
 3from fairino import Robot
 4
 5# Połączenie z kontrolerem robota
 6robot = Robot.RPC('192.168.58.2')
 7
 8def TestSendUDPFrame(self):
 9    # Ustawienie wywołania zwrotnego
10    def callback(src_type, count, cmd_id, data_len, content):
11        print("Otrzymano odpowiedź: cmd_id={} count={} data_len={} content={}".format(cmd_id, count, data_len, content))
12        return 0
13    robot.SetUDPCmdRpyCallback(callback)
14
15    rtn = robot.SendUDPFrame("/f/bIII20III303III7IIIMode(0)III/b/f")
16    print(f"SendUDPFrame Mode(0) rtn is {rtn}")
17    time.sleep(1)
18
19    rtn = robot.SendUDPFrame("/f/bIII21III303III7IIIMode(1)III/b/f")
20    print(f"SendUDPFrame Mode(1) rtn is {rtn}")
21    time.sleep(1)
22
23    rtn = robot.SendUDPFrame(
24        "/f/bIII49III201III184IIIMoveJ(-15.625, -82.680, 101.654, -110.950, -88.290, 0.017, -383.012, -2.325, 242.655, -178.024, 1.710, 74.416, 0, 0, 100, 100, 100, 0.000, 0.000, 0.000, 0.000, -1, 0, 0, 0, 0, 0, 0, 0)III/b/f")
25    print(f"SendUDPFrame MoveJ(-15.625) rtn is {rtn}")
26    time.sleep(1)
27
28    rtn = robot.SendUDPFrame(
29        "/f/bIII48III203III199IIIMoveL(-75.622, -82.680, 101.654, -110.950, -88.290, 0.017, -193.537, 330.525, 242.657, -178.024, 1.710, 14.420, 0, 0, 100, 100, 100, -1, 0, 0.000, 0.000, 0.000, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0)III/b/f")
30    print(f"SendUDPFrame MoveL(-75.622) rtn is {rtn}")
31    time.sleep(1)
32
33    rtn = robot.SendUDPFrame("/f/bIII4III905III20IIIGetSoftwareVersion()III/b/f")
34    print(f"SendUDPFrame GetSoftwareVersion() rtn is {rtn}")
35
36    time.sleep(1)
37
38    # Test weryfikacji danych wysyłanej ramki UDP
39    rtn = robot.SendUDPFrame("/f/bIII20III303III7IIIMode(0)III/b/f")
40    print(f"SendUDPFrame rtn is {rtn}")
41
42    rtn = robot.SendUDPFrame("III20III303III7IIIMode(0)III/b/f")
43    print(f"SendUDPFrame rtn is {rtn}")
44
45    rtn = robot.SendUDPFrame("/f/bIII20III303III7IIIMode(0)")
46    print(f"SendUDPFrame rtn is {rtn}")
47
48    rtn = robot.SendUDPFrame("/f/bIII20III303III6IIIMode(0)III/b/f")
49    print(f"SendUDPFrame rtn is {rtn}")
50
51    rtn = robot.SendUDPFrame("/f/b|||20|||303|||7|||Mode(0)|||/b/f")
52    print(f"SendUDPFrame rtn is {rtn}")
53
54    rtn = robot.SendUDPFrame("/f/bII20II303II7IIMode(0)II/b/f")
55    print(f"SendUDPFrame rtn is {rtn}")
56
57    robot.CloseRPC()
58    time.sleep(1)
59
60TestSendUDPFrame(robot)

16.34. Ustawianie niestandardowego koloru lampki końcówki robota przez użytkownika

Prototyp

SetUserLEDColor(r, g, b)

Opis

Ustawianie niestandardowego koloru lampki końcówki robota przez użytkownika

Parametry wymagane

  • r: Sterowanie czerwoną lampką końcówki; 0-wyłącz; 1-włącz

  • g: Sterowanie zieloną lampką końcówki; 0-wyłącz; 1-włącz

  • b: Sterowanie niebieską lampką końcówki; 0-wyłącz; 1-włącz

Parametry domyślne

Brak

Wartość zwracana

Kod błędu sukces-0 błąd- errcode

16.35. Przykład kodu SDK ustawiania niestandardowego koloru lampki końcówki robota przez użytkownika

 1from time import sleep
 2import time
 3from fairino import Robot
 4
 5# Połączenie z kontrolerem robota
 6robot = Robot.RPC('192.168.58.2')
 7
 8
 9def testled(self):
10    # Ustawienie koloru lampki LED przez użytkownika
11    # Kolejność parametrów: R, G, B (czerwony, zielony, niebieski)
12
13    # Biały (czerwony, zielony, niebieski - wszystkie włączone)
14    robot.SetUserLEDColor(True, True, True)
15    time.sleep(1)
16
17    # Wyłączenie wszystkich lampek
18    robot.SetUserLEDColor(False, False, False)
19    time.sleep(1)
20
21    # Czerwony (tylko czerwona lampka włączona)
22    robot.SetUserLEDColor(True, False, False)
23    time.sleep(1)
24
25    # Zielony (tylko zielona lampka włączona)
26    robot.SetUserLEDColor(False, True, False)
27    time.sleep(1)
28
29    # Niebieski (tylko niebieska lampka włączona)
30    robot.SetUserLEDColor(False, False, True)
31
32    # Zamknięcie połączenia
33    robot.CloseRPC()
34
35testled(robot)

16.36. Wysyłanie niestandardowej ramki polecenia przez TCP8080

Prototyp

SendTCPFrame(self, frame):

Opis

Wysyła niestandardową ramkę polecenia przez TCP8080 (w trybie mTLS automatycznie przez szyfrowany kanał)

Parametry wymagane

  • frame: Pełna ramka polecenia, np. /f/bIII52III236III7IIIMode(0)III/b/f

Parametry domyślne

Brak

Wartość zwracana

Kod błędu Sukces-0 Błąd- errcode

16.37. Przykład kodu wysyłania niestandardowej ramki polecenia przez TCP8080

 1from fairino import Robot
 2import time
 3
 4def main():
 5    # Establish connection with the robot controller (TLS enabled)
 6    robot = Robot.RPC(
 7        '192.168.58.2',
 8        tls_enable=True,
 9        tls_cert_path=r"E:\certs"
10    )
11    time.sleep(0.5)  # Wait for connection and data reception
12
13    # Set simple UDP command reply callback
14    def callback(src_type, count, cmd_id, data_len, content):
15        print("Callback: cmd_id={} count={} data_len={} content={}".format(cmd_id, count, data_len, content))
16        return 0
17
18    robot.SetUDPCmdRpyCallback(callback)
19
20    # Program name to load
21    program_name = "mtls.lua"
22    state = 0
23    line = 0
24
25    mode0 = "/f/bIII52III236III7IIIMode(0)III/b/f"
26    mode1 = "/f/bIII52III236III7IIIMode(1)III/b/f"
27
28    print(f"[SEND] {mode0}")
29    robot.SendTCPFrame(mode0)
30    time.sleep(1)
31
32    print(f"[SEND] {mode1}")
33    robot.SendTCPFrame(mode1)
34    time.sleep(1)
35
36    print(f"[SEND] {mode0}")
37    robot.SendTCPFrame(mode0)
38
39    # Set auto mode and load program
40    robot.Mode(0)
41    robot.LoadDefaultProgConfig(0, program_name)
42    robot.ProgramLoad(program_name)
43    robot.SetSpeedInstant(50)
44    robot.ProgramRun()
45    time.sleep(5)
46
47    # Pause and query program state
48    robot.PauseMotion()
49    rtn, state = robot.GetProgramState()
50    print(f"program state:{state}\n")
51
52    rtn, line = robot.GetCurrentLine()
53    print(f"current line:{line}\n")
54
55    rtn, loaded_name = robot.GetLoadedProgram()
56    print(f"program name:{loaded_name}\n")
57
58    # Resume and pause again
59    robot.ResumeMotion()
60    time.sleep(2)
61    robot.PauseMotion()
62    time.sleep(2)
63
64    # Close connection
65    robot.CloseRPC()
66    time.sleep(1)
67
68if __name__ == "__main__":
69    main()