Commit 18a55eb0 张东亮

添加AUO接口

1 个父辈 af252c41
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
<add key="FileName_AgvContext" value="AgvContext.json" /> <add key="FileName_AgvContext" value="AgvContext.json" />
<!--3D放置钢网的地方--> <!--3D放置钢网的地方-->
<add key="SteelShelfPos" value="SteelShelfPos" /> <add key="SteelShelfPos" value="SteelShelfPos" />
<!--AUO接口地址-->
<add key="AUOServer" value="http://127.0.0.1:8088/AuoAgv/UseElevator" />
</appSettings> </appSettings>
<runtime> <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
......
...@@ -157,7 +157,7 @@ namespace AGVControl ...@@ -157,7 +157,7 @@ namespace AGVControl
Invoke(new Action(() => Invoke(new Action(() =>
{ {
txtShow.Text = DeviceLibrary.HttpManager.Agvtransinfo; txtShow.Text = JsonHelper.SerializeObject(MissionManager.AUOResult);
try try
{ {
......
...@@ -6,6 +6,7 @@ using System.Threading; ...@@ -6,6 +6,7 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web.Script.Serialization; using System.Web.Script.Serialization;
using Common; using Common;
using DeviceLibrary.manager;
using log4net.Util; using log4net.Util;
using RestSharp; using RestSharp;
...@@ -123,6 +124,7 @@ namespace DeviceLibrary ...@@ -123,6 +124,7 @@ namespace DeviceLibrary
bool rtn; bool rtn;
if (AgvStateInProcess) return; if (AgvStateInProcess) return;
AgvStateInProcess = true; AgvStateInProcess = true;
HttpManager.AUOIsUsingD2(out MissionManager.AUOResult);
for (int i = 0; i < AGVManager.agvInfo.Count; i++) for (int i = 0; i < AGVManager.agvInfo.Count; i++)
{ {
AgvInfo agv = AGVManager.agvInfo[i]; AgvInfo agv = AGVManager.agvInfo[i];
...@@ -143,10 +145,13 @@ namespace DeviceLibrary ...@@ -143,10 +145,13 @@ namespace DeviceLibrary
log.Info($"{agv.Name}:Task=-1处理,Fleet有任务,自动赋值FleetTaskID={agv.TaskRunState.TaskID}"); log.Info($"{agv.Name}:Task=-1处理,Fleet有任务,自动赋值FleetTaskID={agv.TaskRunState.TaskID}");
} }
} }
if ((agv.CurJob != null && !(agv.CurJob is ChargeJob || agv.CurJob is StandyJob))
MiR_API.Get_Task_State(agv); && (AGVManager.agvInfo[i].StateID.Equals(eAGVState.Executing)))
Thread.Sleep(50); {
MiR_API.Get_IO_Status(agv); MiR_API.Get_Task_State(agv);
Thread.Sleep(50);
MiR_API.Get_IO_Status(agv);
}
//获取AGV状态 //获取AGV状态
rtn = MiR_API.Get_State(agv, out eAGVState stateID, out string stateText, out int battery, out string mission_text, out AgvInfo.MirPosition position, out List<Mir_Error> errors); rtn = MiR_API.Get_State(agv, out eAGVState stateID, out string stateText, out int battery, out string mission_text, out AgvInfo.MirPosition position, out List<Mir_Error> errors);
Thread.Sleep(50); Thread.Sleep(50);
...@@ -236,14 +241,6 @@ namespace DeviceLibrary ...@@ -236,14 +241,6 @@ namespace DeviceLibrary
{ {
agv.CurJob = agv.CurJob.Execute(agv); agv.CurJob = agv.CurJob.Execute(agv);
} }
if(
(agv.CurJob!=null && !(agv.CurJob is ChargeJob || agv.CurJob is StandyJob))&& (AGVManager.agvInfo[i].StateID.Equals(eAGVState.Executing)))
{
MiR_API.Get_Task_State(agv);
Thread.Sleep(50);
MiR_API.Get_IO_Status(agv);
}
} }
catch (Exception ex) catch (Exception ex)
{ {
......
using Common; using Common;
using DeviceLibrary.lift; using DeviceLibrary.lift;
using DeviceLibrary.manager;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -70,5 +71,9 @@ namespace DeviceLibrary ...@@ -70,5 +71,9 @@ namespace DeviceLibrary
return false; return false;
} }
} }
protected bool AUOUsingD2(string liftName)
{
return SettingString.LIFT_D2.Equals(liftName) && MissionManager.AUOIsUsingD2();
}
} }
} }
...@@ -24,6 +24,10 @@ namespace DeviceLibrary.bean.jobType ...@@ -24,6 +24,10 @@ namespace DeviceLibrary.bean.jobType
service.model.MissionInfo missionInfo = manager.MissionManager.GetLineToLiftMission(agv, out string liftname); service.model.MissionInfo missionInfo = manager.MissionManager.GetLineToLiftMission(agv, out string liftname);
if (missionInfo != null) if (missionInfo != null)
{ {
if(AUOUsingD2(liftname))
{
return null;
}
if (CheckHasSameJob(agv, liftname)) if (CheckHasSameJob(agv, liftname))
return null; return null;
Node src = manager.NodeManager.GetNode(missionInfo.sourcePoint, NodeType.Node); Node src = manager.NodeManager.GetNode(missionInfo.sourcePoint, NodeType.Node);
......
...@@ -25,6 +25,10 @@ namespace DeviceLibrary.bean.jobType ...@@ -25,6 +25,10 @@ namespace DeviceLibrary.bean.jobType
service.model.MissionInfo missionInfo = manager.MissionManager.BuffToLiftMission(agv); service.model.MissionInfo missionInfo = manager.MissionManager.BuffToLiftMission(agv);
if (missionInfo != null) if (missionInfo != null)
{ {
if (AUOUsingD2(SettingString.LIFT_D2))
{
return null;
}
if (CheckHasSameJob(agv, missionInfo.liftName)) if (CheckHasSameJob(agv, missionInfo.liftName))
return null; return null;
Node src = manager.NodeManager.GetNode(SettingString.ShelfBuff, NodeType.Node); Node src = manager.NodeManager.GetNode(SettingString.ShelfBuff, NodeType.Node);
......
...@@ -20,6 +20,10 @@ namespace DeviceLibrary.bean.jobType ...@@ -20,6 +20,10 @@ namespace DeviceLibrary.bean.jobType
service.model.MissionInfo missionInfo = manager.MissionManager.GetSteelLineToLiftMission(agv, out string liftname); service.model.MissionInfo missionInfo = manager.MissionManager.GetSteelLineToLiftMission(agv, out string liftname);
if (missionInfo != null) if (missionInfo != null)
{ {
if (AUOUsingD2(liftname))
{
return null;
}
Node src = manager.NodeManager.GetNode(missionInfo.sourcePoint, NodeType.Node); Node src = manager.NodeManager.GetNode(missionInfo.sourcePoint, NodeType.Node);
Node dest = manager.NodeManager.GetNode(liftname, NodeType.Lift); Node dest = manager.NodeManager.GetNode(liftname, NodeType.Lift);
if (src == null) if (src == null)
......
using Common; using Common;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Runtime.CompilerServices;
using static DeviceLibrary.HttpManager;
namespace DeviceLibrary namespace DeviceLibrary
{ {
...@@ -388,7 +390,32 @@ namespace DeviceLibrary ...@@ -388,7 +390,32 @@ namespace DeviceLibrary
return false; return false;
} }
static string auoServer = Common.AppConfigHelper.GetValue("AUOServer");
/// <summary>
/// AUO小车是否在用D2
/// </summary>
/// <param name="result"></param>
/// <returns>true:在使用中</returns>
public static bool AUOIsUsingD2(out Result result)
{
result = new Result();
try
{
string resultStr = HttpHelper.Get(auoServer);
result = JsonHelper.DeserializeJsonToObject<Result>(resultStr);
if (result == null)
return false;
else if (result.code.Equals(0))
{
return true;
}
}
catch (Exception ex)
{
log.Error(ex);
}
return false;
}
#region ITS接口 #region ITS接口
...@@ -422,9 +449,9 @@ namespace DeviceLibrary ...@@ -422,9 +449,9 @@ namespace DeviceLibrary
//Dictionary<string, string> param = new Dictionary<string, string>(); //Dictionary<string, string> param = new Dictionary<string, string>();
//param.Add("info", txt); //param.Add("info", txt);
//string addr = GetItsAddr("/UpdateAgvtransinfo", param); //string addr = GetItsAddr("/UpdateAgvtransinfo", param);
// string resultStr = HttpHelper.Get(addr); // string resultStr = HttpHelper.Get(addr);
string resultStr = HttpHelper.PostWithFormUrlEncoded(agvreportstate,$"info={txt}",System.Text.Encoding.UTF8); string resultStr = HttpHelper.PostWithFormUrlEncoded(agvreportstate, $"info={txt}", System.Text.Encoding.UTF8);
itsData data = JsonHelper.DeserializeJsonToObject<itsData>(resultStr); itsData data = JsonHelper.DeserializeJsonToObject<itsData>(resultStr);
//fbackkinfo":"no agvinfo","fbacktime":"20215306105317"} //fbackkinfo":"no agvinfo","fbacktime":"20215306105317"}
//if (data == null) //if (data == null)
...@@ -439,7 +466,7 @@ namespace DeviceLibrary ...@@ -439,7 +466,7 @@ namespace DeviceLibrary
} }
catch (Exception e) catch (Exception e)
{ {
log.Error("AgvReportState", e); //log.Error("AgvReportState", e);
} }
} }
......
...@@ -18,7 +18,16 @@ namespace DeviceLibrary.manager ...@@ -18,7 +18,16 @@ namespace DeviceLibrary.manager
public delegate void MissionChangedEventHandler(); public delegate void MissionChangedEventHandler();
public static event MissionChangedEventHandler MissionChangedEvent; public static event MissionChangedEventHandler MissionChangedEvent;
static Service web = new Service(); static Service web = new Service();
public static Result AUOResult = new Result() { code = -1 };
public static log4net.ILog Log = log4net.LogManager.GetLogger("MissionManager"); public static log4net.ILog Log = log4net.LogManager.GetLogger("MissionManager");
/// <summary>
/// AUO是否在使用电梯D2
/// </summary>
/// <returns></returns>
public static bool AUOIsUsingD2()
{
return AUOResult?.code== 0;
}
public static void InitMission() public static void InitMission()
{ {
DataBufferManager.Missions = getValiteMissionsFromDB(); DataBufferManager.Missions = getValiteMissionsFromDB();
...@@ -142,7 +151,7 @@ namespace DeviceLibrary.manager ...@@ -142,7 +151,7 @@ namespace DeviceLibrary.manager
public static string GetByFinishedShelfNeedLeaveInLift(string liftId) public static string GetByFinishedShelfNeedLeaveInLift(string liftId)
{ {
var m = GetMissionInfos().Find(s => liftId.Equals(s.liftName) && s.projectType.Equals(ProjectType.移远成品入库) var m = GetMissionInfos().Find(s => liftId.Equals(s.liftName) && s.projectType.Equals(ProjectType.移远成品入库)
&& ( s.state == MissionState.电梯运行 && (s.state == MissionState.电梯运行
|| s.state == MissionState.返回电梯运行)); || s.state == MissionState.返回电梯运行));
if (m != null) if (m != null)
return m.missionId; return m.missionId;
...@@ -283,7 +292,7 @@ namespace DeviceLibrary.manager ...@@ -283,7 +292,7 @@ namespace DeviceLibrary.manager
agv.Scope.Tasks.Contains(s.projectType.ToString()) agv.Scope.Tasks.Contains(s.projectType.ToString())
)); ));
if (missionInfo != null && AgvCanGetMission(missionInfo)) if (missionInfo != null && AgvCanGetMission(missionInfo))
return missionInfo; return missionInfo;
} }
catch (Exception e) catch (Exception e)
...@@ -466,10 +475,10 @@ namespace DeviceLibrary.manager ...@@ -466,10 +475,10 @@ namespace DeviceLibrary.manager
missionInfo = missions.Where(s => s.destinationWorkshop.Equals(agv.Scope.Workshop) && missionInfo = missions.Where(s => s.destinationWorkshop.Equals(agv.Scope.Workshop) &&
s.sourceWorkshop.Equals(agv.Scope.Workshop) && s.sourceWorkshop.Equals(agv.Scope.Workshop) &&
((s.projectType.Equals(ProjectType.半成品领用)|| ((s.projectType.Equals(ProjectType.半成品领用) ||
s.projectType.Equals(ProjectType.空台车领用)|| s.projectType.Equals(ProjectType.空台车领用) ||
s.projectType.Equals(ProjectType.空台车归还)) || s.projectType.Equals(ProjectType.空台车归还)) ||
(s.sourceWorkshop.Equals(s.destinationWorkshop))) (s.sourceWorkshop.Equals(s.destinationWorkshop)))
&& &&
(s.state == MissionState.创建) && agv.Scope.Tasks.Contains(s.projectType.ToString())).FirstOrDefault(); (s.state == MissionState.创建) && agv.Scope.Tasks.Contains(s.projectType.ToString())).FirstOrDefault();
if (missionInfo != null && AgvCanGetMission(missionInfo)) if (missionInfo != null && AgvCanGetMission(missionInfo))
......
...@@ -17,7 +17,7 @@ namespace DeviceLibrary.manager ...@@ -17,7 +17,7 @@ namespace DeviceLibrary.manager
/// </summary> /// </summary>
public static void UploadAgvState() public static void UploadAgvState()
{ {
if (Monitor.TryEnter(locupdate, 2000)) if (Monitor.TryEnter(locupdate))
{ {
try try
{ {
......
...@@ -39,7 +39,7 @@ namespace DeviceLibrary ...@@ -39,7 +39,7 @@ namespace DeviceLibrary
} }
[DataContract] [DataContract]
internal class Result public class Result
{ {
/// <summary> /// <summary>
/// 状态码,0为正常 /// 状态码,0为正常
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!