Commit 1cc1b3e0 顾剑亮

add log

1 个父辈 f36f79ab
正在显示 38 个修改的文件 包含 553 行增加324 行删除
...@@ -8,27 +8,30 @@ ...@@ -8,27 +8,30 @@
<add key="FLEET" value="10.85.199.3"/> <add key="FLEET" value="10.85.199.3"/>
<add key="AutoCharge" value="false"/> <add key="AutoCharge" value="false"/>
<add key="ChargeWait" value="1"/> <add key="ChargeWait" value="1"/>
<add key="ChargeThreshold" value="20,70"/>
<add key="MiR_R1467" value="false"/> <add key="MiR_R1467" value="false"/>
<add key="MiR_R1468" value="false"/> <add key="MiR_R1468" value="false"/>
<add key="MiR_R1469" value="false"/> <add key="MiR_R1469" value="false"/>
<add key="MiR_R1470" value="false"/> <add key="MiR_R1470" value="false"/>
<add key="A1" value="false"/> <add key="A1" value="true"/>
<add key="A2" value="false"/> <add key="A2" value="true"/>
<add key="A3" value="false"/> <add key="A3" value="true"/>
<add key="A4" value="false"/> <add key="A4" value="true"/>
<add key="B1" value="false"/> <add key="B1" value="true"/>
<add key="B2" value="false"/> <add key="B2" value="true"/>
<add key="B3" value="false"/> <add key="B3" value="true"/>
<add key="B4" value="false"/> <add key="B4" value="true"/>
<add key="B5" value="false"/> <add key="B5" value="true"/>
<add key="B6" value="false"/> <add key="B6" value="true"/>
<add key="C1" value="false"/> <add key="C1" value="true"/>
<add key="C2" value="false"/> <add key="C2" value="true"/>
<add key="C3" value="false"/> <add key="C3" value="true"/>
<add key="C4" value="false"/> <add key="C4" value="true"/>
<add key="C5" value="false"/> <add key="C5" value="true"/>
<add key="C6" value="false"/> <add key="C6" value="true"/>
<add key="C7" value="false"/> <add key="C7" value="true"/>
<add key="C8" value="false"/> <add key="C8" value="true"/>
<add key="D1" value="true"/>
<add key="D2" value="true"/>
</appSettings> </appSettings>
</configuration> </configuration>
\ No newline at end of file \ No newline at end of file
...@@ -79,19 +79,38 @@ namespace BLL ...@@ -79,19 +79,38 @@ namespace BLL
continue; continue;
} }
Common.log.OutInfo(Common.agvInfo[i].Name + " " + Common.agvInfo[i].MissionStatus); Common.log.OutInfo("AgvCall " + Common.agvInfo[i].Name + " " + Common.agvInfo[i].MissionStatus);
switch (Common.agvInfo[i].MissionStatus) switch (Common.agvInfo[i].MissionStatus)
{ {
case Mission_Status.None: //有空闲车辆 case Mission_Status.None: //有空闲车辆
if (!Common.agvInfo[i].TaskSend) if (!Common.agvInfo[i].TaskSend)
{ {
if (Common.chargeStatus.AutoCharge && Common.agvInfo[i].Battery < 80 && //if (Common.chargeStatus.AutoCharge && Common.agvInfo[i].Battery < 70 &&
Common.agvInfo[i].WaitTime >= Common.chargeStatus.chargeWait * 60000) // Common.agvInfo[i].WaitTime >= Common.chargeStatus.chargeWait * 60000)
//{
// Common.log.OutInfo(Common.agvInfo[i].Name + " 闲置时间超过" + Common.chargeStatus.chargeWait + "分钟");
// if (StatusCharge(Common.agvInfo[i]))
// break;
//}
if (Common.chargeStatus.AutoCharge)
{
if (Common.agvInfo[i].Battery <= Common.chargeStatus.chargeMin)
{
Common.log.OutInfo(Common.agvInfo[i].Name + " 电量小于20%");
if (StatusCharge(Common.agvInfo[i]))
break;
}
else if (Common.agvInfo[i].Battery <= Common.chargeStatus.chargeMax && Common.agvInfo[i].WaitTime >= Common.chargeStatus.chargeWait * 60000)
{ {
Common.log.OutInfo(Common.agvInfo[i].Name + " 闲置时间超过" + Common.chargeStatus.chargeWait + "分钟"); Common.log.OutInfo(Common.agvInfo[i].Name + " 闲置时间超过" + Common.chargeStatus.chargeWait + "分钟");
if (StatusCharge(Common.agvInfo[i])) if (StatusCharge(Common.agvInfo[i]))
break; break;
} }
}
StatusNone(i); StatusNone(i);
} }
break; break;
...@@ -130,7 +149,7 @@ namespace BLL ...@@ -130,7 +149,7 @@ namespace BLL
Common.agvInfo[i].TaskSend = false; Common.agvInfo[i].TaskSend = false;
break; break;
default: default:
Common.agvInfo[i].TaskSend = false; //Common.agvInfo[i].TaskSend = false; //2020年5月22日
break; break;
} }
} }
...@@ -148,7 +167,7 @@ namespace BLL ...@@ -148,7 +167,7 @@ namespace BLL
if (!Common.agvInfo[idx].IsCon) if (!Common.agvInfo[idx].IsCon)
{ {
Common.agvInfo[idx].IsCon = true; Common.agvInfo[idx].IsCon = true;
Common.agvInfo[idx].TaskSend = false; //Common.agvInfo[idx].TaskSend = false; //2020年5月22日
AgvOnline?.Invoke(idx); AgvOnline?.Invoke(idx);
AgvChanged?.Invoke(idx); AgvChanged?.Invoke(idx);
} }
...@@ -226,19 +245,12 @@ namespace BLL ...@@ -226,19 +245,12 @@ namespace BLL
change = true; change = true;
} }
//电量小于20%强制充电
if (Common.agvInfo[i].Battery <= 20)
{
Common.agvInfo[i].WaitTime = Common.chargeStatus.chargeWait * 60000;
}
else
{
//闲置时间 //闲置时间
if (Common.agvInfo[i].MissionStatus == Mission_Status.None) if (Common.agvInfo[i].MissionStatus == Mission_Status.None)
Common.agvInfo[i].WaitTime += Environment.TickCount - time; Common.agvInfo[i].WaitTime += Environment.TickCount - time;
else else
Common.agvInfo[i].WaitTime = 0; Common.agvInfo[i].WaitTime = 0;
}
log += " " + Common.agvInfo[i].MissionStatus.ToString(); log += " " + Common.agvInfo[i].MissionStatus.ToString();
} }
else else
...@@ -279,6 +291,13 @@ namespace BLL ...@@ -279,6 +291,13 @@ namespace BLL
bool rtn; bool rtn;
string log; string log;
//防止两车同时充电卡住的情况
if (Environment.TickCount - Common.chargeStatus.chargeInterval < 60000)
{
Common.log.OutInfo("两车充电时间间隔小于60s,不能充电。");
return false;
}
if (Common.chargeStatus.charge1 == "") if (Common.chargeStatus.charge1 == "")
{ {
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge1"]); rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge1"]);
...@@ -286,11 +305,11 @@ namespace BLL ...@@ -286,11 +305,11 @@ namespace BLL
{ {
agv.TaskSend = true; agv.TaskSend = true;
Common.chargeStatus.charge1 = agv.Name; Common.chargeStatus.charge1 = agv.Name;
Common.chargeStatus.chargeInterval = Environment.TickCount;
log = string.Format("{0} AutoCharge1", agv.Name); log = string.Format("{0} AutoCharge1", agv.Name);
Common.log.OutInfo(log); Common.log.OutInfo(log);
Common.log.OutTextBox(log); Common.log.OutTextBox(log);
Common.mir.State_Ready(agv); Common.mir.State_Ready(agv);
return true;
} }
else else
{ {
...@@ -301,6 +320,7 @@ namespace BLL ...@@ -301,6 +320,7 @@ namespace BLL
Common.log.OutInfo(log); Common.log.OutInfo(log);
Common.log.OutTextBox(log); Common.log.OutTextBox(log);
} }
return rtn;
} }
else if (Common.chargeStatus.charge2 == "") else if (Common.chargeStatus.charge2 == "")
{ {
...@@ -309,11 +329,11 @@ namespace BLL ...@@ -309,11 +329,11 @@ namespace BLL
{ {
agv.TaskSend = true; agv.TaskSend = true;
Common.chargeStatus.charge2 = agv.Name; Common.chargeStatus.charge2 = agv.Name;
Common.chargeStatus.chargeInterval = Environment.TickCount;
log = string.Format("{0} AutoCharge2", agv.Name); log = string.Format("{0} AutoCharge2", agv.Name);
Common.log.OutInfo(log); Common.log.OutInfo(log);
Common.log.OutTextBox(log); Common.log.OutTextBox(log);
Common.mir.State_Ready(agv); Common.mir.State_Ready(agv);
return true;
} }
else else
{ {
...@@ -324,10 +344,12 @@ namespace BLL ...@@ -324,10 +344,12 @@ namespace BLL
Common.log.OutInfo(log); Common.log.OutInfo(log);
Common.log.OutTextBox(log); Common.log.OutTextBox(log);
} }
return rtn;
} }
else
{
return false; return false;
}
} }
private void StatusNone(int agvIdx) private void StatusNone(int agvIdx)
...@@ -366,11 +388,12 @@ namespace BLL ...@@ -366,11 +388,12 @@ namespace BLL
{ {
agv.Place = Common.nodeInfo[n].Name; agv.Place = Common.nodeInfo[n].Name;
agv.Mark = Common.nodeInfo[nodeIdx].Mark; agv.Mark = Common.nodeInfo[nodeIdx].Mark;
agv.CloseDoor = false; //agv.CloseDoor = false;
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + agv.Place]); rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + agv.Place]);
if (rtn) if (rtn)
{ {
agv.CloseDoor = false;
Common.nodeInfo[n].AgvName = agv.Name; Common.nodeInfo[n].AgvName = agv.Name;
agv.TaskSend = true; agv.TaskSend = true;
//_mark.Add(Common.nodeInfo[nodeIdx].Mark); //_mark.Add(Common.nodeInfo[nodeIdx].Mark);
...@@ -657,6 +680,7 @@ namespace BLL ...@@ -657,6 +680,7 @@ namespace BLL
case "C4": case "C4":
case "C6": case "C6":
case "C8": case "C8":
case "D2":
log = string.Format("{0} Ready {1}", agv.Name, agv.Place); log = string.Format("{0} Ready {1}", agv.Name, agv.Place);
Common.log.OutInfo(log); Common.log.OutInfo(log);
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Enter"]); //对于小车,料架进入 rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Enter"]); //对于小车,料架进入
...@@ -689,6 +713,7 @@ namespace BLL ...@@ -689,6 +713,7 @@ namespace BLL
case "C3": case "C3":
case "C5": case "C5":
case "C7": case "C7":
case "D1":
log = string.Format("{0} Ready {1}", agv.Name, agv.Place); log = string.Format("{0} Ready {1}", agv.Name, agv.Place);
Common.log.OutInfo(log); Common.log.OutInfo(log);
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Leave"]); //对于小车,料架出去 rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Leave"]); //对于小车,料架出去
...@@ -919,6 +944,8 @@ namespace BLL ...@@ -919,6 +944,8 @@ namespace BLL
rtn = C246Enter(agv); break; rtn = C246Enter(agv); break;
case "C8": case "C8":
rtn = C8Enter(agv); break; rtn = C8Enter(agv); break;
case "D2":
rtn = D2Enter(agv); break;
default: default:
agv.Mark = ""; agv.Mark = "";
agv.Place = ""; agv.Place = "";
...@@ -972,9 +999,12 @@ namespace BLL ...@@ -972,9 +999,12 @@ namespace BLL
case "B5": case "B5":
case "B6": case "B6":
rtn = B123456Leave(agv); break; rtn = B123456Leave(agv); break;
case "D1":
rtn = D1Leave(agv); break;
default: default:
agv.Mark = ""; agv.Mark = "";
agv.Place = ""; agv.Place = "";
Common.log.OutInfo("ERROR:" + agv.Place);
break; break;
} }
AgvChanged?.Invoke(agvIdx); AgvChanged?.Invoke(agvIdx);
...@@ -1067,7 +1097,15 @@ namespace BLL ...@@ -1067,7 +1097,15 @@ namespace BLL
Common.log.OutInfo(log); Common.log.OutInfo(log);
Common.log.OutTextBox(log); Common.log.OutTextBox(log);
rtn = FindNeedEnter(agv, "A2"); rtn = FindNeedEnter(agv, "A2");
if (!rtn) agv.NextMission = "A2"; if (rtn)
{
agv.NextMission = "";
}
else
{
agv.NextMission = "A2";
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
}
} }
else if (agv.RFID[0] == 'A') //包装料架 else if (agv.RFID[0] == 'A') //包装料架
{ {
...@@ -1076,12 +1114,22 @@ namespace BLL ...@@ -1076,12 +1114,22 @@ namespace BLL
{ {
Common.log.OutInfo(agv.Name + " A料架,去B区"); Common.log.OutInfo(agv.Name + " A料架,去B区");
rtn = MoveNode(agv, nodeIdx); rtn = MoveNode(agv, nodeIdx);
if (!rtn) agv.NextMission = "B区"; if (rtn)
{
agv.NextMission = "";
Common.server.EnterShelf(agv);
}
else
{
agv.NextMission = "B区";
//Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
}
} }
else else
{ {
log = agv.Name + " B区暂时没有位置"; log = agv.Name + " B区暂时没有位置";
agv.NextMission = "B区"; agv.NextMission = "B区";
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
Common.log.OutInfo(log); Common.log.OutInfo(log);
Common.log.OutTextBox(log); Common.log.OutTextBox(log);
} }
...@@ -1093,12 +1141,21 @@ namespace BLL ...@@ -1093,12 +1141,21 @@ namespace BLL
{ {
Common.log.OutInfo(agv.Name + " B料架,去C区"); Common.log.OutInfo(agv.Name + " B料架,去C区");
rtn = MoveNode(agv, nodeIdx); rtn = MoveNode(agv, nodeIdx);
if (!rtn) agv.NextMission = "C区"; if (rtn)
{
agv.NextMission = "";
}
else
{
agv.NextMission = "C区";
//Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
}
} }
else else
{ {
log = agv.Name + " C区暂时没有位置"; log = agv.Name + " C区暂时没有位置";
agv.NextMission = "C区"; agv.NextMission = "C区";
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
Common.log.OutInfo(log); Common.log.OutInfo(log);
Common.log.OutTextBox(log); Common.log.OutTextBox(log);
} }
...@@ -1109,10 +1166,18 @@ namespace BLL ...@@ -1109,10 +1166,18 @@ namespace BLL
Common.log.OutInfo(log); Common.log.OutInfo(log);
Common.log.OutTextBox(log); Common.log.OutTextBox(log);
rtn = FindNeedEnter(agv, "A2"); rtn = FindNeedEnter(agv, "A2");
if (!rtn) agv.NextMission = "A2"; if (rtn)
{
agv.NextMission = "";
}
else
{
agv.NextMission = "A2";
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
}
} }
if (rtn) agv.NextMission = ""; //if (rtn) agv.NextMission = "";
return rtn; return rtn;
} }
...@@ -1123,10 +1188,19 @@ namespace BLL ...@@ -1123,10 +1188,19 @@ namespace BLL
//添加包装料仓优先 //添加包装料仓优先
int agvIdx = Common.agvInfo.FindIndex(s => s.Name == agv.Name); int agvIdx = Common.agvInfo.FindIndex(s => s.Name == agv.Name);
rtn = FindAreaBLeave(agvIdx); rtn = FindAreaBLeave(agvIdx);
Common.log.OutInfo(agv.Name + " B区 " + rtn.ToString());
if (!rtn)
{
rtn = FindNeedLeave(agv, "A1");
Common.log.OutInfo(agv.Name + " A1 " + rtn.ToString());
}
if (!rtn) rtn = FindNeedLeave(agv, "C8"); if (!rtn)
if (!rtn) rtn = FindNeedLeave(agv, "A1"); {
if (!rtn) rtn = MoveStandby(agv); rtn = MoveStandby(agv);
Common.log.OutInfo(agv.Name + " MoveStandby " + rtn.ToString());
}
return rtn; return rtn;
} }
...@@ -1134,8 +1208,18 @@ namespace BLL ...@@ -1134,8 +1208,18 @@ namespace BLL
private bool A3Leave(Agv_Info agv) private bool A3Leave(Agv_Info agv)
{ {
bool rtn = FindNeedLeave(agv, "C8"); bool rtn = FindNeedLeave(agv, "C8");
if (!rtn) rtn = FindNeedLeave(agv, "C2"); Common.log.OutInfo(agv.Name + " C8 " + rtn.ToString());
if (!rtn) rtn = MoveStandby(agv);
if (!rtn)
{
rtn = FindNeedLeave(agv, "C2");
Common.log.OutInfo(agv.Name + " C2 " + rtn.ToString());
}
if (!rtn)
{
rtn = MoveStandby(agv);
Common.log.OutInfo(agv.Name + " MoveStandby " + rtn.ToString());
}
return rtn; return rtn;
} }
...@@ -1171,15 +1255,30 @@ namespace BLL ...@@ -1171,15 +1255,30 @@ namespace BLL
default: name = "A2"; break; default: name = "A2"; break;
} }
rtn = FindNeedEnter(agv, name); rtn = FindNeedEnter(agv, name);
agv.NextMission = rtn ? "" : name; if (rtn)
{
agv.NextMission = "";
}
else
{
agv.NextMission = name;
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
}
} }
return rtn; return rtn;
} }
else else
{ {
rtn = FindNeedEnter(agv, "A2"); rtn = FindNeedEnter(agv, "A2");
agv.NextMission = rtn ? "" : "A2"; if (rtn)
{
agv.NextMission = "";
}
else
{
agv.NextMission = "A2";
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
}
return rtn; return rtn;
} }
} }
...@@ -1191,10 +1290,25 @@ namespace BLL ...@@ -1191,10 +1290,25 @@ namespace BLL
//添加包装料仓优先 //添加包装料仓优先
int agvIdx = Common.agvInfo.FindIndex(s => s.Name == agv.Name); int agvIdx = Common.agvInfo.FindIndex(s => s.Name == agv.Name);
rtn = FindAreaBLeave(agvIdx); rtn = FindAreaBLeave(agvIdx);
Common.log.OutInfo(agv.Name + " B区 " + rtn.ToString());
if (!rtn)
{
rtn = FindNeedLeave(agv, "C8");
Common.log.OutInfo(agv.Name + " C8 " + rtn.ToString());
}
if (!rtn)
{
rtn = FindNeedLeave(agv, "C2");
Common.log.OutInfo(agv.Name + " C2 " + rtn.ToString());
}
if (!rtn) rtn = FindNeedLeave(agv, "C8"); if (!rtn)
if (!rtn) rtn = FindNeedLeave(agv, "C2"); {
if (!rtn) rtn = MoveStandby(agv); rtn = MoveStandby(agv);
Common.log.OutInfo(agv.Name + " MoveStandby " + rtn.ToString());
}
return rtn; return rtn;
} }
...@@ -1205,7 +1319,12 @@ namespace BLL ...@@ -1205,7 +1319,12 @@ namespace BLL
if (nodeIdx > -1) if (nodeIdx > -1)
{ {
rtn = FindNeedLeave(agv, "C4"); rtn = FindNeedLeave(agv, "C4");
if (!rtn) rtn = FindNeedLeave(agv, "C6"); Common.log.OutInfo(agv.Name + " C4 " + rtn.ToString());
if (!rtn)
{
rtn = FindNeedLeave(agv, "C6");
Common.log.OutInfo(agv.Name + " C6 " + rtn.ToString());
}
} }
if (!rtn) if (!rtn)
...@@ -1214,14 +1333,30 @@ namespace BLL ...@@ -1214,14 +1333,30 @@ namespace BLL
if (nodeIdx > -1) if (nodeIdx > -1)
{ {
rtn = FindNeedLeave(agv, "C4"); rtn = FindNeedLeave(agv, "C4");
if (!rtn) rtn = FindNeedLeave(agv, "C6"); Common.log.OutInfo(agv.Name + " C4 " + rtn.ToString());
if (!rtn)
{
rtn = FindNeedLeave(agv, "C6");
Common.log.OutInfo(agv.Name + " C6 " + rtn.ToString());
}
} }
} }
if (!rtn)
{
if (!rtn) rtn = FindNeedLeave(agv, "A1"); rtn = FindNeedLeave(agv, "A1");
if (!rtn) rtn = MoveStandby(agv); Common.log.OutInfo(agv.Name + " A1 " + rtn.ToString());
}
if (!rtn)
{
rtn = FindNeedLeave(agv, "D2");
Common.log.OutInfo(agv.Name + " D2 " + rtn.ToString());
}
if (!rtn)
{
rtn = MoveStandby(agv);
Common.log.OutInfo(agv.Name + " MoveStandby " + rtn.ToString());
}
return rtn; return rtn;
} }
...@@ -1233,7 +1368,12 @@ namespace BLL ...@@ -1233,7 +1368,12 @@ namespace BLL
if (nodeIdx > -1) if (nodeIdx > -1)
{ {
rtn = FindNeedLeave(agv, "C4"); rtn = FindNeedLeave(agv, "C4");
if (!rtn) rtn = FindNeedLeave(agv, "C6"); Common.log.OutInfo(agv.Name + " C4 " + rtn.ToString());
if (!rtn)
{
rtn = FindNeedLeave(agv, "C6");
Common.log.OutInfo(agv.Name + " C6 " + rtn.ToString());
}
} }
if (!rtn) if (!rtn)
...@@ -1242,13 +1382,31 @@ namespace BLL ...@@ -1242,13 +1382,31 @@ namespace BLL
if (nodeIdx > -1) if (nodeIdx > -1)
{ {
rtn = FindNeedLeave(agv, "C4"); rtn = FindNeedLeave(agv, "C4");
if (!rtn) rtn = FindNeedLeave(agv, "C6"); Common.log.OutInfo(agv.Name + " C4 " + rtn.ToString());
if (!rtn)
{
rtn = FindNeedLeave(agv, "C6");
Common.log.OutInfo(agv.Name + " C6 " + rtn.ToString());
}
} }
} }
if (!rtn) rtn = FindNeedLeave(agv, "A1"); if (!rtn)
if (!rtn) rtn = MoveStandby(agv); {
rtn = FindNeedLeave(agv, "A1");
Common.log.OutInfo(agv.Name + " A1 " + rtn.ToString());
}
if (!rtn)
{
rtn = FindNeedLeave(agv, "D2");
Common.log.OutInfo(agv.Name + " D2 " + rtn.ToString());
}
if (!rtn)
{
rtn = MoveStandby(agv);
Common.log.OutInfo(agv.Name + " MoveStandby " + rtn.ToString());
}
...@@ -1263,17 +1421,37 @@ namespace BLL ...@@ -1263,17 +1421,37 @@ namespace BLL
{ {
bool rtn = false; bool rtn = false;
int nodeIdx = Common.nodeInfo.FindIndex(s => s.Name == "A2" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse); int nodeIdx = Common.nodeInfo.FindIndex(s => s.Name == "A2" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse);
if (nodeIdx > -1) rtn = FindNeedLeave(agv, "C6"); if (nodeIdx > -1)
{
rtn = FindNeedLeave(agv, "C6");
Common.log.OutInfo(agv.Name + " C6 " + rtn.ToString());
}
if (!rtn) if (!rtn)
{ {
nodeIdx = Common.nodeInfo.FindIndex(s => s.Name == "C7" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse); nodeIdx = Common.nodeInfo.FindIndex(s => s.Name == "C7" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse);
if (nodeIdx > -1) rtn = FindNeedLeave(agv, "C6"); if (nodeIdx > -1)
{
rtn = FindNeedLeave(agv, "C6");
Common.log.OutInfo(agv.Name + " C6 " + rtn.ToString());
}
} }
if (!rtn) rtn = FindNeedLeave(agv, "A1"); if (!rtn)
if (!rtn) rtn = MoveStandby(agv); {
rtn = FindNeedLeave(agv, "A1");
Common.log.OutInfo(agv.Name + " A1 " + rtn.ToString());
}
if (!rtn)
{
rtn = FindNeedLeave(agv, "D2");
Common.log.OutInfo(agv.Name + " D2 " + rtn.ToString());
}
if (!rtn)
{
rtn = MoveStandby(agv);
Common.log.OutInfo(agv.Name + " MoveStandby " + rtn.ToString());
}
//bool rtn = FindNeedLeave(agv, "C6"); //bool rtn = FindNeedLeave(agv, "C6");
//if (!rtn) rtn = FindNeedLeave(agv, "A1"); //if (!rtn) rtn = FindNeedLeave(agv, "A1");
...@@ -1288,10 +1466,18 @@ namespace BLL ...@@ -1288,10 +1466,18 @@ namespace BLL
if (nodeIdx > -1) if (nodeIdx > -1)
{ {
rtn = FindNeedLeave(agv, "C8"); rtn = FindNeedLeave(agv, "C8");
if (!rtn) rtn = FindNeedLeave(agv, "C2"); Common.log.OutInfo(agv.Name + " C8 " + rtn.ToString());
if (!rtn)
{
rtn = FindNeedLeave(agv, "C2");
Common.log.OutInfo(agv.Name + " C2 " + rtn.ToString());
}
}
if (!rtn)
{
rtn = MoveStandby(agv);
Common.log.OutInfo(agv.Name + " MoveStandby " + rtn.ToString());
} }
if (!rtn) rtn = MoveStandby(agv);
//bool rtn = FindNeedLeave(agv, "C8"); //bool rtn = FindNeedLeave(agv, "C8");
//if (!rtn) rtn = FindNeedLeave(agv, "C2"); //if (!rtn) rtn = FindNeedLeave(agv, "C2");
...@@ -1309,14 +1495,26 @@ namespace BLL ...@@ -1309,14 +1495,26 @@ namespace BLL
if (rtn) if (rtn)
{ {
agv.NextMission = ""; agv.NextMission = "";
return true;
} }
else
rtn = FindNeedEnter(agv, "D1");
if (rtn)
{ {
agv.NextMission = "";
return true;
}
rtn = FindNeedEnter(agv, "A2"); rtn = FindNeedEnter(agv, "A2");
agv.NextMission = rtn ? "" : "A2"; if (rtn)
{
agv.NextMission = "";
return true;
} }
return rtn;
agv.NextMission = "A2";
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
return false;
} }
private bool C8Enter(Agv_Info agv) private bool C8Enter(Agv_Info agv)
...@@ -1330,11 +1528,79 @@ namespace BLL ...@@ -1330,11 +1528,79 @@ namespace BLL
} }
Common.log.OutInfo("C8Enter Mark=" + agv.Mark); Common.log.OutInfo("C8Enter Mark=" + agv.Mark);
bool rtn = FindNeedEnter(agv, name); bool rtn = FindNeedEnter(agv, name);
agv.NextMission = rtn ? "" : name; if (rtn)
{
agv.NextMission = "";
}
else
{
agv.NextMission = name;
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
}
return rtn;
}
private bool D1Leave(Agv_Info agv)
{
bool rtn = false;
//添加包装料仓优先
int agvIdx = Common.agvInfo.FindIndex(s => s.Name == agv.Name);
rtn = FindAreaBLeave(agvIdx);
Common.log.OutInfo(agv.Name + " B区 " + rtn.ToString());
if (!rtn)
{
rtn = FindNeedLeave(agv, "C8");
Common.log.OutInfo(agv.Name + " C8 " + rtn.ToString());
}
if (!rtn)
{
rtn = FindNeedLeave(agv, "C2");
Common.log.OutInfo(agv.Name + " C2 " + rtn.ToString());
}
if (!rtn)
{
rtn = MoveStandby(agv);
Common.log.OutInfo(agv.Name + " MoveStandby " + rtn.ToString());
}
return rtn; return rtn;
} }
private bool D2Enter(Agv_Info agv)
{
string log;
int nodeIdx;
bool rtn = false;
nodeIdx = FindAreaC();
if (nodeIdx > -1)
{
Common.log.OutInfo(agv.Name + " B料架,去C区");
rtn = MoveNode(agv, nodeIdx);
if (rtn)
{
agv.NextMission = "";
}
else
{
agv.NextMission = "C区";
//Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
}
}
else
{
log = agv.Name + " C区暂时没有位置";
agv.NextMission = "C区";
Common.mir.Add_Mission_Fleet(agv, "MoveStandbyTemp");
Common.log.OutInfo(log);
Common.log.OutTextBox(log);
}
return rtn;
}
private int FindAreaC() private int FindAreaC()
{ {
//int idx; //int idx;
...@@ -1472,7 +1738,7 @@ namespace BLL ...@@ -1472,7 +1738,7 @@ namespace BLL
nodeIdx = Common.nodeInfo.FindIndex(s => s.Action == ClientAction.NeedEnter && s.AgvName.Equals("") && s.Mark.Length > 1 && s.IsUse); nodeIdx = Common.nodeInfo.FindIndex(s => s.Action == ClientAction.NeedEnter && s.AgvName.Equals("") && s.Mark.Length > 1 && s.IsUse);
if (nodeIdx == -1) if (nodeIdx == -1)
{ {
Common.log.OutInfo("B区没有找到新的NeedEnter的节点"); Common.log.OutInfo(agv.Name + " B区没有找到新的NeedEnter的节点");
} }
else else
{ {
...@@ -1505,11 +1771,12 @@ namespace BLL ...@@ -1505,11 +1771,12 @@ namespace BLL
agv.Place = Common.nodeInfo[n].Name; agv.Place = Common.nodeInfo[n].Name;
agv.Mark = Common.nodeInfo[nodeIdx].Mark; agv.Mark = Common.nodeInfo[nodeIdx].Mark;
agv.CloseDoor = false; //agv.CloseDoor = false;
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + agv.Place]); rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + agv.Place]);
if (rtn) if (rtn)
{ {
agv.CloseDoor = false;
Common.nodeInfo[n].AgvName = agv.Name; Common.nodeInfo[n].AgvName = agv.Name;
agv.TaskSend = true; agv.TaskSend = true;
//_mark.Add(Common.nodeInfo[nodeIdx].Mark); //_mark.Add(Common.nodeInfo[nodeIdx].Mark);
...@@ -1560,13 +1827,13 @@ namespace BLL ...@@ -1560,13 +1827,13 @@ namespace BLL
//测试,临时的 //测试,临时的
for (int i = 0; i < node.Count; i++) for (int i = 0; i < node.Count; i++)
{ {
Common.log.OutString("Test " + node[i] + " Name=" + Common.nodeInfo[node[i]].Name + " Mark=" + Common.nodeInfo[node[i]].Mark); Common.log.OutString(agv.Name + " Test " + node[i] + " Name=" + Common.nodeInfo[node[i]].Name + " Mark=" + Common.nodeInfo[node[i]].Mark);
} }
if (node.Count == 0) if (node.Count == 0)
{ {
nodeIdx = -1; nodeIdx = -1;
Common.log.OutInfo("没有找到新的NeedLeave的节点"); Common.log.OutInfo(agv.Name + " 没有找到新的NeedLeave的节点");
} }
else else
{ {
...@@ -1593,7 +1860,7 @@ namespace BLL ...@@ -1593,7 +1860,7 @@ namespace BLL
if (nodeIdx > -1) if (nodeIdx > -1)
{ {
Common.log.OutInfo("test2 " + agv.Name + " " + Common.nodeInfo[nodeIdx].Name); Common.log.OutInfo(agv.Name + " test2 " + agv.Name + " " + Common.nodeInfo[nodeIdx].Name);
MoveNode(agv, nodeIdx); MoveNode(agv, nodeIdx);
return true; return true;
...@@ -1654,10 +1921,14 @@ namespace BLL ...@@ -1654,10 +1921,14 @@ namespace BLL
{ {
if (Common.nodeInfo[nodeIdx].RFID.StartsWith("B")) if (Common.nodeInfo[nodeIdx].RFID.StartsWith("B"))
{ {
int n = Common.nodeInfo.FindIndex(s => s.Name == "C1" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse); int n = Common.nodeInfo.FindIndex(s => s.Name == "C5" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse);
if (n == -1) n = Common.nodeInfo.FindIndex(s => s.Name == "C3" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse); if (n == -1) n = Common.nodeInfo.FindIndex(s => s.Name == "C3" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse);
if (n == -1) n = Common.nodeInfo.FindIndex(s => s.Name == "C5" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse); if (n == -1) n = Common.nodeInfo.FindIndex(s => s.Name == "C1" && s.Action == ClientAction.NeedEnter && s.AgvName == "" && s.IsUse);
if (n == -1) return false; //入料口全部被占用 if (n == -1)
{
Common.log.OutInfo(agv.Name + " C1C3C5全部被占用");
return false; //入料口全部被占用
}
} }
} }
...@@ -1670,18 +1941,19 @@ namespace BLL ...@@ -1670,18 +1941,19 @@ namespace BLL
} }
else else
{ {
log = "清理AgvName,没有找到 " + agv.Name; log = agv.Name + " 清理AgvName,没有找到 " + agv.Name;
Common.log.OutInfo(log); Common.log.OutInfo(log);
} }
//执行下一个任务 //执行下一个任务
agv.Place = Common.nodeInfo[nodeIdx].Name; agv.Place = Common.nodeInfo[nodeIdx].Name;
agv.Mark = Common.nodeInfo[nodeIdx].Mark; agv.Mark = Common.nodeInfo[nodeIdx].Mark;
agv.CloseDoor = false; //agv.CloseDoor = false;
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + agv.Place]); rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + agv.Place]);
if (rtn) if (rtn)
{ {
agv.CloseDoor = false;
Common.nodeInfo[nodeIdx].AgvName = agv.Name; Common.nodeInfo[nodeIdx].AgvName = agv.Name;
agv.TaskSend = true; agv.TaskSend = true;
log = string.Format("{0} Move {1} {2}", agv.Name, agv.Place, Common.nodeInfo[nodeIdx].Action.ToString()); log = string.Format("{0} Move {1} {2}", agv.Name, agv.Place, Common.nodeInfo[nodeIdx].Action.ToString());
...@@ -1731,11 +2003,12 @@ namespace BLL ...@@ -1731,11 +2003,12 @@ namespace BLL
//执行下一个任务 //执行下一个任务
agv.Place = Common.nodeInfo[nodeIdx].Name; agv.Place = Common.nodeInfo[nodeIdx].Name;
agv.Mark = Common.nodeInfo[nodeIdx].Mark; agv.Mark = Common.nodeInfo[nodeIdx].Mark;
agv.CloseDoor = false; //agv.CloseDoor = false;
bool rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + agv.Place]); bool rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + agv.Place]);
if (rtn) if (rtn)
{ {
agv.CloseDoor = false;
Common.nodeInfo[nodeIdx].AgvName = agv.Name; Common.nodeInfo[nodeIdx].AgvName = agv.Name;
agv.TaskSend = true; agv.TaskSend = true;
log = string.Format("{0} Move {1} {2}", agv.Name, agv.Place, Common.nodeInfo[nodeIdx].Action.ToString()); log = string.Format("{0} Move {1} {2}", agv.Name, agv.Place, Common.nodeInfo[nodeIdx].Action.ToString());
...@@ -1776,11 +2049,12 @@ namespace BLL ...@@ -1776,11 +2049,12 @@ namespace BLL
//执行下一个任务 //执行下一个任务
agv.Place = ""; agv.Place = "";
agv.Mark = ""; agv.Mark = "";
agv.CloseDoor = false; //agv.CloseDoor = false;
bool rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["MoveStandby"]); //返回待机区 bool rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["MoveStandby"]); //返回待机区
if (rtn) if (rtn)
{ {
agv.CloseDoor = false;
agv.TaskSend = true; agv.TaskSend = true;
log = string.Format("{0} MoveStandby", agv.Name); log = string.Format("{0} MoveStandby", agv.Name);
Common.log.OutInfo(log); Common.log.OutInfo(log);
......
...@@ -404,6 +404,18 @@ namespace AGVControl ...@@ -404,6 +404,18 @@ namespace AGVControl
/// 充电等待时间(s) /// 充电等待时间(s)
/// </summary> /// </summary>
public int chargeWait = 0; public int chargeWait = 0;
/// <summary>
/// 充电最大电量,小于该值等待指定时间去充电
/// </summary>
public int chargeMax;
/// <summary>
/// 充电最小电量,小于该值直接去充电
/// </summary>
public int chargeMin;
/// <summary>
/// 两车充电间隔时间(ms)
/// </summary>
public int chargeInterval;
private bool _autoCharge; private bool _autoCharge;
...@@ -425,6 +437,13 @@ namespace AGVControl ...@@ -425,6 +437,13 @@ namespace AGVControl
{ {
_autoCharge = Convert.ToBoolean(Common.appConfig.AppSettings.Settings["AutoCharge"].Value); _autoCharge = Convert.ToBoolean(Common.appConfig.AppSettings.Settings["AutoCharge"].Value);
chargeWait = Convert.ToInt32(Common.appConfig.AppSettings.Settings["ChargeWait"].Value); chargeWait = Convert.ToInt32(Common.appConfig.AppSettings.Settings["ChargeWait"].Value);
string s = Common.appConfig.AppSettings.Settings["ChargeThreshold"].Value;
string[] arr = s.Split(',');
chargeMin = Convert.ToInt32(arr[0]);
chargeMax = Convert.ToInt32(arr[1]);
chargeInterval = 0;
} }
} }
......
...@@ -54,6 +54,9 @@ ...@@ -54,6 +54,9 @@
this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage(); this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage3 = new System.Windows.Forms.TabPage(); this.tabPage3 = new System.Windows.Forms.TabPage();
this.BtnAddPlace = new System.Windows.Forms.Button();
this.TxtPlace = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.CloseDoor = new System.Windows.Forms.Button(); this.CloseDoor = new System.Windows.Forms.Button();
this.BtnReady = new System.Windows.Forms.Button(); this.BtnReady = new System.Windows.Forms.Button();
this.BtnArrive = new System.Windows.Forms.Button(); this.BtnArrive = new System.Windows.Forms.Button();
...@@ -76,14 +79,14 @@ ...@@ -76,14 +79,14 @@
this.BtnMissionPause = new System.Windows.Forms.Button(); this.BtnMissionPause = new System.Windows.Forms.Button();
this.BtnMissionReady = new System.Windows.Forms.Button(); this.BtnMissionReady = new System.Windows.Forms.Button();
this.LstAgvPlace = new System.Windows.Forms.ListBox(); this.LstAgvPlace = new System.Windows.Forms.ListBox();
this.label3 = new System.Windows.Forms.Label(); this.BtnOpenExcel = new System.Windows.Forms.Button();
this.TxtPlace = new System.Windows.Forms.TextBox(); this.tabPage2 = new System.Windows.Forms.TabPage();
this.BtnAddPlace = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.DgvAgv)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.DgvAgv)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.DgvNode)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.DgvNode)).BeginInit();
this.tabControl1.SuspendLayout(); this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout(); this.tabPage1.SuspendLayout();
this.tabPage3.SuspendLayout(); this.tabPage3.SuspendLayout();
this.tabPage2.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// DgvAgv // DgvAgv
...@@ -110,7 +113,7 @@ ...@@ -110,7 +113,7 @@
this.DgvAgv.Name = "DgvAgv"; this.DgvAgv.Name = "DgvAgv";
this.DgvAgv.ReadOnly = true; this.DgvAgv.ReadOnly = true;
this.DgvAgv.RowTemplate.Height = 23; this.DgvAgv.RowTemplate.Height = 23;
this.DgvAgv.Size = new System.Drawing.Size(880, 120); this.DgvAgv.Size = new System.Drawing.Size(868, 120);
this.DgvAgv.TabIndex = 0; this.DgvAgv.TabIndex = 0;
this.DgvAgv.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvAgv_CellClick); this.DgvAgv.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvAgv_CellClick);
// //
...@@ -214,7 +217,7 @@ ...@@ -214,7 +217,7 @@
this.DgvNode.ReadOnly = true; this.DgvNode.ReadOnly = true;
this.DgvNode.RowHeadersWidth = 50; this.DgvNode.RowHeadersWidth = 50;
this.DgvNode.RowTemplate.Height = 23; this.DgvNode.RowTemplate.Height = 23;
this.DgvNode.Size = new System.Drawing.Size(860, 451); this.DgvNode.Size = new System.Drawing.Size(848, 485);
this.DgvNode.TabIndex = 1; this.DgvNode.TabIndex = 1;
this.DgvNode.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvNode_CellClick); this.DgvNode.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvNode_CellClick);
// //
...@@ -285,13 +288,14 @@ ...@@ -285,13 +288,14 @@
// //
// TxtLog // TxtLog
// //
this.TxtLog.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.TxtLog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.TxtLog.Location = new System.Drawing.Point(12, 138); this.TxtLog.Location = new System.Drawing.Point(6, 6);
this.TxtLog.Multiline = true; this.TxtLog.Multiline = true;
this.TxtLog.Name = "TxtLog"; this.TxtLog.Name = "TxtLog";
this.TxtLog.ScrollBars = System.Windows.Forms.ScrollBars.Both; this.TxtLog.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.TxtLog.Size = new System.Drawing.Size(880, 134); this.TxtLog.Size = new System.Drawing.Size(860, 451);
this.TxtLog.TabIndex = 4; this.TxtLog.TabIndex = 4;
// //
// tabControl1 // tabControl1
...@@ -301,10 +305,11 @@ ...@@ -301,10 +305,11 @@
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.tabControl1.Controls.Add(this.tabPage1); this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage3); this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Location = new System.Drawing.Point(12, 278); this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(12, 138);
this.tabControl1.Name = "tabControl1"; this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0; this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(880, 489); this.tabControl1.Size = new System.Drawing.Size(868, 523);
this.tabControl1.TabIndex = 5; this.tabControl1.TabIndex = 5;
// //
// tabPage1 // tabPage1
...@@ -313,13 +318,14 @@ ...@@ -313,13 +318,14 @@
this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1"; this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3); this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(872, 463); this.tabPage1.Size = new System.Drawing.Size(860, 497);
this.tabPage1.TabIndex = 0; this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "节点"; this.tabPage1.Text = "节点";
this.tabPage1.UseVisualStyleBackColor = true; this.tabPage1.UseVisualStyleBackColor = true;
// //
// tabPage3 // tabPage3
// //
this.tabPage3.Controls.Add(this.BtnOpenExcel);
this.tabPage3.Controls.Add(this.BtnAddPlace); this.tabPage3.Controls.Add(this.BtnAddPlace);
this.tabPage3.Controls.Add(this.TxtPlace); this.tabPage3.Controls.Add(this.TxtPlace);
this.tabPage3.Controls.Add(this.label3); this.tabPage3.Controls.Add(this.label3);
...@@ -354,6 +360,32 @@ ...@@ -354,6 +360,32 @@
this.tabPage3.UseVisualStyleBackColor = true; this.tabPage3.UseVisualStyleBackColor = true;
this.tabPage3.Click += new System.EventHandler(this.tabPage3_Click); this.tabPage3.Click += new System.EventHandler(this.tabPage3_Click);
// //
// BtnAddPlace
//
this.BtnAddPlace.Location = new System.Drawing.Point(162, 285);
this.BtnAddPlace.Name = "BtnAddPlace";
this.BtnAddPlace.Size = new System.Drawing.Size(96, 30);
this.BtnAddPlace.TabIndex = 25;
this.BtnAddPlace.Text = "目标地点";
this.BtnAddPlace.UseVisualStyleBackColor = true;
this.BtnAddPlace.Click += new System.EventHandler(this.BtnAddPlace_Click);
//
// TxtPlace
//
this.TxtPlace.Location = new System.Drawing.Point(162, 258);
this.TxtPlace.Name = "TxtPlace";
this.TxtPlace.Size = new System.Drawing.Size(96, 21);
this.TxtPlace.TabIndex = 24;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(388, 66);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(125, 12);
this.label3.TabIndex = 23;
this.label3.Text = "节点标志使用空格分隔";
//
// CloseDoor // CloseDoor
// //
this.CloseDoor.Location = new System.Drawing.Point(162, 222); this.CloseDoor.Location = new System.Drawing.Point(162, 222);
...@@ -569,38 +601,32 @@ ...@@ -569,38 +601,32 @@
this.LstAgvPlace.Size = new System.Drawing.Size(150, 451); this.LstAgvPlace.Size = new System.Drawing.Size(150, 451);
this.LstAgvPlace.TabIndex = 0; this.LstAgvPlace.TabIndex = 0;
// //
// label3 // BtnOpenExcel
// //
this.label3.AutoSize = true; this.BtnOpenExcel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label3.Location = new System.Drawing.Point(388, 66); this.BtnOpenExcel.Location = new System.Drawing.Point(162, 427);
this.label3.Name = "label3"; this.BtnOpenExcel.Name = "BtnOpenExcel";
this.label3.Size = new System.Drawing.Size(125, 12); this.BtnOpenExcel.Size = new System.Drawing.Size(96, 30);
this.label3.TabIndex = 23; this.BtnOpenExcel.TabIndex = 26;
this.label3.Text = "节点标志使用空格分隔"; this.BtnOpenExcel.Text = "AGV点位分布";
this.BtnOpenExcel.UseVisualStyleBackColor = true;
this.BtnOpenExcel.Click += new System.EventHandler(this.BtnOpenExcel_Click);
// //
// TxtPlace // tabPage2
// //
this.TxtPlace.Location = new System.Drawing.Point(162, 258); this.tabPage2.Controls.Add(this.TxtLog);
this.TxtPlace.Name = "TxtPlace"; this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.TxtPlace.Size = new System.Drawing.Size(96, 21); this.tabPage2.Name = "tabPage2";
this.TxtPlace.TabIndex = 24; this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
// this.tabPage2.Size = new System.Drawing.Size(872, 463);
// BtnAddPlace this.tabPage2.TabIndex = 3;
// this.tabPage2.Text = "日志";
this.BtnAddPlace.Location = new System.Drawing.Point(162, 285); this.tabPage2.UseVisualStyleBackColor = true;
this.BtnAddPlace.Name = "BtnAddPlace";
this.BtnAddPlace.Size = new System.Drawing.Size(96, 30);
this.BtnAddPlace.TabIndex = 25;
this.BtnAddPlace.Text = "目标地点";
this.BtnAddPlace.UseVisualStyleBackColor = true;
this.BtnAddPlace.Click += new System.EventHandler(this.BtnAddPlace_Click);
// //
// FrmMain // FrmMain
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(892, 673);
this.ClientSize = new System.Drawing.Size(904, 779);
this.Controls.Add(this.TxtLog);
this.Controls.Add(this.tabControl1); this.Controls.Add(this.tabControl1);
this.Controls.Add(this.DgvAgv); this.Controls.Add(this.DgvAgv);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
...@@ -615,8 +641,9 @@ ...@@ -615,8 +641,9 @@
this.tabPage1.ResumeLayout(false); this.tabPage1.ResumeLayout(false);
this.tabPage3.ResumeLayout(false); this.tabPage3.ResumeLayout(false);
this.tabPage3.PerformLayout(); this.tabPage3.PerformLayout();
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout();
} }
...@@ -671,6 +698,8 @@ ...@@ -671,6 +698,8 @@
private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button BtnAddPlace; private System.Windows.Forms.Button BtnAddPlace;
private System.Windows.Forms.TextBox TxtPlace; private System.Windows.Forms.TextBox TxtPlace;
private System.Windows.Forms.Button BtnOpenExcel;
private System.Windows.Forms.TabPage tabPage2;
} }
} }
...@@ -326,5 +326,10 @@ namespace AGVControl ...@@ -326,5 +326,10 @@ namespace AGVControl
} }
} }
private void BtnOpenExcel_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(".\\AGV点位分布.xlsx");
}
} }
} }
此文件的差异太大,无法显示。
...@@ -119,7 +119,9 @@ namespace AGVControl ...@@ -119,7 +119,9 @@ namespace AGVControl
new ClientNode("C5", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["C5"].Value)), new ClientNode("C5", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["C5"].Value)),
new ClientNode("C6", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["C6"].Value)), new ClientNode("C6", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["C6"].Value)),
new ClientNode("C7", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["C7"].Value)), new ClientNode("C7", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["C7"].Value)),
new ClientNode("C8", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["C8"].Value)) new ClientNode("C8", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["C8"].Value)),
new ClientNode("D1", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["D1"].Value)),
new ClientNode("D2", Convert.ToBoolean(Common.appConfig.AppSettings.Settings["D2"].Value))
}; };
} }
......
...@@ -32,5 +32,5 @@ using System.Runtime.InteropServices; ...@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示: //通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.0.0")] [assembly: AssemblyVersion("2.2.0.0")]
[assembly: AssemblyFileVersion("2.0.0.0")] [assembly: AssemblyFileVersion("2.2.0.0")]
...@@ -8,27 +8,30 @@ ...@@ -8,27 +8,30 @@
<add key="FLEET" value="10.85.199.3"/> <add key="FLEET" value="10.85.199.3"/>
<add key="AutoCharge" value="false"/> <add key="AutoCharge" value="false"/>
<add key="ChargeWait" value="1"/> <add key="ChargeWait" value="1"/>
<add key="ChargeThreshold" value="20,70"/>
<add key="MiR_R1467" value="false"/> <add key="MiR_R1467" value="false"/>
<add key="MiR_R1468" value="false"/> <add key="MiR_R1468" value="false"/>
<add key="MiR_R1469" value="false"/> <add key="MiR_R1469" value="false"/>
<add key="MiR_R1470" value="false"/> <add key="MiR_R1470" value="false"/>
<add key="A1" value="false"/> <add key="A1" value="true"/>
<add key="A2" value="false"/> <add key="A2" value="true"/>
<add key="A3" value="false"/> <add key="A3" value="true"/>
<add key="A4" value="false"/> <add key="A4" value="true"/>
<add key="B1" value="false"/> <add key="B1" value="true"/>
<add key="B2" value="false"/> <add key="B2" value="true"/>
<add key="B3" value="false"/> <add key="B3" value="true"/>
<add key="B4" value="false"/> <add key="B4" value="true"/>
<add key="B5" value="false"/> <add key="B5" value="true"/>
<add key="B6" value="false"/> <add key="B6" value="true"/>
<add key="C1" value="false"/> <add key="C1" value="true"/>
<add key="C2" value="false"/> <add key="C2" value="true"/>
<add key="C3" value="false"/> <add key="C3" value="true"/>
<add key="C4" value="false"/> <add key="C4" value="true"/>
<add key="C5" value="false"/> <add key="C5" value="true"/>
<add key="C6" value="false"/> <add key="C6" value="true"/>
<add key="C7" value="false"/> <add key="C7" value="true"/>
<add key="C8" value="false"/> <add key="C8" value="true"/>
<add key="D1" value="true"/>
<add key="D2" value="true"/>
</appSettings> </appSettings>
</configuration> </configuration>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0"?>
<doc>
<assembly>
<name>Asa.File.Log</name>
</assembly>
<members>
<member name="T:Asa.File.Log">
<summary>
日志操作类
</summary>
</member>
<member name="M:Asa.File.Log.#ctor(System.String,System.String)">
<summary>
日志
</summary>
<param name="path">文件夹目录</param>
<param name="name">文件名</param>
</member>
<member name="P:Asa.File.Log.ShowDateTime">
<summary>
显示的日期和时间
</summary>
</member>
<member name="P:Asa.File.Log.ShowFileName">
<summary>
显示的文件名
</summary>
</member>
<member name="P:Asa.File.Log.ShowArgument">
<summary>
显示方法的参数
</summary>
</member>
<member name="P:Asa.File.Log.ShowText">
<summary>
显示的文本控件
</summary>
</member>
<member name="P:Asa.File.Log.Level">
<summary>
打印级别
</summary>
</member>
<member name="M:Asa.File.Log.Dispose">
<summary>
释放
</summary>
</member>
<member name="M:Asa.File.Log.OutFatal(System.Exception)">
<summary>
输出致命错误
</summary>
<param name="ex"></param>
</member>
<member name="M:Asa.File.Log.OutError(System.Exception)">
<summary>
输出一般错误
</summary>
<param name="ex"></param>
</member>
<member name="M:Asa.File.Log.OutWarn(System.String)">
<summary>
输出警告信息
</summary>
<param name="s"></param>
</member>
<member name="M:Asa.File.Log.OutWarn(System.String,System.String)">
<summary>
输出警告信息
</summary>
<param name="key"></param>
<param name="s"></param>
</member>
<member name="M:Asa.File.Log.OutInfo(System.String)">
<summary>
输出一般信息
</summary>
<param name="s"></param>
</member>
<member name="M:Asa.File.Log.OutInfo(System.String,System.String)">
<summary>
输出一般信息
</summary>
<param name="key"></param>
<param name="s"></param>
</member>
<member name="M:Asa.File.Log.OutDebug(System.String)">
<summary>
输出调试信息
</summary>
<param name="s"></param>
</member>
<member name="M:Asa.File.Log.OutString(System.String)">
<summary>
输出字符串数据
</summary>
<param name="s"></param>
</member>
<member name="M:Asa.File.Log.OutTextBox(System.String)">
<summary>
输出到文本控件上
</summary>
<param name="s"></param>
</member>
<member name="T:Asa.File.LogDateTime">
<summary>
日志记录日期
</summary>
</member>
<member name="F:Asa.File.LogDateTime.Date">
<summary>
日期
</summary>
</member>
<member name="F:Asa.File.LogDateTime.Time">
<summary>
时间
</summary>
</member>
<member name="F:Asa.File.LogDateTime.DateTime">
<summary>
日期和时间
</summary>
</member>
<member name="T:Asa.File.LogFileName">
<summary>
日志记录文件名
</summary>
</member>
<member name="F:Asa.File.LogFileName.FileName">
<summary>
文件名
</summary>
</member>
<member name="F:Asa.File.LogFileName.FullFileName">
<summary>
完整文件名,包含路径
</summary>
</member>
<member name="T:Asa.File.LogLevel">
<summary>
日志打印级别
</summary>
</member>
<member name="F:Asa.File.LogLevel.Fatal">
<summary>
致命错误
</summary>
</member>
<member name="F:Asa.File.LogLevel.Error">
<summary>
一般错误
</summary>
</member>
<member name="F:Asa.File.LogLevel.Warn">
<summary>
警告信息
</summary>
</member>
<member name="F:Asa.File.LogLevel.Info">
<summary>
一般信息
</summary>
</member>
<member name="F:Asa.File.LogLevel.Debug">
<summary>
调试信息
</summary>
</member>
<member name="F:Asa.File.LogLevel.All">
<summary>
所有
</summary>
</member>
</members>
</doc>
...@@ -29,10 +29,12 @@ MoveC5,34ec2f1f-2ae8-11ea-a6cf-94c691a734f1 ...@@ -29,10 +29,12 @@ MoveC5,34ec2f1f-2ae8-11ea-a6cf-94c691a734f1
MoveC6,52f37677-2f96-11ea-9ee4-94c691a734f1 MoveC6,52f37677-2f96-11ea-9ee4-94c691a734f1
MoveC7,bcd0e389-2ab7-11ea-a6cf-94c691a734f1 MoveC7,bcd0e389-2ab7-11ea-a6cf-94c691a734f1
MoveC8,8a48301d-2624-11ea-a30e-94c691a73861 MoveC8,8a48301d-2624-11ea-a30e-94c691a73861
MoveS1,9a3146cd-8332-11ea-8113-94c691a734f1 MoveD1,
MoveD2,
Enter,2eadcb87-239a-11ea-8343-94c691a73861 Enter,2eadcb87-239a-11ea-8343-94c691a73861
Leave,80943220-239a-11ea-8343-94c691a73861 Leave,80943220-239a-11ea-8343-94c691a73861
MoveStandby,4eb9641a-3439-11ea-984a-94c691a734f1 MoveStandby,4eb9641a-3439-11ea-984a-94c691a734f1
MoveStandbyTemp,25a2aea4-9e5f-11ea-b91f-94c691a7387d
Init,cd51e039-34eb-11ea-b4fe-94c691a734f1 Init,cd51e039-34eb-11ea-b4fe-94c691a734f1
AutoCharge1,9e1b33c0-2886-11ea-a0d6-94c691a734f1 AutoCharge1,9e1b33c0-2886-11ea-a0d6-94c691a734f1
AutoCharge2,d756f63d-2886-11ea-a0d6-94c691a734f1 AutoCharge2,d756f63d-2886-11ea-a0d6-94c691a734f1
\ No newline at end of file \ No newline at end of file
此文件类型无法预览
...@@ -36,9 +36,7 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug ...@@ -36,9 +36,7 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\AGVControl.exe D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\AGVControl.exe
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\AGVControl.pdb D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\AGVControl.pdb
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\RestSharp.dll D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\RestSharp.dll
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\Asa.File.Log.xml
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\RestSharp.xml D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\bin\Debug\RestSharp.xml
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.csprojAssemblyReference.cache
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\Interop.IWshRuntimeLibrary.dll D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\Interop.IWshRuntimeLibrary.dll
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.csproj.ResolveComReference.cache D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.csproj.ResolveComReference.cache
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.FrmMain.resources D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.FrmMain.resources
...@@ -48,3 +46,4 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug ...@@ -48,3 +46,4 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.csproj.CopyComplete D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.csproj.CopyComplete
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.exe D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.exe
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.pdb D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.pdb
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AGVControl\obj\Debug\AGVControl.csprojAssemblyReference.cache
[22:00:13.430] Call Connect
[22:00:14.449] Ping 192.168.103.101 请求没有响应
[22:00:14.667] INFO (0,0) Asa.RFID.Reader->OpenCloseRF CloseRf[55] InvalidHandle
[22:00:14.768] INFO (0,0) Asa.RFID.Reader->OpenCloseRF OpenRf[55] InvalidHandle
[22:00:14.769] Call AutoScanMode
[22:00:14.770] SetScanMode[55] Mode=False InvalidHandle
[22:00:17.225] Call AutoScanMode
[22:00:17.225] SetScanMode[55] Mode=False InvalidHandle
[22:00:17.225] Call Close
[22:00:17.326] CloseNetPort[0] OK
[22:00:14.779] Call Connect
[22:00:15.447] Ping 192.168.103.102 请求没有响应
[22:00:15.548] INFO (0,0) Asa.RFID.Reader->OpenCloseRF CloseRf[55] InvalidHandle
[22:00:15.649] INFO (0,0) Asa.RFID.Reader->OpenCloseRF OpenRf[55] InvalidHandle
[22:00:15.649] Call AutoScanMode
[22:00:15.649] SetScanMode[55] Mode=False InvalidHandle
[22:00:17.337] Call AutoScanMode
[22:00:17.337] SetScanMode[55] Mode=False InvalidHandle
[22:00:17.337] Call Close
[22:00:17.437] CloseNetPort[0] OK
[22:00:15.657] Call Connect
[22:00:16.447] Ping 192.168.103.103 请求没有响应
[22:00:16.548] INFO (0,0) Asa.RFID.Reader->OpenCloseRF CloseRf[55] InvalidHandle
[22:00:16.649] INFO (0,0) Asa.RFID.Reader->OpenCloseRF OpenRf[55] InvalidHandle
[22:00:16.649] Call AutoScanMode
[22:00:16.649] SetScanMode[55] Mode=False InvalidHandle
[22:00:17.449] Call AutoScanMode
[22:00:17.449] SetScanMode[55] Mode=False InvalidHandle
[22:00:17.449] Call Close
[22:00:17.549] CloseNetPort[0] OK
[22:00:16.656] Call Connect
[22:00:17.448] Ping 192.168.103.104 请求没有响应
[22:00:17.548] INFO (0,0) Asa.RFID.Reader->OpenCloseRF CloseRf[55] InvalidHandle
[22:00:17.560] Call AutoScanMode
[22:00:17.560] SetScanMode[55] Mode=False InvalidHandle
[22:00:17.560] Call Close
[22:00:17.649] INFO (0,0) Asa.RFID.Reader->OpenCloseRF OpenRf[55] InvalidHandle
[22:00:17.649] Call AutoScanMode
[22:00:17.649] SetScanMode[55] Mode=False InvalidHandle
[22:00:17.661] CloseNetPort[0] OK
[22:00:13.309] INFO (0,0) Asa.RFID.ReaderAll->Open Call Open
[22:00:13.314] INFO (0,0) Asa.RFID.ReaderAll->Connect Call Connect
[22:00:14.777] INFO (0,0) Asa.RFID.ReaderAll->Connect 192.168.103.101 IsConn=False
[22:00:15.650] INFO (0,0) Asa.RFID.ReaderAll->Connect 192.168.103.102 IsConn=False
[22:00:16.650] INFO (0,0) Asa.RFID.ReaderAll->Connect 192.168.103.103 IsConn=False
[22:00:17.225] INFO (0,0) Asa.RFID.ReaderAll->Close ReaderAll Close
[22:00:17.326] INFO (0,0) Asa.RFID.ReaderAll->Close 192.168.103.101 Close
[22:00:17.437] INFO (0,0) Asa.RFID.ReaderAll->Close 192.168.103.102 Close
[22:00:17.549] INFO (0,0) Asa.RFID.ReaderAll->Close 192.168.103.103 Close
[22:00:17.650] INFO (0,0) Asa.RFID.ReaderAll->Connect 192.168.103.104 IsConn=False
[22:00:17.661] INFO (0,0) Asa.RFID.ReaderAll->Close 192.168.103.104 Close
[22:00:17.672] INFO (0,0) Asa.RFID.ReaderAll->Close Close All OK
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\bin\Debug\AssemblyLine.exe.config
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\bin\Debug\AssemblyLine.exe
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\bin\Debug\AssemblyLine.pdb
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\bin\Debug\RestSharp.dll
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\bin\Debug\Asa.File.Log.xml
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\bin\Debug\Asa.IOModule.AIOBOX.xml
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\bin\Debug\Asa.RFID.xml
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\bin\Debug\RestSharp.xml
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\obj\Debug\AssemblyLine(old).csprojAssemblyReference.cache
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\obj\Debug\AssemblyLine.FrmMain.resources
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\obj\Debug\AssemblyLine.Properties.Resources.resources
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\obj\Debug\AssemblyLine(old).csproj.GenerateResource.cache
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\obj\Debug\AssemblyLine(old).csproj.CoreCompileInputs.cache
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\obj\Debug\AssemblyLine(old).csproj.CopyComplete
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\obj\Debug\AssemblyLine.exe
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl\AssemblyLine(old)\obj\Debug\AssemblyLine.pdb
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!