10. Uso Programmi WebAPP Robot

10.1. Impostare Caricamento Automatico Programma Lavoro Predefinito all’Avvio

1/**
2* @brief  Imposta il caricamento automatico del programma lavoro predefinito all'avvio
3* @param  [in] flag  0-non carica automaticamente programma predefinito all'avvio, 1-carica automaticamente programma predefinito all'avvio
4* @param  [in] program_name  Nome programma lavoro e percorso, es. "/fruser/movej.lua", dove "/fruser/" è percorso fisso QX, "/usr/local/etc/controller/lua/" è percorso fisso LA
5* @return  Codice errore
6*/
7errno_t  LoadDefaultProgConfig(uint8_t flag, char program_name[64]);

10.2. Caricare Programma Lavoro Specificato

1/**
2* @brief  Carica il programma lavoro specificato
3* @param  [in] program_name  Nome programma lavoro e percorso, es. "/fruser/movej.lua", dove "/fruser/" è percorso fisso QX, "/usr/local/etc/controller/lua/" è percorso fisso LA
4* @return  Codice errore
5*/
6errno_t  ProgramLoad(char program_name[64]);

10.3. Ottenere Nome Programma Lavoro già Caricato

1/**
2* @brief  Ottiene il nome del programma lavoro già caricato
3* @param  [out] program_name  Nome programma lavoro e percorso, es. "/fruser/movej.lua", dove "/fruser/" è percorso fisso QX, "/usr/local/etc/controller/lua/" è percorso fisso LA
4* @return  Codice errore
5*/
6errno_t  GetLoadedProgram(char program_name[64]);

10.4. Ottenere Numero di Linea di Esecuzione del Programma Lavoro Corrente del Robot

1/**
2* @brief  Ottiene il numero di linea di esecuzione del programma lavoro corrente del robot
3* @param  [out] line  Numero linea
4* @return  Codice errore
5*/
6errno_t  GetCurrentLine(int *line);

10.5. Eseguire Programma Lavoro Attualmente Caricato

1/**
2* @brief  Esegue il programma lavoro attualmente caricato
3* @return  Codice errore
4*/
5errno_t  ProgramRun();

10.6. Mettere in Pausa Programma Lavoro Attualmente in Esecuzione

1/**
2* @brief  Mette in pausa il programma lavoro attualmente in esecuzione
3* @return  Codice errore
4*/
5errno_t  ProgramPause();

10.7. Riprendere Programma Lavoro Attualmente in Pausa

1/**
2* @brief  Riprende il programma lavoro attualmente in pausa
3* @return  Codice errore
4*/
5errno_t  ProgramResume();

10.8. Terminare Programma Lavoro Attualmente in Esecuzione

1/**
2* @brief  Termina il programma lavoro attualmente in esecuzione
3* @return  Codice errore
4*/
5errno_t  ProgramStop();

10.9. Ottenere Stato di Esecuzione Programma Lavoro Robot

1/**
2* @brief  Ottiene lo stato di esecuzione del programma lavoro del robot
3* @param  [out]  state 1-programma fermo o nessun programma in esecuzione, 2-programma in esecuzione, 3-programma in pausa
4* @return  Codice errore
5*/
6errno_t  GetProgramState(uint8_t *state);

10.10. Esempio di Codice Operazioni su Programmi LUA Robot

 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] = "/fruser/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. Scaricare File Lua

Nuovo nella versione C++SDK-v2.1.2.0.

1/**
2* @brief Scarica file Lua
3* @param [in] fileName Nome file lua da scaricare, es.: "test.lua"
4* @param [in] savePath Percorso locale per salvare il file, es.: "D://Down/"
5* @return Codice errore
6*/
7errno_t LuaDownLoad(std::string fileName, std::string savePath);

10.12. Eliminare File Lua

Nuovo nella versione C++SDK-v2.1.2.0.

1/**
2* @brief Elimina file Lua
3* @param [in] fileName Nome file lua da eliminare, es.: "test.lua"
4* @return Codice errore
5*/
6errno_t LuaDelete(std::string fileName);

10.13. Ottenere Nomi di Tutti i File Lua Correnti

Nuovo nella versione C++SDK-v2.1.2.0.

1/**
2* @brief Ottiene i nomi di tutti i file Lua attuali
3* @param [out] luaNames Lista nomi file lua
4* @return Codice errore
5*/
6errno_t GetLuaList(std::list<std::string>* luaNames);

10.14. Caricare File Lua

Nuovo nella versione C++SDK-v2.1.2.0.

1/**
2* @brief Carica file Lua
3* @param [in] filePath Percorso nome file lua locale
4* @return Codice errore
5*/
6errno_t LuaUpload(std::string filePath);

10.15. Esempio di Codice Caricamento e Scaricamento File LUA Robot

 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}