3. Podstawy robota

3.1. Tworzenie instancji robota

1/**
2* @brief  Konstruktor klasy interfejsu robota
3*/
4Robot robot = new Robot();

3.2. Nawiązywanie komunikacji ze sterownikiem

1/**
2* @brief  Nawiązuje komunikację ze sterownikiem robota
3* @param  [in] ip  Adres IP sterownika, domyślnie 192.168.58.2
4* @return Kod błędu
5*/
6int RPC(String ip);

3.3. Zamykanie komunikacji z robotem

1/**
2* @brief Zamyka komunikację z robotem
3* @return Kod błędu
4*/
5int CloseRPC();

3.4. Sprawdzanie numeru wersji SDK

1/**
2* @brief Sprawdza numer wersji SDK
3* @return Numer wersji
4*/
5String GetSDKVersion();

3.5. Pobieranie adresu IP sterownika

1/**
2* @brief  Pobiera adres IP sterownika
3* @param  [out] ip  Adres IP sterownika
4* @return  Kod błędu
5*/
6int GetControllerIP(String[] ip);

3.6. Sterowanie wejściem lub wyjściem robota z trybu nauczania przez przeciąganie

1/**
2* @brief  Steruje wejściem lub wyjściem robota z trybu nauczania przez przeciąganie
3* @param  [in] state 0-wyjście z trybu nauczania przez przeciąganie, 1-wejście do trybu nauczania przez przeciąganie
4* @return  Kod błędu
5*/
6int DragTeachSwitch(int state);

3.7. Sprawdzanie, czy robot jest w trybie nauczania przez przeciąganie

1/**
2* @brief  Sprawdza, czy robot jest w trybie nauczania przez przeciąganie
3* @param  [in] state 0-nie w trybie nauczania przez przeciąganie, 1-w trybie nauczania przez przeciąganie
4* @return  Kod błędu
5*/
6int IsInDragTeach(List<Number> state);

3.8. Sterowanie włączaniem lub wyłączaniem zasilania robota

1/**
2* @brief  Steruje włączaniem lub wyłączaniem zasilania robota. Po włączeniu zasilania robot domyślnie jest automatycznie włączany.
3* @param  [in] state  0-wyłącz zasilanie, 1-włącz zasilanie
4* @return  Kod błędu
5*/
6int RobotEnable(int state);

3.9. Sterowanie przełączaniem trybu ręcznego/automatycznego robota

1/**
2* @brief Steruje przełączaniem trybu ręcznego/automatycznego robota
3* @param [in] mode 0-tryb automatyczny, 1-tryb ręczny
4* @return Kod błędu
5*/
6int Mode(int mode);

3.10. Zamykanie systemu operacyjnego robota

Nowe w wersji Java: SDK-v1.0.4-3.8.1

1/**
2* @brief Zamyka system operacyjny robota
3* @return Kod błędu
4*/
5int ShutDownRobotOS();

3.11. Ustawianie parametrów ponownego łączenia z robotem

1/**
2* @brief Ustawia parametry ponownego łączenia z robotem
3* @param [in] enable Czy włączyć, true: włącz, false: wyłącz
4* @param [in] times Liczba prób ponownego łączenia
5* @param [in] period Odstęp czasu między próbami ponownego łączenia
6* @return Kod błędu
7*/
8int SetReconnectParam(boolean enable, int times, int period);

3.12. Inicjalizacja parametrów logowania

 1/**
 2* @brief Inicjalizuje parametry logowania
 3* @param [in] logType Tryb wyjścia, DIRECT-wyjście bezpośrednie; BUFFER-wyjście buforowane; ASYNC-wyjście asynchroniczne
 4* @param [in] logLevel Poziom filtrowania logów, ERROR-błąd; WARNING-ostrzeżenie; INFO-informacja; DEBUG-debugowanie
 5* @param [in] filePath Ścieżka zapisu pliku, np. "D://Log/"
 6* @param [in] saveFileNum Liczba zapisywanych plików, pliki przekraczające zarówno liczbę zapisywanych plików, jak i liczbę dni przechowywania zostaną usunięte
 7* @param [in] saveDays Liczba dni przechowywania plików, pliki przekraczające zarówno liczbę zapisywanych plików, jak i liczbę dni przechowywania zostaną usunięte
 8* @return Kod błędu
 9*/
10int LoggerInit(FrLogType logType, FrLogLevel logLevel, String filePath, int saveFileNum, int saveDays)

3.13. Ustawianie poziomu filtrowania logów

1/**
2* @brief Ustawia poziom filtrowania logów
3* @param [in] logLevel Poziom filtrowania logów, ERROR-błąd; WARNING-ostrzeżenie; INFO-informacja; DEBUG-debugowanie
4* @return Kod błędu
5*/
6int SetLoggerLevel(FrLogLevel logLevel)

