Clumsy-API

来自MDCS wiki
跳到导航 跳到搜索

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任务运行逻辑