using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.Service; using WIDESEAWCS_Tasks.ShuttleCarJob; using WIDESEAWCS_Tasks.StackerCraneJob; namespace WIDESEAWCS_Tasks { public partial class CommonStackerCraneJob { /// /// 心跳 /// /// public void Heartbeat(SpeStackerCrane commonStackerCrane) { var HeartBeat = commonStackerCrane.GetValue(StackerCraneDBName.HeartBeat); commonStackerCrane.SetValue(StackerCraneDBName.WCSHeartBeat, !HeartBeat); } /// /// 堆垛机与穿梭车信息交互 /// /// public void ShuttleCarSignal(SpeStackerCrane commonStackerCrane) { //任务查询目的地找到车 if (commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtGetAGV) || commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtGetGoods) || commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutGoods) || commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutAGV)) { Dt_Task? task = GetTaskInfo(commonStackerCrane); if (task != null) { Dt_ShuttleCar? shuttleCar1 = GetShuttleCarInfo(commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutGoods) ? task.TargetAddress : task.SourceAddress); if (shuttleCar1 != null) { ShuttleCar shuttleCar = Storage.Devices.FirstOrDefault(x => x.DeviceName == shuttleCar1.ShuttleCarName) as ShuttleCar; if (shuttleCar != null) { shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetAGV, commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtGetAGV), shuttleCar.DeviceCode); shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetGoods, commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtGetGoods), shuttleCar.DeviceCode); shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtPutGoods, commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutGoods), shuttleCar.DeviceCode); commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetAGV, shuttleCar.GetValue(ShuttleCarDBName.AGVAlwASRSGetAGV, shuttleCar.DeviceCode)); commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetGoods, shuttleCar.GetValue(ShuttleCarDBName.AGVAlwASRSGetGoods, shuttleCar.DeviceCode)); commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPuttGoods, shuttleCar.GetValue(ShuttleCarDBName.AGVAlwASRSPuttGoods, shuttleCar.DeviceCode)); commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPutAGV, commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutAGV)); shuttleCar.SetValue(ShuttleCarDBName.ASRSGetAGVDone, commonStackerCrane.GetValue(StackerCraneDBName.ASRSGetAGVDone), shuttleCar.DeviceCode); shuttleCar.SetValue(ShuttleCarDBName.ASRSGetGoodsDone, commonStackerCrane.GetValue(StackerCraneDBName.ASRSGetGoodsDone), shuttleCar.DeviceCode); shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGoodsDone, commonStackerCrane.GetValue(StackerCraneDBName.ASRSPutAGoodsDone), shuttleCar.DeviceCode); shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGVDone, commonStackerCrane.GetValue(StackerCraneDBName.ASRSPutAGVDone), shuttleCar.DeviceCode); } } } } } /// /// 获取任务信息 /// /// /// /// public Dt_Task GetTaskInfo(SpeStackerCrane commonStackerCrane) { return _taskService.GetTaskInfo(commonStackerCrane.CurrentTaskNum); } /// /// 获取穿梭车信息 /// /// /// public Dt_ShuttleCar GetShuttleCarInfo(string Address) { return _shuttleCarService.QueryShuttleCar(Address); } } }