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}