Clumsy-API:修订间差异

来自MDCS wiki
跳到导航 跳到搜索
(创建页面,内容为“= Clumsy = === 等待所有任务结束后重启Clumsy === <blockquote>'''Path:{ip}:8008/stop''' '''Method:''' '''GET''' '''接口描述:无''' '''请求(案例):'''<nowiki>http://127.0.0.1:8008/stop</nowiki> '''返回(案例):'''<code>{"success":true,"id":0}</code></blockquote> === 立即重启Clumsy === <blockquote>'''Path:{ip}:8008/reset''' '''Method:''' '''GET''' '''接口描述:无''' token:int,查询任务的标识 ''…”)
 
无编辑摘要
 
第12行: 第12行:
'''返回(案例):'''<code>{"success":true,"id":0}</code></blockquote>
'''返回(案例):'''<code>{"success":true,"id":0}</code></blockquote>


=== 立即重启Clumsy ===
=== 立即重启Clumsy(可用于终止任务执行) ===
<blockquote>'''Path:{ip}:8008/reset'''
<blockquote>'''Path:{ip}:8008/reset'''


第25行: 第25行:
'''返回(案例):'''<code>{"success":true,"id":0}</code></blockquote>
'''返回(案例):'''<code>{"success":true,"id":0}</code></blockquote>


=== 获取Simple 访问的上下位信号的值 ===
=== 获取小车上下位信号和状态 ===
<blockquote>'''Path:{ip}:8008/getStat'''
<blockquote>'''Path:{ip}:8008/getStat'''


第45行: 第45行:
}</code></blockquote>
}</code></blockquote>


=== 获取动作执行结果 ===
=== 获取脚本执行结果 ===
<blockquote>'''Path:{ip}:8008/exec_result'''
<blockquote>'''Path:{ip}:8008/exec_result'''


第57行: 第57行:


<code>若 token 无效,则返回{error: “invalid token”}</code></blockquote>
<code>若 token 无效,则返回{error: “invalid token”}</code></blockquote>
=== 下发脚本并执行 ===
<blockquote>'''Path:{ip}:8008/exec'''
'''Method:''' '''POST'''
'''接口描述:下发脚本并执行。'''
脚本一般为js脚本或者c#脚本。默认为js脚本。脚本中会映射以下类/函数:
* 继承自SimpleAGVInterface的类。
* pilot,为ClumyLib.pilot即自动驾驶类。
'''请求(案例):'''http://127.0.0.1:8008/exec<syntaxhighlight lang="javascript" line="1">
var agv=new AGV(); agv.id=2; agv.baseSpeed=1000; agv.host="127.0.0.1";
agv.Go(-630.2779541015625,-1542.10595703125,52677,2399.03076171875,-1529.601318359375,52666,52679,-1);
agv.LRGo(2399.03076171875,-1529.601318359375,52666,2404.3505859375,-98.419921875,62,52668,-1,0,false);
agv.Go(14175.9267578125,-29065.87890625,17,12618.77734375,-30865.533203125,52663,52665,-1);
agv.Go(12618.77734375,-30865.533203125,52663,-2592.509765625,-30851.486328125,19,52664,-1);
agv.Wait();
agv.ReLocation(-4973,-30523,180);;
</syntaxhighlight>以上例子中,agv.Go/agv.LRGo/agv.Wait/agv.Relocation均为AGVInterface提供的方法(插件内自定义)。一般agv.Go等涉及AGV移动的函数会通过port定义的端口反向从调度调用TryLock和Leave方法进行交管交互。
'''可增加的GET参数:'''
* int requestid, string requestname: 可选,可用于调度调试(可在runningScript状态中看到当前在执行的脚本id)。
* int port: 可选,默认为8222,为回调脚本下发程序的端口(一般为trylock/leave)使用。
* string script_type: 脚本类型,js或者cs。
'''返回(案例):'''
若脚本可以开始执行,则开始执行并返回 {runningId:[任务标识]} ;否则返回 {error: "occupied"}
见:[[AGV任务运行逻辑]]。</blockquote>

2023年12月8日 (五) 23:04的最新版本

Clumsy

等待所有任务结束后重启Clumsy

Path:{ip}:8008/stop

Method: GET

接口描述:无

请求(案例):http://127.0.0.1:8008/stop

返回(案例):{"success":true,"id":0}

立即重启Clumsy(可用于终止任务执行)

Path:{ip}:8008/reset

Method: GET

接口描述:无

token:int,查询任务的标识

请求(案例):http://127.0.0.1:8008/reset

返回(案例):{"success":true,"id":0}

获取小车上下位信号和状态

Path:{ip}:8008/getStat

Method: GET

接口描述:无

请求(案例):http://127.0.0.1:8008/getStat

返回(案例):{ "LeftWheelVelocity": "0", "RightWheelVelocity": "0", "thresSpeed": "2500", "soc": "0", "fault": "False", "manul": "0", "diagnosis": "/", "driveStatus": "DriveStop@0001/1/1 0:00:00", "runningScript": "/"

}

获取脚本执行结果

Path:{ip}:8008/exec_result

Method: GET

接口描述:无

请求(案例):http://127.0.0.1:8008/exec_result?token=231231

返回(案例):若 token 有效,则返回{token(int):[任务标识],status(string):“pending”/“finished”/“error”,detail(string):[报错信息],time(DateTime):[时间] }

若 token 无效,则返回{error: “invalid token”}

下发脚本并执行

Path:{ip}:8008/exec

Method: POST

接口描述:下发脚本并执行。

脚本一般为js脚本或者c#脚本。默认为js脚本。脚本中会映射以下类/函数:

  • 继承自SimpleAGVInterface的类。
  • pilot,为ClumyLib.pilot即自动驾驶类。

请求(案例):http://127.0.0.1:8008/exec

var agv=new AGV(); agv.id=2; agv.baseSpeed=1000; agv.host="127.0.0.1";
agv.Go(-630.2779541015625,-1542.10595703125,52677,2399.03076171875,-1529.601318359375,52666,52679,-1);
agv.LRGo(2399.03076171875,-1529.601318359375,52666,2404.3505859375,-98.419921875,62,52668,-1,0,false);
agv.Go(14175.9267578125,-29065.87890625,17,12618.77734375,-30865.533203125,52663,52665,-1);
agv.Go(12618.77734375,-30865.533203125,52663,-2592.509765625,-30851.486328125,19,52664,-1);
agv.Wait(); 
agv.ReLocation(-4973,-30523,180);;

以上例子中,agv.Go/agv.LRGo/agv.Wait/agv.Relocation均为AGVInterface提供的方法(插件内自定义)。一般agv.Go等涉及AGV移动的函数会通过port定义的端口反向从调度调用TryLock和Leave方法进行交管交互。

可增加的GET参数:

  • int requestid, string requestname: 可选,可用于调度调试(可在runningScript状态中看到当前在执行的脚本id)。
  • int port: 可选,默认为8222,为回调脚本下发程序的端口(一般为trylock/leave)使用。
  • string script_type: 脚本类型,js或者cs。

返回(案例):

若脚本可以开始执行,则开始执行并返回 {runningId:[任务标识]} ;否则返回 {error: "occupied"}

见:AGV任务运行逻辑