帮助中心
帮助中心主页
API
TCP/IP API
机器人状态API
查询机器人的被阻挡状态
下载机器人脚本

请求

  • 编号: 4022 (0x0FB6)
  • 名称: robot_config_downloadscript_req
  • 描述: 下载机器人脚本
  • JSON 数据区: 见下表
字段名类型描述可缺省
typestring机器人脚本的类型,“module”=机构脚本,“genetic”=通用脚本
relative_pathstring脚本相对目录,与脚本查询中的相同

请求示例

如下表示下载机器人机构脚本syspy/addMoveTaskList.py

json
{
	"type": "module",
	"relative_path": "syspy/addMoveTaskList.py"
}
1
2
3
4

响应

  • 编号: 14022 (0x36C6)
  • 名称: robot_config_downloadscript_res
  • 描述: 下载机器人脚本的响应
  • JSON 数据区: 见下

响应示例

python

import json
import time
from rbk import MoveStatus, BasicModule, ParamServer
from rbkSim import SimModule
"""
####BEGIN DEFAULT ARGS####
{
    "move_task_list": {
        "value": "",
        "tips": "任务",
        "unit": "",
        "type": "json"
    }
}
####END DEFAULT ARGS####
"""

"""
####BEGIN DESCRIPTION####
this is the description for this script
####END DESCRIPTION####
"""
class Module(BasicModule):
    """让音乐响起来,默认只播放一遍
    """
    def __init__(self, r:SimModule, args):
        super(Module, self).__init__()
        self.init = True    
        self.status = MoveStatus.NONE
        self.task = ""
    def run(self, r:SimModule,args):
        """主函数,每个运行周期都会执行run函数

        Args:
            r (SimModule): 是MoveFactory的类,包含了基本的电机控制,状态查询,消息查询的功能
            args ([type]): 输入参数,是个json类

        Returns:
            [type]: 返回运行状态,MoveStatus,用于表明脚本的运行状态
        """
        if self.status == MoveStatus.FINISHED:
            return self.status
        self.status = MoveStatus.RUNNING
        if self.init:
            self.task = args.get("move_task_list","")
            self.init = False
        r.logInfo(str(type(self.task)))
        if type(self.task) == str:
            r.addMoveTaskList(str(self.task))
        elif type(self.task) == dict or type(self.task) == list:
            r.addMoveTaskList(json.dumps(self.task))
        else:
            r.setError('args error {}'.format(json.dumps(args)))
        self.status = MoveStatus.FINISHED
        return self.status

if __name__ == '__main__':
    import rbkSim
    r = rbkSim.SimModule()
    m = Module(r,None)
    data = {"move_task_list":[{"id":"LM1","source_id":"LM2","task_id":"1"}]}
    print(m.run(r, data))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
最近更新 2022/11/28
文章内容

请求

请求示例

响应

响应示例