Commit 6ab2f9c9 张东亮

4D到4C逻辑

1 个父辈 f2e11805
...@@ -92,7 +92,6 @@ ...@@ -92,7 +92,6 @@
<Compile Include="bean\jobType\F1LiftC1ToLiftD2JobType.cs" /> <Compile Include="bean\jobType\F1LiftC1ToLiftD2JobType.cs" />
<Compile Include="bean\jobType\F1LiftD2ToLiftC1JobType.cs" /> <Compile Include="bean\jobType\F1LiftD2ToLiftC1JobType.cs" />
<Compile Include="bean\jobType\SteelLineToLiftJobType.cs" /> <Compile Include="bean\jobType\SteelLineToLiftJobType.cs" />
<Compile Include="bean\jobType\LineToLineJobType.cs" />
<Compile Include="bean\jobType\RecoveryJobType.cs" /> <Compile Include="bean\jobType\RecoveryJobType.cs" />
<Compile Include="bean\jobType\LineOneToManyJobType.cs" /> <Compile Include="bean\jobType\LineOneToManyJobType.cs" />
<Compile Include="bean\jobType\ToLiftGetShelfJobType.cs" /> <Compile Include="bean\jobType\ToLiftGetShelfJobType.cs" />
......
...@@ -353,10 +353,13 @@ namespace DeviceLibrary.bean ...@@ -353,10 +353,13 @@ namespace DeviceLibrary.bean
/// 顶起料车 /// 顶起料车
/// </summary> /// </summary>
SD_Line_OneToMany_02_PutShelfOn, SD_Line_OneToMany_02_PutShelfOn,
SD_Line_OneToMany_03_1_CrossDoor,
SD_Line_OneToMany_03_2_CrossTwoDoor,
/// <summary> /// <summary>
/// 去线体 /// 去线体
/// </summary> /// </summary>
SD_Line_OneToMany_03_ToLine, SD_Line_OneToMany_03_ToLine,
/// <summary> /// <summary>
/// 到达线体,上报位置 /// 到达线体,上报位置
/// </summary> /// </summary>
...@@ -369,6 +372,8 @@ namespace DeviceLibrary.bean ...@@ -369,6 +372,8 @@ namespace DeviceLibrary.bean
/// 检查下一线体 /// 检查下一线体
/// </summary> /// </summary>
SD_Line_OneToMany_06_CheckNextLine, SD_Line_OneToMany_06_CheckNextLine,
SD_Line_OneToMany_07_CrossTwoDoor,
SD_Line_OneToMany_07_CrossDoor,
/// <summary> /// <summary>
/// 返回至取料位置 /// 返回至取料位置
/// </summary> /// </summary>
......
...@@ -18,6 +18,8 @@ namespace DeviceLibrary.bean.jobType ...@@ -18,6 +18,8 @@ namespace DeviceLibrary.bean.jobType
missionInfo = manager.MissionManager.GetLineToLineMission(agv); missionInfo = manager.MissionManager.GetLineToLineMission(agv);
if (missionInfo == null) if (missionInfo == null)
missionInfo = manager.MissionManager.GetStoreToLinesMission(agv); missionInfo = manager.MissionManager.GetStoreToLinesMission(agv);
if(missionInfo == null)
missionInfo=manager.MissionManager.Get4DTo4CLinesMission(agv);
if (missionInfo != null) if (missionInfo != null)
{ {
Node src = manager.NodeManager.GetNode(missionInfo.sourcePoint, NodeType.Node); Node src = manager.NodeManager.GetNode(missionInfo.sourcePoint, NodeType.Node);
......
...@@ -593,6 +593,36 @@ namespace DeviceLibrary.manager ...@@ -593,6 +593,36 @@ namespace DeviceLibrary.manager
} }
return null; return null;
} }
/// <summary>
///
/// </summary>
/// <param name="agv"></param>
/// <returns></returns>
public static MissionInfo Get4DTo4CLinesMission(AgvInfo agv)
{
MissionInfo missionInfo = null;
try
{
var missions = GetMissionInfos().Where(w => w.state != MissionState.中止
&& w.state != MissionState.取消 && w.state != MissionState.完成).ToList();
missionInfo = missions.Where(s => s.destinationWorkshop.Equals(SettingString._4C) &&
s.sourceWorkshop.Equals(SettingString._4D) &&
//(s.projectType.Equals(ProjectType.PCB领用) || s.projectType.Equals(ProjectType.包材领用))&&
(s.state == MissionState.创建) && agv.Scope.Tasks.Contains(s.projectType.ToString())).FirstOrDefault();
if (missionInfo != null && AgvCanGetMission(missionInfo))
{
SetMissionOccupied(missionInfo, agv);
Log.Info($"执行4D到4C任务[{agv.Name}][目的地] {JsonHelper.SerializeObject(missionInfo)}");
return missionInfo;
}
}
catch (Exception e)
{
Log.Error("Get4DTo4CLinesMission", e);
}
return null;
}
public static void SetMissionOccupied(MissionInfo missionInfo, AgvInfo agv) public static void SetMissionOccupied(MissionInfo missionInfo, AgvInfo agv)
{ {
SetMissionOccupiedAgv(missionInfo.missionId, agv.Name); SetMissionOccupiedAgv(missionInfo.missionId, agv.Name);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!