using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Threading;
|
using WIDESEA_Core.EFDbContext;
|
using WIDESEA_Core.Utilities;
|
using WIDESEA_Entity.DomainModels;
|
using WIDESEA_Services.IRepositories;
|
using WIDESEA_Services.Repositories;
|
using WIDESEA_Services.Services;
|
using WIDESEA_WCS.WCSClient;
|
namespace WIDESEA_WCS
|
{
|
public partial class StackerExecutor
|
{
|
private static int _readRWSignalso = 0;//_readZTBUPSignalso
|
/// <summary>
|
/// 信号灯控制
|
/// </summary>
|
/// <param name="client"></param>
|
public static void HCJ_XHD(PLCClient client)
|
{
|
if (Interlocked.Exchange(ref _readRWSignalso, 1) == 0)
|
{
|
try
|
{
|
VOLContext Context = new VOLContext();
|
WebResponseContent responseContent = new WebResponseContent();
|
Idt_agvtaskRepository agvRepository = new dt_agvtaskRepository(Context);
|
Ibase_ware_locationRepository locRepository = new base_ware_locationRepository(Context);
|
List<dt_agvtask> dt_Agvtasks = agvRepository.Find(d => true);
|
WebResponseContent wificontent = new WebResponseContent();
|
if (dt_Agvtasks.Count != 0)
|
{
|
foreach (var item in dt_Agvtasks)
|
{
|
base_ware_location ware_Locations1 = locRepository.FindFirst(d => d.upper_code == item.agv_fromaddress);
|
base_ware_location ware_Locations2 = locRepository.FindFirst(d => d.upper_code == item.agv_toaddress);
|
if (ware_Locations1 != null && ware_Locations2 != null)
|
{
|
Dictionary<string, string> loctionnum = new Dictionary<string, string>();
|
loctionnum.Add("up_Location", ware_Locations1.upper_code.ToString());
|
loctionnum.Add("dw_Location", ware_Locations2.upper_code.ToString());
|
string wificont = WIFIAPIInvoke.Start_XHD1(loctionnum);
|
wificontent = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
|
}
|
else if (ware_Locations1 != null)
|
{
|
Dictionary<string, string> loctionnum = new Dictionary<string, string>();
|
loctionnum.Add("up_Location", ware_Locations1.upper_code.ToString());
|
string wificont = WIFIAPIInvoke.Start_XHD2(loctionnum);
|
wificontent = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
|
}
|
else if (ware_Locations2 != null)
|
{
|
Dictionary<string, string> loctionnum = new Dictionary<string, string>();
|
loctionnum.Add("up_Location", ware_Locations2.upper_code.ToString());
|
string wificont = WIFIAPIInvoke.Start_XHD2(loctionnum);
|
wificontent = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
|
}
|
|
}
|
}
|
List<base_ware_location> base_Ware_Locations = locRepository.Find(d => d.location_state == "LocationState_Stored");
|
if (base_Ware_Locations != null)
|
{
|
foreach (var item in base_Ware_Locations)
|
{
|
if (item.logic_col == 1)
|
{
|
if (item.light_color != "green")
|
{
|
Dictionary<string, string> loctionnum = new Dictionary<string, string>();
|
loctionnum.Add("up_Location", item.upper_code.ToString());
|
string wificont = WIFIAPIInvoke.Start_XHD_LV(loctionnum);
|
wificontent = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
|
}
|
}
|
else if (item.logic_col == 0)
|
{
|
if (item.light_color != "yellow")
|
{
|
Dictionary<string, string> loctionnum = new Dictionary<string, string>();
|
loctionnum.Add("up_Location", item.upper_code.ToString());
|
string wificont = WIFIAPIInvoke.Start_XHD_Yellow(loctionnum);
|
wificontent = JsonConvert.DeserializeObject<WebResponseContent>(wificont);
|
}
|
|
}
|
}
|
}
|
}
|
catch (Exception)
|
{
|
|
throw;
|
}
|
finally
|
{
|
Interlocked.Exchange(ref _readRWSignalso, 0);
|
}
|
}
|
}
|
|
}
|
}
|