using IMCS.DefaultList;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IMCS.Device
{
public class DeviceAGV
{
/*单例模式*/
public DeviceAGV()
{
}
///
/// 当前任务编号
///
public string reqCode { get; set; }
/*生成任务单*/
///
/// 生成任务订单
///
/// 任务类型
/// 起点坐标
/// 起点类型
/// 终点坐标
/// 终点类型
public AGVRequestDefaultList AGV_SendTask(string taskType, string startPosition, string startType, string endPosition, string endType)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().ToString().Substring(0, 30);
reqCode = aGVRequestDefaultList.reqCode;
aGVRequestDefaultList.taskTyp = taskType;// "F01";
aGVRequestDefaultList.positionCodePath = new List() { new DefaultList.AGVPositionCodePathList() {
// positionCode="p001", type="02"
positionCode=startPosition, type=startType
},
new DefaultList.AGVPositionCodePathList(){ positionCode=endPosition, type=endType }
};
//aGVRequestDefaultList.tokenCode = "";
//aGVRequestDefaultList.ctnrTyp = "";
//aGVRequestDefaultList.ctnrCode = "";
//aGVRequestDefaultList.wbCode = "";
//aGVRequestDefaultList.positionCodePath = new List() { new DefaultList.AGVPositionCodePathList() { positionCode="p001", type="02" } };
//aGVRequestDefaultList.podCode = "";
//aGVRequestDefaultList.podDir = "";
//aGVRequestDefaultList.podTyp = "-1";
//aGVRequestDefaultList.materialLot = "";
//aGVRequestDefaultList.priority = "1";
//aGVRequestDefaultList.agvCode = "";
//aGVRequestDefaultList.taskCode = "";
//aGVRequestDefaultList.data = "";
return aGVRequestDefaultList;
}
/* 继续执行任务*/
///
/// 继续执行任务
///
/// 继续执行的任务id
public AGVRequestDefaultList AGV_ContinuTask(string reqCode)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = reqCode;
return aGVRequestDefaultList;
}
/*取消任务*/
///
/// 取消任务
///
/// 需要取消的任务ID
public AGVRequestDefaultList AGV_CancelTask(string reqCode)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = reqCode;
return aGVRequestDefaultList;
}
/*任务执行通知*/
///
/// 任务执行通知
///
/// 当前任务编号
/// 当前位置编号
///任务开始:该位置为任务起点
///走出储位:该位置为任务起点
///任务单取消:该位置为工作位编号
///任务结束:该位置为任务终点
/// 方法名, 可使用任务类型做为方法
///名由 RCS-2000 任务模板配置后并告知上层系统
///默认使用方式:
///RCS-2000 接口协议 对外发布
///start : 任务开始
///outbin : 走出储位
///end : 任务结束
///cancel : 任务单取消
/// AGV 编号(同 agvCode
///
public AGVRequestDefaultList AGV_agvCallback(string taskcode, string currentPositionCode, string method, string robotCode)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
aGVRequestDefaultList.reqTime = DateTime.Now.DateTimeToString();
aGVRequestDefaultList.currentPositionCode = currentPositionCode;
aGVRequestDefaultList.method = method;
aGVRequestDefaultList.robotCode = robotCode;
aGVRequestDefaultList.taskCode = taskcode;
return aGVRequestDefaultList;
}
/*任务优先级设置*/
///
/// 任务优先级设置
///
/// 当前需要设置优先级的任务id
/// 当前任务优先级1-127 值越大,等级越高
///
public AGVRequestDefaultList AGV_setTaskPriority(string taskCode, string priority)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
aGVRequestDefaultList.priority = new List() { new AGVPrioritiesList() { taskCode = taskCode, priority = priority } };
return aGVRequestDefaultList;
}
///
/// 任务优先级设置
///
/// 当前所需调整优先级的列表
///
public AGVRequestDefaultList AGV_setTaskPriority(List priorities)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
aGVRequestDefaultList.priority = priorities;
return aGVRequestDefaultList;
}
/*货架与位置绑定,解绑*/
///
/// 货架与位置绑定,解绑
///
/// 任务编号
/// 货架编号
/// 位置编号,地图位置的别名,能任
///意命名(字母+数字),但要唯一,由
///RCS-2000 界面配置。
/// 绑定或解绑
///
public AGVRequestDefaultList AGV_bindPodAndBerth(string reqCode, string podCode, string positionCode, bool agv_Enable)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = reqCode;
aGVRequestDefaultList.podCode = podCode;
aGVRequestDefaultList.positionCode = positionCode;
aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString();
return aGVRequestDefaultList;
}
///
/// 货架与物料绑定、解绑
///
/// 任务编号
/// 货架编号
/// 物料批次
/// 绑定或解绑
///
public AGVRequestDefaultList AGV_bindPodAndMat(string reqCode, string podCode, string materialLot, bool agv_Enable)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = reqCode;
aGVRequestDefaultList.podCode = podCode;
aGVRequestDefaultList.materialLot = materialLot;
aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString();
return aGVRequestDefaultList;
}
/*位置禁用与启用*/
///
///
///
/// 需要取消的任务ID
/// 位置编号,地图位置别名,
/// 是否启用
///
public AGVRequestDefaultList AGV_lockPosition(string reqCode, string positionCode, bool agv_Enable)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = reqCode;
aGVRequestDefaultList.positionCode = positionCode;
aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString();
return aGVRequestDefaultList;
}
/*地图位置信息同步*/
/*查询货架存储位与物料批次关系*/
///
/// 查询货架存储位与物料批次关系
///
///
public AGVRequestDefaultList AGV_queryPodBerthAndMat()
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
return aGVRequestDefaultList;
}
/*容器与仓位绑定,解绑*/
///
///
///
/// 容器类型
/// 是否启用,绑定为ture,解绑为false
///
public AGVRequestDefaultList AGV_bindCtnrAndBin(string ctnrCode, bool agv_Enable)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString();
return aGVRequestDefaultList;
}
/*查询任务状态*/
///
/// 查询任务状态
///
/// 需要查询的任务id
///
public AGVRequestDefaultList AGV_queryTaskStatus(string reqCode)
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = reqCode;
return aGVRequestDefaultList;
}
/*查询AGV状态*/
///
/// 查询AGV状态
///
///
public AGVRequestDefaultList AGV_queryAgvStatus()
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
return aGVRequestDefaultList;
}
/*停止AGV*/
public AGVRequestDefaultList AGV_stopRobot()
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
return aGVRequestDefaultList;
}
/*恢复AGV*/
public AGVRequestDefaultList AGV_resumeRobot()
{
IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList();
aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng();
return aGVRequestDefaultList;
}
/*告警推送通知*/
/*绑定解绑通知*/
/**/
}
}