9. 机器人WebAPP程序使用

9.1. 设置开机自动加载默认的作业程序

1/**
2* @brief  设置开机自动加载默认的作业程序
3* @param  [in] flag  0-开机不自动加载默认程序,1-开机自动加载默认程序
4* @param  [in] program_name 作业程序名及路径,如"/fruser/movej.lua",其中"/fruser/"为固定路径
5* @return  错误码
6*/
7errno_t  LoadDefaultProgConfig(uint8_t flag, char program_name[64]);

9.2. 加载指定的作业程序

1/**
2* @brief  加载指定的作业程序
3* @param  [in] program_name 作业程序名及路径,如"/fruser/movej.lua",其中"/fruser/"为固定路径
4* @return  错误码
5*/
6errno_t  ProgramLoad(char program_name[64]);

9.3. 获取已加载的作业程序名

1/**
2* @brief  获取已加载的作业程序名
3* @param  [out] program_name 作业程序名及路径,如"/fruser/movej.lua",其中"/fruser/"为固定路径
4* @return  错误码
5*/
6errno_t  GetLoadedProgram(char program_name[64]);

9.4. 获取当前机器人作业程序的执行行号

1/**
2* @brief  获取当前机器人作业程序执行的行号
3* @param  [out] line  行号
4* @return  错误码
5*/
6errno_t  GetCurrentLine(int *line);

9.5. 运行当前加载的作业程序

1/**
2* @brief  运行当前加载的作业程序
3* @return  错误码
4*/
5errno_t  ProgramRun();

9.6. 暂停当前运行的作业程序

1/**
2* @brief  暂停当前运行的作业程序
3* @return  错误码
4*/
5errno_t  ProgramPause();

9.7. 恢复当前暂停的作业程序

1/**
2* @brief  恢复当前暂停的作业程序
3* @return  错误码
4*/
5errno_t  ProgramResume();

9.8. 终止当前运行的作业程序

1/**
2* @brief  终止当前运行的作业程序
3* @return  错误码
4*/
5errno_t  ProgramStop();

9.9. 获取机器人作业程序执行状态

1/**
2* @brief  获取机器人作业程序执行状态
3* @param  [out]  state 1-程序停止或无程序运行,2-程序运行中,3-程序暂停
4* @return  错误码
5*/
6errno_t  GetProgramState(uint8_t *state);

9.10. 代码示例

 1#include <cstdlib>
 2#include <iostream>
 3#include <stdio.h>
 4#include <cstring>
 5#include <unistd.h>
 6#include "FRRobot.h"
 7#include "RobotTypes.h"
 8
 9using namespace std;
10
11int main(void)
12{
13    FRRobot robot;                 //实例化机器人对象
14    robot.RPC("192.168.58.2");     //与机器人控制器建立通信连接
15
16    char program_name[64] = "/fruser/ptps.lua";
17    char loaded_name[64] = "";
18    uint8_t state;
19    int line;
20
21    robot.Mode(0);
22    robot.ProgramLoad(program_name);
23    robot.ProgramRun();
24    sleep(5);
25    robot.ProgramPause();
26    robot.GetProgramState(&state);
27    printf("program state:%u\n", state);
28    robot.GetCurrentLine(&line);
29    printf("current line:%d\n", line);
30    robot.GetLoadedProgram(loaded_name);
31    printf("program name:%s\n", loaded_name);
32    sleep(5);
33    robot.ProgramResume();
34    sleep(5);
35    robot.ProgramStop();
36    sleep(2);
37
38    return 0;
39}

9.11. 下载Lua文件

在 C++SDK-v2.1.2.0 版本加入.

1/**
2* @brief 下载Lua文件
3* @param [in] fileName 要下载的lua文件名,例如:“test.lua”
4* @param [in] savePath 保存文件本地路径,例如:“D://Down/”
5* @return 错误码
6*/
7errno_t LuaDownLoad(std::string fileName, std::string savePath);

9.12. 上传Lua文件

在 C++SDK-v2.1.2.0 版本加入.

1/**
2* @brief 上传Lua文件
3* @param [in] filePath 本地lua文件路径名
4* @return 错误码
5*/
6errno_t LuaUpload(std::string filePath);

9.13. 删除Lua文件

在 C++SDK-v2.1.2.0 版本加入.

1/**
2* @brief 删除Lua文件
3* @param [in] fileName 要删除的lua文件名,例如:“test.lua”
4* @return 错误码
5*/
6errno_t LuaDelete(std::string fileName);

9.14. 获取当前所有lua文件名称

在 C++SDK-v2.1.2.0 版本加入.

1/**
2* @brief 获取当前所有lua文件名称
3* @param [out] luaNames lua文件名列表
4* @return 错误码
5*/
6errno_t GetLuaList(std::list<std::string>* luaNames);

9.15. 代码示例

在 C++SDK-v2.1.2.0 版本加入.

 1#include "libfairino/robot.h"
 2
 3//如果使用Windows,包含下面的头文件
 4#include <string.h>
 5#include <windows.h>
 6//如果使用linux,包含下面的头文件
 7/*
 8#include <cstdlib>
 9#include <iostream>
10#include <stdio.h>
11#include <cstring>
12#include <unistd.h>
13*/
14#include <chrono>
15#include <thread>
16#include <string>
17
18using namespace std;
19int main(void)
20{
21    FRRobot robot;
22    robot.LoggerInit();
23    robot.SetLoggerLevel(3);
24    robot.RPC("192.168.58.2");
25
26    /* 获取lua名称 */
27    list<std::string> luaNames;
28    int res = robot.GetLuaList(&luaNames);
29    std::cout << "res is: " << res << std::endl;
30    std::cout << "size is: " << luaNames.size() <<std::endl;
31    for(auto it = luaNames.begin(); it != luaNames.end(); it++)
32    {
33        std::cout << it->c_str() << std::endl;
34    }
35
36    /* 下载lua */
37    res = robot.LuaDownLoad("test.lua", "D://Down/");
38    std::cout << "res is: " << res << std::endl;
39
40    /* 上传lua */
41    res = robot.LuaUpload("D://Down/test.lua");
42    std::cout << "res is: " << res << std::endl;
43
44    /* 删除lua */
45    res = robot.LuaDelete("test.lua");
46    std::cout << "res is: " << res << std::endl;
47
48    robot.CloseRPC();
49    return 0;
50}