10. Użycie programu WebAPP robota

10.1. Ustawianie automatycznego ładowania domyślnego programu roboczego przy uruchomieniu

1/**
2* @brief  Ustawia automatyczne ładowanie domyślnego programu roboczego przy uruchomieniu
3* @param  [in] flag  0-nie ładuj automatycznie domyślnego programu przy uruchomieniu, 1-ładuj automatycznie domyślny program przy uruchomieniu
4* @param  [in] program_name Nazwa i ścieżka programu roboczego, np. "movej.lua", gdzie "/fruser/" to stała ścieżka dla QX, "/usr/local/etc/controller/lua/" to stała ścieżka dla LA
5* @return  Kod błędu
6*/
7errno_t  LoadDefaultProgConfig(uint8_t flag, char program_name[64]);

10.2. Ładowanie określonego programu roboczego

1/**
2* @brief  Ładuje określony program roboczy
3* @param  [in] program_name Nazwa i ścieżka programu roboczego, np. "/fruser/movej.lua", gdzie "/fruser/" to stała ścieżka dla QX, "/usr/local/etc/controller/lua/" to stała ścieżka dla LA
4* @return  Kod błędu
5*/
6errno_t  ProgramLoad(char program_name[64]);

10.3. Pobieranie nazwy załadowanego programu roboczego

1/**
2* @brief  Pobiera nazwę załadowanego programu roboczego
3* @param  [out] program_name Nazwa i ścieżka programu roboczego, np. "/fruser/movej.lua", gdzie "/fruser/" to stała ścieżka dla QX, "/usr/local/etc/controller/lua/" to stała ścieżka dla LA
4* @return  Kod błędu
5*/
6errno_t  GetLoadedProgram(char program_name[64]);

10.4. Pobieranie numeru linii wykonywanego programu roboczego robota

1/**
2* @brief  Pobiera numer linii wykonywanego programu roboczego robota
3* @param  [out] line  Numer linii
4* @return  Kod błędu
5*/
6errno_t  GetCurrentLine(int *line);

10.5. Uruchamianie aktualnie załadowanego programu roboczego

1/**
2* @brief  Uruchamia aktualnie załadowany program roboczy
3* @return  Kod błędu
4*/
5errno_t  ProgramRun();

10.6. Wstrzymywanie aktualnie uruchomionego programu roboczego

1/**
2* @brief  Wstrzymuje aktualnie uruchomiony program roboczy
3* @return  Kod błędu
4*/
5errno_t  ProgramPause();

10.7. Wznawianie aktualnie wstrzymanego programu roboczego

1/**
2* @brief  Wznawia aktualnie wstrzymany program roboczy
3* @return  Kod błędu
4*/
5errno_t  ProgramResume();

10.8. Zatrzymywanie aktualnie uruchomionego programu roboczego

1/**
2* @brief  Zatrzymuje aktualnie uruchomiony program roboczy
3* @return  Kod błędu
4*/
5errno_t  ProgramStop();

10.9. Pobieranie stanu wykonania programu roboczego robota

1/**
2* @brief  Pobiera stan wykonania programu roboczego robota
3* @param  [out]  state 1-program zatrzymany lub brak uruchomionego programu, 2-program w trakcie wykonywania, 3-program wstrzymany
4* @return  Kod błędu
5*/
6errno_t  GetProgramState(uint8_t *state);

10.10. Przykład kodu operacji na programie LUA robota

 1int TestLuaOp(void)
 2{
 3  ROBOT_STATE_PKG pkg = {};
 4  FRRobot robot;
 5  robot.LoggerInit();
 6  robot.SetLoggerLevel(1);
 7  int rtn = robot.RPC("192.168.58.2");
 8  if (rtn != 0)
 9  {
10    return -1;
11  }
12  robot.SetReConnectParam(true, 30000, 500);
13  char program_name[64] = "test.lua";
14  char loaded_name[64] = "";
15  uint8_t state;
16  int line;
17  robot.Mode(0);
18  robot.LoadDefaultProgConfig(0, program_name);
19  robot.ProgramLoad(program_name);
20  robot.ProgramRun();
21  robot.Sleep(1000);
22  robot.ProgramPause();
23  robot.GetProgramState(&state);
24  printf("program state:%u\n", state);
25  robot.GetCurrentLine(&line);
26  printf("current line:%d\n", line);
27  robot.GetLoadedProgram(loaded_name);
28  printf("program name:%s\n", loaded_name);
29  robot.Sleep(1000);
30  robot.ProgramResume();
31  robot.Sleep(1000);
32  robot.ProgramStop();
33  robot.Sleep(1000);
34  robot.CloseRPC();
35  return 0;
36}

10.11. Pobieranie pliku Lua

Nowe w wersji C++SDK-v2.1.2.0.

1/**
2* @brief Pobiera plik Lua
3* @param [in] fileName Nazwa pliku lua do pobrania, np.: "test.lua"
4* @param [in] savePath Lokalna ścieżka zapisu pliku, np.: "D://Down/"
5* @return Kod błędu
6*/
7errno_t LuaDownLoad(std::string fileName, std::string savePath);

10.12. Usuwanie pliku Lua

Nowe w wersji C++SDK-v2.1.2.0.

1/**
2* @brief Usuwa plik Lua
3* @param [in] fileName Nazwa pliku lua do usunięcia, np.: "test.lua"
4* @return Kod błędu
5*/
6errno_t LuaDelete(std::string fileName);

10.13. Pobieranie listy wszystkich bieżących nazw plików Lua

Nowe w wersji C++SDK-v2.1.2.0.

1/**
2* @brief Pobiera listę wszystkich bieżących nazw plików Lua
3* @param [out] luaNames Lista nazw plików lua
4* @return Kod błędu
5*/
6errno_t GetLuaList(std::list<std::string>* luaNames);

10.14. Przesyłanie pliku Lua

Nowe w wersji C++SDK-v2.1.2.0.

1/**
2* @brief Przesyła plik Lua
3* @param [in] filePath Ścieżka lokalnego pliku lua
4* @return Kod błędu
5*/
6errno_t LuaUpload(std::string filePath);

10.15. Przykład kodu przesyłania i pobierania pliku LUA robota

 1int TestLUAUpDownLoad(void)
 2{
 3  ROBOT_STATE_PKG pkg = {};
 4  FRRobot robot;
 5  robot.LoggerInit();
 6  robot.SetLoggerLevel(1);
 7  int rtn = robot.RPC("192.168.58.2");
 8  if (rtn != 0)
 9  {
10    return -1;
11  }
12  robot.SetReConnectParam(true, 30000, 500);
13  list<std::string> luaNames;
14  rtn = robot.GetLuaList(&luaNames);
15  std::cout << "res is: " << rtn << std::endl;
16  std::cout << "size is: " << luaNames.size() << std::endl;
17  for (auto it = luaNames.begin(); it != luaNames.end(); it++)
18  {
19    std::cout << it->c_str() << std::endl;
20  }
21  rtn = robot.LuaDownLoad("test.lua", "D://zDOWN/");
22  printf("LuaDownLoad rtn is %d\n", rtn);
23  rtn = robot.LuaUpload("D://zUP/airlab.lua");
24  printf("LuaUpload rtn is %d\n", rtn);
25  rtn = robot.LuaDelete("test.lua");
26  printf("LuaDelete rtn is %d\n", rtn);
27  robot.CloseRPC();
28  return 0;
29}