/** @file trace.h * \~chinese @brief 向控制器日志系统注入日志方面的接口 \~english @brief Interface for injecting logs into the controller's logging system */ #ifndef AUBO_SDK_TRACE_INTERFACE_H #define AUBO_SDK_TRACE_INTERFACE_H #include #include #include #include #include #include namespace arcs { namespace common_interface { /** * \~chinese 提供给控制器扩展程序的日志记录系统 \~english provides a logging system for controller extension programs */ class ARCS_ABI_EXPORT Trace { public: Trace(); virtual ~Trace(); /** * \~chinese 向 aubo_control 日志注入告警信息 \~english Injects alarm information into the aubo_control log * * TraceLevel: \n * 0 - FATAL \n * 1 - ERROR \n * 2 - WARNING \n * 3 - INFO \n * 4 - DEBUG \n * * \~chinese code定义参考 error_stack \~english Code definitions refer to error_stack * * @param level * @param code * @param args * @return * * \~chinese @par Python函数原型 \~english @par Python function prototype * alarm(self: pyaubo_sdk.Trace, arg0: arcs::common_interface::TraceLevel, * arg1: int, arg2: List[str]) -> int * * \~chinese @par Lua函数原型 \~english @par Lua function prototype * alarm(level: number, code: number, args: table) -> nil * * \~chinese @par JSON-RPC请求示例 \~english @par JSON-RPC request example * {"jsonrpc":"2.0","method":"rob1.Trace.alarm","params":["",1,["Error","Trajectory * planning failed!","1"]],"id":1} * * \~chinese @par JSON-RPC响应示例 \~engish @par JSON-RPC response example * {"id":1,"jsonrpc":"2.0","result":0} * */ int alarm(TraceLevel level, int code, const std::vector &args = {}); /** * \chinese * 打印文本信息到日志中 * * @param msg 文本信息 * @return * * @par Python函数原型 * textmsg(self: pyaubo_sdk.Trace, arg0: str) -> int * * @par Lua函数原型 * textmsg(msg: string) -> nil * * @par JSON-RPC请求示例 * {"jsonrpc":"2.0","method":"rob1.Trace.textmsg","params":["test"],"id":1} * * @par JSON-RPC响应示例 * {"id":1,"jsonrpc":"2.0","result":0} * \endchinese * \english * print message into log * * @param msg message information * @return * * @par Python function prototype * textmsg(self: pyaubo_sdk.Trace, arg0: str) -> int * * @par Lua function prototype * textmsg(msg: string) -> nil * * @par JSON-RPC request example * {"jsonrpc":"2.0","method":"rob1.Trace.textmsg","params":["test"],"id":1} * * @par JSON-RPC responose example * {"id":1,"jsonrpc":"2.0","result":0} * \endenglish */ int textmsg(const std::string &msg); /** * \~chinese 通知上位机 \~english Notify the system * * @param msg * @return */ int notify(const std::string &msg); /** * \chinese * 向连接的 RTDE 客户端发送弹窗请求 * * @param level * @param title * @param msg * @param mode 模式 \n * 0: 普通模式 \n * 1: 阻塞模式 \n * 2: 输入模式 bool \n * 3: 输入模式 int \n * 4: 输入模式 double \n * 5: 输入模式 string \n * @return * * @par Python函数原型 * popup(self: pyaubo_sdk.Trace, arg0: arcs::common_interface::TraceLevel, * arg1: str, arg2: str, arg3: int) -> int * * @par Lua函数原型 * popup(level: number, title: string, msg: string, mode: number) -> nil * * @par JSON-RPC请求示例 * {"jsonrpc":"2.0","method":"rob1.Trace.popup","params":["","Error","Trajectory * planning failed!",1],"id":1} * * @par JSON-RPC响应示例 * {"id":1,"jsonrpc":"2.0","result":0} * \endchinese * \english * Send a popup request to the connected RTDE client * * @param level * @param title * @param msg * @param mode mode \n * 0: normal mode \n * 1: blocking mode \n * 2: input mode bool \n * 3: input mode int \n * 4: input mode double \n * 5: input mode string \n * @return * * @par Python function prototype * popup(self: pyaubo_sdk.Trace, arg0: arcs::common_interface::TraceLevel, * arg1: str, arg2: str, arg3: int) -> int * * @par Lua function prototype * popup(level: number, title: string, msg: string, mode: number) -> nil * * @par JSON-RPC request example * {"jsonrpc":"2.0","method":"rob1.Trace.popup","params":["","Error","Trajectory * planning failed!",1],"id":1} * * @par JSON-RPC response example * {"id":1,"jsonrpc":"2.0","result":0} * \endenglish */ int popup(TraceLevel level, const std::string &title, const std::string &msg, int mode); /** * \chinese * peek最新的 AlarmInfo(上次一获取之后) * * last_time设置为0时,可以获取到所有的AlarmInfo * * @param num * @param last_time * @return * * @par Python函数原型 * peek(self: pyaubo_sdk.Trace, arg0: int, arg1: int) -> * List[arcs::common_interface::RobotMsg] * * @par Lua函数原型 * peek(num: number, last_time: number) -> table * * @par JSON-RPC请求示例 * {"jsonrpc":"2.0","method":"rob1.Trace.peek","params":[1,0],"id":1} * * @par JSON-RPC响应示例 * {{"id":1,"jsonrpc":"2.0","result":[{"args":["RobotModeType.Running"], * "code":30045,"level":"INFO","source":"rob1","timestamp":5102883064300}]} * \endchinese * \english * peek the latest AlarmInfo (after the last retrieval) * * When last_time is set as 0, retrieve all AlarmInfo * * @param num * @param last_time * @return * * @par Python function prototype * peek(self: pyaubo_sdk.Trace, arg0: int, arg1: int) -> * List[arcs::common_interface::RobotMsg] * * @par Lua function prototype * peek(num: number, last_time: number) -> table * * @par JSON-RPC request example * {"jsonrpc":"2.0","method":"rob1.Trace.peek","params":[1,0],"id":1} * * @par JSON-RPC response example * {{"id":1,"jsonrpc":"2.0","result":[{"args":["RobotModeType.Running"], * "code":30045,"level":"INFO","source":"rob1","timestamp":5102883064300}]} * \endenglish */ RobotMsgVector peek(size_t num, uint64_t last_time = 0); protected: void *d_; }; using TracePtr = std::shared_ptr; } // namespace common_interface } // namespace arcs #endif