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}