Commit 0e94e3ea 张东亮

0129

1 个父辈 afe4d84f
......@@ -11,6 +11,28 @@
<file value="logs/AgvServer.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<param name="MaxSizeRollBackups" value="30"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t][%c:%L]%-5p %m%n"/>
</layout>
</appender>
<appender name="HttpManager" type="log4net.Appender.RollingFileAppender">
<file value="logs/HttpManager.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<param name="MaxSizeRollBackups" value="30"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t][%c:%L]%-5p %m%n"/>
</layout>
</appender>
<appender name="AGV_3D_Line" type="log4net.Appender.RollingFileAppender">
<file value="logs/AGV_3D_Line.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
......@@ -21,12 +43,12 @@
<file value="logs/UnlockInfo.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaxSizeRollBackups" value="30"/>
<!-- 切割最多文件数 -->
<param name="MaximumFileSize" value="100MB"/>
<param name="MaximumFileSize" value="50MB"/>
<!-- 每个文件的大小 -->
<param name="RollingStyle" value="Size"/>
<param name="StaticLogFileName" value="true"/>
<!--param name="StaticLogFileName" value="true"/-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date]%-5p %m%n"/>
</layout>
......@@ -35,20 +57,28 @@
<level value="Info"/>
<appender-ref ref="LineWebService"/>
</logger>
<root>
<logger name="AgvServer">
<level value="Info"/>
<appender-ref ref="AgvServer"/>
</logger>
<logger name="HttpManager">
<level value="Info"/>
<appender-ref ref="HttpManager"/>
</logger>
<root name="AGV_3D_Line">
<level value="Info"/>
<appender-ref ref="AGV_3D_Line"/>
</root>
</log4net>
<appSettings>
<add key="ITS" value="http://10.85.17.233/ESMTCommonInterface/CommonService.asmx/VMIGetBoxDestInfo?boxRFID="/>
<add key="ITS" value="10.85.17.233"/>
<add key="WebService" value="http://127.0.0.1/BenQMIR/Webservice/AGVService.asmx/"/>
<add key="http.server" value="http://10.85.199.25/myproject/"/>
<add key="FLEET" value="10.85.199.3"/>
<add key="AutoCharge" value="True"/>
<add key="http.server" value="http://10.85.162.124/myproject/"/>
<add key="FLEET" value="10.85.19.3"/>
<add key="UseFleet" value="False"/>
<add key="ChargeWait" value="1"/>
<add key="ChargeThreshold" value="20,90"/>
<add key="IP_4D_Light" value="10.85.196.40:8088"/>
<add key="IP_4C_Light" value="10.85.197.40:8088"/>
<add key="IP_3D_Light" value="10.85.197.122:8088"/>
<add key="IP_3C_Light" value="10.85.197.122:8088"/>
</appSettings>
</configuration>
......@@ -137,6 +137,7 @@
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(1209, 373);
this.tabControl1.TabIndex = 7;
this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
//
// tabPage1
//
......
......@@ -188,7 +188,7 @@ namespace AGVControl
{
AGVManager.WriteIni(item.Name, SettingString.RFID, item.RFID);
}
LogUtil.logBox = null;
//showTimer.Enabled = false;
showTimer.Stop();
AGVManager.server.NodeChanged -= Server_NodeChanged;
......@@ -406,12 +406,12 @@ namespace AGVControl
private void btnClearStationRFID_Click(object sender, EventArgs e)
{
if (!txtBoxLineName.Text.Equals("") && !txtBoxRFID.Text.Equals(""))
if (!txtBoxLineName.Text.Equals("") && !txtBoxRFID.Text.Equals("") && AGVManager.GetNodeNameByLineName(txtBoxLineName.Text.ToUpper(),out string nodename))
{
try
{
Task.Factory.StartNew(new Action(() => {
bool rtn = HttpManager.ClearRFID(txtBoxLineName.Text.ToUpper(), txtBoxRFID.Text.ToUpper());
bool rtn = HttpManager.ClearRFID(nodename, txtBoxRFID.Text.ToUpper());
this.Invoke(new Action(() => { label11.Text = rtn ? "清除接驳RFID成功:" + txtBoxLineName.Text + " " + txtBoxRFID.Text : "清除接驳RFID失败:" + txtBoxLineName.Text + " " + txtBoxRFID.Text; }));
txtBoxLineName.Text = "";
txtBoxRFID.Text = "";
......@@ -464,5 +464,13 @@ namespace AGVControl
// tabPageList.Add(lineTabPage);
tabControlManual.Controls.Add(lineTabPage);
}
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex == 1)
{
LogUtil.logBox = this.richTextBox1;
}
}
}
}
......@@ -76,8 +76,14 @@ namespace AGVControl
{
if (MessageBox.Show("确定对小车重发任务?", Agv.Name, MessageBoxButtons.YesNo) == DialogResult.No)
return;
Task.Factory.StartNew(new Action(()=> {
MiR_API.Clear_Error(Agv);
System.Threading.Thread.Sleep(1000);
MiR_API.State_Ready(Agv);
Agv.Resend();
LogUtil.info(string.Format("{0} 手动重发任务", Agv.Name));
}));
}
}
......@@ -114,8 +120,12 @@ namespace AGVControl
{
if (Agv.IsCon)
{
//Agv.AssignTask(CommonVar.showNameMissionName[cmbBxMission.SelectedItem.ToString()]);
LogUtil.info(string.Format("{0} 手动发任务 {1}", Agv.Name, cmbBxMission.SelectedItem.ToString()));
string taskName = MissionSys.GetTaskNameByAliceName(cmbBxMission.SelectedItem.ToString());
if (taskName.Equals(SettingString.Enter) || taskName.Equals(SettingString.Leave))
if (MessageBox.Show("确定对小车发送进/出任务?", Agv.Name, MessageBoxButtons.YesNo) == DialogResult.No)
return;
MissionSys.AssignMission(Agv, taskName);
LogUtil.info(string.Format("{0} 手动发任务 [{1}]", Agv.Name, cmbBxMission.SelectedItem.ToString()));
}
}
......
......@@ -46,7 +46,7 @@ namespace AGVControl
AGVManager.control = new DeviceLibrary.Control();
//获取节点位置
AGVManager.GetNodesPosition();
// AGVManager.GetNodesPosition();
AGVManager.control.Start();
AGVManager.server = new AgvServer();
AGVManager.server.Start();
......
......@@ -20,9 +20,11 @@ namespace AGV_UI
static string FullBattery = "FullBattery";
static string ChargeBattery = "ChargeBattery";
static string Ready = "Ready";
static string Done = "Done";
static string Pause = "Pause";
static string Executing = "Executing";
static string Aborted = "Aborted";
static string Invalid = "Invalid";
static string EmergencyStop = "EmergencyStop";
static string ManualControl = "ManualControl";
static string Error = "Error";
......@@ -50,12 +52,14 @@ namespace AGV_UI
stateImageList.ImageSize = new System.Drawing.Size(48, 48);
stateImageList.Images.Add(UNKNOWN, Properties.Resources.Unknown);
stateImageList.Images.Add(Ready, Properties.Resources.ready);
stateImageList.Images.Add(Done, Properties.Resources.ready);
stateImageList.Images.Add(Pause, Properties.Resources.pause);
stateImageList.Images.Add(ManualControl, Properties.Resources.manual);
stateImageList.Images.Add(Executing, Properties.Resources.Executing);
stateImageList.Images.Add(Error, Properties.Resources.Error);
stateImageList.Images.Add(EmergencyStop, Properties.Resources.emergency);
stateImageList.Images.Add(Aborted, Properties.Resources.Aborted);
stateImageList.Images.Add(Invalid, Properties.Resources.Aborted);
}
/// <summary>
/// 设置连接状态
......
......@@ -112,7 +112,7 @@
this.lblAGVState.Size = new System.Drawing.Size(127, 50);
this.lblAGVState.TabIndex = 1;
this.lblAGVState.Text = "None";
this.lblAGVState.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lblAGVState.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// lblTask
//
......
......@@ -69,6 +69,10 @@ namespace AGV_UI
{
this.Invoke(new Action(() =>
{
if (curBattery < MinBattery)
lblBattery.ForeColor = Color.White;
else
lblBattery.ForeColor = Color.Black;
lblBattery.Text = objs[0] as string;
lblBattery.Image = objs[1] as Image;
}
......
......@@ -18,9 +18,12 @@ namespace Common
public const string DoorAirIn = "DoorAirIn";
public const string DoorAirOut = "DoorAirOut";
public const string AutoCharge = "AutoCharge";
public const string UseFleet = "UseFleet";
public const string Leave = "Leave";
public const string Enter = "Enter";
public const string Init = "Init";
//任务状态
public const string Wait = "Wait";
public const string Done = "Done";
......@@ -57,8 +60,8 @@ namespace Common
public const string SmallShelf_Prefix = "D";
public const string RoomC_Name = "3C";
public const string RoomD_Name= "3D";
public const string IP_4D_Light = "IP_4D_Light";
public const string IP_4C_Light = "IP_4C_Light";
public const string IP_3D_Light = "IP_3D_Light";
public const string IP_3C_Light = "IP_3C_Light";
public static List<string> Lines_In_Air_Door = new List<string>() { "C100" };
public static List<string> RoomC_AGV_IPs = new List<string>() { "10.85.199.666"};
......
......@@ -10,7 +10,7 @@ namespace Common
{
public class LogUtil
{
public static readonly ILog AIOLog = LogManager.GetLogger("AGV_3D_SMD");
public static readonly ILog AIOLog = LogManager.GetLogger("AGV_3D_Line");
private static LogUtil instance = new LogUtil();
public delegate void ShowLog(string msg,Color color);
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
......
......@@ -28,7 +28,7 @@ namespace DeviceLibrary
{
Station = new Dictionary<string, string>();
Station.Add(AutoCharge1, "");
Station.Add(AutoCharge2, "");
//Station.Add(AutoCharge2, "");
string s = AppConfigHelper.GetValue(SettingString.ChargeThreshold);
string[] arr = s.Split(',');
......@@ -95,20 +95,21 @@ namespace DeviceLibrary
/// <returns></returns>
public bool HasEmptyChargeStation(Agv_Info agv)
{
lock(loc)
{
if (SettingString.FixedCharge_AGV_IPs.Contains(agv.IP))//固定充电小车
return true;
else
{
if (Station[AutoCharge2].Equals(""))
{
//lock(loc)
//{
// if (SettingString.FixedCharge_AGV_IPs.Contains(agv.IP))//固定充电小车
// return true;
// else
// {
// if (Station[AutoCharge2].Equals(""))
// {
// return true;
// }
// }
//}
//return false;
return true;
}
}
}
return false;
}
/// <summary>
/// 开始充电任务
/// </summary>
......
任务名称,任务别名,目的地,目的地别名,任务GUID
MoveA5,移动到双层线入口,A5,双层线入口,eec1eed4-2a04-11ea-9c84-94c691a734f1
任务名称,任务别名,任务GUID
Init,初始化,219cd91a-61da-11eb-96a9-0001297a1dca
Standby,初始化615cef05-61f4-11eb-96a9-0001297a1dca
AutoCharge,充电,615cef05-61f4-11eb-96a9-0001297a1dca
A5,双层线入口,90cece3e-6205-11eb-a040-0001297a2016
A6,双层线出口,9fd1183d-6205-11eb-a040-0001297a2016
D12,S12线,82abbf41-614c-11eb-b885-0001297a1dca
D11,S11线,61bab7dd-614c-11eb-b885-0001297a1dca
D10,S10线,b9bcc942-6205-11eb-a040-0001297a2016
D9,S9线,c19a6ce3-6205-11eb-a040-0001297a2016
D8,S8线,d3181a94-6205-11eb-a040-0001297a2016
D7,S7线,e718516c-6205-11eb-a040-0001297a2016
D6,S6线,fa13c4a5-6205-11eb-a040-0001297a2016
D5,S5线07e146a9-6206-11eb-a040-0001297a2016
D4,S4线,11cd500c-6206-11eb-a040-0001297a2016
D3,S3线,19b42469-6206-11eb-a040-0001297a2016
D2,S2线,2575e471-6206-11eb-a040-0001297a2016
D1,S1线,3037232d-6206-11eb-a040-0001297a2016
D21,备料区入口88486aae-6208-11eb-a040-0001297a2016
D22,备料区出口,97f8b64a-6208-11eb-a040-0001297a2016
CheckShelf,检查负载情况,d7ecd9b0-6207-11eb-a040-0001297a2016
Leave,出料,5a17e712-6205-11eb-a040-0001297a2016
Enter,进料,432f1946-6205-11eb-a040-0001297a2016
\ No newline at end of file
Fleet ID,agv名称,IP,授权码,IOID
1,5号车,10.85.199.67,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
2,6号车,10.85.199.68,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
3,7号车,10.85.199.69,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
\ No newline at end of file
5,18号车,10.85.199.138,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
产线名,节点名,IP,产线别名,位置名称,位置guid
A5,A5,10.85.162.40,双层线入口(A5),PA5,7ed952c3-b520-11ea-b6ad-00012998f5a0
A6,A6,10.85.162.40,双层线出(A6),PA6,929eb1c2-b520-11ea-b6ad-00012998f5a0
D3,D3,10.85.199.12,3D-S3线,DL3,43855a9b-b365-11ea-a1a5-00012999830e
D4,D4,10.85.199.15,3D-S4线,DL4,73c8b98c-b368-11ea-a1a5-00012999830e
D5,D5,10.85.199.31,3D-S5线,DL5,5436efd7-b432-11ea-a1a5-00012999830e
D6,D6,10.85.199.32,3D-S6线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
D7,D7,10.85.199.36,3D-S7线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
D8,D8,10.85.199.37,3D-S8线,DL8,8f039d2e-b432-11ea-a1a5-00012999830e
D9,D9,10.85.199.43,3D-S9线,DL9,9e0b64ab-b432-11ea-a1a5-00012999830e
D10,D10,10.85.199.44,3D-S10线,DL10,aec7da80-b432-11ea-a1a5-00012999830e
D11,D11,10.85.199.14,3D-S11线,DL11,c10984c9-b432-11ea-a1a5-00012999830e
D12,D12,10.85.199.13,3D-S12线,DL12,d6e0b92a-b432-11ea-a1a5-00012999830e
FeederIn,D21,10.85.199.1,3D-备料区入口,FI,1e546c3a-8abe-11ea-ab63-000129922ca6
FeederOut,D22,10.85.199.1,3D-备料区出口,FO,431649a4-8abe-11ea-ab63-000129922ca6
S3,D3,10.85.197.151,3D-3线,DL3,43855a9b-b365-11ea-a1a5-00012999830e
S4,D4,10.85.197.146,3D-4线,DL4,73c8b98c-b368-11ea-a1a5-00012999830e
S5,D5,10.85.197.15,3D-5线,DL5,5436efd7-b432-11ea-a1a5-00012999830e
S6,D6,10.85.197.14,3D-6线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
S7,D7,10.85.197.9,3D-7线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
S8,D8,10.85.197.141,3D-8线,DL8,8f039d2e-b432-11ea-a1a5-00012999830e
S9,D9,10.85.197.8,3D-9线,DL9,9e0b64ab-b432-11ea-a1a5-00012999830e
S10,D10,10.85.197.7,3D-10线,DL10,aec7da80-b432-11ea-a1a5-00012999830e
S11,D11,10.85.197.131,3D-11线,DL11,c10984c9-b432-11ea-a1a5-00012999830e
S12,D12,10.85.197.6,3D-12线,DL12,d6e0b92a-b432-11ea-a1a5-00012999830e
3DFeederIn,D21,10.85.197.3,3D-备料区入口,FI,1e546c3a-8abe-11ea-ab63-000129922ca6
3DFeederOut,D22,10.85.197.3,3D-备料区出口,FO,431649a4-8abe-11ea-ab63-000129922ca6
......@@ -96,7 +96,7 @@ namespace DeviceLibrary
if (!AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomCFeederIn) && !AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomCFeederOut) &&
!AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomDFeederIn) && !AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomDFeederOut))
{
tmp = HttpManager.GetFirstRFID(AGVManager.nodeInfo[j].Name);
tmp = HttpManager.GetFirstRFID(AGVManager.nodeInfo[j].LineName);
if (!tmp.Equals(AGVManager.nodeInfo[j].RFID))
{
AGVManager.nodeInfo[j].RFID = tmp;
......@@ -122,7 +122,7 @@ namespace DeviceLibrary
}
HttpManager.updateDeviceAlarmMsg(msglist);
}
catch(Exception ex)
catch (Exception ex)
{
log.Error("NodeStateTimer " + ex.Message + ex.StackTrace);
}
......@@ -144,7 +144,7 @@ namespace DeviceLibrary
{
if (!CheckOnline(i)) continue;
bool change = false;
MiR_API.Get_Task_State(AGVManager.agvInfo[i].CurTaskID, out string stateStr);
MiR_API.Get_Task_State(AGVManager.agvInfo[i], out string stateStr);
Thread.Sleep(50);
//获取AGV状态
rtn = MiR_API.Get_State(AGVManager.agvInfo[i], out eAGVState stateID, out string stateText, out int battery, out string mission_text, out Agv_Info.MirPosition position);
......@@ -160,13 +160,13 @@ namespace DeviceLibrary
if (stateText.Equals("Error") || stateText.Equals("EmergencyStop") || stateText.Equals("Pause"))
{
isAlarm = true;
msglist.Add(new AlarmMsg(AGVManager.agvInfo[i].Name, "lineAgv." + AGVManager.agvInfo[i].Name + ".Error.EmergencyStop", "agv状态:" + stateText + ""));
msglist.Add(new AlarmMsg(AGVManager.agvInfo[i].Name, "lineAgv." + AGVManager.agvInfo[i].Name + ".Msg", "agv状态:" + stateText + ""));
}
if (!isAlarm && AGVManager.agvInfo[i].StandTimeOut)
{
isAlarm = true;
msglist.Add(new AlarmMsg(AGVManager.agvInfo[i].Name, "lineAgv." + AGVManager.agvInfo[i].Name + ".StandTimeOut", "在" + AGVManager.agvInfo[i].PlaceAliceName + "停留超时" + (DateTime.Now - AGVManager.agvInfo[i].StandStartTime).TotalMinutes.ToString("f2") + "分钟"));
msglist.Add(new AlarmMsg(AGVManager.agvInfo[i].Name, "lineAgv." + AGVManager.agvInfo[i].Name + ".Msg", "在" + AGVManager.agvInfo[i].PlaceAliceName + "停留超时" + (DateTime.Now - AGVManager.agvInfo[i].StandStartTime).TotalMinutes.ToString("f2") + "分钟"));
}
if (!isAlarm)
......@@ -209,9 +209,10 @@ namespace DeviceLibrary
foreach (JobType jobType in AGVManager.jobTypes)
{
Job job = null;
if (agv_Info.IsUse)
job = jobType.GetNewJob(agv_Info);
else
return null;
if (job != null)
{
log.Debug(agv_Info.Name + " GetJob OK " + job.ToString());
......@@ -236,7 +237,7 @@ namespace DeviceLibrary
//Ready,Pause,Executing,Error
if (!AGVManager.agvInfo[i].StateID.Equals(eAGVState.Ready) && !AGVManager.agvInfo[i].StateID.Equals(eAGVState.Pause)
&& !AGVManager.agvInfo[i].StateID.Equals(eAGVState.Executing) && !AGVManager.agvInfo[i].StateID.Equals(eAGVState.Error))
&& !AGVManager.agvInfo[i].StateID.Equals(eAGVState.Executing) && !AGVManager.agvInfo[i].StateID.Equals(eAGVState.None))
{
log.Warn(string.Format("{0}不能调用 StateID={1}", AGVManager.agvInfo[i].Name, AGVManager.agvInfo[i].StateID.ToString()));
continue;
......@@ -288,7 +289,6 @@ namespace DeviceLibrary
AGVManager.agvInfo[idx].IsCon = true;
log.Info(AGVManager.agvInfo[idx].Name + " Online");
AgvOnline?.Invoke(idx);
AgvChanged?.Invoke(idx);
}
}
else
......@@ -298,7 +298,6 @@ namespace DeviceLibrary
AGVManager.agvInfo[idx].IsCon = false;
log.Info(AGVManager.agvInfo[idx].Name + " Offline");
AgvOnline?.Invoke(idx);
AgvChanged?.Invoke(idx);
}
else
{
......
......@@ -31,8 +31,8 @@ namespace DeviceLibrary
for (int i = 1; i < line.Length; i++)
{
temp = line[i].Split(',');
if (temp.Length != 5) continue;
Missions.Add(new Mission(temp[0], temp[1], temp[2], temp[3], temp[4]));
if (temp.Length != 3) continue;
Missions.Add(new Mission(temp[0], temp[1], temp[2]));
}
LogUtil.info("加载任务成功");
}
......@@ -47,13 +47,13 @@ namespace DeviceLibrary
/// </summary>
/// <param name="taskName"></param>
/// <returns></returns>
public static string GetMissionGuidByName(string name)
public static string GetMissionGuidByAliceName(string aliceName)
{
Mission mission = Missions.Find(s => s.TargetName.Equals(name));
Mission mission = Missions.Find(s => s.AliceName.Equals(aliceName));
if (mission != null)
return mission.Guid;
else
LogUtil.error(string.Format("任务目的地{0}不存在,请检查!", name));
LogUtil.error(string.Format("任务[{0}]不存在,请检查!", aliceName));
return "";
}
/// <summary>
......@@ -70,43 +70,63 @@ namespace DeviceLibrary
LogUtil.error(string.Format("任务{0}不存在,请检查!", taskName));
return "";
}
public static string GetAliceNameByTaskName(string taskName)
{
Mission mission = Missions.Find(s => s.Name.Equals(taskName));
if (mission != null)
return mission.AliceName;
else
LogUtil.error(string.Format("任务{0}不存在,请检查!", taskName));
return "";
}
public static string GetTaskNameByAliceName(string aliceName)
{
Mission mission = Missions.Find(s => s.AliceName.Equals(aliceName));
if (mission != null)
return mission.Name;
else
LogUtil.error(string.Format("任务[{0}]不存在,请检查!", aliceName));
return "";
}
/// <summary>
/// 向小车发送任务
/// </summary>
/// <returns></returns>
public static bool AssignMission(Agv_Info agv, string missionName)
public static bool AssignMission(Agv_Info agv, string taskName)
{
bool rtn = false;
string guid = GetMissionGuidByName(missionName);
string guid = GetMissionGuidByTaskName(taskName);
if (!guid.Equals(""))
{
if (agv.UseFleet)
{
agv.CurTarName = taskName;
rtn = MiR_API.Add_Mission_Fleet(agv, guid);
MiR_API.State_Ready(agv);
if (rtn)
{
LogUtil.info(string.Format("{0} Add_Mission_Fleet [{1}] OK", agv.Name, missionName));
LogUtil.info(string.Format("{0} Add_Mission_Fleet [{1}] OK", agv.Name, taskName));
}
else
{
LogUtil.info(string.Format("{0} Add_Mission_Fleet [{1}] Fail", agv.Name, missionName));
LogUtil.info(string.Format("{0} Add_Mission_Fleet [{1}] Fail", agv.Name, taskName));
}
}
else
{
agv.CurTarName = taskName;
rtn = MiR_API.Add_Mission(agv, guid);
MiR_API.State_Ready(agv);
if (rtn)
{
LogUtil.info(string.Format("{0} Add_Mission [{1}] OK", agv.Name, missionName));
LogUtil.info(string.Format("{0} Add_Mission [{1}] OK", agv.Name, taskName));
}
else
{
LogUtil.info(string.Format("{0} Add_Mission [{1}] Fail", agv.Name, missionName));
LogUtil.info(string.Format("{0} Add_Mission [{1}] Fail", agv.Name, taskName));
}
}
agv.StateKanban.SetCurTask(MissionSys.GetAliceNameByTaskName(taskName));
}
return rtn;
}
......@@ -136,7 +156,7 @@ namespace DeviceLibrary
public static bool CheckTaskFinished(Agv_Info agv, string taskName, string curTaskState)
{
LogUtil.debug(agv.Name + " 检查当前任务是否结束: " + taskName + " " + curTaskState);
return GetMissionGuidByName(taskName).Equals(agv.CurTaskGUID) && curTaskState.Equals(SettingString.Done);
return GetMissionGuidByTaskName(taskName).Equals(agv.CurTaskGUID) && curTaskState.Equals(SettingString.Done);
}
/// <summary>
/// 检查当前是否分配成功
......@@ -146,16 +166,16 @@ namespace DeviceLibrary
/// <returns></returns>
public static bool CheckTaskIsOK(Agv_Info agv, string taskName, string curTaskState)
{
return GetMissionGuidByName(taskName).Equals(agv.CurTaskGUID) && curTaskState.Equals(SettingString.Executing);
return GetMissionGuidByTaskName(taskName).Equals(agv.CurTaskGUID) && curTaskState.Equals(SettingString.Executing);
}
/// <summary>
/// 获取Fleet Job任务状态
/// </summary>
/// <param name="CurTaskID"></param>
/// <returns></returns>
public static string GetTakJobState(int CurTaskID)
public static string GetTakJobState(Agv_Info agv)
{
if (!CurTaskID.Equals(-1) && MiR_API.Get_Task_State(CurTaskID, out string st))
if (!agv.CurTaskID.Equals(-1) && MiR_API.Get_Task_State(agv, out string st))
return st;
return SettingString.Wait;
}
......
......@@ -41,7 +41,19 @@ namespace DeviceLibrary
/// <summary>
/// 是否在线
/// </summary>
public bool IsCon { set; get; }
public bool IsCon
{
set
{
if (!value.Equals(isCon))
{
isCon = value;
StateKanban.SetConnectState(isCon);
}
}
get { return isCon; }
}
private bool isCon = false;
public bool IsInCharge { get; set; }
/// <summary>
......@@ -55,7 +67,7 @@ namespace DeviceLibrary
if (!value.Equals(_IsUse))
{
_IsUse = value;
AGVManager.WriteIni(Name,SettingString.IsUse,_IsUse.ToString());
AGVManager.WriteIni(Name, SettingString.IsUse, _IsUse.ToString());
}
}
get { return _IsUse; }
......@@ -87,7 +99,7 @@ namespace DeviceLibrary
/// <summary>
/// 当前任务文本,(从小车获取)
/// </summary>
public string MissionText { set; get; }
public string MissionText { set; get; } = "";
public class MirPosition
......@@ -116,7 +128,7 @@ namespace DeviceLibrary
/// <summary>
/// 使用Fleet发任务
/// </summary>
public bool UseFleet { get; set; } = false;
public bool UseFleet=AppConfigHelper.GetBoolValue(SettingString.UseFleet);
/// <summary>
/// 当前任务的ID号
/// </summary>
......@@ -224,7 +236,7 @@ namespace DeviceLibrary
if (!Battery.Equals(battery))
{
Battery = battery;
StateKanban.SetBattery(battery,IsInCharge);
StateKanban.SetBattery(battery, IsInCharge);
}
//"目的地", "RFID", "负载", "运行模式","任务信息", "AGV运行信息"
if (AGVManager.nodeInfo != null && AGVManager.nodeInfo.Count != 0)
......@@ -242,6 +254,7 @@ namespace DeviceLibrary
StateKanban.ShowInfo("负载", IsExistShelf ? "满载" : "空载");
}
StateKanban.ShowInfo("运行模式", IsUse ? "自动" : "手动");
if (this.CurJob != null)
StateKanban.ShowInfo("任务信息", this.CurJob.RunInfo);
if (!MissionText.Equals(missionText))
......@@ -262,7 +275,7 @@ namespace DeviceLibrary
if (IsUse && CurJob != null && !(CurJob is ChargeJob) &&
(!CurTarName.Contains(SettingString.Standby)))//!CurTaskName.Contains(SettingString.AutoCharge) ||
{
if (Math.Abs(position.Point.X - Position.Point.X) < 1 && Math.Abs(position.Point.Y- Position.Point.Y) < 1)
if (Math.Abs(position.Point.X - Position.Point.X) < 1 && Math.Abs(position.Point.Y - Position.Point.Y) < 1)
{
//满足条件,计算持续时间
if (StandStartTime == DateTime.MaxValue)
......
......@@ -33,11 +33,11 @@ namespace DeviceLibrary
/// </summary>
/// <param name="curTaskName"></param>
/// <param name="curTaskId"></param>
protected void UpdateJobTaskInfo(string curTaskName, int curTaskId)
protected void UpdateJobTaskInfo(Agv_Info agv)
{
CurTaskID = curTaskId;
CurTarName = curTaskName;
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskID = agv.CurTaskID;
CurTarName = agv.CurTarName;
CurTaskState = MissionSys.GetTakJobState(agv);
}
/// <summary>
/// 任务重发
......@@ -46,25 +46,25 @@ namespace DeviceLibrary
public bool ResendTask(Agv_Info agv)
{
bool rtn = false;
if (!CurTaskID.Equals(-1) && MiR_API.Get_Task_State(CurTaskID, out string stateStr))
if (!CurTaskID.Equals(-1) && MiR_API.Get_Task_State(agv, out string stateStr))
{
if (stateStr.Equals(SettingString.Aborted) || stateStr.Equals(SettingString.Invalid))
{
rtn = MissionSys.AssignMission(agv, CurTarName);
if (rtn)
{
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
return true;
}
}
}
else if (!CurTarName.Equals("") && !MissionSys.GetMissionGuidByName(CurTarName).Equals(agv.CurTaskGUID))//Job的当前任务与agv最新任务不一致
else if (!CurTarName.Equals("") && !MissionSys.GetMissionGuidByTaskName(CurTarName).Equals(agv.CurTaskGUID))//Job的当前任务与agv最新任务不一致
{
rtn = MissionSys.AssignMission(agv, CurTarName);
if (rtn)
{
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
return true;
}
}
......@@ -73,7 +73,7 @@ namespace DeviceLibrary
rtn = MissionSys.AssignMission(agv, CurTarName);
if (rtn)
{
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
return true;
}
}
......
......@@ -452,16 +452,18 @@ namespace DeviceLibrary
/// <param name="CurTaskID"></param>
/// <param name="stateStr"></param>
/// <returns></returns>
public static bool Get_Task_State(int CurTaskID, out string stateStr)
public static bool Get_Task_State(Agv_Info agv, out string stateStr)
{
stateStr = SettingString.Wait;
try
{
if (CurTaskID == -1)
if (agv.CurTaskID == -1)
return true;
if (agv.UseFleet)
{
string ip = AppConfigHelper.GetValue(SettingString.FLEET);
//http://10.85.199.3/api/v2.0.0/mission_scheduler
string url = "http://" + ip + "/api/v2.0.0/mission_scheduler/" + CurTaskID;
string url = "http://" + ip + "/api/v2.0.0/mission_scheduler/" + agv.CurTaskID;
string json = HttpGet(url, ip, AGVManager.agvInfo[0].Authorization);
log.Debug("URL: " + url + "\n" + "Return: " + json);
if (string.IsNullOrWhiteSpace(json)) return false;
......@@ -474,11 +476,33 @@ namespace DeviceLibrary
// "state": "Done"
string s = dic["id"].ToString();
if (s.Equals(CurTaskID.ToString()))
if (s.Equals(agv.CurTaskID.ToString()))
{
stateStr = dic["state"].ToString();
return true;
}
}
else
{
string url = "http://" + agv.IP + "/api/v2.0.0/mission_queue/" + agv.CurTaskID;
string json = HttpGet(url, agv.IP, agv.Authorization);
log.Debug("URL: " + url + "\n" + "Return: " + json);
if (string.IsNullOrWhiteSpace(json)) return false;
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> dic = (Dictionary<string, object>)serializer.DeserializeObject(json);
if (dic == null) return false;
// "mission_id": "2e433130-c045-11ea-9a66-94c691a7387d",
// "id": 7178,
// "state": "Done"
string s = dic["id"].ToString();
if (s.Equals(agv.CurTaskID.ToString()))
{
stateStr = dic["state"].ToString();
return true;
}
}
return false;
}
catch (Exception ex)
......@@ -488,6 +512,7 @@ namespace DeviceLibrary
}
}
/// <summary>
/// 获取当前小车状态
/// </summary>
......
......@@ -18,15 +18,6 @@ namespace DeviceLibrary
/// </summary>
public string AliceName { private set; get; }
/// <summary>
/// 目的地名称(节点名)
/// </summary>
public string TargetName { private set; get; }
/// <summary>
/// 目的地别名(与节点名对应)
/// </summary>
public string TargetAliceName { private set; get; }
/// <summary>
/// 任务guid
/// </summary>
public string Guid { private set; get; }
......@@ -38,12 +29,10 @@ namespace DeviceLibrary
/// <param name="targetName">目的地名</param>
/// <param name="targetAliceName">目的地别名</param>
/// <param name="guid">任务guid</param>
public Mission(string name,string aliceName,string targetName,string targetAliceName,string guid)
public Mission(string name,string aliceName,string guid)
{
Name = name;
AliceName = aliceName;
TargetName = targetName;
TargetAliceName = targetAliceName;
Guid = guid;
}
}
......
......@@ -28,7 +28,7 @@ namespace DeviceLibrary
/// </summary>
public override string RunInfo
{
get { return string.Format("充电任务[{0}][{1}]:{2} ", CurTaskID, CurTaskState, runInfo);}
get { return string.Format("充电任务[{0}]:{1} ", CurTaskID, runInfo);}
}
private JobStep<CHARGE_STEP> jobStep = new JobStep<CHARGE_STEP>(CHARGE_STEP.NONE);
......@@ -41,7 +41,7 @@ namespace DeviceLibrary
{
string msg = string.Format("{0} 充电任务: ", agv.Name);
//bool rtn = false;
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (jobStep.IsStep(CHARGE_STEP.NONE))
{
if (agv.Battery > AGVManager.Charge.BatteryMax)
......@@ -53,7 +53,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (agvPlace.StartsWith(SettingString.RoomC_Name_Prefix) && AGVManager.CheckIsInAirDoor(agvPlace))
{
......@@ -62,7 +62,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (agvPlace.StartsWith(SettingString.RoomC_Name_Prefix))
{
......@@ -71,7 +71,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -81,7 +81,7 @@ namespace DeviceLibrary
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else
......@@ -94,7 +94,7 @@ namespace DeviceLibrary
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (agvPlace.StartsWith(SettingString.RoomC_Name_Prefix))
{
......@@ -104,7 +104,7 @@ namespace DeviceLibrary
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -116,7 +116,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -124,7 +124,7 @@ namespace DeviceLibrary
runInfo = "电量" + agv.Battery + "%小于最大电量" + AGVManager.Charge.BatteryMax + "%,从当前位置" + agvPlace + "去充电位";
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
}
......@@ -139,7 +139,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(CHARGE_STEP.WAIT_AGV_REACH_ROOMD_DOOR))
......@@ -153,7 +153,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -165,7 +165,7 @@ namespace DeviceLibrary
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -173,7 +173,7 @@ namespace DeviceLibrary
runInfo = "电量" + agv.Battery + "%小于最大电量" + AGVManager.Charge.BatteryMax + "%,从当前位置" + agvPlace + "回到充电位";
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -201,7 +201,7 @@ namespace DeviceLibrary
jobStep.Msg = msg;
AGVManager.Charge.DelOccupyInfo(agv);
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (agv.Battery >= AGVManager.Charge.BatteryMin)
{
......
......@@ -36,7 +36,7 @@ namespace DeviceLibrary
/// </summary>
public override string RunInfo
{
get { return string.Format("返回任务[{0}][{1}]:{2}", CurTaskID,CurTaskState,runInfo); }
get { return string.Format("返回任务[{0}]:{1}", CurTaskID,runInfo); }
}
......@@ -50,7 +50,7 @@ namespace DeviceLibrary
{
string msg = string.Format("{0} 返回任务: ", agv.Name);
//bool rtn = false;
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (jobStep.IsStep(EMPTY_AGV_BACK_STEP.NONE))
{
if (AGVManager.FindEmptyShelfNode(agv, out string nodeName, true))
......@@ -75,7 +75,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (agvPlace.StartsWith(SettingString.RoomC_Name_Prefix))
{
......@@ -84,7 +84,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -93,7 +93,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
}
......@@ -106,7 +106,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (agvPlace.StartsWith(SettingString.RoomC_Name_Prefix))
{
......@@ -115,7 +115,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -124,7 +124,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -138,7 +138,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (agvPlace.StartsWith(SettingString.RoomC_Name_Prefix))
{
......@@ -147,7 +147,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -156,13 +156,13 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
}
else if (jobStep.IsStep(EMPTY_AGV_BACK_STEP.WAIT_REACH_STANDBY))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.Standby, CurTaskState))
{
Job job = AGVManager.control.GetJob(agv);
......@@ -196,7 +196,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(EMPTY_AGV_BACK_STEP.WAIT_AGV_REACH_RoomC_AIR_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorAirOut, CurTaskState))
{
jobStep.ToNextStep(EMPTY_AGV_BACK_STEP.WAIT_AGV_REACH_RoomD_DOOR);
......@@ -204,12 +204,12 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(EMPTY_AGV_BACK_STEP.WAIT_AGV_REACH_RoomD_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorCToD, CurTaskState))
{
if (AGVManager.FindFullShelfTask(agv))
......
......@@ -42,7 +42,7 @@ namespace DeviceLibrary
/// </summary>
public override string RunInfo
{
get { return string.Format("空料架[{0}][{1}][{2}]返回:{3} ",shelfType.ToString(), CurTaskID, CurTaskState, runInfo); }
get { return string.Format("空料架[{0}][{1}]返回:{2} ",shelfType.ToString(), CurTaskID, runInfo); }
}
......@@ -66,7 +66,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (EmptyShelfPlace.StartsWith(SettingString.RoomC_Name_Prefix))//C车间
{
......@@ -75,7 +75,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -89,7 +89,7 @@ namespace DeviceLibrary
if (!EmptyShelfTargetPlace.Equals(""))
{
MissionSys.AssignMission(agv, EmptyShelfTargetPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -100,13 +100,13 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
}
else if (jobStep.IsStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_AIR_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorAirOut, CurTaskState))
{
jobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_DOOR);
......@@ -114,12 +114,12 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorCToD, CurTaskState))
{
if (AGVManager.CheckA5A6State(agv, shelfType, out string nodeName))
......@@ -130,7 +130,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, EmptyShelfTargetPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -140,13 +140,13 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
}
else if (jobStep.IsStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_STANDBY))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (AGVManager.CheckA5A6State(agv, shelfType, out string nodeName))
{
EmptyShelfTargetPlace = nodeName;
......@@ -155,12 +155,12 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, EmptyShelfTargetPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(EMPTY_SHELF_BACK_STEP.WAIT_AGV_REACH_A5A6))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, EmptyShelfTargetPlace, CurTaskState) && EmptyShelfTargetPlace.StartsWith(SettingString.DoubleLine_Name_Prefix))
{
jobStep.ToNextStep(EMPTY_SHELF_BACK_STEP.WAIT_DOUBLE_LINE_RESPONSE);
......@@ -183,7 +183,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Leave);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -198,12 +198,12 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(EMPTY_SHELF_BACK_STEP.WAIT__EMPTY_SHELF_IN_DOUBLE_LINE))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv,SettingString.Leave, CurTaskState))
{
agv.RFID = "";
......
......@@ -75,7 +75,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Leave);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if(ActionType.Equals(eEnterLeaveType.Enter))
{
......@@ -88,7 +88,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Enter);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(ENTER_LEAVE_SHELF_STEP.WAIT_LINE_ReadyEnter_RESPONSE))
......@@ -102,7 +102,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Leave);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (jobStep.IsTimeOut(15000, out double timeOutValue))
{
......@@ -123,7 +123,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Enter);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (jobStep.IsTimeOut(15000, out double timeOutValue))
{
......@@ -135,7 +135,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(ENTER_LEAVE_SHELF_STEP.WAIT__SHELF_IN_LINE))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv,SettingString.Leave, CurTaskState))
{
......@@ -158,7 +158,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(ENTER_LEAVE_SHELF_STEP.WAIT__SHELF_OUT_LINE))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.Enter, CurTaskState))
{
......
......@@ -36,7 +36,7 @@ namespace DeviceLibrary
/// </summary>
public override string RunInfo
{
get { return string.Format("回收空料架[RFID={0}][{1}][{2}]:{3}",RFID, CurTaskID, CurTaskState, runInfo); }
get { return string.Format("回收空料架[RFID={0}][{1}]:{2}",RFID, CurTaskID, runInfo); }
}
......@@ -60,7 +60,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (!AGVManager.CheckIsInAirDoor(agvPlae) && AGVManager.CheckIsInAirDoor(EmptyShelfPlace))//4C风淋门外->风淋门内
{
......@@ -73,7 +73,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
AGVManager.MoveToRoomCStandy(agv);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -82,7 +82,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirIn);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if ((agvPlae.StartsWith(SettingString.RoomD_Name_Prefix) || agvPlae.StartsWith(SettingString.DoubleLine_Name_Prefix) || agvPlae.Equals(SettingString.Standby) ||
......@@ -94,7 +94,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorDToC);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else//起始与目的地在风淋门同一侧
......@@ -108,7 +108,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -129,7 +129,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
AGVManager.MoveToRoomCStandy(agv);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -146,7 +146,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if ((agvPlae.StartsWith(SettingString.RoomD_Name_Prefix) || agvPlae.StartsWith(SettingString.DoubleLine_Name_Prefix) || agvPlae.Equals(SettingString.Standby) ||
agvPlae.Equals(SettingString.AutoCharge))
......@@ -157,7 +157,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorDToC);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else//4D->4D
......@@ -174,7 +174,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(TAKE_EMPTY_STEP.WAIT_AGV_REACH_AIR_OUT_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorAirOut, CurTaskState))
{
//4C风淋门内->风淋门外,到达风淋门外
......@@ -187,7 +187,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
AGVManager.MoveToRoomCStandy(agv);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -204,7 +204,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
//都在风淋门内,到达风淋门外
else
......@@ -214,13 +214,13 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
AGVManager.MoveToRoomCStandy(agv);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
}
else if (jobStep.IsStep(TAKE_EMPTY_STEP.WAIT_AGV_REACH_AIR_IN_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorAirIn, CurTaskState))
{
//4C风淋门外->风淋门内
......@@ -232,7 +232,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(TAKE_EMPTY_STEP.WAIT_AGV_REACH_4C_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorDToC, CurTaskState))
{
if (AGVManager.CheckRoomCTarget(agv, EmptyShelfPlace))//被占用
......@@ -242,7 +242,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
AGVManager.MoveToRoomCStandy(agv);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -253,7 +253,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirIn);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -267,7 +267,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(TAKE_EMPTY_STEP.WAIT_REACH_TEMP_PLACE))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.C4_STANDBY1, CurTaskState) || MissionSys.CheckTaskFinished(agv, SettingString.C4_STANDBY2, CurTaskState))
{
if (!AGVManager.CheckRoomCTarget(agv, EmptyShelfPlace))//未占用
......@@ -282,7 +282,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(TAKE_EMPTY_STEP.WAIT_AGV_REACH_4D_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorCToD, CurTaskState))
{
jobStep.ToNextStep(TAKE_EMPTY_STEP.ASSIGN_AGV_TASK);
......@@ -301,7 +301,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, EmptyShelfPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -323,7 +323,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(TAKE_EMPTY_STEP.WAIT_REACH_PLACE))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, EmptyShelfPlace, CurTaskState))
{
//if (EmptyShelfPlace.Equals(SettingString.C4FeederOut))
......@@ -374,7 +374,7 @@ namespace DeviceLibrary
jobStep.Msg = msg;
//agv.RFID = node.RFID;
MissionSys.AssignMission(agv, SettingString.Enter);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -385,7 +385,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(TAKE_EMPTY_STEP.WAIT_TAKE_EMPTY_SHELF))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.Enter, CurTaskState))
{
ClientNode node = AGVManager.nodeInfo[nodeIdx];
......
......@@ -32,7 +32,7 @@ namespace DeviceLibrary
/// </summary>
public override string RunInfo
{
get { return string.Format("接满料任务[{0}][{1}]:{2}", CurTaskID, CurTaskState, runInfo); }
get { return string.Format("接满料任务[{0}]:{1}", CurTaskID, runInfo); }
}
/// <summary>
......@@ -55,11 +55,11 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.CheckShelf);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (jobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_CHECK_RESULT))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.CheckShelf, CurTaskState))
{
if (agv.IsExistShelf)
......@@ -79,7 +79,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, FullShelfStationPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (AGVManager.CheckIsInAirDoor(agvPlace))
{
......@@ -88,7 +88,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirOut);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else if (agvPlace.StartsWith(SettingString.RoomC_Name_Prefix))//4C车间
{
......@@ -97,7 +97,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -106,7 +106,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, FullShelfStationPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -115,7 +115,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_AIR_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorAirOut, CurTaskState))
{
jobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_DOOR);
......@@ -123,13 +123,13 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorCToD, CurTaskState))
{
jobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_A6);
......@@ -137,13 +137,13 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, FullShelfStationPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_AGV_REACH_A6))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, FullShelfStationPlace, CurTaskState))
{
ClientNode node = AGVManager.nodeInfo.Find(s => s.Name.Equals(SettingString.A6)
......@@ -180,7 +180,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
}
......@@ -190,7 +190,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT_REACH_STANDBY))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.Standby, CurTaskState))
{
jobStep.ToNextStep(GO_FULL_SHELF_STATION_STEP.END);
......@@ -219,7 +219,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(), runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.Enter);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -232,7 +232,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(GO_FULL_SHELF_STATION_STEP.WAIT__FULL_SHELF_IN_AGV))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.Enter, CurTaskState))
{
......
......@@ -40,7 +40,7 @@ namespace DeviceLibrary
/// </summary>
public override string RunInfo
{
get { return string.Format("送满料任务[RFID={0}][{1}][{2}]:{3}",RFID, CurTaskID, CurTaskState, runInfo); }
get { return string.Format("送满料任务[RFID={0}][{1}]:{2}",RFID, CurTaskID, runInfo); }
}
......@@ -61,7 +61,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorDToC);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -70,13 +70,13 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, FullShelfPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(SEND_FULL_SHELF_STEP.WAIT_AGV_REACH_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorDToC, CurTaskState))
{
if (AGVManager.CheckRoomCTarget(agv, FullShelfPlace))//被占用
......@@ -86,7 +86,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
AGVManager.MoveToRoomCStandy(agv);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -97,7 +97,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirIn);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -106,7 +106,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, FullShelfPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -114,7 +114,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(SEND_FULL_SHELF_STEP.WAIT_AGV_REACH_AIR_DOOR))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.DoorAirIn, CurTaskState))
{
jobStep.ToNextStep(SEND_FULL_SHELF_STEP.WAIT_AGV_REACH_LINE);
......@@ -122,12 +122,12 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, FullShelfPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (jobStep.IsStep(SEND_FULL_SHELF_STEP.WAIT_REACH_TEMP_PLACE))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, SettingString.C4_STANDBY1, CurTaskState) || MissionSys.CheckTaskFinished(agv, SettingString.C4_STANDBY2, CurTaskState))
{
if (!AGVManager.CheckRoomCTarget(agv, FullShelfPlace))//未占用
......@@ -139,7 +139,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorAirIn);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -148,14 +148,14 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv, FullShelfPlace);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
}
}
else if (jobStep.IsStep(SEND_FULL_SHELF_STEP.WAIT_AGV_REACH_LINE))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv, FullShelfPlace, CurTaskState))
{
//if (FullShelfPlace.Equals(SettingString.C4FeederIn))
......@@ -222,7 +222,7 @@ namespace DeviceLibrary
msg += string.Format("[{0}] {1}", jobStep.CurStep(),runInfo);
jobStep.Msg = msg;
MissionSys.AssignMission(agv,SettingString.Leave);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -246,7 +246,7 @@ namespace DeviceLibrary
}
else if (jobStep.IsStep(SEND_FULL_SHELF_STEP.WAIT__SHELF_IN_LINE))
{
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (MissionSys.CheckTaskFinished(agv,SettingString.Leave, CurTaskState))
{
runInfo = "满料进入" + FullShelfPlace + "完成[" + agv.BoxDestInfo + "]";
......
......@@ -43,7 +43,7 @@ namespace DeviceLibrary
bool rtn = false;
agv.Msg = "";
CurTaskState = MissionSys.GetTakJobState(CurTaskID);
CurTaskState = MissionSys.GetTakJobState(agv);
if (curJobStep.IsStep(EXECUTE_STEP.NONE))
{
if (agvPlace.Equals(SettingString.Standby))//在待机位不操作
......@@ -61,7 +61,7 @@ namespace DeviceLibrary
msg += runInfo;
curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.DoorCToD);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
else
{
......@@ -71,7 +71,7 @@ namespace DeviceLibrary
curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
......@@ -86,7 +86,7 @@ namespace DeviceLibrary
curJobStep.Msg = msg;
MissionSys.AssignMission(agv, SettingString.Standby);
UpdateJobTaskInfo(agv.CurTarName, agv.CurTaskID);
UpdateJobTaskInfo(agv);
}
}
else if (curJobStep.IsStep(EXECUTE_STEP.WAIT_REACH_STANDBY))
......
......@@ -43,13 +43,13 @@ namespace DeviceLibrary
if (workOrder.data.line != null)
{
string tempLocation = workOrder.data.line;
if (workOrder.data.line.Equals("Feeder"))
if (workOrder.data.line.Equals("3DFeeder"))
{
tempLocation = "FeederIn";
tempLocation = "3DFeederIn";
}
else if (workOrder.data.line.Equals("4CFeeder"))
else if (workOrder.data.line.Equals("3CFeeder"))
{
tempLocation = "4CFeederIn";
tempLocation = "3CFeederIn";
}
workOrder.data.line = tempLocation;
woData = workOrder.data;
......@@ -106,7 +106,7 @@ namespace DeviceLibrary
{
if (rfid.Equals("") || rfid.Equals("00"))
return false;
string itsHttp = AppConfigHelper.GetValue(SettingString.ITS);
string itsHttp = "http://"+AppConfigHelper.GetValue(SettingString.ITS)+"/ESMTCommonInterface/CommonService.asmx/VMIGetBoxDestInfo?boxRFID=";
string url = itsHttp + rfid;
var client = new RestClient(url) { Timeout = -1 };
var request = new RestRequest(Method.GET);
......@@ -126,13 +126,13 @@ namespace DeviceLibrary
string tempLocation = res[0].location;
if (res[0].id == rfid)
{
if (res[0].location.Equals("Feeder"))
if (res[0].location.Equals("3DFeeder"))
{
tempLocation = "FeederIn";
tempLocation = "3DFeederIn";
}
else if (res[0].location.Equals("4CFeeder"))
else if (res[0].location.Equals("3CFeeder"))
{
tempLocation = "4CFeederIn";
tempLocation = "3CFeederIn";
}
if (AGVManager.GetNodeNameByLineName(tempLocation, out string loc))
......@@ -219,15 +219,15 @@ namespace DeviceLibrary
//Host: 10.85.17.233
AGVManager.GetLineNameByNodeName(nodeName, out string lineName);
if (lineName.Equals("FeederIn"))
if (lineName.Equals("3DFeederIn"))
{
lineName = "Feeder";
lineName = "3DFeeder";
}
else if (lineName.Equals("4CFeederIn"))
else if (lineName.Equals("3CFeederIn"))
{
lineName = "4CFeeder";
lineName = "3CFeeder";
}
string addr = "http://10.85.17.233/ESMTCommonInterface/CommonService.asmx/UpdateStatusBy?id=" + rfid + "&location=" + lineName;
string addr = "http://"+ AppConfigHelper.GetValue(SettingString.ITS) + "/ESMTCommonInterface/CommonService.asmx/UpdateStatusBy?id=" + rfid + "&location=" + lineName;
//[{"msg":"1更新成功"}]
try
{
......@@ -267,7 +267,7 @@ namespace DeviceLibrary
lineName = "";
//GET /ESMTCommonInterface/CommonService.asmx/GetRackBy?id=string HTTP/1.1
//Host: 10.85.17.233
string addr = "http://10.85.17.233/ESMTCommonInterface/CommonService.asmx/GetRackBy?id=" + rfid;
string addr = "http://"+AppConfigHelper.GetValue(SettingString.ITS)+"/ESMTCommonInterface/CommonService.asmx/GetRackBy?id=" + rfid;
//[{"msg":"1OKD1"}]
//[{"msg":"0NGFeeder"}]
try
......@@ -301,7 +301,7 @@ namespace DeviceLibrary
{
//GET /ESMTCommonInterface/CommonService.asmx/GetRackBy?id=string HTTP/1.1
//Host: 10.85.17.233
string addr = "http://10.85.17.233/ESMTCommonInterface/CommonService.asmx/GetRackBy?id=" + rfid;
string addr = "http://10.85.71.25/ESMTCommonInterface/CommonService.asmx/GetRackBy?id=" + rfid;
//[{"msg":"1OKD1"}]
//[{"msg":"0NGFeeder"}]
try
......@@ -347,6 +347,7 @@ namespace DeviceLibrary
string msg = "";
try
{
if (msgList.Count.Equals(0)) return "";
Dictionary<string, string> paramMap = new Dictionary<string, string>();
string msgListStr = JsonHelper.SerializeObject(msgList);
paramMap.Add("deviceAlarmList", msgListStr);
......@@ -390,40 +391,40 @@ namespace DeviceLibrary
return path;
}
public static string Add_emptyMsg = "http://10.85.199.1/BenQMIR/Webservice/AGVService.asmx/CreateEmptyRecycleTask";
public static string CreateEmptyTask()
{
try
{
Dictionary<string, string> paramMap = new Dictionary<string, string>();
paramMap.Add("emptyStation", "D1");
string path = Add_emptyMsg + "?";
foreach (string paramName in paramMap.Keys)
{
string par = System.Web.HttpUtility.UrlEncode(paramMap[paramName], System.Text.Encoding.UTF8);
path += paramName + "=" + par + "&";
}
path = path.Substring(0, path.Length - 1);
//public static string Add_emptyMsg = "http://10.85.197.3/BenQMIR/Webservice/AGVService.asmx/CreateEmptyRecycleTask";
//public static string CreateEmptyTask()
//{
// try
// {
// Dictionary<string, string> paramMap = new Dictionary<string, string>();
// paramMap.Add("emptyStation", "D1");
// string path = Add_emptyMsg + "?";
// foreach (string paramName in paramMap.Keys)
// {
// string par = System.Web.HttpUtility.UrlEncode(paramMap[paramName], System.Text.Encoding.UTF8);
// path += paramName + "=" + par + "&";
// }
// path = path.Substring(0, path.Length - 1);
string resultStr = HttpHelper.Post(path, "");
log.Debug("【" + path + "】【" + resultStr + "】");
// string resultStr = HttpHelper.Post(path, "");
// log.Debug("【" + path + "】【" + resultStr + "】");
Result data = JsonHelper.DeserializeJsonToObject<Result>(resultStr);
// Result data = JsonHelper.DeserializeJsonToObject<Result>(resultStr);
if (data == null)
{
return " updateDeviceAlarmMsg 没有收到服务器反馈";
}
else
{
return data.Succeed.ToString();
}
}
catch (Exception e)
{
return e.ToString();
}
}
// if (data == null)
// {
// return " updateDeviceAlarmMsg 没有收到服务器反馈";
// }
// else
// {
// return data.Succeed.ToString();
// }
// }
// catch (Exception e)
// {
// return e.ToString();
// }
//}
/// <summary>
/// 获取接驳台料架情况
......@@ -436,11 +437,11 @@ namespace DeviceLibrary
if (lineName.StartsWith(SettingString.RoomD_Name_Prefix))
{
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_4D_Light), lineName);
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_3D_Light), lineName);
}
else if (lineName.StartsWith(SettingString.RoomC_Name_Prefix))
{
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_4C_Light), lineName);
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_3C_Light), lineName);
}
try
{
......@@ -477,11 +478,11 @@ namespace DeviceLibrary
if (lineName.StartsWith(SettingString.RoomD_Name_Prefix))
{
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_4D_Light), lineName);
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_3D_Light), lineName);
}
else if (lineName.StartsWith(SettingString.RoomC_Name_Prefix))
{
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_4C_Light), lineName);
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_3C_Light), lineName);
}
try
{
......@@ -520,17 +521,18 @@ namespace DeviceLibrary
/// <param name="lineName"></param>
/// <param name="rfid"></param>
/// <returns></returns>
public static bool ClearRFID(string lineName, string rfid)
public static bool ClearRFID(string nodeName, string rfid)
{
string addr = "";
if (lineName.StartsWith(SettingString.RoomD_Name_Prefix))
string lineName = "";
if (nodeName.StartsWith(SettingString.RoomD_Name_Prefix) && AGVManager.GetLineNameByNodeName(nodeName, out lineName))
{
addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", AppConfigHelper.GetValue(SettingString.IP_4D_Light), lineName, rfid);
addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", AppConfigHelper.GetValue(SettingString.IP_3D_Light), lineName, rfid);
}
else if (lineName.StartsWith(SettingString.RoomC_Name_Prefix))
else if (nodeName.StartsWith(SettingString.RoomC_Name_Prefix) && AGVManager.GetLineNameByNodeName(nodeName, out lineName))
{
addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", AppConfigHelper.GetValue(SettingString.IP_4C_Light), lineName, rfid);
addr = string.Format("http://{0}/LineClearRFID?line={1}&rfid={2}", AppConfigHelper.GetValue(SettingString.IP_3C_Light), lineName, rfid);
}
try
{
......
......@@ -58,9 +58,9 @@ namespace DeviceLibrary
res = new Result() { Succeed = false, ResultData = null, ErrorMessage = "emptyStation =null " };
else
{
if (emptyStation.Equals("Feeder"))
if (emptyStation.Equals("3DFeeder"))
{
emptyStation = "FeederOut";
emptyStation = "3DFeederOut";
}
else if (emptyStation.Equals("3CFeeder"))
{
......@@ -107,9 +107,9 @@ namespace DeviceLibrary
public string CreateEmptyRecycleTaskGET(string line, string RFID)
{
Result res;
if (line.Equals("Feeder"))
if (line.Equals("3DFeeder"))
{
line = "FeederOut";
line = "3DFeederOut";
}
else if (line.Equals("3CFeeder"))
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!