10. Uso do Programa WebAPP do Robô

10.1. Definir carregamento automático do programa de trabalho padrão na inicialização

1/**
2* @brief  Define o carregamento automático do programa de trabalho padrão na inicialização
3* @param  [in] flag  0-não carregar automaticamente o programa padrão na inicialização, 1-carregar automaticamente o programa padrão na inicialização
4* @param  [in] program_name Nome e caminho do programa de trabalho, ex: "movej.lua"
5* @return  Código de erro
6*/
7errno_t LoadDefaultProgConfig(uint8_t flag, char program_name[64]);

10.2. Carregar o programa de trabalho especificado

1/**
2* @brief  Carrega o programa de trabalho especificado
3* @param  [in] program_name Nome e caminho do programa de trabalho, ex: "movej.lua"
4* @return  Código de erro
5*/
6errno_t ProgramLoad(char program_name[64]);

10.3. Obter o nome do programa de trabalho carregado

1/**
2* @brief  Obtém o nome do programa de trabalho carregado
3* @param  [out] program_name Nome e caminho do programa de trabalho, ex: "movej.lua"
4* @return  Código de erro
5*/
6errno_t GetLoadedProgram(char program_name[64]);

10.4. Obter o número da linha atual de execução do programa de trabalho do robô

1/**
2* @brief  Obtém o número da linha atual de execução do programa de trabalho do robô
3* @param  [out] line  Número da linha
4* @return  Código de erro
5*/
6errno_t GetCurrentLine(int *line);

10.5. Executar o programa de trabalho atualmente carregado

1/**
2* @brief  Executa o programa de trabalho atualmente carregado
3* @return  Código de erro
4*/
5errno_t ProgramRun();

10.6. Pausar o programa de trabalho atualmente em execução

1/**
2* @brief  Pausa o programa de trabalho atualmente em execução
3* @return  Código de erro
4*/
5errno_t ProgramPause();

10.7. Retomar o programa de trabalho atualmente pausado

1/**
2* @brief  Retoma o programa de trabalho atualmente pausado
3* @return  Código de erro
4*/
5errno_t ProgramResume();

10.8. Terminar o programa de trabalho atualmente em execução

1/**
2* @brief  Termina o programa de trabalho atualmente em execução
3* @return  Código de erro
4*/
5errno_t ProgramStop();

10.9. Obter o estado de execução do programa de trabalho do robô

1/**
2* @brief  Obtém o estado de execução do programa de trabalho do robô
3* @param  [out] state 1-programa parado ou nenhum programa em execução, 2-programa em execução, 3-programa pausado
4* @return  Código de erro
5*/
6errno_t GetProgramState(uint8_t *state);

10.10. Exemplo de Código de Operação de Programa LUA do Robô

 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. Baixar arquivo Lua

Novo na versão C++SDK-v2.1.2.0.

1/**
2* @brief Baixa arquivo Lua
3* @param [in] fileName Nome do arquivo Lua a ser baixado, ex: "test.lua"
4* @param [in] savePath Caminho local para salvar o arquivo, ex: "D://Down/"
5* @return Código de erro
6*/
7errno_t LuaDownLoad(std::string fileName, std::string savePath);

10.12. Excluir arquivo Lua

Novo na versão C++SDK-v2.1.2.0.

1/**
2* @brief Exclui arquivo Lua
3* @param [in] fileName Nome do arquivo Lua a ser excluído, ex: "test.lua"
4* @return Código de erro
5*/
6errno_t LuaDelete(std::string fileName);

10.13. Obter todos os nomes de arquivos Lua atuais

Novo na versão C++SDK-v2.1.2.0.

1/**
2* @brief Obtém todos os nomes de arquivos Lua atuais
3* @param [out] luaNames Lista de nomes de arquivos Lua
4* @return Código de erro
5*/
6errno_t GetLuaList(std::list<std::string>* luaNames);

10.14. Enviar arquivo Lua

Novo na versão C++SDK-v2.1.2.0.

1/**
2* @brief Envia arquivo Lua
3* @param [in] filePath Caminho do arquivo Lua local
4* @return Código de erro
5*/
6errno_t LuaUpload(std::string filePath);

10.15. Exemplo de Código de Envio e Download de Arquivo LUA do Robô

 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}