Altre Interfacce ================= .. toctree:: :maxdepth: 5 Ottenimento Chiave Pubblica SSH ++++++++++++++++++++++++++++++++++++++++++++++ .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``GetSSHKeygen()``" "Descrizione", "Ottiene la chiave pubblica SSH" "Parametri Obbligatori", "Nessuno" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "- Codice errore Successo-0 Fallimento- errcode - ``keygen``:Chiave pubblica" Invio Comando SCP +++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.3 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SetSSHScpCmd(mode, sshname, sship, usr_file_url, robot_file_url)``" "Descrizione", "Invio comando SCP" "Parametri Obbligatori", "- ``mode``:0-Upload (controller superiore -> controller), 1-Download (controller -> controller superiore) - ``sshname``:Nome utente controller superiore - ``sship``:Indirizzo IP controller superiore - ``usr_file_url``:Percorso file controller superiore - ``robot_file_url``:Percorso file controller robot" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Calcolo Valore MD5 File Percorso Specificato ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``ComputeFileMD5(file_path)``" "Descrizione", "Calcola il valore MD5 del file nel percorso specificato" "Parametri Obbligatori", "- ``file_path``:Percorso file incluso nome file, percorso predefinito cartella Traj: /fruser/traj/, es. /fruser/traj/trajHelix_aima_1.txt" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "- Codice errore Successo-0 Fallimento- errcode - ``md5``:Valore MD5 file" Esempio di Codice Comandi SSH, MD5 Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from fairino import Robot import time import threading # Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo robot = Robot.RPC('192.168.58.2') file_path = "/fruser/airlab.lua" md5 = "" emerg_state = 0 si0_state = 0 si1_state = 0 sdk_com_state = 0 ssh_keygen = "" retval,ssh_keygen = robot.GetSSHKeygen() print(f"GetSSHKeygen retval is: {retval}") print(f"ssh key is: {ssh_keygen}") ssh_name = "fr" ssh_ip = "192.168.58.45" ssh_route = "/home/fr" ssh_robot_url = "/root/robot/dhpara.config" retval = robot.SetSSHScpCmd(1, ssh_name, ssh_ip, ssh_route, ssh_robot_url) print(f"SetSSHScpCmd retval is: {retval}") print(f"robot url is: {ssh_robot_url}") error, md5 = robot.ComputeFileMD5(file_path) print(f"md5 is: {md5}") robot.CloseRPC() Impostazione Periodo Feedback Porta 20004 Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.0.5 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SetRobotRealtimeStateSamplePeriod(period)``" "Descrizione", "Imposta il periodo di feedback porta 20004 robot" "Parametri Obbligatori", "- ``period``:Periodo feedback porta 20004 robot (ms)" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode " Ottenimento Periodo Feedback Porta 20004 Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.0.5 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``GetRobotRealtimeStateSamplePeriod()``" "Descrizione", "Ottiene il periodo di feedback porta 20004 robot" "Parametri Obbligatori", "Nessuno" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "- Codice errore Successo-0 Fallimento- errcode - ``period``:Periodo feedback porta 20004 robot (ms)" Esempio di Codice Configurazione Periodo Feedback Stato Porta 20004 Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from fairino import Robot import time import threading # Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo robot = Robot.RPC('192.168.58.2') robot.SetRobotRealtimeStateSamplePeriod(10) error,getPeriod = robot.GetRobotRealtimeStateSamplePeriod() print(f"period is {getPeriod}") time.sleep(1) robot.CloseRPC() Aggiornamento Software Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.0.5 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SoftwareUpgrade(filePath, block)``" "Descrizione", "Aggiornamento software robot" "Parametri Obbligatori", "- ``filePath``:Percorso completo pacchetto aggiornamento software - ``block``:Bloccare fino al completamento aggiornamento true: bloccante; false: non bloccante" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "- Codice errore Successo-0 Fallimento- errcode " Ottenimento Stato Aggiornamento Software Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.0.5 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``GetSoftwareUpgradeState()``" "Descrizione", "Ottiene lo stato di aggiornamento software robot" "Parametri Obbligatori", "Nessuno" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "- Codice errore Successo-0 Fallimento- errcode - ``state``:Stato aggiornamento pacchetto software robot, 0: inattivo o upload pacchetto aggiornamento in corso, 1~100: percentuale completamento aggiornamento, -1: aggiornamento software fallito, -2: verifica fallita, -3: verifica versione fallita, -4: decompressione fallita, -5: aggiornamento configurazione utente fallito, -6: aggiornamento configurazione periferiche fallito, -7: aggiornamento configurazione assi di espansione fallito, -8: aggiornamento configurazione robot fallito, -9: aggiornamento parametri DH fallito" Esempio di Codice Aggiornamento Software Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from fairino import Robot import time import threading # Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo robot = Robot.RPC('192.168.58.2') error = robot.SoftwareUpgrade("D://zUP/QNX382/software.tar.gz", False) print(f"SoftwareUpgrade error is {error}") while True: curState = robot.GetSoftwareUpgradeState() print(f"upgrade state is {curState}") time.sleep(3) robot.CloseRPC() Download Database Tabella Punti +++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.0.1 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``PointTableDownLoad(point_table_name, save_file_path)``" "Descrizione", "Download database tabella punti" "Parametri Obbligatori", "- ``point_table_name``:Nome tabella punti da scaricare pointTable1.db; - ``save_file_path``:Percorso di memorizzazione tabella punti scaricata C://test/;" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Upload Database Tabella Punti +++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.0.1 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``PointTableUpLoad(point_table_file_path)``" "Descrizione", "Upload database tabella punti" "Parametri Obbligatori", "- ``point_table_file_path``:Percorso completo tabella punti da caricare C://test/pointTable1.db" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Aggiornamento File Lua Tabella Punti +++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.0.1 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``PointTableUpdateLua(point_table_name, lua_file_name)``" "Descrizione", "Aggiornamento file Lua tabella punti" "Parametri Obbligatori", "- ``point_table_name``:Nome tabella punti da attivare pointTable1.db, quando la tabella punti è vuota, cioè "", indica l'aggiornamento del programma Lua al programma iniziale non applicando la tabella punti - ``lua_file_name``: Nome file Lua da aggiornare testPointTable.lua" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Esempio di Codice Operazioni Tabella Punti Robot +++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from fairino import Robot # Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo robot = Robot.RPC('192.168.58.2') save_path = "D://zDOWN/" point_table_name = "point_table_FR5.db" rtn = robot.PointTableDownLoad(point_table_name, save_path) print(f"download : {point_table_name} fail: {rtn}") upload_path = "D://zDOWN/point_table_FR5.db" rtn = robot.PointTableUpLoad(upload_path) print(f"retval is: {rtn}") point_tablename = "point_table_FR5.db" lua_name = "test0610.lua" rtn,error = robot.PointTableUpdateLua(point_tablename, lua_name) print(f"retval is: {rtn}") robot.CloseRPC() Download Log Controller +++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.1 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``RbLogDownload(savePath)``" "Descrizione", "Download log controller" "Parametri Obbligatori", "- ``savePath``:Percorso salvataggio file D://zDown/" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Download Tutte le Fonti Dati +++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.1 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``AllDataSourceDownload(savePath)``" "Descrizione", "Download tutte le fonti dati" "Parametri Obbligatori", "- ``savePath``:Percorso salvataggio file D://zDown/" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Download Pacchetto Backup Dati +++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.1 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``DataPackageDownload(savePath)``" "Descrizione", "Download pacchetto backup dati" "Parametri Obbligatori", "- ``savePath``:Percorso salvataggio file D://zDown/" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Esempio di Codice Download Dati Controller ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from fairino import Robot import time import threading # Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo robot = Robot.RPC('192.168.58.2') rtn = robot.RbLogDownload("D://zDOWN/") print(f"RbLogDownload rtn is {rtn}") rtn = robot.AllDataSourceDownload("D://zDOWN/") print(f"AllDataSourceDownload rtn is {rtn}") rtn = robot.DataPackageDownload("D://zDOWN/") print(f"DataPackageDownload rtn is {rtn}") robot.CloseRPC() Impostazione Aggiornamento Encoder +++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.4 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SetEncoderUpgrade(path)``" "Descrizione", "Imposta l'aggiornamento encoder" "Parametri Obbligatori", "- ``path``:Percorso completo pacchetto aggiornamento locale (D://zUP/XXXXX.bin)" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Impostazione Aggiornamento Firmware Giunti +++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.4 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SetJointFirmwareUpgrade(type, path)``" "Descrizione", "Imposta l'aggiornamento firmware giunti" "Parametri Obbligatori", "- ``type``:Tipo file aggiornamento; 1-Aggiornamento firmware; 2-Aggiornamento file configurazione slave - ``path``:Percorso completo pacchetto aggiornamento locale (D://zUP/XXXXX.bin)" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Impostazione Aggiornamento Firmware Pannello di Controllo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.4 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SetCtrlFirmwareUpgrade(type, path)``" "Descrizione", "Imposta l'aggiornamento firmware pannello di controllo" "Parametri Obbligatori", "- ``type``:Tipo file aggiornamento; 1-Aggiornamento firmware; 2-Aggiornamento file configurazione slave - ``path``:Percorso completo pacchetto aggiornamento locale (D://zUP/XXXXX.bin)" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Impostazione Aggiornamento Firmware Estremità +++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.4 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SetEndFirmwareUpgrade(type, path)``" "Descrizione", "Imposta l'aggiornamento firmware estremità" "Parametri Obbligatori", "- ``type``:Tipo file aggiornamento; 1-Aggiornamento firmware; 2-Aggiornamento file configurazione slave - ``path``:Percorso completo pacchetto aggiornamento locale (D://zUP/XXXXX.bin)" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Aggiornamento File Configurazione Parametri Completi Giunti +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.4 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``JointAllParamUpgrade(path)``" "Descrizione", "Aggiornamento file configurazione parametri completi giunti" "Parametri Obbligatori", "- ``path``:Percorso completo pacchetto aggiornamento locale (D://zUP/XXXXX.bin)" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Esempio di Codice Aggiornamento Firmware Slave Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from fairino import Robot import time import threading # Stabilisce connessione con il controller robot, restituisce un oggetto robot in caso di successo robot = Robot.RPC('192.168.58.2') robot.RobotEnable(0) time.sleep(0.2) rtn = robot.JointAllParamUpgrade("D://zUP/MT/joint0603/jointallparameters.db") print(f"robot JointAllParamUpgrade rtn is {rtn}") rtn = robot.SetCtrlFirmwareUpgrade(2, "D://zUP/MT/FAIR_Cobot_Cbd_Asix_V2.0.bin") print(f"robot SetCtrlFirmwareUpgrade rtn is {rtn}") rtn = robot.SetEndFirmwareUpgrade(2, "D://zUP/MT/FAIR_Cobot_Axle_Asix_V2.4.bin") print(f"robot SetEndFirmwareUpgrade rtn is {rtn}") robot.SetSysServoBootMode() time.sleep(0.2) rtn = robot.SetCtrlFirmwareUpgrade(1, "D://zUP/MT/FR_CTRL_PRIMCU_FV201412_MAIN_U4_T01_20250630(MT).bin") print(f"robot SetCtrlFirmwareUpgrade rtn is {rtn}") rtn = robot.SetEndFirmwareUpgrade(1, "D://zUP/MT/FR_END_FV2010010_MAIN_U1_T01_20250603.bin") print(f"robot SetEndFirmwareUpgrade rtn is {rtn}") rtn = robot.SetJointFirmwareUpgrade(1, "D://zUP/MT/FR_SERVO_FV504215_MAIN_U7_T07_20250603.bin") print(f"robot SetJointFirmwareUpgrade rtn is {rtn}") robot.CloseRPC() Aggiornamento Sistema Operativo Robot (Pannello di Controllo LA) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.6 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``KernelUpgrade(filePath)``" "Descrizione", "Aggiornamento sistema operativo robot (pannello di controllo LA)" "Parametri Obbligatori", "- ``filePath``:Percorso completo pacchetto aggiornamento sistema operativo" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Ottenimento Risultato Aggiornamento Sistema Operativo Robot (Pannello di Controllo LA) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.6 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``GetKernelUpgradeResult()``" "Descrizione", "Ottiene il risultato dell'aggiornamento sistema operativo robot (pannello di controllo LA)" "Parametri Obbligatori", "Nessuno" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Generazione Log MCU Robot +++++++++++++++++++++++++++++++++++++++++++++ .. versionadded:: python SDK-v2.1.7 .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``RobotMCULogCollect()``" "Descrizione", "Generazione log MCU robot" "Parametri Obbligatori", "Nessuno" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice errore Successo-0 Fallimento- errcode" Imposta l'arresto del robot quando la comunicazione della porta è disconnessa +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SetRobotStopOnComDisc(portID, enable, confirmTime)``" "Descrizione", "Imposta l'arresto del robot quando la comunicazione della porta è disconnessa" "Parametri Obbligatori", " - ``portID``: Numero porta 0-8080; 1-8083; 2-20002; 3-20004 - ``enable``: 0-disabilitato; 1-abilitato - ``confirmTime``: Durata conferma interruzione comunicazione (ms)[0-5000]" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice di errore Successo-0 Fallimento-errcode" Ottieni i parametri di arresto del robot alla disconnessione della comunicazione della porta ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``GetRobotStopOnComDisc(portID)``" "Descrizione", "Ottiene i parametri di arresto del robot alla disconnessione della comunicazione della porta" "Parametri Obbligatori", " - ``portID``: Numero porta 0-8080; 1-8083; 2-20002; 3-20004 - ``enable``: 0-disabilitato; 1-abilitato - ``confirmTime``: Durata conferma interruzione comunicazione (ms)[0-5000]" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice di errore Successo-0 Fallimento-errcode" Esempio di Codice per i Parametri di Arresto del Robot alla Disconnessione della Comunicazione della Porta ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from time import sleep import time from fairino import Robot # Stabilire la connessione con il controller del robot robot = Robot.RPC('192.168.58.2') def test_robot_stop_on_com_disc(self): # Inizializza parametri enable = False confirm_time = 0 # Imposta arresto robot alla disconnessione della comunicazione rtn = robot.SetRobotStopOnComDisc(0, True, 330) print(f"SetRobotStopOnComDisc index0: {rtn}") rtn = robot.SetRobotStopOnComDisc(1, True, 550) print(f"SetRobotStopOnComDisc index1: {rtn}") rtn = robot.SetRobotStopOnComDisc(2, True, 110) print(f"SetRobotStopOnComDisc index2: {rtn}") rtn = robot.SetRobotStopOnComDisc(3, True, 220) print(f"SetRobotStopOnComDisc index3: {rtn}") # Ottieni impostazioni arresto robot alla disconnessione della comunicazione rtn, enable, confirm_time = robot.GetRobotStopOnComDisc(0) print(f"GetRobotStopOnComDisc 8080 rtn {rtn}; enable is {enable}; confirm time is {confirm_time}") rtn, enable, confirm_time = robot.GetRobotStopOnComDisc(1) print(f"GetRobotStopOnComDisc 80803 rtn {rtn}; enable is {enable}; confirm time is {confirm_time}") rtn, enable, confirm_time = robot.GetRobotStopOnComDisc(2) print(f"GetRobotStopOnComDisc 20002 rtn {rtn}; enable is {enable}; confirm time is {confirm_time}") rtn, enable, confirm_time = robot.GetRobotStopOnComDisc(3) print(f"GetRobotStopOnComDisc 20004 rtn {rtn}; enable is {enable}; confirm time is {confirm_time}") # Chiudi connessione RPC robot.CloseRPC() return 0 test_robot_stop_on_com_disc(robot) Invia Frame di Istruzione UDP +++++++++++++++++++++++++++++++++++++++++++++ .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SendUDPFrame(frame)``" "Descrizione", "Invia frame di istruzione UDP" "Parametri Obbligatori", " - ``frame``: Dati UDP da inviare, trasmissione trasparente, nessuna incapsulazione" "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice di errore Successo-0 Fallimento-errcode" Esempio di Codice SDK per Comunicazione UDP +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from time import sleep import time from fairino import Robot # Stabilire la connessione con il controller del robot robot = Robot.RPC('192.168.58.2') def TestSendUDPFrame(self): # Imposta callback def callback(src_type, count, cmd_id, data_len, content): print("Risposta ricevuta: cmd_id={} count={} data_len={} content={}".format(cmd_id, count, data_len, content)) return 0 robot.SetUDPCmdRpyCallback(callback) rtn = robot.SendUDPFrame("/f/bIII20III303III7IIIMode(0)III/b/f") print(f"SendUDPFrame Mode(0) rtn is {rtn}") time.sleep(1) rtn = robot.SendUDPFrame("/f/bIII21III303III7IIIMode(1)III/b/f") print(f"SendUDPFrame Mode(1) rtn is {rtn}") time.sleep(1) rtn = robot.SendUDPFrame( "/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") print(f"SendUDPFrame MoveJ(-15.625) rtn is {rtn}") time.sleep(1) rtn = robot.SendUDPFrame( "/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") print(f"SendUDPFrame MoveL(-75.622) rtn is {rtn}") time.sleep(1) rtn = robot.SendUDPFrame("/f/bIII4III905III20IIIGetSoftwareVersion()III/b/f") print(f"SendUDPFrame GetSoftwareVersion() rtn is {rtn}") time.sleep(1) # Test di validazione dati frame UDP rtn = robot.SendUDPFrame("/f/bIII20III303III7IIIMode(0)III/b/f") print(f"SendUDPFrame rtn is {rtn}") rtn = robot.SendUDPFrame("III20III303III7IIIMode(0)III/b/f") print(f"SendUDPFrame rtn is {rtn}") rtn = robot.SendUDPFrame("/f/bIII20III303III7IIIMode(0)") print(f"SendUDPFrame rtn is {rtn}") rtn = robot.SendUDPFrame("/f/bIII20III303III6IIIMode(0)III/b/f") print(f"SendUDPFrame rtn is {rtn}") rtn = robot.SendUDPFrame("/f/b|||20|||303|||7|||Mode(0)|||/b/f") print(f"SendUDPFrame rtn is {rtn}") rtn = robot.SendUDPFrame("/f/bII20II303II7IIMode(0)II/b/f") print(f"SendUDPFrame rtn is {rtn}") robot.CloseRPC() time.sleep(1) TestSendUDPFrame(robot) Imposta il Colore LED Personalizzato dell'End-Effector del Robot +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. csv-table:: :stub-columns: 1 :widths: 10 30 "Prototipo", "``SetUserLEDColor(r, g, b)``" "Descrizione", "Imposta il colore LED personalizzato dell'end-effector del robot" "Parametri Obbligatori", " - ``r``: Controllo LED rosso dell'end-effector; 0-spento; 1-acceso - ``g``: Controllo LED verde dell'end-effector; 0-spento; 1-acceso - ``b``: Controllo LED blu dell'end-effector; 0-spento; 1-acceso - " "Parametri Predefiniti", "Nessuno" "Valore di Ritorno", "Codice di errore Successo-0 Fallimento-errcode" Esempio di Codice SDK per Impostare il Colore LED Personalizzato dell'End-Effector del Robot ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: python :linenos: from time import sleep import time from fairino import Robot # Stabilire la connessione con il controller del robot robot = Robot.RPC('192.168.58.2') def testled(self): # Imposta colore LED utente # Ordine parametri: R, G, B (Rosso, Verde, Blu) # Bianco (tutte le luci accese) robot.SetUserLEDColor(True, True, True) time.sleep(1) # Spegni tutte le luci robot.SetUserLEDColor(False, False, False) time.sleep(1) # Rosso (solo luce rossa) robot.SetUserLEDColor(True, False, False) time.sleep(1) # Verde (solo luce verde) robot.SetUserLEDColor(False, True, False) time.sleep(1) # Blu (solo luce blu) robot.SetUserLEDColor(False, False, True) # Chiudi connessione robot.CloseRPC() testled(robot)