using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Threading;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_Core;
using WIDESEAWCS_Tasks.StackerCraneJob;
using WIDESEAWCS_QuartzJob;
namespace WIDESEAWCS_Tasks
{
public class StackerExecutor
{
///
/// 下发堆垛机任务
///
/// 堆垛机连接
/// 任务对象 //SendHW_StackerTask
///
public static WebResponseContent SendStackerTask(STK commonStackerCrane, Dt_Task stacktaskinfo, string scName)
{
WebResponseContent content = new WebResponseContent();
try
{
var formInfo = stacktaskinfo.SourceAddress.Split("-");
var endInfo = stacktaskinfo.TargetAddress.Split("-");
commonStackerCrane.SetValue(StackerCraneDBName.S_Row, formInfo[0], scName);//来源货位行
commonStackerCrane.SetValue(StackerCraneDBName.S_Bay, formInfo[1], scName);//来源货位列
commonStackerCrane.SetValue(StackerCraneDBName.S_level, formInfo[2], scName);//来源货位层
commonStackerCrane.SetValue(StackerCraneDBName.E_Row, endInfo[0], scName);//目的货位行
commonStackerCrane.SetValue(StackerCraneDBName.E_Bay, endInfo[1], scName);//目的货位列
commonStackerCrane.SetValue(StackerCraneDBName.E_level, endInfo[2], scName);//目的货位层
commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 1, scName);//工作命令代码
commonStackerCrane.SetValue(StackerCraneDBName.TaskNum, stacktaskinfo.TaskNum, scName);//工作序号
commonStackerCrane.SetValue(StackerCraneDBName.RFID, stacktaskinfo.PalletCode.PadLeft(4, '0') + stacktaskinfo.PVI, scName);//pvi
#region todo PLC写入后读取验证
//commonStackerCrane.GetValue(StackerCraneDBName.S_Row, scName);//来源货位行
//commonStackerCrane.GetValue(StackerCraneDBName.S_Bay, scName);//来源货位列
//commonStackerCrane.GetValue(StackerCraneDBName.S_level, scName);//来源货位层
//commonStackerCrane.GetValue(StackerCraneDBName.E_Row, scName);//目的货位行
//commonStackerCrane.GetValue(StackerCraneDBName.E_Bay, scName);//目的货位列
//commonStackerCrane.GetValue(StackerCraneDBName.E_level, scName);//目的货位层
//commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 1, scName);//工作命令代码
//commonStackerCrane.SetValue(StackerCraneDBName.TaskNum, stacktaskinfo.TaskNum, scName);//工作序号
#endregion
commonStackerCrane.SetValue(StackerCraneDBName.CMD, 1, scName);//启动命令
content = content.OK();
}
catch (Exception ex)
{
content = content.Error(scName + "任务下发失败:" + ex.Message);
}
return content;
}
}
}