Clumsy-API:修订间差异
Huangzhaowei(讨论 | 贡献) (创建页面,内容为“= 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(可用于终止任务执行) === | ||
<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> | ||
=== | === 获取小车上下位信号和状态 === | ||
<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任务运行逻辑。