cmvr-es/third_party/AuboSdk/linux/include/aubo/runtime_machine.h

1493 lines
39 KiB
C
Raw Normal View History

2025-11-18 10:07:08 +08:00
/** @file runtime_machine.h
* @brief Script interpreter runtime interface,
* allows pausing the script interpreter and setting/removing breakpoints.
*/
#ifndef AUBO_SDK_RUNTIME_MACHINE_INTERFACE_H
#define AUBO_SDK_RUNTIME_MACHINE_INTERFACE_H
#include <memory>
#include <aubo/global_config.h>
#include <aubo/type_def.h>
namespace arcs {
namespace common_interface {
/**
* The RuntimeMachine class
*/
class ARCS_ABI_EXPORT RuntimeMachine
{
public:
RuntimeMachine();
virtual ~RuntimeMachine();
/**
* \chinese
* 返回 task_id
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.newTask","params":[false],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":26}
* \endchinese
* \english
* Returns the task_id
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.newTask","params":[false],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":26}
* \endenglish
*/
int newTask(bool daemon = false);
/**
* \chinese
* 删除 task,会终止正在执行的运动
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.deleteTask","params":[26],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Delete a task, which will terminate any ongoing motion.
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.deleteTask","params":[26],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int deleteTask(int tid);
/**
* \chinese
* 等待 task 自然结束
*
* @param tid
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.detachTask","params":[26],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Wait for the task to finish naturally
*
* @param tid
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.detachTask","params":[26],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int detachTask(int tid);
/**
* \chinese
* 判断任务是否存活
*
* @param tid
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.isTaskAlive","params":[26],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":true}
*
* \endchinese
* \english
* Check if the task is alive
*
* @param tid
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.isTaskAlive","params":[26],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":true}
*
* \endenglish
*/
bool isTaskAlive(int tid);
/**
* \chinese
* 获取任务中缓存的指令的数量
*
* @param tid
* @return
* \endchinese
* \english
* Get the number of cached instructions in the task
*
* @param tid
* @return
* \endenglish
*/
int getTaskQueueSize(int tid);
/**
* \chinese
* 切换当前线程,切换之后接下来的指令将被插入切换后的线程中
*
* @param tid
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.switchTask","params":[26],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Switch the current thread. After switching, subsequent instructions will
* be inserted into the switched thread.
*
* @param tid
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.switchTask","params":[26],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int switchTask(int tid);
/**
* \chinese
* 标记记下来的指令的行号和注释
*
* @param lineno
* @param comment
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.setLabel","params":[5,"moveJoint"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Mark the line number and comment of the recorded instruction
*
* @param lineno
* @param comment
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.setLabel","params":[5,"moveJoint"],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int setLabel(int lineno, const std::string &comment);
/**
* \chinese
* 向aubo_control日志中添加注释
* 使用 setLabel 替换
*
* @param tid 指令的线程ID
* @param lineno 行号
* @param comment 注释
* @return
*
* @par Python函数原型
* setPlanContext(self: pyaubo_sdk.RuntimeMachine, arg0: int, arg1: int,
* arg2: str) -> int
*
* @par Lua函数原型
* setPlanContext(tid: number, lineno: number, comment: string) -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.setPlanContext","params":[26,3,"moveJoint"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Add a comment to the aubo_control log
* Use setLabel instead
*
* @param tid Thread ID of the instruction
* @param lineno Line number
* @param comment Comment
* @return
*
* @par Python function prototype
* setPlanContext(self: pyaubo_sdk.RuntimeMachine, arg0: int, arg1: int,
* arg2: str) -> int
*
* @par Lua function prototype
* setPlanContext(tid: number, lineno: number, comment: string) -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.setPlanContext","params":[26,3,"moveJoint"],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
ARCS_DEPRECATED int setPlanContext(int tid, int lineno,
const std::string &comment);
/**
* \chinese
* 空操作
*
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.nop","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* No operation
*
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.nop","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int nop();
/**
* \chinese
* 获取耗时的接口(INST)执行状态, 如 setPersistentParameters
*
* @return 指令名字, 执行状态
* 执行状态: EXECUTING/FINISHED
*
* @par Python函数原型
* getExecutionStatus(self: pyaubo_sdk.RuntimeMachine) -> Tuple[str, str,
* int]
*
* @par Lua函数原型
* getExecutionStatus() -> string, string, number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getExecutionStatus","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":["confirmSafetyParameters","FINISHED"]}
*
* \endchinese
* \english
* Get the execution status of time-consuming interfaces (INST), such as
* setPersistentParameters
*
* @return Instruction name, execution status
* Execution status: EXECUTING/FINISHED
*
* @par Python function prototype
* getExecutionStatus(self: pyaubo_sdk.RuntimeMachine) -> Tuple[str, str,
* int]
*
* @par Lua function prototype
* getExecutionStatus() -> string, string, number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getExecutionStatus","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":["confirmSafetyParameters","FINISHED"]}
*
* \endenglish
*/
std::tuple<std::string, std::string> getExecutionStatus();
std::tuple<std::string, std::string, int> getExecutionStatus1();
/**
* \chinese
* 跳转到指定行号
*
* @param lineno
* @return
*
* @par Python函数原型
* gotoLine(self: pyaubo_sdk.RuntimeMachine, arg0: int) -> int
*
* @par Lua函数原型
* gotoLine(lineno: number) -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.gotoLine","params":[10],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Jump to the specified line number
*
* @param lineno
* @return
*
* @par Python function prototype
* gotoLine(self: pyaubo_sdk.RuntimeMachine, arg0: int) -> int
*
* @par Lua function prototype
* gotoLine(lineno: number) -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.gotoLine","params":[10],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int gotoLine(int lineno);
/**
* \chinese
* 获取当前运行上下文
*
* @param tid 任务编号
* 如果指定(不是-1),返回对应任务的运行上下文;如果不指定(是-1),返回正在运行的线程的运行上下文
*
* @return
*
* @par Python函数原型
* getPlanContext(self: pyaubo_sdk.RuntimeMachine) -> Tuple[int, int, str]
*
* @par Lua函数原型
* getPlanContext() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getPlanContext","params":[-1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":[-1,0,""]}
*
* \endchinese
* \english
* Get the current runtime context
*
* @param tid Task ID
* If specified (not -1), returns the runtime context of the corresponding
* task; if not specified (is -1), returns the runtime context of the
* currently running thread
*
* @return
*
* @par Python function prototype
* getPlanContext(self: pyaubo_sdk.RuntimeMachine) -> Tuple[int, int, str]
*
* @par Lua function prototype
* getPlanContext() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getPlanContext","params":[-1],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":[-1,0,""]}
*
* \endenglish
*/
std::tuple<int, int, std::string> getPlanContext(int tid = -1);
/**
* \chinese
* 获取提前运行规划器的上下文信息
*
* @param tid 任务编号
* 如果指定(不是-1),返回对应任务运行规划器的上下文信息;如果不指定(是-1),返回正在运行的线程运行规划器的上下文信息
*
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getAdvancePlanContext","params":[-1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":[-1,-1,""]}
*
* \endchinese
* \english
* Get the context information of the advance planner
*
* @param tid Task ID
* If specified (not -1), returns the context information of the advance
* planner for the corresponding task; if not specified (is -1), returns the
* context information of the advance planner for the currently running
* thread
*
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getAdvancePlanContext","params":[-1],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":[-1,-1,""]}
*
* \endenglish
*/
std::tuple<int, int, std::string> getAdvancePlanContext(int tid = -1);
/**
* \chinese
* 获取AdvanceRun的程序指针
*
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getAdvancePtr","params":[-1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endchinese
* \english
* Get the program pointer of AdvanceRun
*
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getAdvancePtr","params":[-1],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endenglish
*/
int getAdvancePtr(int tid = -1);
/**
* \chinese
* 获取机器人运动的程序指针
*
* @param tid 任务编号
* 如果指定(不是-1),返回对应任务的程序指针;如果不指定(是-1),返回正在运行线程的程序指针
*
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getMainPtr","params":[-1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endchinese
* \english
* Get the program pointer of robot motion
*
* @param tid Task ID
* If specified (not -1), returns the program pointer of the corresponding
* task; if not specified (is -1), returns the program pointer of the
* currently running thread
*
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getMainPtr","params":[-1],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endenglish
*/
int getMainPtr(int tid = -1);
/**
* \chinese
* 获取最近解释过的指令指针
*
* @param tid
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getInterpPtr","params":[26],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endchinese
* \english
* Get the pointer of the most recently interpreted instruction
*
* @param tid
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getInterpPtr","params":[26],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endenglish
*/
int getInterpPtr(int tid);
/**
* \chinese
* 加载本地工程文件
* Lua 脚本,只需要给出文件名字,不需要后缀,需要从 ${ARCS_WS}/program
* 目录中查找
*
* @param program
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.loadProgram","params":["demo"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Load a local project file.
* For Lua scripts, only the file name is required (no extension), and it
* will be searched in the ${ARCS_WS}/program directory.
*
* @param program
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.loadProgram","params":["demo"],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int loadProgram(const std::string &program);
/**
* \chinese
* 预加载工程文件
*
* @param index 0~99 工程索引号
* @param program 工程名字
* @return
* \endchinese
* \english
* Preload project file
*
* @param index Project index number (0~99)
* @param program Project name
* @return
* \endenglish
*/
int preloadProgram(int index, const std::string &program);
/**
* \chinese
* 获取预加载工程文件名字,如果没有加载或者超出索引范围则返回空字符串
*
* @param index 0~99 工程索引号
* @return 工程文件名字
* \endchinese
* \english
* Get the name of the preloaded project file. Returns an empty string if
* not loaded or index is out of range.
*
* @param index Project index number (0~99)
* @return Project file name
* \endenglish
*/
std::string getPreloadProgram(int index);
/**
* \chinese
* 清除所有已预加载的工程文件
* 调用此方法将释放所有通过 preloadProgram
* 预加载的工程索引及其关联的工程名称
*
* @return 成功返回0;
* \endchinese
* \english
* Clear all preloaded project files.
* Calling this method will release all project indices and their associated
* program names that were previously preloaded via preloadProgram.
*
* @return Returns 0 on success;
* \endenglish
*/
int clearPreloadPrograms();
/**
* \chinese
* 运行已经加载的工程文件
*
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.runProgram","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Run the already loaded project file
*
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.runProgram","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int runProgram();
/**
* \chinese
* 开始运行时
*
* @return
*
* @par Python函数原型
* start(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua函数原型
* start() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.start","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Start the runtime
*
* @return
*
* @par Python function prototype
* start(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua function prototype
* start() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.start","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int start();
/**
* \chinese
* 停止运行时即脚本运行,无法停止运行时状态为 Stopped 时的机器人运动
*
* 如果考虑停止机器人所有运动,可以调用 RuntimeMachine::abort 接口
*
* @return
*
* @par Python函数原型
* stop(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua函数原型
* stop() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.stop","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Stop the runtime, i.e., stop script execution. Cannot stop robot motion
* when the runtime state is Stopped.
*
* If you want to stop all robot motion, use the RuntimeMachine::abort
* interface.
*
* @return
*
* @par Python function prototype
* stop(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua function prototype
* stop() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.stop","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int stop();
/**
* \chinese
* 终止机器人运行.
*
* 如果只是考虑停止运行时,可以调用 RuntimeMachine::stop 接口
*
* 如果脚本运行时处于 Running 状态,则终止运行时;如果运行时处于 Stopped
* 且机器人正在移动,则停止机器人移动;如果此时力控开启了,则机器人停止力控
*
* @return
*
* @par Python函数原型
* abort(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua函数原型
* abort() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.abort","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Abort robot operation.
*
* If you only want to stop the runtime, you can call the
* RuntimeMachine::stop interface.
*
* If the script runtime is in the Running state, aborts the runtime; if the
* runtime is Stopped and the robot is moving, stops the robot motion; if
* force control is enabled, stops force control.
*
* @return
*
* @par Python function prototype
* abort(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua function prototype
* abort() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.abort","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int abort();
/**
* \chinese
* 暂停解释器
*
* @return
*
* @par Python函数原型
* pause(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua函数原型
* pause() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.pause","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Pause the interpreter
*
* @return
*
* @par Python function prototype
* pause(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua function prototype
* pause() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.pause","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int pause();
/**
* \chinese
* 单步运行
*
* @return
*
* @par Python函数原型
* step(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua函数原型
* step() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.step","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Execute a single step
*
* @return
*
* @par Python function prototype
* step(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua function prototype
* step() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.step","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int step();
/**
* \chinese
* 恢复解释器
*
* @return
*
* @par Python函数原型
* resume(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua函数原型
* resume() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.resume","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Resume the interpreter
*
* @return
*
* @par Python function prototype
* resume(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua function prototype
* resume() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.resume","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int resume();
/**
* \chinese
* 恢复解释器(不检查当前点和暂停点距离)
*
* @return
*
* @par Python函数原型
* arbitraryResume(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua函数原型
* arbitraryResume() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.arbitraryResume","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Resume the interpreter
*
* @return
*
* @par Python function prototype
* arbitraryResume(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua function prototype
* arbitraryResume() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.arbitraryResume","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int arbitraryResume();
/**
* \chinese
* 恢复解释器之前等待恢复前之前的序列完成
*
* @param wait
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.setResumeWait","params":[true],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Wait for the previous sequence to complete before resuming the
* interpreter
*
* @param wait
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.setResumeWait","params":[true],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int setResumeWait(bool wait);
/**
* \chinese
* 获取规划器的状态
*
* @return
*
* @par Python函数原型
* getStatus(self: pyaubo_sdk.RuntimeMachine) ->
* arcs::common_interface::RuntimeState
*
* @par Lua函数原型
* getStatus() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getStatus","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":"Running"}
*
* \endchinese
* \english
* Get the status of the planner
*
* @return
*
* @par Python function prototype
* getStatus(self: pyaubo_sdk.RuntimeMachine) ->
* arcs::common_interface::RuntimeState
*
* @par Lua function prototype
* getStatus() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getStatus","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":"Running"}
*
* \endenglish
*/
ARCS_DEPRECATED RuntimeState getStatus();
RuntimeState getRuntimeState();
/**
* \chinese
* 设置断点
*
* @param lineno
* @return
*
* @par Python函数原型
* setBreakPoint(self: pyaubo_sdk.RuntimeMachine, arg0: int) -> int
*
* @par Lua函数原型
* setBreakPoint(lineno: number) -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.setBreakPoint","params":[15],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Set a breakpoint
*
* @param lineno
* @return
*
* @par Python function prototype
* setBreakPoint(self: pyaubo_sdk.RuntimeMachine, arg0: int) -> int
*
* @par Lua function prototype
* setBreakPoint(lineno: number) -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.setBreakPoint","params":[15],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int setBreakPoint(int lineno);
/**
* \chinese
* 移除断点
*
* @param lineno
* @return
*
* @par Python函数原型
* removeBreakPoint(self: pyaubo_sdk.RuntimeMachine, arg0: int) -> int
*
* @par Lua函数原型
* removeBreakPoint(lineno: number) -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.removeBreakPoint","params":[15],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Remove a breakpoint
*
* @param lineno
* @return
*
* @par Python function prototype
* removeBreakPoint(self: pyaubo_sdk.RuntimeMachine, arg0: int) -> int
*
* @par Lua function prototype
* removeBreakPoint(lineno: number) -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.removeBreakPoint","params":[15],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int removeBreakPoint(int lineno);
/**
* \chinese
* 清除所有断点
*
* @return
*
* @par Python函数原型
* clearBreakPoints(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua函数原型
* clearBreakPoints() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.clearBreakPoints","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Clear all breakpoints
*
* @return
*
* @par Python function prototype
* clearBreakPoints(self: pyaubo_sdk.RuntimeMachine) -> int
*
* @par Lua function prototype
* clearBreakPoints() -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.clearBreakPoints","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int clearBreakPoints();
/**
* \chinese
* 定时器开始
*
* @param name
* @return
*
* @par Python函数原型
* timerStart(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> int
*
* @par Lua函数原型
* timerStart(name: string) -> nil
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.timerStart","params":["timer"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Start the timer
*
* @param name
* @return
*
* @par Python function prototype
* timerStart(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> int
*
* @par Lua function prototype
* timerStart(name: string) -> nil
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.timerStart","params":["timer"],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int timerStart(const std::string &name);
/**
* \chinese
* 定时器结束
*
* @param name
* @return
*
* @par Python函数原型
* timerStop(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> int
*
* @par Lua函数原型
* timerStop(name: string) -> nil
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.timerStop","params":["timer"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Stop the timer
*
* @param name
* @return
*
* @par Python function prototype
* timerStop(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> int
*
* @par Lua function prototype
* timerStop(name: string) -> nil
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.timerStop","params":["timer"],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int timerStop(const std::string &name);
/**
* \chinese
* 定时器重置
*
* @param name
* @return
*
* @par Python函数原型
* timerReset(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> int
*
* @par Lua函数原型
* timerReset(name: string) -> nil
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.timerReset","params":["timer"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Reset the timer
*
* @param name
* @return
*
* @par Python function prototype
* timerReset(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> int
*
* @par Lua function prototype
* timerReset(name: string) -> nil
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.timerReset","params":["timer"],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int timerReset(const std::string &name);
/**
* \chinese
* 定时器删除
*
* @param name
* @return
*
* @par Python函数原型
* timerDelete(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> int
*
* @par Lua函数原型
* timerDelete(name: string) -> nil
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.timerDelete","params":["timer"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Delete the timer
*
* @param name
* @return
*
* @par Python function prototype
* timerDelete(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> int
*
* @par Lua function prototype
* timerDelete(name: string) -> nil
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.timerDelete","params":["timer"],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int timerDelete(const std::string &name);
/**
* \chinese
* 获取定时器数值
*
* @param name
* @return
*
* @par Python函数原型
* getTimer(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> float
*
* @par Lua函数原型
* getTimer(name: string) -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getTimer","params":["timer"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":25.409769612}
*
* \endchinese
* \english
* Get the timer value
*
* @param name
* @return
*
* @par Python function prototype
* getTimer(self: pyaubo_sdk.RuntimeMachine, arg0: str) -> float
*
* @par Lua function prototype
* getTimer(name: string) -> number
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getTimer","params":["timer"],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":25.409769612}
*
* \endenglish
*/
double getTimer(const std::string &name);
/**
* \chinese
* 开始配置触发
*
* @param distance
* @param delay
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.triggBegin","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Start configuring trigger
*
* @param distance
* @param delay
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.triggBegin","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int triggBegin(double distance, double delay);
/**
* \chinese
* 终止配置触发
*
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.triggEnd","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* End configuring trigger
*
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.triggEnd","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int triggEnd();
/**
* \chinese
* 返回自动分配的中断号
*
* @param distance
* @param delay
* @param intnum
* @return
* \endchinese
* \english
* Returns the automatically assigned interrupt number
*
* @param distance
* @param delay
* @param intnum
* @return
* \endenglish
*/
int triggInterrupt(double distance, double delay);
/**
* \chinese
* 获取所有的中断号列表
*
* @return
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"RuntimeMachine.getTriggInterrupts","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":[]}
*
* \endchinese
* \english
* Get the list of all interrupt numbers
*
* @return
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"RuntimeMachine.getTriggInterrupts","params":[],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":[]}
*
* \endenglish
*/
std::vector<int> getTriggInterrupts();
protected:
void *d_;
};
using RuntimeMachinePtr = std::shared_ptr<RuntimeMachine>;
} // namespace common_interface
} // namespace arcs
#endif // AUBO_SDK_RUNTIME_MACHINE_H