3.14. Przykład kodu podstawowego sterowania robotem

 1public static void main(String[] args)
 2{
 3    Robot robot = new Robot();
 4    robot.SetReconnectParam(true,20,500);
 5    robot.LoggerInit(FrLogType.DIRECT, FrLogLevel.INFO, "D://log", 10, 10);
 6    int rtn = robot.RPC("192.168.58.2");
 7    if(rtn == 0)
 8    {
 9        System.out.println("rpc połączenie success");
10    }
11    else
12    {
13        System.out.println("rpc połączenie fail");
14        return ;
15    }
16    String[] ip={""};
17    String version = "";
18    version=robot.GetSDKVersion();
19    System.out.println("SDK version : " + version);
20    int rtn = robot.GetControllerIP(ip);
21    System.out.println("controller ip : " +  ip[0] + "  " + rtn);
22    robot.Mode(1);//1-tryb ręczny  0-tryb automatyczny
23    robot.Sleep(1000);
24    robot.DragTeachSwitch(1);//wejście w tryb przeciągania
25    robot.Sleep(1000);
26    ROBOT_STATE_PKG pkg = robot.GetRobotRealTimeState();
27    System.out.println("drag state : " + pkg.robot_state);
28    robot.Sleep(1000);
29    robot.DragTeachSwitch(0);//wyjście z trybu przeciągania
30    robot.Sleep(1000);
31    pkg = robot.GetRobotRealTimeState();
32    System.out.println("drag state : " + pkg.robot_state);
33
34    if (pkg.robot_state ==4){
35       System.out.println("tryb przeciągania");
36    }else {
37       System.out.println("nie w trybie przeciągania");
38    }
39}

3.15. Pobieranie wersji oprogramowania robota

1/**
2* @brief Pobiera wersję oprogramowania robota
3* @param [out] robotModel Model robota
4* @param [out] webVersion Wersja web
5* @param [out] controllerVersion Wersja sterownika
6* @return Kod błędu
7*/
8int GetSoftwareVersion(String robotModel, String webVersion, String controllerVersion);

3.16. Pobieranie wersji sprzętowej robota

 1/**
 2* @brief Pobiera wersję sprzętową robota
 3* @param [out] ctrlBoxBoardVersion Wersja sprzętowa płyty nośnej szafy sterowniczej
 4* @param [out] driver1Version Wersja sprzętowa sterownika 1
 5* @param [out] driver1Version Wersja sprzętowa sterownika 2
 6* @param [out] driver1Version Wersja sprzętowa sterownika 3
 7* @param [out] driver1Version Wersja sprzętowa sterownika 4
 8* @param [out] driver1Version Wersja sprzętowa sterownika 5
 9* @param [out] driver1Version Wersja sprzętowa sterownika 6
10* @param [out] endBoardVersion Wersja sprzętowa płyty końcowej
11* @return Kod błędu
12*/
13int GetHardwareVersion(String ctrlBoxBoardVersion, String driver1Version, String driver2Version, String driver3Version,
14                                      String driver4Version, String driver5Version, String driver6Version, String endBoardVersion);

3.17. Pobieranie wersji oprogramowania sprzętowego (firmware) robota

 1/**
 2* @brief Pobiera wersję oprogramowania sprzętowego (firmware) robota
 3* @param [out] ctrlBoxBoardVersion Wersja firmware płyty nośnej szafy sterowniczej
 4* @param [out] driver1Version Wersja firmware sterownika 1
 5* @param [out] driver1Version Wersja firmware sterownika 2
 6* @param [out] driver1Version Wersja firmware sterownika 3
 7* @param [out] driver1Version Wersja firmware sterownika 4
 8* @param [out] driver1Version Wersja firmware sterownika 5
 9* @param [out] driver1Version Wersja firmware sterownika 6
10* @param [out] endBoardVersion Wersja firmware płyty końcowej
11* @return Kod błędu
12*/
13int GetFirmwareVersion(String ctrlBoxBoardVersion, String driver1Version, String driver2Version, String driver3Version,
14                                      String driver4Version, String driver5Version, String driver6Version, String endBoardVersion);

3.18. Przykład kodu pobierania wersji oprogramowania i oprogramowania sprzętowego robota

 1public static void main(String[] args)
 2{
 3    Robot robot = new Robot();
 4    robot.SetReconnectParam(true,20,500);//ustawienie liczby prób ponownego łączenia i odstępu
 5    robot.LoggerInit(FrLogType.DIRECT, FrLogLevel.INFO, "D://log", 10, 10);
 6    int rtn = robot.RPC("192.168.58.2");
 7    if(rtn == 0)
 8    {
 9        System.out.println("rpc połączenie success");
10    }
11    else
12    {
13        System.out.println("rpc połączenie fail");
14        return ;
15    }
16    String ctrlBoxBoardVersion = "";
17    String driver1Version = "";
18    String driver2Version = "";
19    String driver3Version = "";
20    String driver4Version = "";
21    String driver5Version = "";
22    String driver6Version = "";
23    String endBoardVersion = "";
24    robot.GetHardwareVersion(ctrlBoxBoardVersion ,driver1Version,  driver2Version,  driver3Version,
25             driver4Version,  driver5Version,  driver6Version,  endBoardVersion);
26
27    robot.GetFirmwareVersion(ctrlBoxBoardVersion, driver1Version, driver2Version, driver3Version,
28            driver4Version, driver5Version, driver6Version, endBoardVersion);
29}