Commit 1c8a38a6 张东亮

上报出库确保完成

1 个父辈 c6f1994c
using Asa;
using log4net.Util;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
......@@ -33,6 +34,7 @@ namespace OnlineStore.DeviceLibrary
private string CodeMsg = "";
private bool isInProcess = false;
private DateTime lastConTime = DateTime.Now;
object serverLoc = new object();
public void server_connect_timer_Tick(object sender, EventArgs e)
{
if (isInProcess)
......@@ -52,9 +54,12 @@ namespace OnlineStore.DeviceLibrary
{
if (StoreManager.IsConnectServer)
{
SendLineStatus();
HttpHelper.Post<DoorInfo>(HttpHelper.GetPostApi("/api/xlc/updateDoorInfo"), StoreManager.XLRStore.inputEquip.BatchMove_A.doorInfo);
HttpHelper.Post<DoorInfo>(HttpHelper.GetPostApi("/api/xlc/updateDoorInfo"), StoreManager.XLRStore.inputEquip.BatchMove_B.doorInfo);
if (!Monitor.IsEntered(serverLoc))
{
SendLineStatus();
HttpHelper.Post<DoorInfo>(HttpHelper.GetPostApi("/api/xlc/updateDoorInfo"), StoreManager.XLRStore.inputEquip.BatchMove_A.doorInfo);
HttpHelper.Post<DoorInfo>(HttpHelper.GetPostApi("/api/xlc/updateDoorInfo"), StoreManager.XLRStore.inputEquip.BatchMove_B.doorInfo);
}
}
}
......@@ -68,22 +73,44 @@ namespace OnlineStore.DeviceLibrary
isInProcess = false;
}
}
public void SendStoreState(string posid, DeviceStatus storeStatus)
public bool SendStoreState(string posid, DeviceStatus storeStatus)
{
Operation operation = getLineBoxStatus();
if (!string.IsNullOrEmpty(posid) && !operation.boxStatus[1].data.ContainsKey(ParamDefine.posId))
operation.boxStatus[1].data.Add(ParamDefine.posId, posid);
else if (!string.IsNullOrEmpty(posid) && operation.boxStatus[1].data.ContainsKey(ParamDefine.posId))
if (Monitor.TryEnter(serverLoc))
{
operation.boxStatus[1].data[ParamDefine.posId] = posid;
}
LogUtil.info($"SendStoreState,posid:{posid}, storeStatus:{storeStatus}");
operation.boxStatus[1].status = (int)storeStatus;
LogUtil.info(JsonHelper.SerializeObject(operation));
try
{
Operation operation = getLineBoxStatus();
for (int i = 0; i < 5; i++)
{
if (!string.IsNullOrEmpty(posid) && !operation.boxStatus[1].data.ContainsKey(ParamDefine.posId))
operation.boxStatus[1].data.Add(ParamDefine.posId, posid);
else if (!string.IsNullOrEmpty(posid) && operation.boxStatus[1].data.ContainsKey(ParamDefine.posId))
{
operation.boxStatus[1].data[ParamDefine.posId] = posid;
}
operation.boxStatus[1].status = (int)storeStatus;
LogUtil.info(JsonHelper.SerializeObject(operation));
Operation resultOperation = HttpHelper.Post(SServerManager.GetPostApi(server), operation, false);
if (operation.seq == resultOperation.seq)
{
LogUtil.info($"SendStoreState,posid:{posid}, storeStatus:{storeStatus}");
return true;
}
else
{
LogUtil.info($"SendStoreState error,posid:{posid}, storeStatus:{storeStatus}");
Thread.Sleep(2000);
}
}
}
finally
{
Monitor.Exit(serverLoc);
}
Operation resultOperation = HttpHelper.Post(SServerManager.GetPostApi(server), operation, false);
}
return false;
}
/// <summary>
/// 获取整个料仓的状态
......
......@@ -957,7 +957,7 @@ namespace OnlineStore.DeviceLibrary
#region 出库B侧取料
else if (MoveInfo.IsStep(StepEnum.IO11_ReelCheck))
{
if(BufferDataManager.BOutStoreInfo!=null)
if (BufferDataManager.BOutStoreInfo != null)
{
MoveInfo.NextMoveStep(StepEnum.IO12_UpdownToP12);
MoveLog($"出库B->{shelf}料串 {MoveInfo.SLog}: 升降轴到P12(B下暂存区取料高点){Config.Updown_P12_BUnderH},旋转轴到P8(B下暂存区取料点){Config.Middle_P8_BUnder}");
......@@ -1072,7 +1072,8 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(StepEnum.IO31_ClampRelax))
{
StoreManager.XLRStore.boxEquip.SendStoreState(MoveInfo.MoveParam.PosInfo.PosId, DeviceStatus.OutStoreEnd);
if (!StoreManager.XLRStore.boxEquip.SendStoreState(MoveInfo.MoveParam.PosInfo.PosId, DeviceStatus.OutStoreEnd))
return;
if (shelf.Equals(1))
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!