Commit 0f1ba7f9 张东亮

上传运行版本

1 个父辈 ba44aa47
正在显示 136 个修改的文件 包含 5469 行增加1045 行删除
此文件类型无法预览
......@@ -9,6 +9,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgvClient", "AgvClient\AgvC
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgvClientTest", "AgvClientTest\AgvClientTest.csproj", "{E1C0827A-FA12-49A9-AC71-6D3E6518754A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LineWebService", "WebService\LineWebService.csproj", "{074D4597-8955-4EEE-840A-8FAA9B174603}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebServiceHost", "WebServiceTest\WebServiceHost.csproj", "{A89F6EC4-457A-4998-ACDC-F1ADC22C8BF8}"
ProjectSection(ProjectDependencies) = postProject
{074D4597-8955-4EEE-840A-8FAA9B174603} = {074D4597-8955-4EEE-840A-8FAA9B174603}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......@@ -27,6 +34,14 @@ Global
{E1C0827A-FA12-49A9-AC71-6D3E6518754A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E1C0827A-FA12-49A9-AC71-6D3E6518754A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1C0827A-FA12-49A9-AC71-6D3E6518754A}.Release|Any CPU.Build.0 = Release|Any CPU
{074D4597-8955-4EEE-840A-8FAA9B174603}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{074D4597-8955-4EEE-840A-8FAA9B174603}.Debug|Any CPU.Build.0 = Debug|Any CPU
{074D4597-8955-4EEE-840A-8FAA9B174603}.Release|Any CPU.ActiveCfg = Release|Any CPU
{074D4597-8955-4EEE-840A-8FAA9B174603}.Release|Any CPU.Build.0 = Release|Any CPU
{A89F6EC4-457A-4998-ACDC-F1ADC22C8BF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A89F6EC4-457A-4998-ACDC-F1ADC22C8BF8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A89F6EC4-457A-4998-ACDC-F1ADC22C8BF8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A89F6EC4-457A-4998-ACDC-F1ADC22C8BF8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
......@@ -36,6 +36,9 @@
<ApplicationIcon>line.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="AsaPL.AgvClient">
<HintPath>dll\AsaPL.AgvClient.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\DLL\log4net.dll</HintPath>
......@@ -77,6 +80,7 @@
<Compile Include="BLL\MyWebClient.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="BLL\WebService.cs" />
<Compile Include="FrmMain.cs">
<SubType>Form</SubType>
</Compile>
......@@ -86,7 +90,6 @@
<Compile Include="BLL\MiR_API.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="BLL\WebService.cs" />
<EmbeddedResource Include="FrmMain.resx">
<DependentUpon>FrmMain.cs</DependentUpon>
</EmbeddedResource>
......
......@@ -17,6 +17,20 @@
<conversionPattern value="[%date][%t]%-5p %m%n"/>
</layout>
</appender>
<appender name="LineWebService" type="log4net.Appender.RollingFileAppender">
<file value="logs/LineWebService.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n"/>
</layout>
</appender>
<logger>
<level value="Debug"/>
<appender-ref ref="LineWebService"/>
</logger>
<root>
<level value="Debug"/>
<appender-ref ref="AgvServer"/>
......@@ -24,54 +38,85 @@
</log4net>
<appSettings>
<add key="ITS" value="http://10.85.17.233/ESMTCommonInterface/CommonService.asmx/VMIGetBoxDestInfo?boxRFID=" />
<add key="WebService" value="http://10.85.199.1/Webservice/AGVService/"/>
<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="LocalIP" value="192.168.103.12"/>
<add key="AutoCharge" value="false"/>
<add key="ChargeWait" value="1"/>
<add key="ChargeThreshold" value="20,70"/>-->
<add key="MiR_R1763" value="false"/>
<add key="MiR_R1764" value="false"/>
<add key="MiR_R1767" value="false"/>
<add key="MiR_R1768" value="false"/>
<add key="A5" value="false"/>
<add key="A6" value="false"/>
<add key="E1" value="false"/>
<add key="E2" value="false"/>
<add key="E3" value="false"/>
<add key="E4" value="false"/>
<add key="E5" value="false"/>
<add key="E6" value="false"/>
<add key="E7" value="false"/>
<add key="E8" value="false"/>
<add key="E9" value="false"/>
<add key="E10" value="false"/>
<add key="E11" value="false"/>
<add key="E12" value="false"/>
<add key="E13" value="false"/>
<add key="E14" value="false"/>
<add key="E15" value="false"/>
<add key="E16" value="false"/>
<add key="E21" value="false"/>
<add key="E22" value="false"/>
<add key="G1" value="false"/>
<add key="G2" value="false"/>
<add key="G3" value="false"/>
<add key="G4" value="false"/>
<add key="G5" value="false"/>
<add key="G6" value="false"/>
<add key="G7" value="false"/>
<add key="G8" value="false"/>
<add key="G9" value="false"/>
<add key="G10" value="false"/>
<add key="G11" value="false"/>
<add key="G12" value="false"/>
<add key="G13" value="false"/>
<add key="G14" value="false"/>
<add key="G15" value="false"/>
<add key="G16" value="false"/>
<add key="G21" value="false"/>
<add key="G22" value="false"/>
<add key="FLEET" value="10.85.199.3" />
<add key="AutoCharge" value="True" />
<add key="ChargeWait" value="1" />
<add key="ChargeThreshold" value="20,70" />
<add key="MiR_R1763" value="True" />
<add key="MiR_R1764" value="False" />
<add key="MiR_R1767" value="False" />
<add key="MiR_R1768" value="False" />
<add key="A5" value="True" />
<add key="A6" value="True" />
<add key="E1" value="True" />
<add key="E2" value="True" />
<add key="E3" value="True" />
<add key="E4" value="True" />
<add key="E5" value="True" />
<add key="E6" value="True" />
<add key="E7" value="false" />
<add key="E8" value="True" />
<add key="E9" value="True" />
<add key="E10" value="True" />
<add key="E11" value="True" />
<add key="E12" value="True" />
<add key="E13" value="false" />
<add key="E14" value="True" />
<add key="E15" value="True" />
<add key="E16" value="True" />
<add key="E21" value="True" />
<add key="E22" value="True" />
<add key="G1" value="false" />
<add key="G2" value="false" />
<add key="G3" value="false" />
<add key="G4" value="false" />
<add key="G5" value="false" />
<add key="G6" value="false" />
<add key="G7" value="false" />
<add key="G8" value="false" />
<add key="G9" value="false" />
<add key="G10" value="false" />
<add key="G11" value="false" />
<add key="G12" value="false" />
<add key="G13" value="false" />
<add key="G14" value="false" />
<add key="G15" value="false" />
<add key="G16" value="false" />
<add key="G21" value="false" />
<add key="G22" value="false" />
</appSettings>
<system.serviceModel>
<services>
<!--添加服务-->
<service name="LineWebService.ClsWebService" behaviorConfiguration="CalculatorServiceBehavior">
<!--name 必须与代码中的host实例初始化的服务一样
behaviorConfiguration 行为配置 -->
<host>
<baseAddresses>
<!--添加调用服务地址-->
<add baseAddress="http://10.85.199.1/BenQMIR/Webservice/AGVService.asmx/"/>
</baseAddresses>
</host>
<!--添加契约接口 contract="WcfDemo.IService1" WcfDemo.IService1为契约接口 binding="wsHttpBinding" wsHttpBinding为通过Http调用-->
<endpoint address="" binding="wsHttpBinding" contract="LineWebService.IWebService"></endpoint>
</service>
</services>
<!--定义CalculatorServiceBehavior的行为-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
\ No newline at end of file
......@@ -110,7 +110,7 @@ namespace BLL
// }
// return false;
//}
private static string Addr_updateDeviceAlarmMsg = "/updateDeviceAlarmMsg";
private static string Addr_updateDeviceAlarmMsg = "/rest/api/qisda/device/updateDeviceAlarmMsg";
/// <summary>
/// 异常看板
/// </summary>
......@@ -127,7 +127,7 @@ namespace BLL
string server = GetAddr(Addr_updateDeviceAlarmMsg, paramMap);
DateTime startTime = DateTime.Now;
string resultStr = HttpHelper.Post(server, "");
Common.LogInfo("updateDeviceAlarmMsg " + " 【" + server + "】【" + resultStr + "】");
Common.log.Debug("【" + server + "】【" + resultStr + "】");
RfidData data = JsonHelper.DeserializeJsonToObject<RfidData>(resultStr);
......@@ -137,7 +137,7 @@ namespace BLL
}
else if (data.code.Equals(0).Equals(false))
{
return msg = " updateDeviceAlarmMsg 【" + server + "】【" + resultStr + "】" + data.msg;
return msg = "【" + server + "】【" + resultStr + "】" + data.msg;
}
return "";
}
......@@ -163,6 +163,41 @@ namespace BLL
path = path.Substring(0, path.Length - 1);
return path;
}
public static string Add_emptyMsg = "http://10.85.199.1/BenQMIR/Webservice/AGVService.asmx/CreateEmptyRecycleTask";//"http://localhost:11111/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, "");
Common.log.Debug("【" + path + "】【" + resultStr + "】");
Result data = JsonHelper.DeserializeJsonToObject<Result>(resultStr);
if (data == null)
{
return " updateDeviceAlarmMsg 没有收到服务器反馈";
}
else
{
return data.Succeed.ToString();
}
}
catch(Exception e)
{
return e.ToString();
}
}
}
public class ShelfLockInfo
{
......@@ -271,4 +306,26 @@ namespace BLL
public Dictionary<string, string> data { get; set; }
}
/// <summary>
/// Mir位置
/// </summary>
public class MirPosition
{
/// <summary>
/// 位置名称
/// </summary>
public string name { get; set; }
/// <summary>
/// X轴方位
/// </summary>
public double orientation { set; get; }
/// <summary>
/// x轴
/// </summary>
public double pos_x { get; set; }
public double pos_y { get; set; }
}
}
......@@ -16,9 +16,8 @@ namespace BLL
private Socket _server; //服务端
private List<Client> _client; //所有客户端
private Thread tListenClient; //监听客户端连接
private const int PORT = 9500; //端口
public const int PORT = 9501; //端口
private Thread tPingClient; //ping
/// <summary>
/// 节点改变事件
/// </summary>
......@@ -53,12 +52,12 @@ namespace BLL
_server.Bind(localEP);
_server.Listen(100);
Common.LogInfo("Server Start");
_loop = true;
_client = new List<Client>();
tListenClient = new Thread(new ThreadStart(ListenClient));
tListenClient.Start();
tPingClient = new Thread(new ThreadStart(PingClient));
Thread.Sleep(30000);
tPingClient = new Thread(new ThreadStart(KeepLiveClient));
tPingClient.Start();
}
catch (Exception ex)
......@@ -87,10 +86,12 @@ namespace BLL
public bool ReadyEnter(string nodeName, string rfid = "")
{
int idx = FindClient(nodeName);
int nodeIdx = Common.nodeInfo.FindIndex(s => s.Name == nodeName);
string ip = Common.nodeInfo[nodeIdx].IP;
int idx = FindClient(ip);
if (idx == -1)
{
Common.LogInfo("ReadyEnter 没有找到" + nodeName);
Common.LogInfo("ReadyEnter 没有找到" + nodeName + " " + ip);
return false;
}
else
......@@ -103,10 +104,12 @@ namespace BLL
public bool ReadyLeave(string nodeName, string rfid = "")
{
int idx = FindClient(nodeName);
int nodeIdx = Common.nodeInfo.FindIndex(s => s.Name == nodeName);
string ip = Common.nodeInfo[nodeIdx].IP;
int idx = FindClient(ip);
if (idx == -1)
{
Common.LogInfo("ReadyLeave 没有找到" + nodeName);
Common.LogInfo("ReadyLeave 没有找到" + nodeName + " " + ip);
return false;
}
else
......@@ -118,31 +121,70 @@ namespace BLL
}
private void PingClient()
private void KeepLiveClient()
{
while (_loop)
{
foreach (ClientNode clientNode in Common.nodeInfo)
{
Thread.Sleep(3000);
for (int i = 0; i < Common.nodeInfo.Count; i++)
int idx = FindClient(clientNode.IP);
if (idx == -1)
{
try
Common.log.Debug("KeepLive 没有找到" + clientNode.Name);
int index = Common.nodeInfo.IndexOf(clientNode);
Common.nodeInfo[index].Online = false;
continue;
}
else
{
//if (clientNode.Action == ClientAction.ReadyEnter || clientNode.Action == ClientAction.ReadyLeave)
//{
// continue;
//}
if (clientNode.Action == ClientAction.None)
{
if (!Common.nodeInfo[i].IP.Equals(""))
Common.nodeInfo[i].Online = CheckIP(Common.nodeInfo[i].Name, Common.nodeInfo[i].IP);
NodeOnline?.Invoke(i);
NodeChanged?.Invoke(i);
byte[] buff = new byte[] { 0X00, 0X00 };
int index = Common.nodeInfo.IndexOf(clientNode);
if (!Send(idx, buff))
{
Common.nodeInfo[index].Online = false;
Common.log.Debug(clientNode.Name + " KeepLive 发送失败");
}
catch (Exception e)
else
{
Common.log.Error("PingClient", e);
Common.nodeInfo[index].Online = true;
Common.log.Debug(clientNode.Name + " KeepLive 发送成功");
}
}
}
NodeOnline?.Invoke(Common.nodeInfo.IndexOf(clientNode));
NodeChanged?.Invoke(Common.nodeInfo.IndexOf(clientNode));
}
//for (int i = 0; i < Common.nodeInfo.Count; i++)
//{
// try
// {
// if (!_loop)
// break;
// if (!Common.nodeInfo[i].IP.Equals(""))
// Common.nodeInfo[i].Online = CheckIP(Common.nodeInfo[i].Name, Common.nodeInfo[i].IP);
// NodeOnline?.Invoke(i);
// NodeChanged?.Invoke(i);
// }
// catch (Exception e)
// {
// Common.log.Error("PingClient", e);
// }
//}
}
}
private bool CheckIP(string name, string ip)
public bool CheckIP(string name, string ip)
{
//IP合法
string pattern = @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$";
......@@ -161,7 +203,7 @@ namespace BLL
ping.Dispose();
if (result.Status != System.Net.NetworkInformation.IPStatus.Success)
{
Common.LogInfo(name + " Ping " + ip + " 请求没有响应",false);
Common.LogInfo(name + " Ping " + ip + " 请求没有响应", false);
return false;
}
return true;
......@@ -213,7 +255,7 @@ namespace BLL
_client.Add(client);
listen.Start(_client.Count - 1);
Common.LogInfo(string.Format("[{0}] 已连接", client.IP));
Common.LogInfo(string.Format("[{0}] 已连接", client.IP), false);
}
catch (SocketException)
{
......@@ -251,13 +293,14 @@ namespace BLL
byte[] buff = new byte[count];
Array.Copy(temp, 0, buff, 0, count);
ClientNode node = Decode(buff);
ClientNode node = Decode(client, buff);
if (node == null)
{
Common.LogInfo("解码失败:" + HexBuff(buff));
Common.LogInfo(client.IP + " 解码失败:" + HexBuff(buff), false);
}
else
{
Common.log.Debug(client.IP + " 解码内容:" + HexBuff(buff));
Common.log.Debug("Receive[" + client.IP + "] " + node.ToText());
int idx = client.nodeName.FindIndex(s => s == node.Name);
if (idx == -1) client.nodeName.Add(node.Name);
......@@ -267,10 +310,10 @@ namespace BLL
else
{
time += sleep;
if (time > 30000)
if (time > 60000)
{
Offline(client);
Common.LogInfo("[" + client.IP + "] 超过30s没有收到数据,关闭连接");
Common.LogInfo("[" + client.IP + "] 超过60s没有收到数据,关闭连接", false);
}
}
}
......@@ -295,6 +338,9 @@ namespace BLL
buff[idx++] = (byte)node.Name[0];
buff[idx++] = Convert.ToByte(node.Name.Substring(1));
buff[idx++] = (byte)node.RFID[0];
//buff[idx++] = 0X00;
//buff[idx++] = 0X00;
//buff[idx++] = 0X00;
buff[idx++] = Convert.ToByte(node.RFID.Substring(1));
buff[idx++] = (byte)node.Action;
buff[idx++] = 0;
......@@ -308,15 +354,33 @@ namespace BLL
/// </summary>
/// <param name="buff"></param>
/// <returns></returns>
private ClientNode Decode(byte[] buff)
private ClientNode Decode(Client client, byte[] buff)
{
int idx = 0;
string name = "";
string rfid = "";
if (buff[idx++] != 0xAD) return null;
string name = (char)buff[idx] + buff[idx + 1].ToString();
if (buff[idx] == 0x00 && buff[idx + 1] == 0x00)//收到产线
{
int k = Common.nodeInfo.FindIndex(s => client.IP.Contains(s.IP) && !s.Name.StartsWith("A"));
if (k > -1)
{
name = Common.nodeInfo[k].Name;
rfid = "";
}
idx += 2;
string rfid = (char)buff[idx] + buff[idx + 1].ToString();
idx += 2;
}
else
{
name = (char)buff[idx] + buff[idx + 1].ToString();
idx += 2;
rfid = (char)buff[idx] + buff[idx + 1].ToString();
idx += 2;
}
ClientAction action = (ClientAction)buff[idx++];
idx += 1;
idx += 4; //预留
if (buff[idx] != 0xDA) return null;
......@@ -386,25 +450,46 @@ namespace BLL
/// <summary>
/// 查找客户端
/// </summary>
/// <param name="name">节点名称</param>
/// <param ip="ip">ip地址</param>
/// <returns></returns>
private int FindClient(string name)
private int FindClient(string ip)
{
int index = -1;
for (int i = 0; i < _client.Count; i++)
foreach (Client item in _client)
{
if (_client[i].IsConn)
if (item.IsConn)
{
int idx = _client[i].nodeName.FindIndex(a => a == name);
if (idx != -1)
//Common.log.Info("已连接客户端:" + string.Join("#", item.IP));
if (item.IP.Contains(ip))
{
index = i;
index = _client.IndexOf(item);
break;
}
//int idx = item.nodeName.FindIndex(a => a == name);
//if (idx != -1)
//{
// index = _client.IndexOf(item);
// break;
//}
}
}
//for (int i = 0; i < _client.Count; i++)
//{
// if (_client[i].IsConn)
// {
// Common.log.Info("已连接客户端:" + _client[i].nodeName[i]);
// int idx = _client[i].nodeName.FindIndex(a => a == name);
// if (idx != -1)
// {
// index = i;
// break;
// }
// }
//}
return index;
}
......@@ -426,13 +511,14 @@ namespace BLL
try
{
if (_client[idx].IsConn)
_client[idx].Socket.Send(buff);
Common.log.Debug("SendTo" + ip + ": " + HexBuff(buff));
return true;
}
catch (Exception ex)
{
Common.log.Error("Send" + ip, ex);
Common.log.Debug("Send Error: " + ip, ex);
return false;
}
}
......
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using System.Threading;
......@@ -19,14 +22,17 @@ namespace AGVControl
/// 小车信息
/// </summary>
public static List<Agv_Info> agvInfo;
public static List<string> linePlace;
/// <summary>
/// 任务列表
/// </summary>
public static List<MissionStru> missionList;
public static System.Windows.Forms.TextBox logTextBox;
public static System.Windows.Forms.DataGridView missionView;
public static BLL.AgvServer server;
public static BLL.Control control;
public static BLL.MiR_API mir;
public static BLL.WebService web;
public static ChargeStatus chargeStatus;
public static string itsHttp;
public static log4net.ILog log;
public static Dictionary<string, string> agvMission;
......@@ -34,20 +40,37 @@ namespace AGVControl
public static System.Configuration.Configuration appConfig;
public static readonly string CONFIG_PATH = AppDomain.CurrentDomain.BaseDirectory + "Config\\";
private static string msg = "";
private static string preLog = "";
private static int logCnt = 0;
public struct MissionStru
{
public string NodeName;
public string CreateTime;
/// <summary>
/// 任务结构
/// </summary>
/// <param name="dateTime">创建时间</param>
/// <param name="name">节点名称</param>
public MissionStru(string dateTime, string name)
{
NodeName = name;
CreateTime = dateTime;
}
}
public static void LogInfo(string text, bool isShow = true)
{
if (logTextBox.InvokeRequired)
{
logTextBox.Invoke(new Action(() => LogInfo(text)));
logTextBox.Invoke(new Action(() => LogInfo(text, isShow)));
return;
}
if (msg.Equals(text))//连续重复的日志只打印一次
if (preLog.Equals(text))//连续重复的日志只打印一次
return;
preLog = text;
logCnt++;
if (logCnt > 100)
if (logCnt > 200)
{
logCnt = 0;
msg = "";
......@@ -61,11 +84,23 @@ namespace AGVControl
}
public static void ReadLinePlace()
{
missionList = new List<MissionStru>();
if (!System.IO.File.Exists(CONFIG_PATH + "LinePlace.txt"))
{
File.Create(CONFIG_PATH + "LinePlace.txt");
return;
}
string[] s = System.IO.File.ReadAllLines(CONFIG_PATH + "LinePlace.txt");
linePlace = new List<string>();
linePlace.AddRange(s);
for (int i = 0; i < s.Count(); i++)
{
string[] mission = s[i].Split(',');
if (mission.Length != 2)
continue;
missionList.Add(new MissionStru(mission[0], mission[1]));
}
}
......@@ -74,13 +109,16 @@ namespace AGVControl
int idx = Common.nodeInfo.FindIndex(s => s.Name == nodeName);
if (idx > -1)
{
if (Common.linePlace.Contains(nodeName))
Common.missionList.Add(new MissionStru(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),nodeName));
using (System.IO.StreamWriter file = new System.IO.StreamWriter(CONFIG_PATH + "LinePlace.txt"))
{
LogInfo("AddLinePlace 节点" + nodeName + "已存在任务队列,无需重复添加");
return false;
foreach (var item in Common.missionList)
{
file.WriteLine(string.Format("{0},{1}",item.CreateTime, item.NodeName));
}
Common.linePlace.Add(nodeName);
System.IO.File.WriteAllLines(CONFIG_PATH + "LinePlace.txt", linePlace);
}
return true;
}
else
......@@ -90,10 +128,36 @@ namespace AGVControl
}
}
public static void RemoveLinePlace(string nodeName)
public static bool DelLinePlace(string nodeName)
{
int idx = Common.nodeInfo.FindIndex(s => s.Name == nodeName);
if (idx > -1)
{
idx = Common.missionList.FindIndex(s => s.NodeName == nodeName);
if(idx>-1)
{
Common.missionList.RemoveAt(idx);
using (System.IO.StreamWriter file = new System.IO.StreamWriter(CONFIG_PATH + "LinePlace.txt"))
{
foreach (var item in Common.missionList)
{
file.WriteLine(string.Format("{0},{1}", item.CreateTime, item.NodeName));
}
}
return true;
}
log.Error("DelLinePlace 失败 节点任务" + nodeName + "不存在");
return false;
}
else
{
Common.linePlace.Remove(nodeName);
System.IO.File.WriteAllLines(CONFIG_PATH + "LinePlace.txt", linePlace);
log.Error("DelLinePlace 失败 节点" + nodeName + "不存在");
return false;
}
}
public static void CheckAGVMissionState()
......@@ -122,6 +186,25 @@ namespace AGVControl
}
}
}
public static void GetNodesPosition()
{
Agv_Info agv = agvInfo[0];
foreach (ClientNode clientNode in nodeInfo)
{
Thread.Sleep(50);
bool rtn = Common.mir.Get_Node_Pos(agv, clientNode, out BLL.MirPosition mirPosition);
if (rtn)
{
clientNode.position.X = mirPosition.pos_x;
clientNode.position.Y = mirPosition.pos_y;
Common.LogInfo(string.Format("软件开启:{0} 获取节点位置({1},{2})", clientNode.Name, clientNode.position.X, clientNode.position.Y));
}
else
{
Common.log.Error("GetNodesPosition 获取节点位置失败");
}
}
}
}
public static class API
......@@ -152,7 +235,7 @@ namespace AGVControl
/// </summary>
public bool IsConn;
/// <summary>
/// 节点名称
/// 节点名称集合
/// </summary>
public List<string> nodeName;
/// <summary>
......@@ -163,6 +246,9 @@ namespace AGVControl
/// 接收数据线程
/// </summary>
public Thread ListenNet;
}
/// <summary>
......@@ -215,12 +301,24 @@ namespace AGVControl
public bool IsUse { set; get; }
/// <summary>
/// 节点位置的guid
/// </summary>
public string Pos_guid { set; get; }
/// <summary>
/// 节点位置名称
/// </summary>
public string Pos_name { get; set; }
/// <summary>
/// 节点位置坐标
/// </summary>
public PositionStru position;
/// <summary>
/// 客户端节点
/// </summary>
/// <param name="name"></param>
/// <param name="ip"></param>
/// <param name="isUse"></param>
public ClientNode(string name, string ip, bool isUse)
public ClientNode(string name, string ip, bool isUse, string pos_name, string pos_guid)
{
Name = name;
IP = ip;
......@@ -229,6 +327,8 @@ namespace AGVControl
AgvName = "";
Online = false;
IsUse = isUse;
this.Pos_name = pos_name;
this.Pos_guid = pos_guid;
}
/// <summary>
......@@ -261,18 +361,19 @@ namespace AGVControl
public string[] ToRow()
{
//节点,IP,动作,RFID,AGV名称,在线,调用,清除AGV
string[] s = new string[8];
string[] s = new string[9];
s[0] = Name;
s[1] = IP;
if (Online)
{
s[2] = Action.ToString();
s[3] = RFID;
s[4] = AgvName;
s[2] = string.Format("({0},{1})", position.X.ToString("f2"), position.Y.ToString("f2"));
s[3] = Action.ToString();
s[4] = RFID;
s[5] = AgvName;
}
s[5] = Online.ToString();
s[6] = IsUse.ToString();
s[7] = "Clear";
s[6] = Online.ToString();
s[7] = IsUse.ToString();
s[8] = "Clear";
return s;
}
......@@ -303,6 +404,10 @@ namespace AGVControl
/// </summary>
public string IP { private set; get; }
/// <summary>
/// IO模块GUID
/// </summary>
public string IOID { private set; get; }
/// <summary>
/// 授权码
/// </summary>
public string Authorization { private set; get; }
......@@ -323,6 +428,7 @@ namespace AGVControl
/// 地点
/// </summary>
public string Place { set; get; }
/// <summary>
/// 地点的状态
/// </summary>
......@@ -332,6 +438,11 @@ namespace AGVControl
/// 小车的状态ID,(从小车获取)
/// </summary>
public int StateID { private set; get; }
/// <summary>
/// 负载
/// </summary>
public bool IsExistShelf { private set; get; } = false;
/// <summary>
/// 小车的状态,(从小车获取)
/// </summary>
......@@ -361,7 +472,7 @@ namespace AGVControl
/// <summary>
/// 闲置等待时间,用于充电
/// </summary>
//public int WaitTime { set; get; }
public int WaitTime { set; get; }
/// <summary>
/// 临时待机位,用于执行一次
/// </summary>
......@@ -376,12 +487,23 @@ namespace AGVControl
/// </summary>
public DockingStru DockingInfo;
public Agv_Info(string id, string name, string ip, string authorization, bool isUse)
public class clsPosition
{
public double orientation { get; set; }
public double x { get; set; }
public double y { get; set; }
}
/// <summary>
/// 当前位置
/// </summary>
public clsPosition Position;
public Agv_Info(string id, string name, string ip, string authorization, string ioID, bool isUse)
{
ID = id;
Name = name;
IP = ip;
Authorization = authorization;
IOID = ioID;
RFID = "";
IsCon = false;
IsUse = isUse;
......@@ -390,17 +512,25 @@ namespace AGVControl
NextPlace = "";
DockingInfo.IsDocking = false;
DockingInfo.startTime = DateTime.Now;
Position = new Agv_Info.clsPosition();
}
public bool SetState(int stateID, string stateText, int battery, string missionText)
public bool SetState(int stateID, string stateText, int battery, string missionText, clsPosition position, bool[] input, bool[] output)
{
bool isChange = false;
if (!StateID.Equals(stateID) || !StateText.Equals(stateText) || !Battery.Equals(battery) || !MissionText.Equals(missionText))
bool preShelfState = IsExistShelf;
if (input != null && input.Length == 4)
{
IsExistShelf = input[3];//input[2] &&
}
if (!StateID.Equals(stateID) || !StateText.Equals(stateText)
|| !MissionText.Equals(missionText) || !IsExistShelf.Equals(preShelfState)) //!Battery.Equals(battery)
isChange = true;
StateID = stateID;
StateText = stateText;
Battery = battery;
MissionText = missionText;
Position = position;
return isChange;
}
......@@ -433,14 +563,17 @@ namespace AGVControl
if (IsCon)
{
s.Add(StateText);
s.Add(RFID);
s.Add(MissionText);
s.Add(Place);
s.Add(PlaceState.ToString());
s.Add(NextPlace);
}
else
{
s.AddRange(new List<string> { "", "", "", "" });
s.AddRange(new List<string> { "", "", "", "", "", "" });
}
s.Add(IsExistShelf ? "满载" : "空载");
s.Add(IsCon.ToString());
s.Add(Battery + "%");
s.Add(IsUse.ToString());
......@@ -547,8 +680,76 @@ namespace AGVControl
Error = 9
}
public struct PositionStru
{
public double X;
public double Y;
}
public class ChargeStatus
{
/// <summary>
/// 1号充电桩的AGV名称
/// </summary>
public string charge3 = "";
/// <summary>
/// 1号充电桩的AGV名称
/// </summary>
public string charge4 = "";
/// <summary>
/// 1号充电桩的AGV名称
/// </summary>
public string charge5 = "";
/// <summary>
/// 1号充电桩的AGV名称
/// </summary>
public string charge6 = "";
/// <summary>
/// 充电等待时间(s)
/// </summary>
public int chargeWait = 0;
/// <summary>
/// 充电最大电量,小于该值等待指定时间去充电
/// </summary>
public int chargeMax;
/// <summary>
/// 充电最小电量,小于该值直接去充电
/// </summary>
public int chargeMin;
/// <summary>
/// 两车充电间隔时间(ms)
/// </summary>
public long chargeInterval;
private bool _autoCharge;
public bool AutoCharge
{
set
{
_autoCharge = value;
Common.appConfig.AppSettings.Settings["AutoCharge"].Value = value.ToString();
Common.appConfig.Save();
}
get
{
return _autoCharge;
}
}
public ChargeStatus()
{
_autoCharge = Convert.ToBoolean(Common.appConfig.AppSettings.Settings["AutoCharge"].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;
}
}
}
\ No newline at end of file
......@@ -56,9 +56,10 @@ namespace BLL
if (!loop) break;
//获取AGV状态
rtn = Common.mir.Get_State(Common.agvInfo[i], out int stateID, out string stateText, out int battery, out string mission_text);
rtn = Common.mir.Get_State(Common.agvInfo[i], out int stateID, out string stateText, out int battery, out string mission_text, out Agv_Info.clsPosition position);
Common.mir.Get_IO_Status(Common.agvInfo[i], out bool[] input, out bool[] output);
bool change = false;
if (rtn) change = Common.agvInfo[i].SetState(stateID, stateText, battery, mission_text);
if (rtn) change = Common.agvInfo[i].SetState(stateID, stateText, battery, mission_text, position,input,output);
//上报异常
if (Common.agvInfo[i].MissionText != mission_text)
......@@ -72,21 +73,21 @@ namespace BLL
}
bool isAlarm = false;
List<AlarmMsg> msglist = new List<AlarmMsg>();
if (Common.agvInfo[i].DockingInfo.IsDocking && (DateTime.Now - Common.agvInfo[i].DockingInfo.startTime).TotalMinutes.Equals(2))
if (Common.agvInfo[i].DockingInfo.IsDocking && (DateTime.Now - Common.agvInfo[i].DockingInfo.startTime).TotalMinutes.Equals(1))
{
isAlarm = true;
Common.agvInfo[i].DockingInfo.IsDocking = false;
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "agv.Docking", mission_text));
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "agv." + Common.agvInfo[i].Name + ".Docking", mission_text));
}
if (battery <= 10)
{
isAlarm = true;
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "agv.battery", battery.ToString()));
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "agv." + Common.agvInfo[i].Name + ".battery", "电量 " + battery.ToString() + "%"));
}
if (stateText.Equals("Error") || stateText.Equals("EmergencyStop"))
if (stateText.Equals("Error") || stateText.Equals("EmergencyStop") || stateText.Equals("Pause"))
{
isAlarm = true;
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "agv.Error.EmergencyStop", "agv状态" + stateText));
msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "agv." + Common.agvInfo[i].Name + ".Error.EmergencyStop", "agv状态 " + stateText));
}
if (isAlarm)
BLL.AGVManager.updateDeviceAlarmMsg(msglist);
......@@ -99,12 +100,12 @@ namespace BLL
if (change)
{
Common.LogInfo(string.Format("{0} Get_State StateID={1}, StateText={2}, Battery={3}, Mission_text={4}", Common.agvInfo[i].Name, stateID, stateText, battery, mission_text));
Common.LogInfo(string.Format("{0} Get_State StateID={1}, StateText={2}, Battery={3}, Mission_text={4}", Common.agvInfo[i].Name, stateID, stateText, battery, mission_text), false);
}
//执行任务更新状态
if (stateID == 5 || change)
{
Common.LogInfo(string.Format("{0} Get_Register PLC{1}={2}", Common.agvInfo[i].Name, REG_STATUS, regValue));
Common.log.Debug(string.Format("{0} Get_Register PLC{1}={2}", Common.agvInfo[i].Name, REG_STATUS, regValue));
AgvChanged?.Invoke(i);
}
......@@ -176,6 +177,42 @@ namespace BLL
}
}
/// <summary>
/// 计算当前小车距离最近的任务点(只针对产线)
/// </summary>
/// <param name="agv"></param>
/// <returns>节点名称</returns>
private Common.MissionStru CalculateNearNode(Agv_Info agv)
{
Common.MissionStru missionNode = new Common.MissionStru("","");
double minDis = Double.MaxValue;
try
{
if (Common.missionList.Count == 0)
return missionNode;
foreach (var item in Common.missionList)
{
int index = Common.nodeInfo.FindIndex(s => s.Name == item.NodeName);
if (index > -1)
{
double dis = Math.Sqrt(Math.Pow((agv.Position.x - Common.nodeInfo[index].position.X), 2) + Math.Pow((agv.Position.y - Common.nodeInfo[index].position.Y), 2));
Common.LogInfo(string.Format("{0} 距离{1}={2}", agv.Name, Common.nodeInfo[index].Name, dis.ToString("f2")), false);
if (dis < minDis)
{
minDis = dis;
missionNode = item;
}
}
}
Common.LogInfo(string.Format("{0} 运动到产线 {1}", agv.Name, missionNode), false);
return missionNode;
}
catch (Exception e)
{
Common.log.Error("CalculateNearNode + " + e.ToString());
}
return missionNode;
}
private bool CheckOnline(int idx)
{
bool rtn = Common.mir.CheckIP(Common.agvInfo[idx].IP);
......@@ -208,37 +245,19 @@ namespace BLL
/// <param name="idx"></param>
private void StateNone(int idx)
{
bool rtn;
int index;
string RFID = "";
Agv_Info agv = Common.agvInfo[idx];
if (agv.TaskSend != "") return;
//A6出满料
rtn = FindA6Leave(out string nextNode);
if (rtn)
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["MoveA6"]);
if (rtn)
{
agv.NextPlace = nextNode;
index = FindNode("A6");
Common.nodeInfo[index].AgvName = Common.agvInfo[idx].Name;
RFID = Common.nodeInfo[index].RFID;
index = FindNode(nextNode);
Common.nodeInfo[index].AgvName = Common.agvInfo[idx].Name;
}
Common.LogInfo(string.Format("A6有满料架[{0}]要出,目的地为{1}", RFID, nextNode));
agv.TaskSend = rtn ? "MoveA6" : "";
//检查是否需要充电
if (CheckIsNeedCharge(agv))
return;
}
if (Common.linePlace.Count == 0)
{
Common.LogInfo("Common.linePlace.Count == 0 无空料架要出");
if (CheckA6State(agv))
return;
}
CheckEmptyShelf(agv);
#region 出空料架,带节点状态-不用
//ClientLevel clientLevel = Common.linePlace.Values.Max<ClientLevel>();
////出空料架
//foreach (var item in Common.linePlace)
......@@ -265,34 +284,385 @@ namespace BLL
//}
//for (int i = 0; i < Common.linePlace.Count; i++)
//{
// string name = Common.linePlace[i];
// index = Common.nodeInfo.FindIndex(s => s.Name.Equals(name) && s.IsUse);
// if (index > -1)
// {
// rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + name]);
// if (rtn)
// {
// Common.nodeInfo[index].AgvName = Common.agvInfo[idx].Name;
// Common.LogInfo(string.Format("[{0}] 出空料架.", name));
// Common.linePlace.RemoveAt(i);
// System.IO.File.WriteAllLines(Common.CONFIG_PATH + "LinePlace.txt", Common.linePlace);
// }
// agv.TaskSend = rtn ? "Move" + name : "";
// }
// if (Common.linePlace.Count.Equals(0).Equals(false))
// Common.LogInfo("剩余需要出空料架的节点:" + string.Join(",", Common.linePlace.ToArray()));
// if (rtn) break;
//}
#endregion
}
/// <summary>
/// 判断是否需要充电
/// </summary>
/// <param name="agv"></param>
/// <returns></returns>
private bool CheckIsNeedCharge(Agv_Info agv)
{
if (Common.chargeStatus.AutoCharge)
{
if (agv.Battery <= Common.chargeStatus.chargeMin)
{
Common.LogInfo(agv.Name + " 电量小于20%", false);
if (StatusCharge(agv))
return true;
}
else if (agv.Battery <= Common.chargeStatus.chargeMax && agv.WaitTime >= Common.chargeStatus.chargeWait * 60000)
{
Common.LogInfo(agv.Name + " 闲置时间超过" + Common.chargeStatus.chargeWait + "分钟", false);
if (StatusCharge(agv))
return true;
}
return false;
}
return false;
}
/// <summary>
/// 充电
/// </summary>
/// <param name="agv"></param>
/// <returns>充电任务结果</returns>
private bool StatusCharge(Agv_Info agv)
{
bool rtn;
string log;
double sp = (DateTime.Now.Ticks - Common.chargeStatus.chargeInterval) / 10000000.0;
//防止两车同时充电卡住的情况
//if (sp < 60)
//{
// Common.LogInfo(agv.Name + " 与上一辆车的充电时间间隔为" + sp.ToString() + ",小于60s,不能充电。", false);
// return false;
//}
#region 随机充电位置
//if (Common.chargeStatus.charge3 == "")
//{
// rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge3"]);
// if (rtn)
// {
// agv.TaskSend = "AutoCharge3";
// Common.chargeStatus.charge3 = agv.Name;
// Common.chargeStatus.chargeInterval = DateTime.Now.Ticks;
// log = string.Format("{0} AutoCharge3", agv.Name);
// Common.LogInfo(log);
// Common.mir.State_Ready(agv);
// }
// else
// {
// agv.TaskSend = "";
// log = string.Format("{0} AutoCharge3 失败", agv.Name);
// //防止上一个任务已执行但返回失败时,删除任务
// //Common.mir.Del_Mission(agv);
// Common.LogInfo(log);
// }
// return rtn;
//}
//else if (Common.chargeStatus.charge4 == "")
//{
// rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge4"]);
// if (rtn)
// {
// agv.TaskSend = "AutoCharge4";
// Common.chargeStatus.charge4 = agv.Name;
// Common.chargeStatus.chargeInterval = DateTime.Now.Ticks;
// log = string.Format("{0} AutoCharge4", agv.Name);
// Common.LogInfo(log);
// Common.mir.State_Ready(agv);
// }
// else
// {
// agv.TaskSend = "";
// log = string.Format("{0} AutoCharge4 失败", agv.Name);
// //防止上一个任务已执行但返回失败时,删除任务
// //Common.mir.Del_Mission(agv);
// Common.LogInfo(log);
// }
// return rtn;
//}
//else if (Common.chargeStatus.charge5 == "")
//{
// rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge5"]);
// if (rtn)
// {
// agv.TaskSend = "AutoCharge5";
// Common.chargeStatus.charge5 = agv.Name;
// Common.chargeStatus.chargeInterval = DateTime.Now.Ticks;
// log = string.Format("{0} AutoCharge5", agv.Name);
// Common.LogInfo(log);
// Common.mir.State_Ready(agv);
// }
// else
// {
// agv.TaskSend = "";
// log = string.Format("{0} AutoCharge5 失败", agv.Name);
// //防止上一个任务已执行但返回失败时,删除任务
// //Common.mir.Del_Mission(agv);
// Common.LogInfo(log);
// }
// return rtn;
//}
//else if (Common.chargeStatus.charge6 == "")
//{
// rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge6"]);
// if (rtn)
// {
// agv.TaskSend = "AutoCharge6";
// Common.chargeStatus.charge4 = agv.Name;
// Common.chargeStatus.chargeInterval = DateTime.Now.Ticks;
// log = string.Format("{0} AutoCharge6", agv.Name);
// Common.LogInfo(log);
// Common.mir.State_Ready(agv);
// }
// else
// {
// agv.TaskSend = "";
// log = string.Format("{0} AutoCharge6 失败", agv.Name);
// //防止上一个任务已执行但返回失败时,删除任务
// //Common.mir.Del_Mission(agv);
// Common.LogInfo(log);
// }
// return rtn;
//}
//else
//{
// return false;
//}
#endregion
#region 指定充电位置
if (agv.IP == "10.85.199.72")//1764
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge3"]);
if (rtn)
{
//agv.TaskSend = "AutoCharge3";
agv.TaskSend = "";
Common.chargeStatus.charge3 = agv.Name;
Common.chargeStatus.chargeInterval = DateTime.Now.Ticks;
log = string.Format("{0} AutoCharge3", agv.Name);
Common.LogInfo(log);
Common.mir.State_Ready(agv);
}
else
{
agv.TaskSend = "";
log = string.Format("{0} AutoCharge3 失败", agv.Name);
//防止上一个任务已执行但返回失败时,删除任务
//Common.mir.Del_Mission(agv);
Common.LogInfo(log);
}
return rtn;
}
else if (agv.IP == "10.85.199.71")//1763
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge4"]);
if (rtn)
{
//agv.TaskSend = "AutoCharge4";
agv.TaskSend = "";
Common.chargeStatus.charge4 = agv.Name;
Common.chargeStatus.chargeInterval = DateTime.Now.Ticks;
log = string.Format("{0} AutoCharge4", agv.Name);
Common.LogInfo(log);
Common.mir.State_Ready(agv);
}
else
{
agv.TaskSend = "";
log = string.Format("{0} AutoCharge4 失败", agv.Name);
//防止上一个任务已执行但返回失败时,删除任务
//Common.mir.Del_Mission(agv);
Common.LogInfo(log);
}
return rtn;
}
else if (agv.IP == "10.85.199.73")//1767
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge5"]);
if (rtn)
{
//agv.TaskSend = "AutoCharge5";
agv.TaskSend = "";
Common.chargeStatus.charge5 = agv.Name;
Common.chargeStatus.chargeInterval = DateTime.Now.Ticks;
log = string.Format("{0} AutoCharge5", agv.Name);
Common.LogInfo(log);
Common.mir.State_Ready(agv);
}
else
{
agv.TaskSend = "";
log = string.Format("{0} AutoCharge5 失败", agv.Name);
//防止上一个任务已执行但返回失败时,删除任务
//Common.mir.Del_Mission(agv);
Common.LogInfo(log);
}
return rtn;
}
else if (agv.IP == "10.85.199.74")//1768
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["AutoCharge6"]);
if (rtn)
{
//agv.TaskSend = "AutoCharge6";
agv.TaskSend = "";
Common.chargeStatus.charge4 = agv.Name;
Common.chargeStatus.chargeInterval = DateTime.Now.Ticks;
log = string.Format("{0} AutoCharge6", agv.Name);
Common.LogInfo(log);
Common.mir.State_Ready(agv);
}
else
{
agv.TaskSend = "";
log = string.Format("{0} AutoCharge6 失败", agv.Name);
//防止上一个任务已执行但返回失败时,删除任务
//Common.mir.Del_Mission(agv);
Common.LogInfo(log);
}
return rtn;
}
else
{
return false;
}
#endregion
}
/// <summary>
///A6是否有满料架要出
/// </summary>
/// <param name="agv"></param>
private bool CheckA6State(Agv_Info agv)
{
bool rtn;
int index;
string RFID = "";
//A6出满料
rtn = FindA6Leave(out string nextNode);
if (rtn)
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["MoveA6"]);
if (rtn)
{
agv.NextPlace = nextNode;
index = FindNode("A6");
Common.nodeInfo[index].AgvName = agv.Name;
RFID = Common.nodeInfo[index].RFID;
agv.RFID = RFID;
index = FindNode(nextNode);
Common.nodeInfo[index].AgvName = agv.Name;
}
Common.LogInfo(string.Format("A6有满料架[{0}]要出,目的地为{1}", RFID, nextNode));
agv.TaskSend = rtn ? "MoveA6" : "";
return true;
}
return false;
}
/// <summary>
/// 查看是否有空料架出,有则根据距离分配任务
/// </summary>
/// <param name="agv"></param>
/// <returns>true:有空料架要出</returns>
private bool CheckEmptyShelf(Agv_Info agv)
{
//if (Common.linePlace.Count == 0)
//{
// //Common.LogInfo("当前无空料架要出");
// return false;
//}
bool rtn = false;
//int index = -1;
//foreach (var nodeName in Common.linePlace)
//{
// index = Common.nodeInfo.FindIndex(s => s.Name.Equals(nodeName) && s.IsUse);
// if (index > -1)
// {
// rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + nodeName]);
// if (rtn)
// {
// Common.nodeInfo[index].AgvName = agv.Name;
// Common.LogInfo(string.Format("[{0}] 出空料架.", nodeName));
// Common.linePlace.Remove(nodeName);
// System.IO.File.WriteAllLines(Common.CONFIG_PATH + "LinePlace.txt", Common.linePlace);
// }
// agv.TaskSend = rtn ? "Move" + nodeName : "";
// }
// if (Common.linePlace.Count.Equals(0).Equals(false))
// Common.LogInfo("剩余需要出空料架的节点:" + string.Join(",", Common.linePlace.ToArray()));
// if (rtn) return true;
//}
for (int i = 0; i < Common.linePlace.Count; i++)
Common.MissionStru missionNode = CalculateNearNode(agv);
if (missionNode.NodeName.Equals(""))
{
string name = Common.linePlace[i];
index = Common.nodeInfo.FindIndex(s => s.Name.Equals(name) && s.IsUse);
return false;
}
int index = Common.nodeInfo.FindIndex(s => s.Name.Equals(missionNode.NodeName) && s.AgvName == "" && s.IsUse);
if (index > -1)
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + name]);
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + missionNode.NodeName]);
if (rtn)
{
Common.nodeInfo[index].AgvName = Common.agvInfo[idx].Name;
Common.linePlace.RemoveAt(i);
System.IO.File.WriteAllLines(Common.CONFIG_PATH + "LinePlace.txt", Common.linePlace);
Common.nodeInfo[index].AgvName = agv.Name;
Common.LogInfo(string.Format("[{0}] 出空料架.", missionNode.NodeName));
Common.missionList.Remove(missionNode);
using (System.IO.StreamWriter file = new System.IO.StreamWriter(Common.CONFIG_PATH + "LinePlace.txt"))
{
foreach (var item in Common.missionList)
{
file.WriteLine(string.Format("{0},{1}", item.CreateTime,item.NodeName));
}
}
}
agv.TaskSend = rtn ? "Move" + name : "";
agv.TaskSend = rtn ? "Move" + missionNode.NodeName : "";
}
Common.LogInfo(string.Format("[{0}] 出空料架.", name));
if (Common.linePlace.Count.Equals(0).Equals(false))
Common.LogInfo("剩余需要出空料架的节点:" + string.Join(",", Common.linePlace.ToArray()));
if (rtn) break;
if (Common.missionList.Count.Equals(0).Equals(false))
{
AgvChanged?.Invoke(0);
Common.LogInfo("剩余需要出空料架的节点:");
Common.missionList.ForEach(s => Common.LogInfo(string.Format("创建时间:{0},任务节点{1}", s.CreateTime, s.NodeName)));
}
if (rtn) return true;
return false;
}
/// <summary>
/// agv正在运动
/// agv运动
/// </summary>
/// <param name="idx"></param>
private void StateMove(int idx)
{
//bool rtn;
//Agv_Info agv = Common.agvInfo[idx];
//int index = FindNode(agv.Place);
//if (index == -1) return;
//ClientNode node = Common.nodeInfo[index];
//switch (agv.Place)
//{
// case "":
// agv.TaskSend = "";
// agv.NextPlace = "";
// break;
//}
}
/// <summary>
/// agv运动完成
......@@ -335,9 +705,9 @@ namespace BLL
}
else if (node.Action == ClientAction.MayLeave)
{
if (agv.TaskSend == "Leave") return;
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Leave"]);
agv.TaskSend = rtn ? "Leave" : "";
if (agv.TaskSend == "Enter") return;
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Enter"]);
agv.TaskSend = rtn ? "Enter" : "";
if (rtn)
Common.LogInfo(string.Format("{0}到达{1},可以出去料架", agv.Name, agv.Place));
}
......@@ -355,8 +725,18 @@ namespace BLL
}
else if (node.Action == ClientAction.NeedEnterLeave)
{
//rtn = Common.server.ReadyLeave(agv.Place);
//if (!rtn) return;
if(agv.IsExistShelf)//车上有料架
{
rtn = Common.server.ReadyEnter(agv.Place);
if (!rtn) return;
Common.LogInfo(string.Format("{0}到达{1},服务器发送ReadyEnter信号", agv.Name, agv.Place));
}
else
{
rtn = Common.server.ReadyLeave(agv.Place);
if (!rtn) return;
Common.LogInfo(string.Format("{0}到达{1},服务器发送ReadyLeave信号", agv.Name, agv.Place));
}
}
break;
case "E1":
......@@ -371,6 +751,71 @@ namespace BLL
case "E10":
case "E11":
case "E12":
case "E14":
case "E15":
case "E16":
case "E21":
case "E22":
//C是大料架,D是小料架
//大料架
//if (agv.RFID.StartsWith("C"))
//{
// if (Common.linePlace.Contains(node.Name))
// {
// int nodeIdx = Common.nodeInfo.FindIndex(s => s.Name == "A5" && (s.Action == ClientAction.NeedC || s.Action == ClientAction.NeedEnter) && s.AgvName == "" && s.IsUse);
// if (nodeIdx > -1)
// {
// rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + Common.nodeInfo[nodeIdx].Name]);
// if (rtn)
// {
// agv.TaskSend = rtn ? "Move" + Common.nodeInfo[nodeIdx].Name : "";
// Common.nodeInfo[nodeIdx].AgvName = agv.Name;
// Common.linePlace.Remove(node.Name);
// Common.LogInfo(string.Format("{0}载大料架运往{1}[RFID={2}][{3}],", agv.Name, Common.nodeInfo[nodeIdx].Name, agv.RFID, Common.nodeInfo[nodeIdx].Action));
// return;
// }
// }
// nodeIdx = Common.nodeInfo.FindIndex(s => s.Name == "A6" && (s.Action == ClientAction.NeedEnter || s.Action == ClientAction.NeedEnterLeave) && s.AgvName == "" && s.IsUse);
// if (nodeIdx > -1)
// {
// rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + Common.nodeInfo[nodeIdx].Name]);
// if (rtn)
// {
// agv.TaskSend = rtn ? "Move" + Common.nodeInfo[nodeIdx].Name : "";
// Common.nodeInfo[nodeIdx].AgvName = agv.Name;
// Common.linePlace.Remove(node.Name);
// Common.LogInfo(string.Format("{0}载大料架运往{1}[RFID={2}][{3}],", agv.Name, Common.nodeInfo[nodeIdx].Name, agv.RFID, Common.nodeInfo[nodeIdx].Action));
// return;
// }
// }
// }
// else
// {
// Common.LogInfo(string.Format("{0}载大料架到达{1}[RFID={2}],等待料架清空。。。", agv.Name, agv.Place, agv.RFID));
// return;
// }
//}
//else if (agv.RFID.StartsWith("D"))//小料架
//{
// rtn = Common.server.ReadyEnter(agv.Place);
// if (!rtn) return;
// Common.LogInfo(string.Format("{0}载小料架到达{1}[RFID={2}],服务器发送ReadyEnter信号", agv.Name, agv.Place, agv.RFID));
//}
if (agv.RFID.StartsWith("D") || agv.RFID.StartsWith("C"))//不分大小料架
{
rtn = Common.server.ReadyEnter(agv.Place);
if (!rtn) return;
Common.LogInfo(string.Format("{0}载小料架到达{1}[RFID={2}],服务器发送ReadyEnter信号", agv.Name, agv.Place, agv.RFID));
}
else//其他地方到E区域,则是空车
{
rtn = Common.server.ReadyLeave(agv.Place);
if (!rtn) return;
Common.LogInfo(string.Format("{0}到达{1},服务器发送ReadyLeave信号", agv.Name, agv.Place));
}
if (node.Action == ClientAction.MayEnter)
{
if (agv.TaskSend == "Leave") return;
......@@ -381,86 +826,151 @@ namespace BLL
}
else if (node.Action == ClientAction.MayLeave)
{
if (agv.TaskSend == "Leave") return;
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Leave"]);
agv.TaskSend = rtn ? "Leave" : "";
if (agv.TaskSend == "Enter") return;
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Enter"]);
agv.TaskSend = rtn ? "Enter" : "";
if (rtn)
Common.LogInfo(string.Format("{0}到达{1},可以出去料架", agv.Name, agv.Place));
}
else if (node.Action == ClientAction.NeedEnter)
{
rtn = Common.server.ReadyEnter(agv.Place);
if (!rtn) return;
Common.LogInfo(string.Format("{0}到达{1},服务器发送ReadyEnter信号", agv.Name, agv.Place));
//else if (node.Action == ClientAction.NeedEnter)
//{
// rtn = Common.server.ReadyEnter(agv.Place);
// if (!rtn) return;
// Common.LogInfo(string.Format("{0}到达{1},服务器发送ReadyEnter信号", agv.Name, agv.Place));
}
else if (node.Action == ClientAction.NeedLeave)
{
rtn = Common.server.ReadyLeave(agv.Place);
if (!rtn) return;
Common.LogInfo(string.Format("{0}到达{1},服务器发送ReadyLeave信号", agv.Name, agv.Place));
}
//}
//else if (node.Action == ClientAction.NeedLeave)
//{
// rtn = Common.server.ReadyLeave(agv.Place);
// if (!rtn) return;
// Common.LogInfo(string.Format("{0}到达{1},服务器发送ReadyLeave信号", agv.Name, agv.Place));
//}
break;
}
}
/// <summary>
/// agv正在进入
/// 料架进入小车
/// </summary>
/// <param name="idx"></param>
private void StateEnter(int idx)
{
}
/// <summary>
/// agv进入完成
/// 料架进入小车完成
/// </summary>
/// <param name="idx"></param>
private void StateEnterFinish(int idx)
{
bool rtn;
Agv_Info agv = Common.agvInfo[idx];
if (agv.TaskSend != "") return;
int index = FindNode(agv.Place);
if (index == -1) return;
ClientNode node = Common.nodeInfo[index];
switch (agv.Place)
{
case "A6":
if (node.Action == ClientAction.FinishLeave)
{
string nextPlace = agv.NextPlace;
if (nextPlace.Equals(""))
return;
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["Move" + nextPlace]);
if (rtn)
{
agv.NextPlace = "";
}
node.AgvName = "";
agv.TaskSend = rtn ? "Move" + nextPlace : "";
Common.LogInfo(string.Format("{0}装载满料架,运往{1}", "A6", agv.Name,nextPlace));
}
}
break;
case "E1":
case "E2":
case "E3":
case "E4":
case "E5":
case "E6":
case "E7":
case "E8":
case "E9":
case "E10":
case "E11":
case "E12":
case "E14":
case "E15":
case "E16":
case "E21":
case "E22":
//产线客户端不发FinishLeave
//产线空料架进入小车
//node.AgvName = "";
//node.Action = ClientAction.None;
ResetNodeState(node);
//目前条件:根据需求运料架,需要就运行【后续需要更改为从产线进入小车的料架均为小料架】 s.Action == ClientAction.NeedD || s.Action == ClientAction.NeedEnter
int tarIdx = Common.nodeInfo.FindIndex(s => s.Name == "A5"
&& (s.Action == ClientAction.NeedD || s.Action == ClientAction.NeedEnter || s.Action == ClientAction.NeedC) && s.IsUse);
if (tarIdx == -1)
{
Common.LogInfo(string.Format("{0} 已装载料架,A5不需要料架", agv.Name));//小
}
else
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["MoveA5"]);
if (rtn)
{
agv.NextPlace = "";
node.AgvName = "";
agv.TaskSend = rtn ? "MoveA5" : "";
Common.LogInfo(string.Format("{0} 已装载料架,送往A5", agv.Name));//小
}
break;
}
tarIdx = Common.nodeInfo.FindIndex(s => s.Name == "A6" &&
(s.Action == ClientAction.NeedEnter || s.Action == ClientAction.NeedEnterLeave) && s.IsUse);
if (tarIdx == -1)
{
Common.LogInfo(string.Format("{0} 已装载料架,A6不需要料架", agv.Name));//小
}
else
{
rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["MoveA6"]);
if (rtn)
Common.LogInfo(string.Format("{0}完成出满料架,准备运往{1}","A6",nextPlace));
{
agv.NextPlace = "";
node.AgvName = "";
agv.TaskSend = rtn ? "MoveA6" : "";
Common.LogInfo(string.Format("{0} 已装载料架,送往A6", agv.Name));//小
}
}
break;
}
}
/// <summary>
/// agv正在离开
/// 料架离开小车
/// </summary>
/// <param name="idx"></param>
/// <param name="idx">agv索引</param>
private void StateLeave(int idx)
{
Agv_Info agv = Common.agvInfo[idx];
}
/// <summary>
/// agv离开完成
/// 料架离开小车完成
/// </summary>
/// <param name="idx"></param>
private void StateLeaveFinish(int idx)
{
bool rtn;
Agv_Info agv = Common.agvInfo[idx];
if (agv.TaskSend != "") return;
int index = FindNode(agv.Place);
if (index == -1) return;
ClientNode node = Common.nodeInfo[index];
......@@ -468,26 +978,133 @@ namespace BLL
switch (agv.Place)
{
case "A5":
//if (node.Action == ClientAction.FinishEnter)
//{
// Common.LogInfo(string.Format("{0}在{1}完成进入料架", agv.Name, agv.Place));
//}
//break;
case "A6":
if (node.Action == ClientAction.FinishEnter)
{
Common.LogInfo(string.Format("{0}在{1}完成进入料架", agv.Name, agv.Place));
//agv.RFID = "";
ResetAGVState(agv, true);
ResetNodeState(node);
//查询附近是否有空料架要出,没有则去待机位
if (!CheckEmptyShelf(agv))
MoveStandby(agv);
}
break;
case "A6":
if (node.Action == ClientAction.FinishEnter)
case "E1":
case "E2":
case "E3":
case "E4":
case "E5":
case "E6":
case "E7":
case "E8":
case "E9":
case "E10":
case "E11":
case "E12":
case "E14":
case "E15":
case "E16":
case "E21":
case "E22":
/// agv.RFID = "";
// node.AgvName = "";
//node.Action = ClientAction.None;
ResetAGVState(agv, true);
ResetNodeState(node);
//查询附近是否有空料架要出,没有则去待机位
if (!CheckEmptyShelf(agv))
MoveStandby(agv);
break;
}
}
/// <summary>
/// 重置节点状态
/// </summary>
/// <param name="clientNode"></param>
private void ResetNodeState(ClientNode clientNode)
{
Common.LogInfo(string.Format("{0}在{1}完成进入料架", agv.Name, agv.Place));
clientNode.Action = ClientAction.None;
clientNode.AgvName = "";
clientNode.RFID = "";
}
break;
/// <summary>
/// 重置agv变量信息(RFID)
/// </summary>
/// <param name="agv"></param>
/// <param name="IsNextPlace">是否清除下一目的地</param>
private void ResetAGVState(Agv_Info agv,bool IsNextPlace=false)
{
agv.RFID = "";
if (IsNextPlace)
agv.NextPlace = "";
}
private bool MoveStandby(Agv_Info agv)
{
string log;
//清除当前任务点
if (!agv.Place.Equals(""))
{
int idx = Common.nodeInfo.FindIndex(s => s.Name == agv.Place);
if (idx > -1)
{
Common.nodeInfo[idx].AgvName = "";
}
else
{
log = "清理AgvName,没有找到 " + agv.Name;
Common.LogInfo(log);
}
}
//执行下一个任务
//agv.Place = "";
bool rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission["MoveStandby"]); //返回待机区
if (rtn)
{
agv.TaskSend = "";
agv.Place = "";
log = string.Format("{0} MoveStandby", agv.Name);
Common.LogInfo(log);
Common.mir.State_Ready(agv);
}
else
{
agv.TaskSend = "";
log = string.Format("{0} MoveStandby 失败", agv.Name);
//防止上一个任务已执行但返回失败时,删除任务
//Common.mir.Del_Mission(agv);
Common.LogInfo(log);
}
return rtn;
}
/// <summary>
/// 错误状态
/// </summary>
/// <param name="idx"></param>
private void StateError(int idx)
{
Agv_Info agv = Common.agvInfo[idx];
Common.LogInfo(string.Format("{0}在执行任务[{1}]出现错误:{2}",agv.Name,agv.TaskSend,agv.MissionText));
Common.LogInfo(string.Format("{0}在执行任务[{1}]出现错误:{2}", agv.Name, agv.TaskSend, agv.MissionText));
}
/// <summary>
/// 查找节点是否存在以及是否调用
/// </summary>
/// <param name="nodeName"></param>
/// <returns></returns>
private int FindNode(string nodeName)
{
int idx = Common.nodeInfo.FindIndex(s => s.Name.Equals(nodeName) && s.IsUse);
......@@ -497,14 +1114,14 @@ namespace BLL
private bool FindA6Leave(out string nextNode)
{
nextNode = "";
int idx = Common.nodeInfo.FindIndex(s => s.Name.Equals("A6") && (s.Action == ClientAction.NeedLeave || s.Action == ClientAction.NeedEnterLeave) && s.IsUse);
int idx = Common.nodeInfo.FindIndex(s => s.Name.Equals("A6")
&& (s.Action == ClientAction.NeedLeave || s.Action == ClientAction.NeedEnterLeave)
&& s.AgvName == "" && s.IsUse);//&& (s.RFID.StartsWith("C")|| s.RFID.StartsWith("D"))
if (idx == -1) return false;
bool rtn = true;//FindA6Destination(Common.nodeInfo[idx].RFID, out string dest);
string dest = "E2";
bool rtn = FindA6Destination(Common.nodeInfo[idx].RFID, out string dest);
if (!rtn) return false;
idx = Common.nodeInfo.FindIndex(s => s.Name.Equals(dest)&& s.IsUse);
idx = Common.nodeInfo.FindIndex(s => s.Name.Equals(dest) && s.IsUse);
if (idx == -1)
{
return false;
......@@ -534,24 +1151,41 @@ namespace BLL
Common.LogInfo("ITS URL: " + url + " 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;
bool b1 = dic.TryGetValue("id", out object id);
bool b2 = dic.TryGetValue("location", out object location);
List<BoxDestInfo> res = JsonHelper.DeserializeJsonToList<BoxDestInfo>(json);
//JavaScriptSerializer serializer = new JavaScriptSerializer();
if (res == null || res.Count==0)
return false;
if (b1 && b2)
if (res[0].id == rfid)
{
if (id.ToString() == rfid)
if (res[0].location.Equals("Feeder"))
{
if (Common.agvProductionLine.TryGetValue(location.ToString(), out string loc))
res[0].location = "FeederIn";
}
if (Common.agvProductionLine.TryGetValue(res[0].location, out string loc))
{
dest = loc;
Common.LogInfo("出满料架任务:目的地为 "+ loc+" [产线名 "+ res[0].location + "]");
return true;
}
}
}
//Dictionary<string, object> dic = (Dictionary<string, object>)serializer.DeserializeObject(json);
//if (dic == null) return false;
//bool b1 = dic.TryGetValue("id", out object id);
//bool b2 = dic.TryGetValue("location", out object location);
//if (b1 && b2)
//{
// if (id.ToString() == rfid)
// {
// if (Common.agvProductionLine.TryGetValue(location.ToString(), out string loc))
// {
// dest = loc;
// return true;
// }
// }
//}
return false;
}
catch (Exception ex)
......@@ -561,7 +1195,16 @@ namespace BLL
}
}
public class BoxDestInfo
{
/// <summary>
/// RFID
/// </summary>
public string id { get; set; }
public string SO { get; set; }
public string location { get; set; }
}
}
}
\ No newline at end of file
......@@ -140,7 +140,7 @@ namespace BLL
wc.Encoding = encoding;
result = wc.UploadString(url, "POST", paramData);
//LogUtil.info(result);
//Common.LogInfo(result);
}
catch (Exception e)
{
......@@ -154,7 +154,6 @@ namespace BLL
+ "发送:" + paramData + "\r\n"
+ "接收:" + result + "\r\n"
;
Common.LogInfo(LastServerMsg);
return result;
}
......
......@@ -59,42 +59,42 @@ namespace BLL
/// <param name="input"></param>
/// <param name="output"></param>
/// <returns></returns>
//public bool Get_IO_Status(Agv_Info info, out bool[] input, out bool[] output)
//{
// try
// {
// input = null;
// output = null;
// string url = "http://" + info.IP + "/api/v2.0.0/io_modules/" + info.IOID + "/status";
public bool Get_IO_Status(Agv_Info info, out bool[] input, out bool[] output)
{
try
{
input = null;
output = null;
string url = "http://" + info.IP + "/api/v2.0.0/io_modules/" + info.IOID + "/status";
// string json = HttpGet(url, info.IP, info.Authorization);
// //LogInfo("URL: " + url + "\n" + "Return: " + json);
// if (string.IsNullOrWhiteSpace(json)) return false;
string json = HttpGet(url, info.IP, info.Authorization);
Common.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;
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> dic = (Dictionary<string, object>)serializer.DeserializeObject(json);
if (dic == null) return false;
// object[] objInput = (object[])dic["input_state"];
// input = new bool[objInput.Length];
// for (int i = 0; i < input.Length; i++)
// input[i] = Convert.ToBoolean(objInput[i]);
object[] objInput = (object[])dic["input_state"];
input = new bool[objInput.Length];
for (int i = 0; i < input.Length; i++)
input[i] = Convert.ToBoolean(objInput[i]);
// object[] objOutput = (object[])dic["output_state"];
// output = new bool[objOutput.Length];
// for (int i = 0; i < output.Length; i++)
// output[i] = Convert.ToBoolean(objOutput[i]);
object[] objOutput = (object[])dic["output_state"];
output = new bool[objOutput.Length];
for (int i = 0; i < output.Length; i++)
output[i] = Convert.ToBoolean(objOutput[i]);
// return true;
// }
// catch (Exception ex)
// {
// input = null;
// output = null;
// //Common.log.Error("", ex);
// return false;
// }
//}
return true;
}
catch (Exception ex)
{
input = null;
output = null;
//Common.log.Error("", ex);
return false;
}
}
/// <summary>
/// 获取PLC寄存器的内容
......@@ -341,16 +341,16 @@ namespace BLL
/// <param name="battery"></param>
/// <param name="mission_text"></param>
/// <returns></returns>
public bool Get_State(Agv_Info info, out int stateID, out string stateText, out int battery, out string mission_text)
public bool Get_State(Agv_Info info, out int stateID, out string stateText, out int battery, out string mission_text, out Agv_Info.clsPosition position)
{
stateID = -1;
stateText = "";
battery = 0;
mission_text = "";
position = new Agv_Info.clsPosition();
try
{
string url = "http://" + info.IP + "/api/v2.0.0/status?whitelist=state_id,state_text,battery_percentage,mission_text";
string url = "http://" + info.IP + "/api/v2.0.0/status?whitelist=state_id,state_text,battery_percentage,mission_text,position";
string json = HttpGet(url, info.IP, info.Authorization);
if (string.IsNullOrWhiteSpace(json)) return false;
......@@ -364,6 +364,11 @@ namespace BLL
string s = dic["battery_percentage"].ToString();
float f = Convert.ToSingle(s);
battery = Convert.ToInt32(f);
Dictionary<string, object> posDic = (Dictionary<string, object>)dic["position"];
if (posDic == null) return false;
position.orientation = Convert.ToDouble(posDic["orientation"].ToString());
position.x = Convert.ToDouble(posDic["x"]);
position.y = Convert.ToDouble(posDic["y"]);
return true;
}
catch (Exception ex)
......@@ -374,6 +379,44 @@ namespace BLL
}
/// <summary>
/// 获取节点位置
/// </summary>
public bool Get_Node_Pos(Agv_Info agv, ClientNode clientNode, out MirPosition mirPosition)
{
try
{
if (clientNode.Pos_guid.Equals(""))
{
mirPosition = null;
return false;
}
string url = "http://" + agv.IP + "/api/v2.0.0/positions/" + clientNode.Pos_guid;
string json = HttpGet(url, agv.IP, agv.Authorization);
if (string.IsNullOrWhiteSpace(json))
{
mirPosition = null;
return false;
}
mirPosition = JsonHelper.DeserializeJsonToObject<MirPosition>(json);
if (mirPosition == null)
{
mirPosition = null;
return false;
}
return true;
}
catch (Exception ex)
{
Common.log.Error("Get_Node_Pos", ex);
mirPosition = null;
return false;
}
}
/// <summary>
/// 小车状态改为Ready
/// </summary>
/// <param name="info"></param>
......@@ -482,7 +525,7 @@ namespace BLL
ping.Dispose();
if (result.Status != System.Net.NetworkInformation.IPStatus.Success)
{
Common.LogInfo("Ping " + ip + " 请求没有响应",false);
Common.LogInfo("Ping " + ip + " 请求没有响应", false);
return false;
}
return true;
......
......@@ -4,6 +4,9 @@ using System.Runtime.Serialization;
using System.ServiceModel.Activation;
using System;
using AGVControl;
using System.IO;
using System.Xml;
using System.Text;
namespace BLL
{
......@@ -11,8 +14,12 @@ namespace BLL
internal interface IWebService
{
[OperationContract]
[WebGet(UriTemplate = "CreateEmptyRecycleTask?emptyStation={line}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Result CreateEmptyRecycleTask(string line);
[WebInvoke(UriTemplate = "CreateEmptyRecycleTask", Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Xml)]
string CreateEmptyRecycleTask(Stream stream);//string line
//?emptyStation={line}
[OperationContract]
[WebInvoke(UriTemplate = "CreateEmptyRecycleTask?emptyStation={line}", Method = "GET", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Xml)]
string CreateEmptyRecycleTaskGET(string line);
}
......@@ -20,7 +27,7 @@ namespace BLL
internal class Result
{
[DataMember]
public string Succeed { get; set; }
public bool Succeed { get; set; }
[DataMember]
public string ResultData { get; set; }
......@@ -38,14 +45,68 @@ namespace BLL
{
}
public Result CreateEmptyRecycleTask(string line)
public string CreateEmptyRecycleTask(Stream stream)
{
Result res;
StreamReader sr = new StreamReader(stream);
string s = sr.ReadToEnd();
System.Collections.Specialized.NameValueCollection nvc = System.Web.HttpUtility.ParseQueryString(s);
string emptyStation = nvc["emptyStation"];
if(emptyStation ==null)
res = new Result() { Succeed = false, ResultData = null, ErrorMessage = "emptyStation =null "};
else
{
if(emptyStation.Equals("Feeder"))
{
emptyStation = "FeederOut";
}
AGVControl.Common.LogInfo("WebService Request emptyStation=" + emptyStation,false);
}
if (AGVControl.Common.agvProductionLine.TryGetValue(emptyStation, out string value))
{
res = new Result() { Succeed = true, ResultData = null, ErrorMessage = "" };
AGVControl.Common.LogInfo("WebService Response OK");
//加到任务
//int idx = AGVControl.Common.nodeInfo.FindIndex(s => s.Name == value);
//if (idx > -1)
// AGVControl.Common.linePlace.Add(value);
//else
// AGVControl.Common.log.Error("CreateEmptyRecycleTask " + value + "不存在");
if (!Common.AddLinePlace(value))
Common.log.Error("CreateEmptyRecycleTask 节点【" + value + "】不存在");
else
{
Common.LogInfo("任务:" + value + " 出空料架 【" + emptyStation + "】");
}
//System.IO.File.WriteAllLines(Common.CONFIG_PATH + "LinePlace.txt", Common.linePlace);
}
else
{
AGVControl.Common.LogInfo("WebService Request emptyStation=" + line);
res = new Result() { Succeed = false, ResultData = null, ErrorMessage = "Not find " + emptyStation };
AGVControl.Common.LogInfo("WebService Response false "+ "Not find " + emptyStation);
}
return JsonHelper.SerializeObject(res);
}
public string CreateEmptyRecycleTaskGET(string line)
{
Result res;
// StreamReader sr = new StreamReader(stream);
//string s = sr.ReadToEnd();
//System.Collections.Specialized.NameValueCollection nvc = System.Web.HttpUtility.ParseQueryString(s);
//string emptyStation = nvc["emptyStation"];
if (line.Equals("Feeder"))
{
line = "FeederOut";
}
AGVControl.Common.LogInfo("WebService Request emptyStation=" + line,false);
//if (line == null)
// res = new Result() { Succeed = "false", ResultData = null, ErrorMessage = "line =null " };
if (AGVControl.Common.agvProductionLine.TryGetValue(line, out string value))
{
res = new Result() { Succeed = "true", ResultData = "", ErrorMessage = "" };
res = new Result() { Succeed = true, ResultData = null, ErrorMessage = "" };
AGVControl.Common.LogInfo("WebService Response OK");
//加到任务
......@@ -54,21 +115,21 @@ namespace BLL
// AGVControl.Common.linePlace.Add(value);
//else
// AGVControl.Common.log.Error("CreateEmptyRecycleTask " + value + "不存在");
if(!Common.AddLinePlace(value))
AGVControl.Common.log.Error("CreateEmptyRecycleTask 节点【" + value + "】不存在");
if (!Common.AddLinePlace(value))
Common.log.Error("CreateEmptyRecycleTask 节点【" + value + "】不存在");
else
{
AGVControl.Common.LogInfo("CreateEmptyRecycleTask 节点【" + value + "】收到出空料架任务");
Common.LogInfo("任务:" + value + " 出空料架 【" + line + "】");
}
//System.IO.File.WriteAllLines(Common.CONFIG_PATH + "LinePlace.txt", Common.linePlace);
}
else
{
res = new Result() { Succeed = "false", ResultData = "", ErrorMessage = "Not find " + line };
AGVControl.Common.LogInfo("WebService Response false");
res = new Result() { Succeed = false, ResultData = null, ErrorMessage = "Not find " + line };
AGVControl.Common.LogInfo("WebService Response false " + "Not find " + line);
}
return res;
return JsonHelper.SerializeObject(res);
}
}
......@@ -81,7 +142,7 @@ namespace BLL
try
{
ClsWebService service = new ClsWebService();
_serviceHost = new WebServiceHost(service, new Uri(url));
_serviceHost = new WebServiceHost(service, new Uri(url));//service, new Uri(url)
_serviceHost.Open();
AGVControl.Common.LogInfo("Web服务已开启");
}
......@@ -95,7 +156,11 @@ namespace BLL
{
try
{
_serviceHost.Close();
if (_serviceHost.State != CommunicationState.Closed)//判断服务是否关闭
{
_serviceHost.Close();//关闭服务
}
//_serviceHost.Close();
AGVControl.Common.LogInfo("Web服务已关闭");
}
catch (Exception ex)
......@@ -104,6 +169,32 @@ namespace BLL
}
}
//public void RecycleTask(string lineName)
//{
// if (AGVControl.Common.agvProductionLine.TryGetValue(lineName, out string value))
// {
// AGVControl.Common.LogInfo("WebService Response OK");
// //加到任务
// //int idx = AGVControl.Common.nodeInfo.FindIndex(s => s.Name == value);
// //if (idx > -1)
// // AGVControl.Common.linePlace.Add(value);
// //else
// // AGVControl.Common.log.Error("CreateEmptyRecycleTask " + value + "不存在");
// if (!Common.AddLinePlace(value))
// Common.log.Error("CreateEmptyRecycleTask 节点【" + value + "】不存在");
// else
// {
// Common.LogInfo("任务:" + value + " 出空料架 【" + lineName + "】");
// }
// //System.IO.File.WriteAllLines(Common.CONFIG_PATH + "LinePlace.txt", Common.linePlace);
// }
// else
// {
// AGVControl.Common.LogInfo("WebService Response false");
// }
//}
}
......
......@@ -30,21 +30,12 @@
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
this.DgvAgv = new System.Windows.Forms.DataGridView();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column14 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column18 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column13 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column19 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column11 = new System.Windows.Forms.DataGridViewButtonColumn();
this.Column17 = new System.Windows.Forms.DataGridViewButtonColumn();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.DgvNode = new System.Windows.Forms.DataGridView();
this.Column6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column12 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column22 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column9 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column10 = new System.Windows.Forms.DataGridViewTextBoxColumn();
......@@ -52,39 +43,60 @@
this.Column16 = new System.Windows.Forms.DataGridViewButtonColumn();
this.Column15 = new System.Windows.Forms.DataGridViewButtonColumn();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.txtBoxMission = new System.Windows.Forms.TextBox();
this.btnDeleteMission = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.cmbBoxAGVName = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.TxtCharge5 = new System.Windows.Forms.TextBox();
this.BtnReadCharge5 = new System.Windows.Forms.Button();
this.ChkAutoCharge = new System.Windows.Forms.CheckBox();
this.label4 = new System.Windows.Forms.Label();
this.BtnWriteCharge5 = new System.Windows.Forms.Button();
this.TxtCharge6 = new System.Windows.Forms.TextBox();
this.BtnWriteCharge6 = new System.Windows.Forms.Button();
this.BtnReadCharge6 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.TxtCharge3 = new System.Windows.Forms.TextBox();
this.BtnReadCharge3 = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.BtnWriteCharge3 = new System.Windows.Forms.Button();
this.TxtCharge4 = new System.Windows.Forms.TextBox();
this.BtnWriteCharge4 = new System.Windows.Forms.Button();
this.BtnReadCharge4 = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.dgvLinePlace = new System.Windows.Forms.DataGridView();
this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.btnAddlinePlace = new System.Windows.Forms.Button();
this.btnReadlinePlace = new System.Windows.Forms.Button();
this.btnDeletelinePlace = new System.Windows.Forms.Button();
this.dgvLineMission = new System.Windows.Forms.DataGridView();
this.BtnClearError = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.BtnWriteCharge2 = new System.Windows.Forms.Button();
this.BtnReadCharge2 = new System.Windows.Forms.Button();
this.TxtCharge2 = new System.Windows.Forms.TextBox();
this.BtnWriteCharge1 = new System.Windows.Forms.Button();
this.BtnReadCharge1 = new System.Windows.Forms.Button();
this.TxtCharge1 = new System.Windows.Forms.TextBox();
this.ChkAutoCharge = new System.Windows.Forms.CheckBox();
this.BtnMissionAdd = new System.Windows.Forms.Button();
this.BtnMissionPause = new System.Windows.Forms.Button();
this.BtnMissionReady = new System.Windows.Forms.Button();
this.LstAgvPlace = new System.Windows.Forms.ListBox();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.TxtLog = new System.Windows.Forms.TextBox();
this.Column24 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column21 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column14 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column18 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column20 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column23 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column13 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column19 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column11 = new System.Windows.Forms.DataGridViewButtonColumn();
this.Column17 = new System.Windows.Forms.DataGridViewButtonColumn();
((System.ComponentModel.ISupportInitialize)(this.DgvAgv)).BeginInit();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.DgvNode)).BeginInit();
this.tabPage3.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvLinePlace)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvLineMission)).BeginInit();
this.tabPage2.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// DgvAgv
......@@ -100,9 +112,12 @@
this.Column1,
this.Column2,
this.Column3,
this.Column21,
this.Column14,
this.Column18,
this.Column20,
this.Column4,
this.Column23,
this.Column13,
this.Column19,
this.Column11,
......@@ -114,97 +129,10 @@
this.DgvAgv.RowHeadersVisible = false;
this.DgvAgv.RowHeadersWidth = 51;
this.DgvAgv.RowTemplate.Height = 23;
this.DgvAgv.Size = new System.Drawing.Size(1198, 158);
this.DgvAgv.Size = new System.Drawing.Size(1470, 196);
this.DgvAgv.TabIndex = 3;
this.DgvAgv.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvAgv_CellClick);
//
// Column1
//
this.Column1.HeaderText = "AGV名称";
this.Column1.MinimumWidth = 6;
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
this.Column1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column1.Width = 80;
//
// Column2
//
this.Column2.HeaderText = "IP";
this.Column2.MinimumWidth = 6;
this.Column2.Name = "Column2";
this.Column2.ReadOnly = true;
this.Column2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column2.Width = 125;
//
// Column3
//
this.Column3.HeaderText = "AGV状态";
this.Column3.MinimumWidth = 6;
this.Column3.Name = "Column3";
this.Column3.ReadOnly = true;
this.Column3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column3.Width = 125;
//
// Column14
//
this.Column14.HeaderText = "任务内容";
this.Column14.MinimumWidth = 6;
this.Column14.Name = "Column14";
this.Column14.ReadOnly = true;
this.Column14.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column14.Width = 120;
//
// Column18
//
this.Column18.HeaderText = "目标地点";
this.Column18.MinimumWidth = 6;
this.Column18.Name = "Column18";
this.Column18.ReadOnly = true;
this.Column18.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column18.Width = 80;
//
// Column4
//
this.Column4.HeaderText = "后续任务";
this.Column4.MinimumWidth = 6;
this.Column4.Name = "Column4";
this.Column4.ReadOnly = true;
this.Column4.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column4.Width = 80;
//
// Column13
//
this.Column13.HeaderText = "在线";
this.Column13.MinimumWidth = 6;
this.Column13.Name = "Column13";
this.Column13.ReadOnly = true;
this.Column13.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column13.Width = 60;
//
// Column19
//
this.Column19.HeaderText = "电量";
this.Column19.MinimumWidth = 6;
this.Column19.Name = "Column19";
this.Column19.ReadOnly = true;
this.Column19.Width = 60;
//
// Column11
//
this.Column11.HeaderText = "调用";
this.Column11.MinimumWidth = 6;
this.Column11.Name = "Column11";
this.Column11.ReadOnly = true;
this.Column11.Width = 60;
//
// Column17
//
this.Column17.HeaderText = "清除缓存";
this.Column17.MinimumWidth = 6;
this.Column17.Name = "Column17";
this.Column17.ReadOnly = true;
this.Column17.Width = 80;
//
// tabControl1
//
this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
......@@ -213,11 +141,11 @@
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(16, 180);
this.tabControl1.Location = new System.Drawing.Point(16, 219);
this.tabControl1.Margin = new System.Windows.Forms.Padding(4);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(1198, 579);
this.tabControl1.Size = new System.Drawing.Size(1470, 492);
this.tabControl1.TabIndex = 6;
//
// tabPage1
......@@ -227,7 +155,7 @@
this.tabPage1.Margin = new System.Windows.Forms.Padding(4);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(4);
this.tabPage1.Size = new System.Drawing.Size(1190, 550);
this.tabPage1.Size = new System.Drawing.Size(1462, 463);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "节点";
this.tabPage1.UseVisualStyleBackColor = true;
......@@ -238,27 +166,26 @@
this.DgvNode.AllowUserToDeleteRows = false;
this.DgvNode.AllowUserToResizeColumns = false;
this.DgvNode.AllowUserToResizeRows = false;
this.DgvNode.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)));
this.DgvNode.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.DgvNode.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column6,
this.Column12,
this.Column22,
this.Column7,
this.Column9,
this.Column10,
this.Column5,
this.Column16,
this.Column15});
this.DgvNode.Location = new System.Drawing.Point(8, 8);
this.DgvNode.Dock = System.Windows.Forms.DockStyle.Fill;
this.DgvNode.Location = new System.Drawing.Point(4, 4);
this.DgvNode.Margin = new System.Windows.Forms.Padding(4);
this.DgvNode.Name = "DgvNode";
this.DgvNode.ReadOnly = true;
this.DgvNode.RowHeadersVisible = false;
this.DgvNode.RowHeadersWidth = 50;
this.DgvNode.RowTemplate.Height = 23;
this.DgvNode.Size = new System.Drawing.Size(1171, 531);
this.DgvNode.Size = new System.Drawing.Size(1454, 455);
this.DgvNode.TabIndex = 1;
this.DgvNode.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvNode_CellClick);
//
......@@ -280,6 +207,14 @@
this.Column12.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column12.Width = 125;
//
// Column22
//
this.Column22.HeaderText = "位置";
this.Column22.MinimumWidth = 6;
this.Column22.Name = "Column22";
this.Column22.ReadOnly = true;
this.Column22.Width = 125;
//
// Column7
//
this.Column7.HeaderText = "动作";
......@@ -334,17 +269,11 @@
//
// tabPage3
//
this.tabPage3.Controls.Add(this.txtBoxMission);
this.tabPage3.Controls.Add(this.btnDeleteMission);
this.tabPage3.Controls.Add(this.groupBox2);
this.tabPage3.Controls.Add(this.groupBox1);
this.tabPage3.Controls.Add(this.BtnClearError);
this.tabPage3.Controls.Add(this.label2);
this.tabPage3.Controls.Add(this.label1);
this.tabPage3.Controls.Add(this.BtnWriteCharge2);
this.tabPage3.Controls.Add(this.BtnReadCharge2);
this.tabPage3.Controls.Add(this.TxtCharge2);
this.tabPage3.Controls.Add(this.BtnWriteCharge1);
this.tabPage3.Controls.Add(this.BtnReadCharge1);
this.tabPage3.Controls.Add(this.TxtCharge1);
this.tabPage3.Controls.Add(this.ChkAutoCharge);
this.tabPage3.Controls.Add(this.BtnMissionAdd);
this.tabPage3.Controls.Add(this.BtnMissionPause);
this.tabPage3.Controls.Add(this.BtnMissionReady);
......@@ -353,192 +282,280 @@
this.tabPage3.Margin = new System.Windows.Forms.Padding(4);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(4);
this.tabPage3.Size = new System.Drawing.Size(1190, 550);
this.tabPage3.Size = new System.Drawing.Size(1462, 463);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "任务";
this.tabPage3.UseVisualStyleBackColor = true;
//
// groupBox1
// txtBoxMission
//
this.txtBoxMission.Location = new System.Drawing.Point(1143, 82);
this.txtBoxMission.Name = "txtBoxMission";
this.txtBoxMission.Size = new System.Drawing.Size(100, 25);
this.txtBoxMission.TabIndex = 34;
//
// btnDeleteMission
//
this.btnDeleteMission.Location = new System.Drawing.Point(1143, 140);
this.btnDeleteMission.Name = "btnDeleteMission";
this.btnDeleteMission.Size = new System.Drawing.Size(100, 48);
this.btnDeleteMission.TabIndex = 33;
this.btnDeleteMission.Text = "删除任务";
this.btnDeleteMission.UseVisualStyleBackColor = true;
this.btnDeleteMission.Click += new System.EventHandler(this.btnDeleteMission_Click);
//
// groupBox2
//
this.groupBox2.Controls.Add(this.cmbBoxAGVName);
this.groupBox2.Controls.Add(this.label3);
this.groupBox2.Controls.Add(this.TxtCharge5);
this.groupBox2.Controls.Add(this.BtnReadCharge5);
this.groupBox2.Controls.Add(this.ChkAutoCharge);
this.groupBox2.Controls.Add(this.label4);
this.groupBox2.Controls.Add(this.BtnWriteCharge5);
this.groupBox2.Controls.Add(this.TxtCharge6);
this.groupBox2.Controls.Add(this.BtnWriteCharge6);
this.groupBox2.Controls.Add(this.BtnReadCharge6);
this.groupBox2.Controls.Add(this.label1);
this.groupBox2.Controls.Add(this.TxtCharge3);
this.groupBox2.Controls.Add(this.BtnReadCharge3);
this.groupBox2.Controls.Add(this.label2);
this.groupBox2.Controls.Add(this.BtnWriteCharge3);
this.groupBox2.Controls.Add(this.TxtCharge4);
this.groupBox2.Controls.Add(this.BtnWriteCharge4);
this.groupBox2.Controls.Add(this.BtnReadCharge4);
this.groupBox2.Location = new System.Drawing.Point(372, 8);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(338, 445);
this.groupBox2.TabIndex = 32;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "充电";
//
// cmbBoxAGVName
//
this.cmbBoxAGVName.FormattingEnabled = true;
this.cmbBoxAGVName.Location = new System.Drawing.Point(67, 64);
this.cmbBoxAGVName.Name = "cmbBoxAGVName";
this.cmbBoxAGVName.Size = new System.Drawing.Size(121, 23);
this.cmbBoxAGVName.TabIndex = 27;
this.cmbBoxAGVName.SelectedIndexChanged += new System.EventHandler(this.cmbBoxAGVName_SelectedIndexChanged);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(30, 295);
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(60, 15);
this.label3.TabIndex = 25;
this.label3.Text = "充电桩5";
//
// TxtCharge5
//
this.TxtCharge5.Location = new System.Drawing.Point(26, 314);
this.TxtCharge5.Margin = new System.Windows.Forms.Padding(4);
this.TxtCharge5.Name = "TxtCharge5";
this.TxtCharge5.Size = new System.Drawing.Size(127, 25);
this.TxtCharge5.TabIndex = 19;
//
// BtnReadCharge5
//
this.BtnReadCharge5.Location = new System.Drawing.Point(26, 347);
this.BtnReadCharge5.Margin = new System.Windows.Forms.Padding(4);
this.BtnReadCharge5.Name = "BtnReadCharge5";
this.BtnReadCharge5.Size = new System.Drawing.Size(128, 38);
this.BtnReadCharge5.TabIndex = 20;
this.BtnReadCharge5.Text = "读";
this.BtnReadCharge5.UseVisualStyleBackColor = true;
this.BtnReadCharge5.Click += new System.EventHandler(this.BtnReadWriteCharge_Click);
//
this.groupBox1.Controls.Add(this.dgvLinePlace);
this.groupBox1.Controls.Add(this.comboBox1);
this.groupBox1.Controls.Add(this.btnAddlinePlace);
this.groupBox1.Controls.Add(this.btnReadlinePlace);
this.groupBox1.Controls.Add(this.btnDeletelinePlace);
this.groupBox1.Location = new System.Drawing.Point(687, 199);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(319, 219);
this.groupBox1.TabIndex = 31;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "空料架任务";
// ChkAutoCharge
//
// dgvLinePlace
this.ChkAutoCharge.AutoSize = true;
this.ChkAutoCharge.Location = new System.Drawing.Point(50, 25);
this.ChkAutoCharge.Margin = new System.Windows.Forms.Padding(4);
this.ChkAutoCharge.Name = "ChkAutoCharge";
this.ChkAutoCharge.Size = new System.Drawing.Size(89, 19);
this.ChkAutoCharge.TabIndex = 10;
this.ChkAutoCharge.Text = "自动充电";
this.ChkAutoCharge.UseVisualStyleBackColor = true;
this.ChkAutoCharge.CheckedChanged += new System.EventHandler(this.ChkAutoCharge_CheckedChanged);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(166, 295);
this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(60, 15);
this.label4.TabIndex = 26;
this.label4.Text = "充电桩6";
//
// BtnWriteCharge5
//
this.BtnWriteCharge5.Location = new System.Drawing.Point(26, 393);
this.BtnWriteCharge5.Margin = new System.Windows.Forms.Padding(4);
this.BtnWriteCharge5.Name = "BtnWriteCharge5";
this.BtnWriteCharge5.Size = new System.Drawing.Size(128, 38);
this.BtnWriteCharge5.TabIndex = 21;
this.BtnWriteCharge5.Text = "写";
this.BtnWriteCharge5.UseVisualStyleBackColor = true;
this.BtnWriteCharge5.Click += new System.EventHandler(this.BtnReadWriteCharge_Click);
//
// TxtCharge6
//
this.TxtCharge6.Location = new System.Drawing.Point(162, 314);
this.TxtCharge6.Margin = new System.Windows.Forms.Padding(4);
this.TxtCharge6.Name = "TxtCharge6";
this.TxtCharge6.Size = new System.Drawing.Size(127, 25);
this.TxtCharge6.TabIndex = 22;
//
// BtnWriteCharge6
//
this.BtnWriteCharge6.Location = new System.Drawing.Point(162, 393);
this.BtnWriteCharge6.Margin = new System.Windows.Forms.Padding(4);
this.BtnWriteCharge6.Name = "BtnWriteCharge6";
this.BtnWriteCharge6.Size = new System.Drawing.Size(128, 38);
this.BtnWriteCharge6.TabIndex = 24;
this.BtnWriteCharge6.Text = "写";
this.BtnWriteCharge6.UseVisualStyleBackColor = true;
this.BtnWriteCharge6.Click += new System.EventHandler(this.BtnReadWriteCharge_Click);
//
// BtnReadCharge6
//
this.BtnReadCharge6.Location = new System.Drawing.Point(162, 347);
this.BtnReadCharge6.Margin = new System.Windows.Forms.Padding(4);
this.BtnReadCharge6.Name = "BtnReadCharge6";
this.BtnReadCharge6.Size = new System.Drawing.Size(128, 38);
this.BtnReadCharge6.TabIndex = 23;
this.BtnReadCharge6.Text = "读";
this.BtnReadCharge6.UseVisualStyleBackColor = true;
this.BtnReadCharge6.Click += new System.EventHandler(this.BtnReadWriteCharge_Click);
//
this.dgvLinePlace.AllowUserToAddRows = false;
this.dgvLinePlace.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvLinePlace.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column8});
this.dgvLinePlace.Location = new System.Drawing.Point(7, 37);
this.dgvLinePlace.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.dgvLinePlace.Name = "dgvLinePlace";
this.dgvLinePlace.RowHeadersVisible = false;
this.dgvLinePlace.RowHeadersWidth = 51;
this.dgvLinePlace.RowTemplate.Height = 27;
this.dgvLinePlace.Size = new System.Drawing.Size(132, 150);
this.dgvLinePlace.TabIndex = 28;
// label1
//
// Column8
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(29, 127);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(60, 15);
this.label1.TabIndex = 17;
this.label1.Text = "充电桩3";
//
this.Column8.HeaderText = "ITS任务";
this.Column8.MinimumWidth = 6;
this.Column8.Name = "Column8";
this.Column8.Width = 80;
// TxtCharge3
//
// comboBox1
//
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(179, 33);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(121, 23);
this.comboBox1.TabIndex = 30;
//
// btnAddlinePlace
//
this.btnAddlinePlace.Location = new System.Drawing.Point(163, 107);
this.btnAddlinePlace.Margin = new System.Windows.Forms.Padding(4);
this.btnAddlinePlace.Name = "btnAddlinePlace";
this.btnAddlinePlace.Size = new System.Drawing.Size(148, 38);
this.btnAddlinePlace.TabIndex = 26;
this.btnAddlinePlace.Text = "添加任务";
this.btnAddlinePlace.UseVisualStyleBackColor = true;
this.btnAddlinePlace.Click += new System.EventHandler(this.btnAddlinePlace_Click);
//
// btnReadlinePlace
//
this.btnReadlinePlace.Location = new System.Drawing.Point(163, 63);
this.btnReadlinePlace.Margin = new System.Windows.Forms.Padding(4);
this.btnReadlinePlace.Name = "btnReadlinePlace";
this.btnReadlinePlace.Size = new System.Drawing.Size(148, 38);
this.btnReadlinePlace.TabIndex = 29;
this.btnReadlinePlace.Text = "读取任务";
this.btnReadlinePlace.UseVisualStyleBackColor = true;
this.btnReadlinePlace.Click += new System.EventHandler(this.btnReadlinePlace_Click);
//
// btnDeletelinePlace
//
this.btnDeletelinePlace.Location = new System.Drawing.Point(163, 153);
this.btnDeletelinePlace.Margin = new System.Windows.Forms.Padding(4);
this.btnDeletelinePlace.Name = "btnDeletelinePlace";
this.btnDeletelinePlace.Size = new System.Drawing.Size(149, 38);
this.btnDeletelinePlace.TabIndex = 27;
this.btnDeletelinePlace.Text = "删除任务";
this.btnDeletelinePlace.UseVisualStyleBackColor = true;
this.btnDeletelinePlace.Click += new System.EventHandler(this.btnDeletelinePlace_Click);
this.TxtCharge3.Location = new System.Drawing.Point(25, 146);
this.TxtCharge3.Margin = new System.Windows.Forms.Padding(4);
this.TxtCharge3.Name = "TxtCharge3";
this.TxtCharge3.Size = new System.Drawing.Size(127, 25);
this.TxtCharge3.TabIndex = 11;
//
// BtnClearError
// BtnReadCharge3
//
this.BtnClearError.Location = new System.Drawing.Point(216, 142);
this.BtnClearError.Margin = new System.Windows.Forms.Padding(4);
this.BtnClearError.Name = "BtnClearError";
this.BtnClearError.Size = new System.Drawing.Size(128, 38);
this.BtnClearError.TabIndex = 19;
this.BtnClearError.Text = "清除错误";
this.BtnClearError.UseVisualStyleBackColor = true;
this.BtnClearError.Click += new System.EventHandler(this.BtnClearError_Click);
this.BtnReadCharge3.Location = new System.Drawing.Point(25, 179);
this.BtnReadCharge3.Margin = new System.Windows.Forms.Padding(4);
this.BtnReadCharge3.Name = "BtnReadCharge3";
this.BtnReadCharge3.Size = new System.Drawing.Size(128, 38);
this.BtnReadCharge3.TabIndex = 12;
this.BtnReadCharge3.Text = "读";
this.BtnReadCharge3.UseVisualStyleBackColor = true;
this.BtnReadCharge3.Click += new System.EventHandler(this.BtnReadWriteCharge_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(643, 10);
this.label2.Location = new System.Drawing.Point(165, 127);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(60, 15);
this.label2.TabIndex = 18;
this.label2.Text = "充电桩2";
this.label2.Text = "充电桩4";
//
// BtnWriteCharge3
//
this.BtnWriteCharge3.Location = new System.Drawing.Point(25, 225);
this.BtnWriteCharge3.Margin = new System.Windows.Forms.Padding(4);
this.BtnWriteCharge3.Name = "BtnWriteCharge3";
this.BtnWriteCharge3.Size = new System.Drawing.Size(128, 38);
this.BtnWriteCharge3.TabIndex = 13;
this.BtnWriteCharge3.Text = "写";
this.BtnWriteCharge3.UseVisualStyleBackColor = true;
this.BtnWriteCharge3.Click += new System.EventHandler(this.BtnReadWriteCharge_Click);
//
// TxtCharge4
//
this.TxtCharge4.Location = new System.Drawing.Point(161, 146);
this.TxtCharge4.Margin = new System.Windows.Forms.Padding(4);
this.TxtCharge4.Name = "TxtCharge4";
this.TxtCharge4.Size = new System.Drawing.Size(127, 25);
this.TxtCharge4.TabIndex = 14;
//
// BtnWriteCharge4
//
this.BtnWriteCharge4.Location = new System.Drawing.Point(161, 225);
this.BtnWriteCharge4.Margin = new System.Windows.Forms.Padding(4);
this.BtnWriteCharge4.Name = "BtnWriteCharge4";
this.BtnWriteCharge4.Size = new System.Drawing.Size(128, 38);
this.BtnWriteCharge4.TabIndex = 16;
this.BtnWriteCharge4.Text = "写";
this.BtnWriteCharge4.UseVisualStyleBackColor = true;
this.BtnWriteCharge4.Click += new System.EventHandler(this.BtnReadWriteCharge_Click);
//
// BtnReadCharge4
//
this.BtnReadCharge4.Location = new System.Drawing.Point(161, 179);
this.BtnReadCharge4.Margin = new System.Windows.Forms.Padding(4);
this.BtnReadCharge4.Name = "BtnReadCharge4";
this.BtnReadCharge4.Size = new System.Drawing.Size(128, 38);
this.BtnReadCharge4.TabIndex = 15;
this.BtnReadCharge4.Text = "读";
this.BtnReadCharge4.UseVisualStyleBackColor = true;
this.BtnReadCharge4.Click += new System.EventHandler(this.BtnReadWriteCharge_Click);
//
// label1
// groupBox1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(507, 10);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(60, 15);
this.label1.TabIndex = 17;
this.label1.Text = "充电桩1";
//
// BtnWriteCharge2
//
this.BtnWriteCharge2.Location = new System.Drawing.Point(639, 108);
this.BtnWriteCharge2.Margin = new System.Windows.Forms.Padding(4);
this.BtnWriteCharge2.Name = "BtnWriteCharge2";
this.BtnWriteCharge2.Size = new System.Drawing.Size(128, 38);
this.BtnWriteCharge2.TabIndex = 16;
this.BtnWriteCharge2.Text = "写";
this.BtnWriteCharge2.UseVisualStyleBackColor = true;
//
// BtnReadCharge2
//
this.BtnReadCharge2.Location = new System.Drawing.Point(639, 62);
this.BtnReadCharge2.Margin = new System.Windows.Forms.Padding(4);
this.BtnReadCharge2.Name = "BtnReadCharge2";
this.BtnReadCharge2.Size = new System.Drawing.Size(128, 38);
this.BtnReadCharge2.TabIndex = 15;
this.BtnReadCharge2.Text = "读";
this.BtnReadCharge2.UseVisualStyleBackColor = true;
//
// TxtCharge2
//
this.TxtCharge2.Location = new System.Drawing.Point(639, 29);
this.TxtCharge2.Margin = new System.Windows.Forms.Padding(4);
this.TxtCharge2.Name = "TxtCharge2";
this.TxtCharge2.Size = new System.Drawing.Size(127, 25);
this.TxtCharge2.TabIndex = 14;
//
// BtnWriteCharge1
//
this.BtnWriteCharge1.Location = new System.Drawing.Point(503, 108);
this.BtnWriteCharge1.Margin = new System.Windows.Forms.Padding(4);
this.BtnWriteCharge1.Name = "BtnWriteCharge1";
this.BtnWriteCharge1.Size = new System.Drawing.Size(128, 38);
this.BtnWriteCharge1.TabIndex = 13;
this.BtnWriteCharge1.Text = "写";
this.BtnWriteCharge1.UseVisualStyleBackColor = true;
//
// BtnReadCharge1
//
this.BtnReadCharge1.Location = new System.Drawing.Point(503, 62);
this.BtnReadCharge1.Margin = new System.Windows.Forms.Padding(4);
this.BtnReadCharge1.Name = "BtnReadCharge1";
this.BtnReadCharge1.Size = new System.Drawing.Size(128, 38);
this.BtnReadCharge1.TabIndex = 12;
this.BtnReadCharge1.Text = "读";
this.BtnReadCharge1.UseVisualStyleBackColor = true;
//
// TxtCharge1
//
this.TxtCharge1.Location = new System.Drawing.Point(503, 29);
this.TxtCharge1.Margin = new System.Windows.Forms.Padding(4);
this.TxtCharge1.Name = "TxtCharge1";
this.TxtCharge1.Size = new System.Drawing.Size(127, 25);
this.TxtCharge1.TabIndex = 11;
this.groupBox1.Controls.Add(this.dgvLineMission);
this.groupBox1.Location = new System.Drawing.Point(716, 19);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(392, 434);
this.groupBox1.TabIndex = 31;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "产线任务";
//
// ChkAutoCharge
// dgvLineMission
//
this.ChkAutoCharge.AutoSize = true;
this.ChkAutoCharge.Location = new System.Drawing.Point(367, 29);
this.ChkAutoCharge.Margin = new System.Windows.Forms.Padding(4);
this.ChkAutoCharge.Name = "ChkAutoCharge";
this.ChkAutoCharge.Size = new System.Drawing.Size(89, 19);
this.ChkAutoCharge.TabIndex = 10;
this.ChkAutoCharge.Text = "自动充电";
this.ChkAutoCharge.UseVisualStyleBackColor = true;
this.dgvLineMission.AllowUserToAddRows = false;
this.dgvLineMission.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvLineMission.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column24,
this.Column8});
this.dgvLineMission.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvLineMission.Location = new System.Drawing.Point(3, 21);
this.dgvLineMission.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.dgvLineMission.Name = "dgvLineMission";
this.dgvLineMission.RowHeadersVisible = false;
this.dgvLineMission.RowHeadersWidth = 51;
this.dgvLineMission.RowTemplate.Height = 27;
this.dgvLineMission.Size = new System.Drawing.Size(386, 410);
this.dgvLineMission.TabIndex = 28;
//
// BtnClearError
//
this.BtnClearError.Location = new System.Drawing.Point(216, 227);
this.BtnClearError.Margin = new System.Windows.Forms.Padding(4);
this.BtnClearError.Name = "BtnClearError";
this.BtnClearError.Size = new System.Drawing.Size(128, 44);
this.BtnClearError.TabIndex = 19;
this.BtnClearError.Text = "清除错误";
this.BtnClearError.UseVisualStyleBackColor = true;
this.BtnClearError.Click += new System.EventHandler(this.BtnClearError_Click);
//
// BtnMissionAdd
//
this.BtnMissionAdd.Location = new System.Drawing.Point(216, 98);
this.BtnMissionAdd.Location = new System.Drawing.Point(216, 151);
this.BtnMissionAdd.Margin = new System.Windows.Forms.Padding(4);
this.BtnMissionAdd.Name = "BtnMissionAdd";
this.BtnMissionAdd.Size = new System.Drawing.Size(128, 38);
this.BtnMissionAdd.Size = new System.Drawing.Size(128, 44);
this.BtnMissionAdd.TabIndex = 3;
this.BtnMissionAdd.Text = "添加任务";
this.BtnMissionAdd.UseVisualStyleBackColor = true;
......@@ -546,10 +563,10 @@
//
// BtnMissionPause
//
this.BtnMissionPause.Location = new System.Drawing.Point(216, 52);
this.BtnMissionPause.Location = new System.Drawing.Point(216, 82);
this.BtnMissionPause.Margin = new System.Windows.Forms.Padding(4);
this.BtnMissionPause.Name = "BtnMissionPause";
this.BtnMissionPause.Size = new System.Drawing.Size(128, 38);
this.BtnMissionPause.Size = new System.Drawing.Size(128, 44);
this.BtnMissionPause.TabIndex = 2;
this.BtnMissionPause.Text = "暂停";
this.BtnMissionPause.UseVisualStyleBackColor = true;
......@@ -560,7 +577,7 @@
this.BtnMissionReady.Location = new System.Drawing.Point(216, 8);
this.BtnMissionReady.Margin = new System.Windows.Forms.Padding(4);
this.BtnMissionReady.Name = "BtnMissionReady";
this.BtnMissionReady.Size = new System.Drawing.Size(128, 38);
this.BtnMissionReady.Size = new System.Drawing.Size(128, 44);
this.BtnMissionReady.TabIndex = 1;
this.BtnMissionReady.Text = "运行";
this.BtnMissionReady.UseVisualStyleBackColor = true;
......@@ -576,54 +593,162 @@
this.LstAgvPlace.Location = new System.Drawing.Point(8, 8);
this.LstAgvPlace.Margin = new System.Windows.Forms.Padding(4);
this.LstAgvPlace.Name = "LstAgvPlace";
this.LstAgvPlace.Size = new System.Drawing.Size(199, 530);
this.LstAgvPlace.Size = new System.Drawing.Size(199, 447);
this.LstAgvPlace.TabIndex = 0;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.tableLayoutPanel1);
this.tabPage2.Controls.Add(this.TxtLog);
this.tabPage2.Location = new System.Drawing.Point(4, 25);
this.tabPage2.Margin = new System.Windows.Forms.Padding(4);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(4);
this.tabPage2.Size = new System.Drawing.Size(1190, 550);
this.tabPage2.Size = new System.Drawing.Size(1462, 463);
this.tabPage2.TabIndex = 3;
this.tabPage2.Text = "日志";
this.tabPage2.UseVisualStyleBackColor = true;
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 2;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 35.06064F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 64.93936F));
this.tableLayoutPanel1.Controls.Add(this.TxtLog, 0, 0);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(4, 4);
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 1;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1182, 542);
this.tableLayoutPanel1.TabIndex = 5;
//
// TxtLog
//
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)));
this.TxtLog.Dock = System.Windows.Forms.DockStyle.Fill;
this.TxtLog.Location = new System.Drawing.Point(4, 4);
this.TxtLog.Margin = new System.Windows.Forms.Padding(4);
this.TxtLog.Multiline = true;
this.TxtLog.Name = "TxtLog";
this.TxtLog.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.TxtLog.Size = new System.Drawing.Size(406, 534);
this.TxtLog.TabIndex = 4;
this.TxtLog.Size = new System.Drawing.Size(1454, 455);
this.TxtLog.TabIndex = 5;
//
// Column24
//
this.Column24.HeaderText = "时间";
this.Column24.MinimumWidth = 6;
this.Column24.Name = "Column24";
this.Column24.Width = 180;
//
// Column8
//
this.Column8.HeaderText = "任务";
this.Column8.MinimumWidth = 6;
this.Column8.Name = "Column8";
this.Column8.Width = 80;
//
// Column1
//
this.Column1.HeaderText = "名称";
this.Column1.MinimumWidth = 6;
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
this.Column1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column1.Width = 80;
//
// Column2
//
this.Column2.HeaderText = "IP";
this.Column2.MinimumWidth = 6;
this.Column2.Name = "Column2";
this.Column2.ReadOnly = true;
this.Column2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column2.Width = 110;
//
// Column3
//
this.Column3.HeaderText = "状态";
this.Column3.MinimumWidth = 6;
this.Column3.Name = "Column3";
this.Column3.ReadOnly = true;
this.Column3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column3.Width = 60;
//
// Column21
//
this.Column21.HeaderText = "RFID";
this.Column21.MinimumWidth = 6;
this.Column21.Name = "Column21";
this.Column21.ReadOnly = true;
this.Column21.Width = 40;
//
// Column14
//
this.Column14.HeaderText = "任务内容";
this.Column14.MinimumWidth = 6;
this.Column14.Name = "Column14";
this.Column14.ReadOnly = true;
this.Column14.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column14.Width = 300;
//
// Column18
//
this.Column18.HeaderText = "目的地";
this.Column18.MinimumWidth = 6;
this.Column18.Name = "Column18";
this.Column18.ReadOnly = true;
this.Column18.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column18.Width = 60;
//
// Column20
//
this.Column20.HeaderText = "地点状态";
this.Column20.MinimumWidth = 6;
this.Column20.Name = "Column20";
this.Column20.ReadOnly = true;
this.Column20.Width = 80;
//
// Column4
//
this.Column4.HeaderText = "后续任务";
this.Column4.MinimumWidth = 6;
this.Column4.Name = "Column4";
this.Column4.ReadOnly = true;
this.Column4.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column4.Width = 50;
//
// Column23
//
this.Column23.HeaderText = "负载";
this.Column23.MinimumWidth = 6;
this.Column23.Name = "Column23";
this.Column23.ReadOnly = true;
this.Column23.Width = 60;
//
// Column13
//
this.Column13.HeaderText = "在线";
this.Column13.MinimumWidth = 6;
this.Column13.Name = "Column13";
this.Column13.ReadOnly = true;
this.Column13.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Column13.Width = 60;
//
// Column19
//
this.Column19.HeaderText = "电量";
this.Column19.MinimumWidth = 6;
this.Column19.Name = "Column19";
this.Column19.ReadOnly = true;
this.Column19.Width = 60;
//
// Column11
//
this.Column11.HeaderText = "调用";
this.Column11.MinimumWidth = 6;
this.Column11.Name = "Column11";
this.Column11.ReadOnly = true;
this.Column11.Width = 60;
//
// Column17
//
this.Column17.HeaderText = "清除缓存";
this.Column17.MinimumWidth = 6;
this.Column17.Name = "Column17";
this.Column17.ReadOnly = true;
this.Column17.Width = 60;
//
// FrmMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1230, 774);
this.ClientSize = new System.Drawing.Size(1502, 726);
this.Controls.Add(this.tabControl1);
this.Controls.Add(this.DgvAgv);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
......@@ -638,11 +763,12 @@
((System.ComponentModel.ISupportInitialize)(this.DgvNode)).EndInit();
this.tabPage3.ResumeLayout(false);
this.tabPage3.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dgvLinePlace)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvLineMission)).EndInit();
this.tabPage2.ResumeLayout(false);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.tabPage2.PerformLayout();
this.ResumeLayout(false);
}
......@@ -656,45 +782,57 @@
private System.Windows.Forms.Button BtnClearError;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button BtnWriteCharge2;
private System.Windows.Forms.Button BtnReadCharge2;
private System.Windows.Forms.TextBox TxtCharge2;
private System.Windows.Forms.Button BtnWriteCharge1;
private System.Windows.Forms.Button BtnReadCharge1;
private System.Windows.Forms.TextBox TxtCharge1;
private System.Windows.Forms.Button BtnWriteCharge4;
private System.Windows.Forms.Button BtnReadCharge4;
private System.Windows.Forms.TextBox TxtCharge4;
private System.Windows.Forms.Button BtnWriteCharge3;
private System.Windows.Forms.Button BtnReadCharge3;
private System.Windows.Forms.TextBox TxtCharge3;
private System.Windows.Forms.CheckBox ChkAutoCharge;
private System.Windows.Forms.Button BtnMissionAdd;
private System.Windows.Forms.Button BtnMissionPause;
private System.Windows.Forms.Button BtnMissionReady;
private System.Windows.Forms.ListBox LstAgvPlace;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.TextBox TxtLog;
private System.Windows.Forms.Button btnAddlinePlace;
private System.Windows.Forms.DataGridView dgvLinePlace;
private System.Windows.Forms.Button btnDeletelinePlace;
private System.Windows.Forms.Button btnReadlinePlace;
private System.Windows.Forms.DataGridView dgvLineMission;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column6;
private System.Windows.Forms.DataGridViewTextBoxColumn Column12;
private System.Windows.Forms.DataGridViewTextBoxColumn Column22;
private System.Windows.Forms.DataGridViewTextBoxColumn Column7;
private System.Windows.Forms.DataGridViewTextBoxColumn Column9;
private System.Windows.Forms.DataGridViewTextBoxColumn Column10;
private System.Windows.Forms.DataGridViewTextBoxColumn Column5;
private System.Windows.Forms.DataGridViewButtonColumn Column16;
private System.Windows.Forms.DataGridViewButtonColumn Column15;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox TxtCharge5;
private System.Windows.Forms.Button BtnReadCharge5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Button BtnWriteCharge5;
private System.Windows.Forms.TextBox TxtCharge6;
private System.Windows.Forms.Button BtnWriteCharge6;
private System.Windows.Forms.Button BtnReadCharge6;
private System.Windows.Forms.TextBox TxtLog;
private System.Windows.Forms.ComboBox cmbBoxAGVName;
private System.Windows.Forms.Button btnDeleteMission;
private System.Windows.Forms.TextBox txtBoxMission;
private System.Windows.Forms.DataGridViewTextBoxColumn Column24;
private System.Windows.Forms.DataGridViewTextBoxColumn Column8;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
private System.Windows.Forms.DataGridViewTextBoxColumn Column21;
private System.Windows.Forms.DataGridViewTextBoxColumn Column14;
private System.Windows.Forms.DataGridViewTextBoxColumn Column18;
private System.Windows.Forms.DataGridViewTextBoxColumn Column20;
private System.Windows.Forms.DataGridViewTextBoxColumn Column4;
private System.Windows.Forms.DataGridViewTextBoxColumn Column23;
private System.Windows.Forms.DataGridViewTextBoxColumn Column13;
private System.Windows.Forms.DataGridViewTextBoxColumn Column19;
private System.Windows.Forms.DataGridViewButtonColumn Column11;
private System.Windows.Forms.DataGridViewButtonColumn Column17;
private System.Windows.Forms.GroupBox groupBox1;
}
}
using System;
using BLL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
......@@ -13,12 +14,18 @@ namespace AGVControl
public partial class FrmMain : Form
{
private bool exit = false;
private bool change;
private NotifyIcon notify;
private ContextMenuStrip notifyMenu;
private System.Timers.Timer showTimer;
public FrmMain()
{
InitializeComponent();
showTimer = new System.Timers.Timer();
showTimer.Interval = 3000;
showTimer.Enabled = true;
showTimer.Elapsed += ShowTimer_Elapsed;
showTimer.Start();
Common.logTextBox = TxtLog;
}
......@@ -38,7 +45,6 @@ namespace AGVControl
{
n = DgvNode.Rows.Add(Common.nodeInfo[i].ToRow());
DgvNode.Rows[n].HeaderCell.Value = (n + 1).ToString();
comboBox1.Items.Add(Common.nodeInfo[i].Name);
if (!Common.nodeInfo[i].Online)
DgvNode.Rows[n].DefaultCellStyle.ForeColor = Color.Red;
}
......@@ -69,6 +75,7 @@ namespace AGVControl
{
DgvAgv.Rows[agvIndex].SetValues(Common.agvInfo[agvIndex].ToRow());
}));
System.GC.Collect();
}
......@@ -115,10 +122,19 @@ namespace AGVControl
notify.MouseDoubleClick += Notify_MouseDoubleClick;
ShowConfig();
change = true;
ChkAutoCharge.Checked = Common.chargeStatus.AutoCharge;
change = false;
Common.control.AgvChanged += Control_AgvChanged;
Common.control.AgvOnline += Control_AgvOnline;
Common.server.NodeChanged += Server_NodeChanged;
Common.server.NodeOnline += Server_NodeOnline;
foreach (var item in Common.agvInfo)
{
cmbBoxAGVName.Items.Add(item.Name);
}
cmbBoxAGVName.Items.Add("None");
cmbBoxAGVName.SelectedIndex = Common.agvInfo.Count;
}
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
......@@ -128,23 +144,29 @@ namespace AGVControl
e.Cancel = true;
Hide();
}
showTimer.Enabled = false;
showTimer.Stop();
Common.control.AgvChanged -= Control_AgvChanged;
Common.control.AgvOnline -= Control_AgvOnline;
Common.server.NodeChanged -= Server_NodeChanged;
Common.server.NodeOnline -= Server_NodeOnline;
}
private void DgvAgv_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1) return;
if (e.ColumnIndex == 8) //调用
if (e.ColumnIndex == 11) //调用
{
Common.agvInfo[e.RowIndex].IsUse = !Common.agvInfo[e.RowIndex].IsUse;
DgvAgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = Common.agvInfo[e.RowIndex].IsUse.ToString();
Common.appConfig.AppSettings.Settings[Common.agvInfo[e.RowIndex].Name].Value = Common.agvInfo[e.RowIndex].IsUse.ToString();
Common.appConfig.Save();
}
else if (e.ColumnIndex == 9) //清除缓存
else if (e.ColumnIndex == 12) //清除缓存
{
//清除小车缓存
Common.LogInfo(string.Format("手动清除缓存,{0} {1}", Common.agvInfo[e.RowIndex].Name, Common.agvInfo[e.RowIndex].Place));
Common.LogInfo(string.Format("手动清除agv缓存,{0} {1}", Common.agvInfo[e.RowIndex].Name, Common.agvInfo[e.RowIndex].Place));
string place = Common.agvInfo[e.RowIndex].Place;
Common.agvInfo[e.RowIndex].Place = "";
Common.agvInfo[e.RowIndex].RFID = "";
......@@ -172,19 +194,20 @@ namespace AGVControl
{
if (e.RowIndex == -1) return;
if (e.ColumnIndex == 6) //调用
if (e.ColumnIndex == 7) //调用
{
Common.nodeInfo[e.RowIndex].IsUse = !Common.nodeInfo[e.RowIndex].IsUse;
DgvNode.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = Common.nodeInfo[e.RowIndex].IsUse.ToString();
Common.appConfig.AppSettings.Settings[Common.nodeInfo[e.RowIndex].Name].Value = Common.nodeInfo[e.RowIndex].IsUse.ToString();
Common.appConfig.Save();
}
else if (e.ColumnIndex == 7) //清除缓存
else if (e.ColumnIndex == 8) //清除缓存
{
//清除节点缓存
Common.LogInfo(string.Format("手动清除缓存,{0} {1}", Common.nodeInfo[e.RowIndex].AgvName, Common.nodeInfo[e.RowIndex].Name));
string name = Common.nodeInfo[e.RowIndex].AgvName;
//string name = Common.nodeInfo[e.RowIndex].AgvName;
Common.nodeInfo[e.RowIndex].AgvName = "";
Common.nodeInfo[e.RowIndex].RFID = "";
DgvNode.Rows[e.RowIndex].Cells[4].Value = "";
//清除小车缓存
......@@ -228,7 +251,12 @@ namespace AGVControl
int idx = DgvAgv.SelectedCells[0].RowIndex;
if (idx < 0) return;
if (Common.agvInfo[idx].IsCon)
Common.mir.Add_Mission(Common.agvInfo[idx], Common.agvMission[LstAgvPlace.Text]);
{
bool rtn = Common.mir.Add_Mission(Common.agvInfo[idx], Common.agvMission[LstAgvPlace.Text]);
if (!rtn)
return;
Common.agvInfo[idx].TaskSend = LstAgvPlace.Text;
}
}
......@@ -241,44 +269,182 @@ namespace AGVControl
Common.mir.Clear_Error(Common.agvInfo[idx]);
}
private void btnAddlinePlace_Click(object sender, EventArgs e)
private void ShowTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (comboBox1.SelectedItem == null)
ShowEmptyTask();
}
private void ShowEmptyTask()
{
if (dgvLineMission.InvokeRequired)
{
MessageBox.Show("请先选择任务节点!");
dgvLineMission.Invoke(new Action(() => ShowEmptyTask()));
return;
}
Common.AddLinePlace(comboBox1.SelectedItem.ToString());
Common.LogInfo("手动添加【"+ comboBox1.SelectedItem.ToString() + "】出空料架任务");
dgvLinePlace.Rows.Clear();
foreach (var item in Common.linePlace)
try
{
dgvLinePlace.Rows.Add(item);
if (dgvLineMission.Rows.Count != 0)
dgvLineMission.Rows.Clear();
foreach (var item in Common.missionList)
{
var key = Common.agvProductionLine.Where(q => q.Value == item.NodeName).Select(q => q.Key);
dgvLineMission.Rows.Add(item.CreateTime, key.ToList()[0]);
}
}
catch(Exception ex)
{
Common.log.Error(ex);
}
}
private void BtnReadWriteCharge_Click(object sender, EventArgs e)
{
string name = (sender as System.Windows.Forms.Control).Name;
int num = Convert.ToInt32(name.Substring(name.Length - 1, 1));
//if (DgvAgv.SelectedCells.Count == 0) return;
int idx = cmbBoxAGVName.SelectedIndex;
if (idx >= Common.agvInfo.Count) return;
private void btnDeletelinePlace_Click(object sender, EventArgs e)
if (name.IndexOf("Read") > 0)
{
if (num == 3)
TxtCharge3.Text = Common.chargeStatus.charge3;
else if (num == 4)
TxtCharge4.Text = Common.chargeStatus.charge4;
else if (num == 5)
TxtCharge5.Text = Common.chargeStatus.charge5;
else if (num == 6)
TxtCharge6.Text = Common.chargeStatus.charge6;
}
else if (name.IndexOf("Write") > 0)
{
if (comboBox1.SelectedItem == null)
if (num == 3)
{
MessageBox.Show("请先选择任务节点!");
//if(!Common.chargeStatus.charge3.Equals(""))
//{
// MessageBox.Show("该充电桩已有小车");
//}
Common.chargeStatus.charge3 = TxtCharge3.Text;
}
else if (num == 4)
Common.chargeStatus.charge4 = TxtCharge4.Text;
else if (num == 5)
Common.chargeStatus.charge5 = TxtCharge5.Text;
else if (num == 6)
Common.chargeStatus.charge6 = TxtCharge6.Text;
if (Common.agvInfo[idx].IsCon)
{
bool rtn = Common.mir.Add_Mission(Common.agvInfo[idx], Common.agvMission["AutoCharge"+num.ToString()]);
if (!rtn)
return;
Common.agvInfo[idx].TaskSend = "AutoCharge" + num.ToString();
}
}
}
private void ChkAutoCharge_CheckedChanged(object sender, EventArgs e)
{
if (change) return;
Common.chargeStatus.AutoCharge = ChkAutoCharge.Checked;
}
Common.RemoveLinePlace(comboBox1.SelectedItem.ToString());
dgvLinePlace.Rows.Clear();
foreach (var item in Common.linePlace)
private void cmbBoxAGVName_SelectedIndexChanged(object sender, EventArgs e)
{
dgvLinePlace.Rows.Add(item);
if(cmbBoxAGVName.SelectedItem!=null)
{
switch(cmbBoxAGVName.SelectedIndex)
{
case 0:
TxtCharge4.Text = "MiR_R1763";
break;
case 1:
TxtCharge3.Text = "MiR_R1764";
break;
case 2:
TxtCharge5.Text = "MiR_R1767";
break;
case 3:
TxtCharge6.Text = "MiR_R1768";
break;
default:
TxtCharge3.Text = "";
TxtCharge4.Text = "";
TxtCharge5.Text = "";
TxtCharge6.Text = "";
break;
}
}
private void btnReadlinePlace_Click(object sender, EventArgs e)
//if(cmbBoxAGVName.SelectedItem!=null)
//{
// if(cmbBoxAGVName.SelectedItem.ToString()=="None")
// {
// TxtCharge3.Text = "";
// TxtCharge4.Text = "";
// TxtCharge5.Text = "";
// TxtCharge6.Text = "";
// }
// else
// {
// TxtCharge3.Text = cmbBoxAGVName.SelectedItem.ToString();
// TxtCharge4.Text = cmbBoxAGVName.SelectedItem.ToString();
// TxtCharge5.Text = cmbBoxAGVName.SelectedItem.ToString();
// TxtCharge6.Text = cmbBoxAGVName.SelectedItem.ToString();
// }
//}
}
private void btnDeleteMission_Click(object sender, EventArgs e)
{
dgvLinePlace.Rows.Clear();
foreach (var item in Common.linePlace)
if (txtBoxMission.Text == "")
return;
try
{
//int idx=Common.missionList.FindIndex(s => s.NodeName == Common.agvProductionLine[txtBoxMission.Text]);
if(Common.DelLinePlace(Common.agvProductionLine[txtBoxMission.Text]))
{
//Common.missionList.RemoveAt(idx);
//using (System.IO.StreamWriter file = new System.IO.StreamWriter(Common.CONFIG_PATH + "LinePlace.txt"))
//{
// foreach (var item in Common.missionList)
// {
// file.WriteLine(string.Format("{0},{1}", item.CreateTime, item.NodeName));
// }
//}
txtBoxMission.Text = "";
}
else
{
dgvLinePlace.Rows.Add(item);
Common.log.Error("手动删除任务失败");
txtBoxMission.Text = "";
}
}
catch(Exception ex)
{
Common.log.Error("手动删除任务失败:"+ex.Message);
txtBoxMission.Text = "";
}
}
private void button1_Click(object sender, EventArgs e)
{
Common.MissionStru k = Common.missionList[0];
Common.missionList.Remove(k);
Common.LogInfo("剩余需要出空料架的节点:");
Common.missionList.ForEach(s =>Common.LogInfo(string.Format("创建时间:{0},任务节点{1}",s.CreateTime,s.NodeName)));
}
}
}
......@@ -126,15 +126,24 @@
<metadata name="Column3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column21.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column14.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column18.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column20.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column23.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column13.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
......@@ -153,6 +162,9 @@
<metadata name="Column12.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column22.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column7.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
......@@ -171,6 +183,9 @@
<metadata name="Column15.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column24.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column8.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
......
......@@ -39,6 +39,7 @@ namespace AGVControl
}
}
Common.logTextBox = new TextBox();
Common.missionView = new DataGridView();
Common.log = log4net.LogManager.GetLogger("AgvServer");
Common.LogInfo("=====程序开始=====");
ReadConfig();
......@@ -46,8 +47,10 @@ namespace AGVControl
Common.mir = new MiR_API();
Common.control = new BLL.Control();
//软件开启时检查小车当前的任务状态
//软件开启时检查小车当前的任务状态,并获取各节点的坐标位置
Common.CheckAGVMissionState();
//获取节点位置
Common.GetNodesPosition();
Common.control.Start();
Common.server = new AgvServer();
Common.server.Start();
......@@ -74,12 +77,12 @@ namespace AGVControl
Common.agvInfo = new List<Agv_Info>();
path = Common.CONFIG_PATH + "AgvName.csv";
line = System.IO.File.ReadAllLines(path);
for (int i = 0; i < line.Length; i++)
for (int i = 1; i < line.Length; i++)
{
temp = line[i].Split(',');
if (temp.Length != 4) continue;
if (temp.Length != 5) continue;
isuse = Convert.ToBoolean(Common.appConfig.AppSettings.Settings[temp[1]].Value);
Common.agvInfo.Add(new Agv_Info(temp[0], temp[1], temp[2], temp[3], isuse));
Common.agvInfo.Add(new Agv_Info(temp[0], temp[1], temp[2], temp[3], temp[4], isuse));
}
Common.agvMission = new Dictionary<string, string>();
......@@ -93,16 +96,17 @@ namespace AGVControl
}
Common.nodeInfo = new List<ClientNode>();
Common.chargeStatus = new ChargeStatus();
Common.agvProductionLine = new Dictionary<string, string>();
path = Common.CONFIG_PATH + "AgvProductionLine.csv";
line = System.IO.File.ReadAllLines(path);
for (int i = 0; i < line.Length; i++)
for (int i = 1; i < line.Length; i++)
{
temp = line[i].Split(',');
if (temp.Length != 3) continue;
if (temp.Length != 5) continue;
Common.agvProductionLine.Add(temp[0], temp[1]);
bool isUse = Convert.ToBoolean(Common.appConfig.AppSettings.Settings[temp[1]].Value);
Common.nodeInfo.Add(new ClientNode(temp[1], temp[2], isUse));
Common.nodeInfo.Add(new ClientNode(temp[1], temp[2], isUse,temp[3],temp[4]));
}
......
......@@ -17,6 +17,20 @@
<conversionPattern value="[%date][%t]%-5p %m%n"/>
</layout>
</appender>
<appender name="LineWebService" type="log4net.Appender.RollingFileAppender">
<file value="logs/LineWebService.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n"/>
</layout>
</appender>
<logger>
<level value="Debug"/>
<appender-ref ref="LineWebService"/>
</logger>
<root>
<level value="Debug"/>
<appender-ref ref="AgvServer"/>
......@@ -24,54 +38,85 @@
</log4net>
<appSettings>
<add key="ITS" value="http://10.85.17.233/ESMTCommonInterface/CommonService.asmx/VMIGetBoxDestInfo?boxRFID=" />
<add key="WebService" value="http://10.85.199.1/Webservice/AGVService/"/>
<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="LocalIP" value="192.168.103.12"/>
<add key="AutoCharge" value="false"/>
<add key="ChargeWait" value="1"/>
<add key="ChargeThreshold" value="20,70"/>-->
<add key="MiR_R1763" value="false"/>
<add key="MiR_R1764" value="false"/>
<add key="MiR_R1767" value="false"/>
<add key="MiR_R1768" value="false"/>
<add key="A5" value="false"/>
<add key="A6" value="false"/>
<add key="E1" value="false"/>
<add key="E2" value="false"/>
<add key="E3" value="false"/>
<add key="E4" value="false"/>
<add key="E5" value="false"/>
<add key="E6" value="false"/>
<add key="E7" value="false"/>
<add key="E8" value="false"/>
<add key="E9" value="false"/>
<add key="E10" value="false"/>
<add key="E11" value="false"/>
<add key="E12" value="false"/>
<add key="E13" value="false"/>
<add key="E14" value="false"/>
<add key="E15" value="false"/>
<add key="E16" value="false"/>
<add key="E21" value="false"/>
<add key="E22" value="false"/>
<add key="G1" value="false"/>
<add key="G2" value="false"/>
<add key="G3" value="false"/>
<add key="G4" value="false"/>
<add key="G5" value="false"/>
<add key="G6" value="false"/>
<add key="G7" value="false"/>
<add key="G8" value="false"/>
<add key="G9" value="false"/>
<add key="G10" value="false"/>
<add key="G11" value="false"/>
<add key="G12" value="false"/>
<add key="G13" value="false"/>
<add key="G14" value="false"/>
<add key="G15" value="false"/>
<add key="G16" value="false"/>
<add key="G21" value="false"/>
<add key="G22" value="false"/>
<add key="FLEET" value="10.85.199.3" />
<add key="AutoCharge" value="True" />
<add key="ChargeWait" value="1" />
<add key="ChargeThreshold" value="20,70" />
<add key="MiR_R1763" value="True" />
<add key="MiR_R1764" value="False" />
<add key="MiR_R1767" value="False" />
<add key="MiR_R1768" value="False" />
<add key="A5" value="True" />
<add key="A6" value="True" />
<add key="E1" value="True" />
<add key="E2" value="True" />
<add key="E3" value="True" />
<add key="E4" value="True" />
<add key="E5" value="True" />
<add key="E6" value="True" />
<add key="E7" value="false" />
<add key="E8" value="True" />
<add key="E9" value="True" />
<add key="E10" value="True" />
<add key="E11" value="True" />
<add key="E12" value="True" />
<add key="E13" value="false" />
<add key="E14" value="True" />
<add key="E15" value="True" />
<add key="E16" value="True" />
<add key="E21" value="True" />
<add key="E22" value="True" />
<add key="G1" value="false" />
<add key="G2" value="false" />
<add key="G3" value="false" />
<add key="G4" value="false" />
<add key="G5" value="false" />
<add key="G6" value="false" />
<add key="G7" value="false" />
<add key="G8" value="false" />
<add key="G9" value="false" />
<add key="G10" value="false" />
<add key="G11" value="false" />
<add key="G12" value="false" />
<add key="G13" value="false" />
<add key="G14" value="false" />
<add key="G15" value="false" />
<add key="G16" value="false" />
<add key="G21" value="false" />
<add key="G22" value="false" />
</appSettings>
<system.serviceModel>
<services>
<!--添加服务-->
<service name="LineWebService.ClsWebService" behaviorConfiguration="CalculatorServiceBehavior">
<!--name 必须与代码中的host实例初始化的服务一样
behaviorConfiguration 行为配置 -->
<host>
<baseAddresses>
<!--添加调用服务地址-->
<add baseAddress="http://10.85.199.1/BenQMIR/Webservice/AGVService.asmx/"/>
</baseAddresses>
</host>
<!--添加契约接口 contract="WcfDemo.IService1" WcfDemo.IService1为契约接口 binding="wsHttpBinding" wsHttpBinding为通过Http调用-->
<endpoint address="" binding="wsHttpBinding" contract="LineWebService.IWebService"></endpoint>
</service>
</services>
<!--定义CalculatorServiceBehavior的行为-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
\ No newline at end of file
......@@ -19,3 +19,10 @@ MoveE16,5ec0f64a-b51a-11ea-b6ad-00012998f5a0
MoveE21,37401585-b51b-11ea-b6ad-00012998f5a0
MoveE22,a4846723-b51b-11ea-b6ad-00012998f5a0
Init,adcb7a04-b525-11ea-b6ad-00012998f5a0
Enter,51233d8c-c044-11ea-9a66-94c691a7387d
Leave,2e433130-c045-11ea-9a66-94c691a7387d
MoveStandby,ae6e4f12-c050-11ea-9a66-94c691a7387d
AutoCharge3,b7371c5f-c045-11ea-9a66-94c691a7387d
AutoCharge4,1296084c-c046-11ea-9a66-94c691a7387d
AutoCharge5,40c8f44e-c046-11ea-9a66-94c691a7387d
AutoCharge6,56cca0a3-c046-11ea-9a66-94c691a7387d
7,MiR_R1763,10.85.199.71,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
8,MiR_R1764,10.85.199.72,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
9,MiR_R1767,10.85.199.73,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
10,MiR_R1768,10.85.199.74,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
\ No newline at end of file
Fleet ID,agv,IP,Ȩ,IOID
7,MiR_R1763,10.85.199.71,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
8,MiR_R1764,10.85.199.72,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
9,MiR_R1767,10.85.199.73,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
10,MiR_R1768,10.85.199.74,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
A5,A5,
A6,A6,
D1,E1,10.85.199.42
D2,E2,10.85.199.90
D3,E3,10.85.199.91
D4,E4,10.85.199.92
D5,E5,10.85.199.93
D6,E6,10.85.199.94
D8,E8,10.85.199.95
D9,E9,10.85.199.180
D10,E10,10.85.199.181
D11,E11,10.85.199.182
D12,E12,10.85.199.183
D14,E14,10.85.199.184
D15,E15,10.85.199.185
D16,E16,10.85.199.96
FeederIn,E21,
FeederOut,E22,
C1,G1,
C2,G2,
C3,G3,
C4,G4,
C5,G5,
C6,G6,
C7,G7,
C8,G8,
C9,G9,
C10,G10,
C11,G11,
C12,G12,
C13,G13,
C14,G14,
C15,G15,
C16,G16,
\ No newline at end of file
²úÏßÃû,½ÚµãÃû,IP,λÖÃÃû³Æ,λÖÃguid
A5,A5,,PA5,7ed952c3-b520-11ea-b6ad-00012998f5a0
A6,A6,,PA6,929eb1c2-b520-11ea-b6ad-00012998f5a0
D1,E1,10.85.199.42,DL1,3b823fe4-b368-11ea-a1a5-00012999830e
D2,E2,10.85.199.90,DL2,ede15fcb-b367-11ea-a1a5-00012999830e
D3,E3,10.85.199.91,DL3,43855a9b-b365-11ea-a1a5-00012999830e
D4,E4,10.85.199.92,DL4,73c8b98c-b368-11ea-a1a5-00012999830e
D5,E5,10.85.199.93,DL5,5436efd7-b432-11ea-a1a5-00012999830e
D6,E6,10.85.199.94,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
D8,E8,10.85.199.95,DL8,8f039d2e-b432-11ea-a1a5-00012999830e
D9,E9,10.85.199.180,DL9,9e0b64ab-b432-11ea-a1a5-00012999830e
D10,E10,10.85.199.181,DL10,aec7da80-b432-11ea-a1a5-00012999830e
D11,E11,10.85.199.182,DL11,c10984c9-b432-11ea-a1a5-00012999830e
D12,E12,10.85.199.183,DL12,d6e0b92a-b432-11ea-a1a5-00012999830e
D14,E14,10.85.199.184,DL14,efb04c55-b432-11ea-a1a5-00012999830e
D15,E15,10.85.199.185,DL15,fd6b1f95-b432-11ea-a1a5-00012999830e
D16,E16,10.85.199.96,line_16,ac6c413e-895e-11ea-9374-000129922ca6
FeederIn,E21,,PA21,
FeederOut,E22,,PA22,
C1,G1,,PA23,
C2,G2,,PA24,
C3,G3,,PA25,
C4,G4,,PA26,
C5,G5,,PA27,
C6,G6,,PA28,
C7,G7,,PA29,
C8,G8,,PA30,
C9,G9,,PA31,
C10,G10,,PA32,
C11,G11,,PA33,
C12,G12,,PA34,
C13,G13,,PA35,
C14,G14,,PA36,
C15,G15,,PA37,
C16,G16,,PA38,
G6
2020-07-15 21:20:59,E22
2020-07-15 21:21:01,E22
2020-07-15 21:21:02,E22
2020-07-15 21:21:03,E22
2020-07-15 21:21:03,E22
2020-07-15 21:21:07,E22
2020-07-15 21:21:17,E22
2020-07-15 21:21:17,E22
2020-07-15 21:21:19,E22
2020-07-15 21:21:19,E22
[2020-07-04 09:46:07,069][1]INFO =====程序开始=====
[2020-07-04 09:46:12,391][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-04 09:46:12,391][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-04 09:46:17,460][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-04 09:46:17,460][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-04 09:46:22,528][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-04 09:46:22,528][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-04 09:46:27,596][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-04 09:46:27,596][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-04 09:46:27,600][1]INFO Server Start
[2020-07-04 09:46:28,171][1]ERROR Open
System.ServiceModel.AddressAccessDeniedException: HTTP 无法注册 URL http://+:80/Webservice/AGVService/。进程不具有此命名空间的访问权限(有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=70353)。 ---> System.Net.HttpListenerException: 拒绝访问。
在 System.Net.HttpListener.AddAllPrefixes()
在 System.Net.HttpListener.Start()
在 System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
--- 内部异常堆栈跟踪的结尾 ---
在 System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
在 System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
在 System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
在 System.ServiceModel.Channels.TransportChannelListener.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.HttpChannelListener`1.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open()
在 BLL.WebService.Open(String url) 位置 C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\BLL\WebService.cs:行号 85
[2020-07-04 09:46:30,293][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-04 09:46:32,292][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-04 09:46:32,292][1]INFO E1 Ping 10.85.199.42 请求没有响应
[2020-07-04 09:46:34,292][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-04 09:46:34,293][1]INFO E2 Ping 10.85.199.90 请求没有响应
[2020-07-04 09:46:36,292][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-04 09:46:36,292][1]INFO E3 Ping 10.85.199.91 请求没有响应
[2020-07-04 09:46:38,293][1]INFO E4 Ping 10.85.199.92 请求没有响应
[2020-07-04 09:46:39,292][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-04 09:46:40,292][1]INFO E5 Ping 10.85.199.93 请求没有响应
[2020-07-04 09:46:41,292][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-04 09:46:42,292][1]INFO E6 Ping 10.85.199.94 请求没有响应
[2020-07-04 09:46:43,292][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-04 09:46:44,291][1]INFO E8 Ping 10.85.199.95 请求没有响应
[2020-07-04 09:46:45,292][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-04 09:46:46,293][1]INFO E9 Ping 10.85.199.180 请求没有响应
[2020-07-04 09:46:48,292][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-04 09:46:48,292][1]INFO E10 Ping 10.85.199.181 请求没有响应
[2020-07-04 09:46:50,292][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-04 09:46:50,293][1]INFO E11 Ping 10.85.199.182 请求没有响应
[2020-07-04 09:46:52,292][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-04 09:46:52,292][1]INFO E12 Ping 10.85.199.183 请求没有响应
[2020-07-04 09:46:54,291][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-04 09:46:54,291][1]INFO E14 Ping 10.85.199.184 请求没有响应
[2020-07-04 09:46:56,292][1]INFO E15 Ping 10.85.199.185 请求没有响应
[2020-07-04 09:46:57,292][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-04 09:46:58,292][1]INFO E16 Ping 10.85.199.96 请求没有响应
[2020-07-04 09:46:59,292][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-04 09:47:01,292][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-04 09:47:03,292][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-04 09:47:03,292][1]INFO E1 Ping 10.85.199.42 请求没有响应
[2020-07-04 09:47:05,293][1]INFO E2 Ping 10.85.199.90 请求没有响应
[2020-07-04 09:47:06,292][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-04 09:47:07,294][1]INFO E3 Ping 10.85.199.91 请求没有响应
[2020-07-04 13:59:40,139][1]INFO =====程序开始=====
[2020-07-04 13:59:45,446][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-04 13:59:45,446][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-04 13:59:50,513][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-04 13:59:50,513][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-04 13:59:55,582][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-04 13:59:55,582][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-04 14:00:00,650][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-04 14:00:00,650][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-04 14:00:00,655][1]INFO Server Start
[2020-07-04 14:00:01,172][1]ERROR Open
System.ServiceModel.AddressAccessDeniedException: HTTP 无法注册 URL http://+:80/Webservice/AGVService/。进程不具有此命名空间的访问权限(有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=70353)。 ---> System.Net.HttpListenerException: 拒绝访问。
在 System.Net.HttpListener.AddAllPrefixes()
在 System.Net.HttpListener.Start()
在 System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
--- 内部异常堆栈跟踪的结尾 ---
在 System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
在 System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
在 System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
在 System.ServiceModel.Channels.TransportChannelListener.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.HttpChannelListener`1.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open()
在 BLL.WebService.Open(String url) 位置 C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\BLL\WebService.cs:行号 85
[2020-07-04 14:00:03,272][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-04 14:00:05,271][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-04 14:00:05,271][1]INFO E1 Ping 10.85.199.42 请求没有响应
[2020-07-04 14:00:06,288][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-04 14:00:06,288][1]INFO E2 Ping 10.85.199.90 请求没有响应
[2020-07-04 14:00:08,270][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-04 14:00:08,270][1]INFO E3 Ping 10.85.199.91 请求没有响应
[2020-07-04 14:00:09,290][1]INFO E4 Ping 10.85.199.92 请求没有响应
[2020-07-04 14:00:11,270][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-04 14:00:11,271][1]INFO E5 Ping 10.85.199.93 请求没有响应
[2020-07-04 14:00:12,287][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-04 14:00:12,288][1]INFO E6 Ping 10.85.199.94 请求没有响应
[2020-07-04 14:00:14,272][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-04 14:00:14,272][1]INFO E8 Ping 10.85.199.95 请求没有响应
[2020-07-04 14:00:15,321][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-04 14:00:15,321][1]INFO E9 Ping 10.85.199.180 请求没有响应
[2020-07-04 14:00:17,271][1]INFO E10 Ping 10.85.199.181 请求没有响应
[2020-07-04 14:00:18,270][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-04 14:00:18,328][1]INFO E11 Ping 10.85.199.182 请求没有响应
[2020-07-04 14:00:18,330][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:43:45,264][1]INFO =====程序开始=====
[2020-07-08 15:43:53,942][1]INFO =====程序开始=====
[2020-07-08 15:43:59,404][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-08 15:43:59,404][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-08 15:44:04,477][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-08 15:44:04,477][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-08 15:44:09,548][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-08 15:44:09,548][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-08 15:44:14,620][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-08 15:44:14,620][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-08 15:44:19,694][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/7ed952c3-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-08 15:44:19,694][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:44:24,764][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/929eb1c2-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-08 15:44:24,764][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:44:29,836][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/3b823fe4-b368-11ea-a1a5-00012999830e Return:
[2020-07-08 15:44:29,836][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:44:34,905][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/ede15fcb-b367-11ea-a1a5-00012999830e Return:
[2020-07-08 15:44:34,905][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:44:39,977][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/43855a9b-b365-11ea-a1a5-00012999830e Return:
[2020-07-08 15:44:39,977][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:44:45,048][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/73c8b98c-b368-11ea-a1a5-00012999830e Return:
[2020-07-08 15:44:45,048][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:44:50,124][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/5436efd7-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:44:50,124][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:44:55,195][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/6b7710c1-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:44:55,195][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:00,265][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/8f039d2e-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:45:00,266][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:05,338][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/9e0b64ab-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:45:05,338][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:10,406][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/aec7da80-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:45:10,406][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:15,477][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/c10984c9-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:45:15,477][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:20,549][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/d6e0b92a-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:45:20,549][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:25,621][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/efb04c55-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:45:25,621][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:30,692][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/fd6b1f95-b432-11ea-a1a5-00012999830e Return:
[2020-07-08 15:45:30,692][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:35,761][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/ac6c413e-895e-11ea-9374-000129922ca6 Return:
[2020-07-08 15:45:35,762][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:35,813][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:35,864][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:35,915][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:35,966][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,017][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,067][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,118][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,169][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,220][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,270][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,322][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,372][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,423][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,474][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,525][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,576][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,626][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,676][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-08 15:45:36,714][1]INFO Server Start
[2020-07-08 15:45:38,031][7]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:45:39,721][7]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:45:41,043][7]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:45:42,720][7]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:45:44,084][7]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:45:45,721][7]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:45:47,096][7]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:45:48,721][7]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:45:50,110][7]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:45:51,720][7]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:45:53,123][7]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:45:54,721][7]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:45:56,130][7]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:45:57,721][7]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:45:59,131][7]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:46:00,720][7]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:46:02,132][7]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:46:03,720][7]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:46:05,132][7]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:46:06,724][7]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:46:08,238][7]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:46:08,713][1]ERROR Open
System.ServiceModel.AddressAccessDeniedException: HTTP 无法注册 URL http://+:80/Webservice/AGVService/。进程不具有此命名空间的访问权限(有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=70353)。 ---> System.Net.HttpListenerException: 拒绝访问。
在 System.Net.HttpListener.AddAllPrefixes()
在 System.Net.HttpListener.Start()
在 System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
--- 内部异常堆栈跟踪的结尾 ---
在 System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
在 System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
在 System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
在 System.ServiceModel.Channels.TransportChannelListener.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.HttpChannelListener`1.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open()
在 BLL.WebService.Open(String url) 位置 C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\BLL\WebService.cs:行号 85
[2020-07-08 15:46:09,728][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:09,729][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:09,729][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:09,729][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:09,729][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:09,729][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:09,729][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:09,730][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:09,731][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:09,731][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:09,731][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:09,731][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:09,731][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:09,731][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:09,731][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:10,221][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:46:11,243][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:12,732][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:12,733][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:13,228][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:46:14,253][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:15,734][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:15,735][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:16,222][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:46:17,250][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:18,736][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:19,222][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:46:20,251][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:21,738][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:21,739][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:21,739][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:21,739][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:21,739][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:22,300][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:46:23,259][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:24,740][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:24,741][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:25,222][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:46:26,259][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:27,743][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:27,744][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:28,223][1]INFO Ping 10.85.199.72 请求没有响应
[2020-07-08 15:46:29,262][1]INFO Ping 10.85.199.73 请求没有响应
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:30,745][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:30,746][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:30,747][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:30,747][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:31,223][1]INFO Ping 10.85.199.74 请求没有响应
[2020-07-08 15:46:32,261][1]INFO Ping 10.85.199.71 请求没有响应
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:33,747][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:33,748][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:33,749][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:33,749][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:33,749][6]DEBUG KeepLive 没有找到G16
[2020-07-08 15:46:41,177][6]DEBUG KeepLive 没有找到A5
[2020-07-08 15:46:41,178][6]DEBUG KeepLive 没有找到A6
[2020-07-08 15:46:41,178][6]DEBUG KeepLive 没有找到E1
[2020-07-08 15:46:41,178][6]DEBUG KeepLive 没有找到E2
[2020-07-08 15:46:41,178][6]DEBUG KeepLive 没有找到E3
[2020-07-08 15:46:41,179][6]DEBUG KeepLive 没有找到E4
[2020-07-08 15:46:41,179][6]DEBUG KeepLive 没有找到E5
[2020-07-08 15:46:41,179][6]DEBUG KeepLive 没有找到E6
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E8
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E9
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E10
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E11
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E12
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E14
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E15
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E16
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E21
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到E22
[2020-07-08 15:46:41,180][6]DEBUG KeepLive 没有找到G1
[2020-07-08 15:46:41,189][6]DEBUG KeepLive 没有找到G2
[2020-07-08 15:46:41,189][6]DEBUG KeepLive 没有找到G3
[2020-07-08 15:46:41,189][6]DEBUG KeepLive 没有找到G4
[2020-07-08 15:46:41,189][6]DEBUG KeepLive 没有找到G5
[2020-07-08 15:46:41,189][6]DEBUG KeepLive 没有找到G6
[2020-07-08 15:46:41,190][6]DEBUG KeepLive 没有找到G7
[2020-07-08 15:46:41,190][6]DEBUG KeepLive 没有找到G8
[2020-07-08 15:46:41,190][6]DEBUG KeepLive 没有找到G9
[2020-07-08 15:46:41,192][6]DEBUG KeepLive 没有找到G10
[2020-07-08 15:46:41,192][6]DEBUG KeepLive 没有找到G11
[2020-07-08 15:46:41,192][6]DEBUG KeepLive 没有找到G12
[2020-07-08 15:46:41,192][6]DEBUG KeepLive 没有找到G13
[2020-07-08 15:46:41,192][6]DEBUG KeepLive 没有找到G14
[2020-07-08 15:46:41,192][6]DEBUG KeepLive 没有找到G15
[2020-07-08 15:46:41,192][6]DEBUG KeepLive 没有找到G16
[2020-07-11 17:28:48,864][1]INFO =====程序开始=====
[2020-07-11 17:28:54,317][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:28:54,317][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:28:59,385][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:28:59,386][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:29:04,453][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:29:04,453][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:29:09,523][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:29:09,523][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:29:14,595][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/7ed952c3-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-11 17:29:14,595][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:29:19,663][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/929eb1c2-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-11 17:29:19,663][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:29:24,731][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/3b823fe4-b368-11ea-a1a5-00012999830e Return:
[2020-07-11 17:29:24,731][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:29:29,798][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/ede15fcb-b367-11ea-a1a5-00012999830e Return:
[2020-07-11 17:29:29,798][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:29:34,867][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/43855a9b-b365-11ea-a1a5-00012999830e Return:
[2020-07-11 17:29:34,867][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:29:39,934][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/73c8b98c-b368-11ea-a1a5-00012999830e Return:
[2020-07-11 17:29:39,934][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:29:45,004][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/5436efd7-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:29:45,004][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:29:50,072][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/6b7710c1-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:29:50,072][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:29:55,140][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/8f039d2e-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:29:55,140][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:00,210][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/9e0b64ab-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:30:00,210][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:05,277][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/aec7da80-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:30:05,277][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:10,347][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/c10984c9-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:30:10,347][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:15,416][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/d6e0b92a-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:30:15,416][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:20,485][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/efb04c55-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:30:20,485][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:25,553][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/fd6b1f95-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:30:25,553][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:30,622][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/ac6c413e-895e-11ea-9374-000129922ca6 Return:
[2020-07-11 17:30:30,622][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:30,673][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:30,723][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:30,774][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:30,825][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:30,876][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:30,927][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:30,978][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,029][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,079][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,130][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,181][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,232][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,283][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,334][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,385][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,435][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,486][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,537][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:30:31,545][1]INFO Server Start
[2020-07-11 17:30:34,263][7]INFO Ping 10.85.199.71 请求没有响应
[2020-07-11 17:30:36,261][7]INFO Ping 10.85.199.72 请求没有响应
[2020-07-11 17:30:38,260][7]INFO Ping 10.85.199.73 请求没有响应
[2020-07-11 17:30:40,260][7]INFO Ping 10.85.199.74 请求没有响应
[2020-07-11 17:30:43,260][7]INFO Ping 10.85.199.71 请求没有响应
[2020-07-11 17:30:45,261][7]INFO Ping 10.85.199.72 请求没有响应
[2020-07-11 17:30:47,260][7]INFO Ping 10.85.199.73 请求没有响应
[2020-07-11 17:30:49,260][7]INFO Ping 10.85.199.74 请求没有响应
[2020-07-11 17:30:53,943][1]INFO =====程序开始=====
[2020-07-11 17:30:59,263][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:30:59,264][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:31:04,332][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:31:04,332][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:31:09,400][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:31:09,400][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:31:14,468][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:31:14,468][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:31:19,537][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/7ed952c3-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-11 17:31:19,537][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:33:43,589][1]INFO =====程序开始=====
[2020-07-11 17:33:58,398][1]INFO =====程序开始=====
[2020-07-11 17:34:03,771][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:34:03,771][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:34:08,842][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:34:08,842][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:34:13,909][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:34:13,909][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:34:18,978][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:34:18,978][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:34:24,049][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/7ed952c3-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-11 17:34:24,049][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:34:29,117][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/929eb1c2-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-11 17:34:29,118][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:34:34,186][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/3b823fe4-b368-11ea-a1a5-00012999830e Return:
[2020-07-11 17:34:34,186][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:34:39,253][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/ede15fcb-b367-11ea-a1a5-00012999830e Return:
[2020-07-11 17:34:39,253][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:34:44,320][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/43855a9b-b365-11ea-a1a5-00012999830e Return:
[2020-07-11 17:34:44,321][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:34:49,389][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/73c8b98c-b368-11ea-a1a5-00012999830e Return:
[2020-07-11 17:34:49,389][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:34:54,456][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/5436efd7-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:34:54,457][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:34:59,524][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/6b7710c1-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:34:59,525][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:35:04,594][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/8f039d2e-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:35:04,594][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:35:09,661][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/9e0b64ab-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:35:09,662][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:35:14,729][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/aec7da80-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:35:14,729][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:35:19,797][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/c10984c9-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:35:19,798][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:35:24,866][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/d6e0b92a-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:35:24,867][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:35:29,936][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/efb04c55-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:35:29,936][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:35:35,005][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/fd6b1f95-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:35:35,005][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:35:47,164][1]INFO =====程序开始=====
[2020-07-11 17:35:52,583][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:35:52,583][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:35:57,651][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:35:57,651][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:36:02,720][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:36:02,720][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:36:07,788][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:36:07,788][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:36:12,859][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/7ed952c3-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-11 17:36:12,859][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:17,928][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/929eb1c2-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-11 17:36:17,928][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:22,998][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/3b823fe4-b368-11ea-a1a5-00012999830e Return:
[2020-07-11 17:36:22,998][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:28,066][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/ede15fcb-b367-11ea-a1a5-00012999830e Return:
[2020-07-11 17:36:28,066][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:33,134][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/43855a9b-b365-11ea-a1a5-00012999830e Return:
[2020-07-11 17:36:33,134][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:38,202][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/73c8b98c-b368-11ea-a1a5-00012999830e Return:
[2020-07-11 17:36:38,202][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:43,270][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/5436efd7-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:36:43,270][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:48,338][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/6b7710c1-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:36:48,338][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:53,405][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/8f039d2e-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:36:53,405][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:36:58,475][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/9e0b64ab-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:36:58,475][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:03,548][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/aec7da80-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:37:03,548][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:08,616][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/c10984c9-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:37:08,616][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:13,686][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/d6e0b92a-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:37:13,687][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:18,755][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/efb04c55-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:37:18,755][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:23,834][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/fd6b1f95-b432-11ea-a1a5-00012999830e Return:
[2020-07-11 17:37:23,834][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:28,902][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/ac6c413e-895e-11ea-9374-000129922ca6 Return:
[2020-07-11 17:37:28,903][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:28,954][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,004][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,055][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,106][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,157][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,208][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,259][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,310][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,361][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,411][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,462][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,513][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,564][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,615][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,666][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,717][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,767][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,818][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:37:29,827][1]INFO Server Start
[2020-07-11 17:37:35,441][1]INFO =====程序开始=====
[2020-07-11 17:37:40,778][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:37:40,778][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:37:55,346][1]INFO =====程序开始=====
[2020-07-11 17:38:00,689][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:38:00,689][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:38:05,758][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:38:05,758][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:38:56,002][1]INFO =====程序开始=====
[2020-07-11 17:39:01,337][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:39:01,337][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:39:06,406][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:39:06,406][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:39:11,474][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:39:11,474][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:41:24,811][1]INFO =====程序开始=====
[2020-07-11 17:42:58,888][1]INFO =====程序开始=====
[2020-07-11 17:43:04,246][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:43:04,246][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:43:09,313][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:43:09,313][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:43:14,383][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:43:14,383][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:46:39,069][1]INFO =====程序开始=====
[2020-07-11 17:55:36,008][1]INFO =====程序开始=====
[2020-07-11 17:55:41,337][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:55:41,337][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:55:46,408][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:55:46,408][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:55:51,477][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:55:51,477][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:55:56,545][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:55:56,545][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:57:00,908][1]INFO =====程序开始=====
[2020-07-11 17:57:06,265][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:57:06,266][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:57:11,332][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:57:11,332][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:57:16,400][1]DEBUG HttpGet URL: http://10.85.199.73/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:57:16,400][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:57:21,468][1]DEBUG HttpGet URL: http://10.85.199.74/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:57:21,468][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:57:26,538][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/positions/7ed952c3-b520-11ea-b6ad-00012998f5a0 Return:
[2020-07-11 17:57:26,538][1]ERROR GetNodesPosition 获取节点位置失败
[2020-07-11 17:58:25,885][1]INFO =====程序开始=====
[2020-07-11 17:58:31,204][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:58:31,205][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:58:46,885][1]INFO =====程序开始=====
[2020-07-11 17:58:52,211][1]DEBUG HttpGet URL: http://10.85.199.71/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:58:52,212][1]ERROR CheckAGVMissionState 获取PLC20失败
[2020-07-11 17:58:57,283][1]DEBUG HttpGet URL: http://10.85.199.72/api/v2.0.0/registers/20?whitelist=value Return:
[2020-07-11 17:58:57,283][1]ERROR CheckAGVMissionState 获取PLC20失败
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
bdf0a9ce03cae62dbc2f07d60fde59a6099eae99
2938b01b9d0da9b4db34a54b73f7f95a0ffd690c
......@@ -32,3 +32,4 @@ C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.exe
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\bin\Debug\Newtonsoft.Json.dll
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.csproj.CoreCompileInputs.cache
......@@ -22,7 +22,7 @@ namespace AsaPL
private readonly log4net.ILog LOG;
private readonly string IP; //远程IP地址
private const int PORT = 9500; //端口
private const int PORT = 9501; //端口
private const int SEND_INTERVAL = 2000; //客户端发送所有节点后的间隔
/// <summary>
......
......@@ -18,3 +18,4 @@ C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClient\bin\Debug\AsaPL.AgvClient
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClient\obj\Debug\AgvClient.csproj.CopyComplete
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClient\obj\Debug\AsaPL.AgvClient.dll
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClient\obj\Debug\AsaPL.AgvClient.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClient\obj\Debug\AgvClient.csprojAssemblyReference.cache
......@@ -33,6 +33,10 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="AsaPL.AgvClient, Version=1.0.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\AgvClient\bin\Debug\AsaPL.AgvClient.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>..\..\..\DLL\log4net.dll</HintPath>
</Reference>
......@@ -82,11 +86,5 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AgvClient\AgvClient.csproj">
<Project>{d9154766-67b0-4082-af8b-dcc7c4cfb5a2}</Project>
<Name>AgvClient</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
......@@ -18,7 +18,7 @@
</layout>
</appender>
<root>
<level value="Debug"/>
<level value="Info"/>
<appender-ref ref="AgvClient"/>
</root>
</log4net>
......
......@@ -35,6 +35,30 @@
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.button3 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button6 = new System.Windows.Forms.Button();
this.button7 = new System.Windows.Forms.Button();
this.button8 = new System.Windows.Forms.Button();
this.button9 = new System.Windows.Forms.Button();
this.button10 = new System.Windows.Forms.Button();
this.button11 = new System.Windows.Forms.Button();
this.button12 = new System.Windows.Forms.Button();
this.button13 = new System.Windows.Forms.Button();
this.button14 = new System.Windows.Forms.Button();
this.button15 = new System.Windows.Forms.Button();
this.button16 = new System.Windows.Forms.Button();
this.button17 = new System.Windows.Forms.Button();
this.button19 = new System.Windows.Forms.Button();
this.button20 = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.button5 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.label5 = new System.Windows.Forms.Label();
this.comboBox3 = new System.Windows.Forms.ComboBox();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// button1
......@@ -66,52 +90,24 @@
this.comboBox2.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.comboBox2.FormattingEnabled = true;
this.comboBox2.Items.AddRange(new object[] {
"A1",
"A2",
"A3",
"A4",
"A5",
"A6",
"B1",
"B2",
"B3",
"B4",
"B5",
"B6",
"C1",
"C2",
"C3",
"C4",
"C5",
"C6",
"C7",
"C8",
"D1",
"D2",
"D3",
"D4",
"E1",
"E2",
"E3",
"E4",
"E5",
"E6",
"E7",
"E8",
"E9",
"E10",
"E11",
"E12",
"E13",
"E14",
"E15",
"E16",
"E21",
"E22",
"F1",
"F2",
"F3",
"F4",
"G1",
"G2",
"G3",
......@@ -127,13 +123,7 @@
"G13",
"G14",
"G15",
"G16",
"G21",
"G22",
"H1",
"H2",
"H3",
"H4"});
"G16"});
this.comboBox2.Location = new System.Drawing.Point(81, 54);
this.comboBox2.Margin = new System.Windows.Forms.Padding(4);
this.comboBox2.Name = "comboBox2";
......@@ -150,11 +140,11 @@
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(143, 22);
this.label1.Location = new System.Drawing.Point(120, 25);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(39, 15);
this.label1.Size = new System.Drawing.Size(71, 15);
this.label1.TabIndex = 5;
this.label1.Text = "RFID";
this.label1.Text = "A6_RFID:";
//
// label2
//
......@@ -174,11 +164,298 @@
this.label3.TabIndex = 7;
this.label3.Text = "状态";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(479, 64);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(55, 15);
this.label4.TabIndex = 8;
this.label4.Text = "label4";
//
// button3
//
this.button3.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button3.Location = new System.Drawing.Point(13, 166);
this.button3.Margin = new System.Windows.Forms.Padding(4);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(115, 47);
this.button3.TabIndex = 10;
this.button3.Text = "E6";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.SetLineState);
//
// button4
//
this.button4.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button4.Location = new System.Drawing.Point(146, 108);
this.button4.Margin = new System.Windows.Forms.Padding(4);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(115, 47);
this.button4.TabIndex = 11;
this.button4.Text = "E2";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.SetLineState);
//
// button6
//
this.button6.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button6.Location = new System.Drawing.Point(269, 218);
this.button6.Margin = new System.Windows.Forms.Padding(4);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(115, 47);
this.button6.TabIndex = 13;
this.button6.Text = "E13";
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.SetLineState);
//
// button7
//
this.button7.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button7.Location = new System.Drawing.Point(402, 163);
this.button7.Margin = new System.Windows.Forms.Padding(4);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(115, 47);
this.button7.TabIndex = 14;
this.button7.Text = "E9";
this.button7.UseVisualStyleBackColor = true;
this.button7.Click += new System.EventHandler(this.SetLineState);
//
// button8
//
this.button8.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button8.Location = new System.Drawing.Point(536, 108);
this.button8.Margin = new System.Windows.Forms.Padding(4);
this.button8.Name = "button8";
this.button8.Size = new System.Drawing.Size(115, 47);
this.button8.TabIndex = 15;
this.button8.Text = "E5";
this.button8.UseVisualStyleBackColor = true;
this.button8.Click += new System.EventHandler(this.SetLineState);
//
// button9
//
this.button9.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button9.Location = new System.Drawing.Point(13, 111);
this.button9.Margin = new System.Windows.Forms.Padding(4);
this.button9.Name = "button9";
this.button9.Size = new System.Drawing.Size(115, 47);
this.button9.TabIndex = 16;
this.button9.Text = "E1";
this.button9.UseVisualStyleBackColor = true;
this.button9.Click += new System.EventHandler(this.SetLineState);
//
// button10
//
this.button10.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button10.Location = new System.Drawing.Point(536, 163);
this.button10.Margin = new System.Windows.Forms.Padding(4);
this.button10.Name = "button10";
this.button10.Size = new System.Drawing.Size(115, 47);
this.button10.TabIndex = 17;
this.button10.Text = "E10";
this.button10.UseVisualStyleBackColor = true;
this.button10.Click += new System.EventHandler(this.SetLineState);
//
// button11
//
this.button11.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button11.Location = new System.Drawing.Point(402, 218);
this.button11.Margin = new System.Windows.Forms.Padding(4);
this.button11.Name = "button11";
this.button11.Size = new System.Drawing.Size(115, 47);
this.button11.TabIndex = 18;
this.button11.Text = "E14";
this.button11.UseVisualStyleBackColor = true;
this.button11.Click += new System.EventHandler(this.SetLineState);
//
// button12
//
this.button12.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button12.Location = new System.Drawing.Point(655, 218);
this.button12.Margin = new System.Windows.Forms.Padding(4);
this.button12.Name = "button12";
this.button12.Size = new System.Drawing.Size(115, 47);
this.button12.TabIndex = 28;
this.button12.Text = "E16";
this.button12.UseVisualStyleBackColor = true;
this.button12.Click += new System.EventHandler(this.SetLineState);
//
// button13
//
this.button13.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button13.Location = new System.Drawing.Point(146, 218);
this.button13.Margin = new System.Windows.Forms.Padding(4);
this.button13.Name = "button13";
this.button13.Size = new System.Drawing.Size(115, 47);
this.button13.TabIndex = 27;
this.button13.Text = "E12";
this.button13.UseVisualStyleBackColor = true;
this.button13.Click += new System.EventHandler(this.SetLineState);
//
// button14
//
this.button14.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button14.Location = new System.Drawing.Point(269, 111);
this.button14.Margin = new System.Windows.Forms.Padding(4);
this.button14.Name = "button14";
this.button14.Size = new System.Drawing.Size(115, 47);
this.button14.TabIndex = 26;
this.button14.Text = "E3";
this.button14.UseVisualStyleBackColor = true;
this.button14.Click += new System.EventHandler(this.SetLineState);
//
// button15
//
this.button15.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button15.Location = new System.Drawing.Point(146, 166);
this.button15.Margin = new System.Windows.Forms.Padding(4);
this.button15.Name = "button15";
this.button15.Size = new System.Drawing.Size(115, 47);
this.button15.TabIndex = 25;
this.button15.Text = "E7";
this.button15.UseVisualStyleBackColor = true;
this.button15.Click += new System.EventHandler(this.SetLineState);
//
// button16
//
this.button16.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button16.Location = new System.Drawing.Point(11, 218);
this.button16.Margin = new System.Windows.Forms.Padding(4);
this.button16.Name = "button16";
this.button16.Size = new System.Drawing.Size(115, 47);
this.button16.TabIndex = 24;
this.button16.Text = "E11";
this.button16.UseVisualStyleBackColor = true;
this.button16.Click += new System.EventHandler(this.SetLineState);
//
// button17
//
this.button17.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button17.Location = new System.Drawing.Point(536, 218);
this.button17.Margin = new System.Windows.Forms.Padding(4);
this.button17.Name = "button17";
this.button17.Size = new System.Drawing.Size(115, 47);
this.button17.TabIndex = 23;
this.button17.Text = "E15";
this.button17.UseVisualStyleBackColor = true;
this.button17.Click += new System.EventHandler(this.SetLineState);
//
// button19
//
this.button19.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button19.Location = new System.Drawing.Point(402, 108);
this.button19.Margin = new System.Windows.Forms.Padding(4);
this.button19.Name = "button19";
this.button19.Size = new System.Drawing.Size(115, 47);
this.button19.TabIndex = 21;
this.button19.Text = "E4";
this.button19.UseVisualStyleBackColor = true;
this.button19.Click += new System.EventHandler(this.SetLineState);
//
// button20
//
this.button20.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button20.Location = new System.Drawing.Point(269, 166);
this.button20.Margin = new System.Windows.Forms.Padding(4);
this.button20.Name = "button20";
this.button20.Size = new System.Drawing.Size(115, 47);
this.button20.TabIndex = 20;
this.button20.Text = "E8";
this.button20.UseVisualStyleBackColor = true;
this.button20.Click += new System.EventHandler(this.SetLineState);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.button5);
this.groupBox1.Controls.Add(this.button2);
this.groupBox1.Controls.Add(this.checkBox1);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.comboBox3);
this.groupBox1.Controls.Add(this.button8);
this.groupBox1.Controls.Add(this.button12);
this.groupBox1.Controls.Add(this.button3);
this.groupBox1.Controls.Add(this.button13);
this.groupBox1.Controls.Add(this.button4);
this.groupBox1.Controls.Add(this.button14);
this.groupBox1.Controls.Add(this.button6);
this.groupBox1.Controls.Add(this.button15);
this.groupBox1.Controls.Add(this.button7);
this.groupBox1.Controls.Add(this.button16);
this.groupBox1.Controls.Add(this.button9);
this.groupBox1.Controls.Add(this.button17);
this.groupBox1.Controls.Add(this.button10);
this.groupBox1.Controls.Add(this.button19);
this.groupBox1.Controls.Add(this.button11);
this.groupBox1.Controls.Add(this.button20);
this.groupBox1.Location = new System.Drawing.Point(12, 145);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(796, 311);
this.groupBox1.TabIndex = 29;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "产线";
//
// button5
//
this.button5.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button5.Location = new System.Drawing.Point(659, 166);
this.button5.Margin = new System.Windows.Forms.Padding(4);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(115, 47);
this.button5.TabIndex = 33;
this.button5.Text = "E22";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.SetLineState);
//
// button2
//
this.button2.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button2.Location = new System.Drawing.Point(659, 108);
this.button2.Margin = new System.Windows.Forms.Padding(4);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(115, 47);
this.button2.TabIndex = 32;
this.button2.Text = "E21";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.SetLineState);
//
// checkBox1
//
this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(13, 33);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(89, 19);
this.checkBox1.TabIndex = 31;
this.checkBox1.Text = "自动回复";
this.checkBox1.UseVisualStyleBackColor = true;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(342, 79);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(55, 15);
this.label5.TabIndex = 30;
this.label5.Text = "label5";
//
// comboBox3
//
this.comboBox3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox3.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.comboBox3.FormattingEnabled = true;
this.comboBox3.Location = new System.Drawing.Point(13, 68);
this.comboBox3.Margin = new System.Windows.Forms.Padding(4);
this.comboBox3.Name = "comboBox3";
this.comboBox3.Size = new System.Drawing.Size(166, 32);
this.comboBox3.TabIndex = 29;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(470, 172);
this.ClientSize = new System.Drawing.Size(820, 490);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
......@@ -188,9 +465,11 @@
this.Controls.Add(this.button1);
this.Margin = new System.Windows.Forms.Padding(4);
this.Name = "Form1";
this.Text = "Form1";
this.Text = "agv对接客户端";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.Load += new System.EventHandler(this.Form1_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
......@@ -205,6 +484,29 @@
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Button button7;
private System.Windows.Forms.Button button8;
private System.Windows.Forms.Button button9;
private System.Windows.Forms.Button button10;
private System.Windows.Forms.Button button11;
private System.Windows.Forms.Button button12;
private System.Windows.Forms.Button button13;
private System.Windows.Forms.Button button14;
private System.Windows.Forms.Button button15;
private System.Windows.Forms.Button button16;
private System.Windows.Forms.Button button17;
private System.Windows.Forms.Button button19;
private System.Windows.Forms.Button button20;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.ComboBox comboBox3;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button2;
}
}
......@@ -25,11 +25,61 @@ namespace AgvClientTest
comboBox1.Items.Add((AsaPL.ClientAction)i);
comboBox1.SelectedIndex = 0;
comboBox2.SelectedIndex = 0;
comboBox3.Items.Add(AsaPL.ClientAction.MayEnter);
comboBox3.Items.Add(AsaPL.ClientAction.MayLeave);
comboBox3.SelectedIndex = 0;
client = new AsaPL.AgvClient("10.85.199.1");
client.SetStatus("E1", "C6", AsaPL.ClientAction.None);
client.ReadyEnter += AGV_ReadyEnter;
client.ReadyLeave += AGV_ReadyLeave;
client.SetStatus("E1", "", AsaPL.ClientAction.None);
client.SetStatus("E2", "", AsaPL.ClientAction.None);
client.SetStatus("E3", "", AsaPL.ClientAction.None);
client.SetStatus("E4", "", AsaPL.ClientAction.None);
client.SetStatus("E5", "", AsaPL.ClientAction.None);
client.SetStatus("E6", "", AsaPL.ClientAction.None);
client.SetStatus("E8", "", AsaPL.ClientAction.None);
client.SetStatus("E9", "", AsaPL.ClientAction.None);
client.SetStatus("E10", "", AsaPL.ClientAction.None);
client.SetStatus("E11", "", AsaPL.ClientAction.None);
client.SetStatus("E12", "", AsaPL.ClientAction.None);
client.SetStatus("E14", "", AsaPL.ClientAction.None);
client.SetStatus("E15", "", AsaPL.ClientAction.None);
client.SetStatus("E16", "", AsaPL.ClientAction.None);
client.SetStatus("E21", "", AsaPL.ClientAction.None);
client.SetStatus("E22", "", AsaPL.ClientAction.None);
client.Connect();
}
private void AGV_ReadyEnter(string nodeName)
{
if (checkBox1.Checked)
{
if (nodeName.StartsWith("A") || nodeName.EndsWith("A"))
return;
label4.Text = "收到" + nodeName + "ReadyEnter,节点状态变为MayEnter";
client.SetStatus(nodeName, "", AsaPL.ClientAction.MayEnter);
System.Threading.Thread.Sleep(10000);
client.SetStatus(nodeName, "", AsaPL.ClientAction.None);
label4.Text = "设置" + nodeName + " None";
}
}
private void AGV_ReadyLeave(string nodeName)
{
if (checkBox1.Checked)
{
if (nodeName.StartsWith("A") || nodeName.EndsWith("A"))
return;
label4.Text = "收到" + nodeName + "ReadyLeave,节点状态变为MayLeave";
client.SetStatus(nodeName, "", AsaPL.ClientAction.MayLeave);
System.Threading.Thread.Sleep(10000);
client.SetStatus(nodeName, "", AsaPL.ClientAction.None);
label4.Text = "设置" + nodeName + " None";
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
client.Close();
......@@ -37,7 +87,31 @@ namespace AgvClientTest
private void button1_Click(object sender, EventArgs e)
{
Task task = new Task(new Action(() => {
client.SetStatus(comboBox2.SelectedItem.ToString(), textBox1.Text, (AsaPL.ClientAction)comboBox1.SelectedIndex);
System.Threading.Thread.Sleep(10000);
client.SetStatus(comboBox2.SelectedItem.ToString(), "", AsaPL.ClientAction.None);
label4.Text = "设置" + comboBox2.SelectedItem.ToString() + " None";
}));
task.Start();
}
private void SetLineState(object sender, EventArgs e)
{
Task task = new Task(new Action(()=>{
if (comboBox3.SelectedItem == null)
return;
string name = ((Button)sender).Text;
client.SetStatus(name, "", (AsaPL.ClientAction)Enum.Parse(typeof(AsaPL.ClientAction), comboBox3.SelectedItem.ToString()));
label5.Text = name + " " + comboBox3.SelectedItem.ToString();
System.Threading.Thread.Sleep(10000);
client.SetStatus(name, "", AsaPL.ClientAction.None);
label5.Text = "设置" + name + " None";
}));
task.Start();
}
}
}
......@@ -18,7 +18,7 @@
</layout>
</appender>
<root>
<level value="Debug"/>
<level value="Info"/>
<appender-ref ref="AgvClient"/>
</root>
</log4net>
......
[2020-06-17 14:18:25,695][1]INFO SetStatus Name=E1, Action=NeedC, Level=Low
[2020-06-17 14:18:25,726][1]INFO Connect
[2020-06-17 14:18:27,766][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:27,766][3]INFO Server connection failed 1 times
[2020-06-17 14:18:30,785][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:30,785][3]INFO Server connection failed 2 times
[2020-06-17 14:18:33,797][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:33,797][3]INFO Server connection failed 3 times
[2020-06-17 14:18:36,808][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:36,808][3]INFO Server connection failed 4 times
[2020-06-17 14:18:39,819][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:39,820][3]INFO Server connection failed 5 times
[2020-06-17 14:18:42,831][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:42,831][3]INFO Server connection failed 6 times
[2020-06-17 14:18:45,844][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:45,844][3]INFO Server connection failed 7 times
[2020-06-17 14:18:48,857][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:48,857][3]INFO Server connection failed 8 times
[2020-06-17 14:18:51,870][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:51,870][3]INFO Server connection failed 9 times
[2020-06-17 14:18:54,886][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:54,886][3]INFO Server connection failed 10 times
[2020-06-17 14:18:57,898][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:18:57,898][3]INFO Server connection failed 11 times
[2020-06-17 14:19:00,908][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:00,908][3]INFO Server connection failed 12 times
[2020-06-17 14:19:03,919][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:03,919][3]INFO Server connection failed 13 times
[2020-06-17 14:19:06,930][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:06,930][3]INFO Server connection failed 14 times
[2020-06-17 14:19:09,941][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:09,941][3]INFO Server connection failed 15 times
[2020-06-17 14:19:12,953][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:12,953][3]INFO Server connection failed 16 times
[2020-06-17 14:19:15,965][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:15,965][3]INFO Server connection failed 17 times
[2020-06-17 14:19:18,977][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:18,977][3]INFO Server connection failed 18 times
[2020-06-17 14:19:21,989][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:21,989][3]INFO Server connection failed 19 times
[2020-06-17 14:19:25,002][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:25,002][3]INFO Server connection failed 20 times
[2020-06-17 14:19:28,013][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:28,013][3]INFO Server connection failed 21 times
[2020-06-17 14:19:31,026][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:31,026][3]INFO Server connection failed 22 times
[2020-06-17 14:19:34,035][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:19:34,035][3]INFO Server connection failed 23 times
[2020-06-17 14:19:37,041][3]INFO Server connection successful
[2020-06-17 14:19:37,850][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:19:40,952][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:19:44,054][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:19:47,156][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:19:50,258][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:19:53,360][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:19:56,462][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:19:59,564][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:20:02,666][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:20:05,768][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:20:08,869][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:20:11,971][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:20:15,073][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:20:18,175][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:20:21,277][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:20:24,389][5]ERROR Send()
System.Net.Sockets.SocketException (0x80004005): 你的主机中的软件中止了一个已建立的连接。
在 System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
在 System.Net.Sockets.Socket.Send(Byte[] buffer)
在 Asa.AgvClient.Send(Byte[] buff) 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 335
[2020-06-17 14:20:27,095][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:27,095][3]INFO Server connection failed 1 times
[2020-06-17 14:20:30,106][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:30,106][3]INFO Server connection failed 2 times
[2020-06-17 14:20:33,117][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:33,117][3]INFO Server connection failed 3 times
[2020-06-17 14:20:36,128][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:36,128][3]INFO Server connection failed 4 times
[2020-06-17 14:20:39,139][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:39,139][3]INFO Server connection failed 5 times
[2020-06-17 14:20:42,152][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:42,152][3]INFO Server connection failed 6 times
[2020-06-17 14:20:45,163][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:45,163][3]INFO Server connection failed 7 times
[2020-06-17 14:20:48,174][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:48,174][3]INFO Server connection failed 8 times
[2020-06-17 14:20:51,185][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:51,185][3]INFO Server connection failed 9 times
[2020-06-17 14:20:54,198][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:54,198][3]INFO Server connection failed 10 times
[2020-06-17 14:20:57,207][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:20:57,207][3]INFO Server connection failed 11 times
[2020-06-17 14:21:00,216][3]INFO 127.0.0.1:12001 服务器没有响应
[2020-06-17 14:21:00,216][3]INFO Server connection failed 12 times
[2020-06-17 14:21:01,045][1]INFO Close
[2020-06-17 14:27:26,246][1]INFO SetStatus Name=E1, Action=NeedC, Level=Low
[2020-06-17 14:29:48,177][1]INFO SetStatus Name=E1, Action=None, Level=Low
[2020-06-17 14:30:09,516][1]INFO SetStatus Name=E1, Action=None, Level=Low
[2020-06-17 14:30:09,526][1]INFO Connect
[2020-06-17 14:30:09,550][3]INFO Connect 127.0.0.1:12001
[2020-06-17 14:30:09,567][3]INFO Connect OK
[2020-06-17 14:30:09,567][3]INFO Server connection successful
[2020-06-17 14:30:12,655][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:30:15,758][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:30:18,860][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:30:21,962][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:30:22,266][1]INFO SetStatus Name=E1, Action=NeedD, Level=Low
[2020-06-17 14:30:25,064][5]DEBUG Send: AD 45 01 43 06 01 00 00 00 00 00 DA
[2020-06-17 14:30:28,165][5]DEBUG Send: AD 45 01 43 06 01 00 00 00 00 00 DA
[2020-06-17 14:30:31,267][5]DEBUG Send: AD 45 01 43 06 01 00 00 00 00 00 DA
[2020-06-17 14:30:34,369][5]DEBUG Send: AD 45 01 43 06 01 00 00 00 00 00 DA
[2020-06-17 14:30:37,471][5]DEBUG Send: AD 45 01 43 06 01 00 00 00 00 00 DA
[2020-06-17 14:30:39,929][1]INFO SetStatus Name=E1, Action=NeedEnter, Level=Low
[2020-06-17 14:30:40,573][5]DEBUG Send: AD 45 01 43 06 03 00 00 00 00 00 DA
[2020-06-17 14:30:43,675][5]DEBUG Send: AD 45 01 43 06 03 00 00 00 00 00 DA
[2020-06-17 14:30:44,739][1]INFO SetStatus Name=E1, Action=FinishEnter, Level=Low
[2020-06-17 14:30:46,777][5]DEBUG Send: AD 45 01 43 06 08 00 00 00 00 00 DA
[2020-06-17 14:30:49,879][5]DEBUG Send: AD 45 01 43 06 08 00 00 00 00 00 DA
[2020-06-17 14:30:52,981][5]DEBUG Send: AD 45 01 43 06 08 00 00 00 00 00 DA
[2020-06-17 14:30:53,437][1]INFO SetStatus Name=E1, Action=NeedC, Level=Low
[2020-06-17 14:30:56,082][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:30:59,184][5]DEBUG Send: AD 45 01 43 06 02 00 00 00 00 00 DA
[2020-06-17 14:30:59,499][1]INFO Close
[2020-06-17 14:48:12,949][1]INFO SetStatus Name=E1, Action=None, Level=Low
[2020-06-17 14:48:12,961][3]INFO Connect 127.0.0.1:12001
[2020-06-17 14:48:12,961][1]INFO Connect
[2020-06-17 14:48:14,995][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 Asa.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-17 14:48:15,017][3]INFO Server connection failed 1 times
[2020-06-17 14:48:16,018][3]INFO Connect 127.0.0.1:12001
[2020-06-17 14:48:18,033][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 Asa.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-17 14:48:18,034][3]INFO Server connection failed 2 times
[2020-06-17 14:48:19,035][3]INFO Connect 127.0.0.1:12001
[2020-06-17 14:48:21,047][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 Asa.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-17 14:48:21,048][3]INFO Server connection failed 3 times
[2020-06-17 14:48:22,049][3]INFO Connect 127.0.0.1:12001
[2020-06-17 14:48:22,050][3]INFO Connect OK
[2020-06-17 14:48:22,050][3]INFO Server connection successful
[2020-06-17 14:48:24,153][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:48:26,256][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:48:28,358][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:48:30,460][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:48:31,502][1]INFO SetStatus Name=E1, Action=NeedD, Level=Low
[2020-06-17 14:48:32,562][5]DEBUG Send: AD 45 01 43 06 01 00 00 00 00 00 DA
[2020-06-17 14:48:34,664][5]DEBUG Send: AD 45 01 43 06 01 00 00 00 00 00 DA
[2020-06-17 14:48:35,227][1]INFO SetStatus Name=E1, Action=ReadyEnter, Level=Low
[2020-06-17 14:48:36,766][5]DEBUG Send: AD 45 01 43 06 06 00 00 00 00 00 DA
[2020-06-17 14:48:38,868][5]DEBUG Send: AD 45 01 43 06 06 00 00 00 00 00 DA
[2020-06-17 14:48:38,994][1]INFO SetStatus Name=E1, Action=None, Level=Low
[2020-06-17 14:48:40,969][5]DEBUG Send: AD 45 01 43 06 00 00 00 00 00 00 DA
[2020-06-17 14:48:42,098][1]INFO Close
[2020-06-17 15:48:08,449][1]INFO SetStatus Name=E1, Action=None, Level=Low
[2020-06-17 15:48:08,460][1]INFO Connect
[2020-06-17 15:48:08,466][3]INFO Connect 127.0.0.1:12001
[2020-06-17 15:48:10,521][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 Asa.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-17 15:48:10,585][3]INFO Server connection failed 1 times
[2020-06-17 15:48:11,586][3]INFO Connect 127.0.0.1:12001
[2020-06-17 15:48:13,594][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 Asa.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-17 15:48:13,594][3]INFO Server connection failed 2 times
[2020-06-17 15:48:14,429][1]INFO Close
[2020-06-22 14:27:41,663][1]INFO SetStatus Name=E1, Action=None, Level=Low
[2020-06-22 14:27:41,672][1]INFO Connect
[2020-06-22 14:27:41,678][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:27:43,742][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:27:43,767][3]INFO Server connection failed 1 times
[2020-06-22 14:27:44,767][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:27:46,779][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:27:46,779][3]INFO Server connection failed 2 times
[2020-06-22 14:27:47,780][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:27:49,833][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:27:49,834][3]INFO Server connection failed 3 times
[2020-06-22 14:27:50,835][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:27:52,845][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:27:52,846][3]INFO Server connection failed 4 times
[2020-06-22 14:27:53,846][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:27:55,876][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:27:55,876][3]INFO Server connection failed 5 times
[2020-06-22 14:27:56,878][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:27:58,895][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:27:58,895][3]INFO Server connection failed 6 times
[2020-06-22 14:27:59,897][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:28:01,905][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:28:01,905][3]INFO Server connection failed 7 times
[2020-06-22 14:28:02,907][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:28:04,758][1]INFO Close
[2020-06-22 14:28:04,765][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 在一个非套接字上尝试了一个操作。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:28:04,765][3]INFO Server connection failed 8 times
[2020-06-22 14:47:45,843][1]INFO SetStatus Name=E1, Action=None, Level=Low
[2020-06-22 14:47:45,851][1]INFO Connect
[2020-06-22 14:47:45,874][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:47:47,948][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:47:47,985][3]INFO Server connection failed 1 times
[2020-06-22 14:47:48,985][3]INFO Connect 127.0.0.1:12001
[2020-06-22 14:47:51,045][3]ERROR Open()
System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 127.0.0.1:12001
在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
在 System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
在 System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port)
在 AsaPL.AgvClient.Open() 位置 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AgvClient\AgvClient.cs:行号 212
[2020-06-22 14:47:51,045][3]INFO Server connection failed 2 times
此文件的差异太大,无法显示。
此文件的差异太大,无法显示。
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
cd533fd09db9d85c047943019fec2d488dbf0b20
bdcb49d390ac20e7bf0fe235fb5519caf9b8a06d
......@@ -17,10 +17,10 @@ C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\bin\Debug\AgvClientTe
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\bin\Debug\AgvClientTest.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\bin\Debug\AsaPL.AgvClient.dll
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\bin\Debug\AsaPL.AgvClient.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\obj\Debug\AgvClientTest.csprojAssemblyReference.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\obj\Debug\AgvClientTest.Form1.resources
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\obj\Debug\AgvClientTest.Properties.Resources.resources
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\obj\Debug\AgvClientTest.csproj.GenerateResource.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\obj\Debug\AgvClientTest.csproj.CopyComplete
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\obj\Debug\AgvClientTest.exe
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\obj\Debug\AgvClientTest.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\AgvClientTest\obj\Debug\AgvClientTest.csproj.CoreCompileInputs.cache
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<protocolMapping>
<add scheme="https" binding="basicHttpsBinding" />
</protocolMapping>
<bindings>
<webHttpBinding>
<binding name="webBinding" maxReceivedMessageSize="2147483647" crossDomainScriptAccessEnabled="true" >
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="LineWebService.ClsWebService" behaviorConfiguration="RESTBehavior">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:11111/BenQMIR/Webservice/AGVService.asmx" />
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint address =""
binding="webHttpBinding"
contract="LineWebService.IWebService"
behaviorConfiguration="ESEndPointBehavior">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="RESTBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="ESEndPointBehavior">
<webHttp helpEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace LineWebService
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“Service1”。
//[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Reentrant)]
///[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)]
public class ClsWebService : IWebService
{
//private readonly log4net.ILog LOG = log4net.LogManager.GetLogger("ClsWebService");
public ClsWebService()
{
}
public Result CreateEmptyRecycleTask(string line)
{
//LOG.Info("CreateEmptyRecycleTask emptyStation=" + line);
Result res;
if (!line.Equals(""))
{
res = new Result() { Succeed = "true", ResultData = "", ErrorMessage = "" };
//IWebService_Callback callback = OperationContext.Current.GetCallbackChannel<IWebService_Callback>();
//callback.GetEmptyRecycleTask(line);
}
else
{
res = new Result() { Succeed = "false", ResultData = "", ErrorMessage = "Not find " + line };
}
//if (AGVControl.Common.agvProductionLine.TryGetValue(line, out string value))
//{
// res = new Result() { Succeed = "true", ResultData = "", ErrorMessage = "" };
//LOG.Info("WebService Response OK");
// //加到任务
// //int idx = AGVControl.Common.nodeInfo.FindIndex(s => s.Name == value);
// //if (idx > -1)
// // AGVControl.Common.linePlace.Add(value);
// //else
// // AGVControl.Common.log.Error("CreateEmptyRecycleTask " + value + "不存在");
// if (!Common.AddLinePlace(value))
// Common.log.Error("CreateEmptyRecycleTask 节点【" + value + "】不存在");
// else
// {
// Common.LogInfo("任务:" + value + " 出空料架 【" + line + "】");
// }
// //System.IO.File.WriteAllLines(Common.CONFIG_PATH + "LinePlace.txt", Common.linePlace);
//}
//else
//{
// res = new Result() { Succeed = "false", ResultData = "", ErrorMessage = "Not find " + line };
//LOG.Info("WebService Response false");
//}
return res;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace LineWebService
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]//(CallbackContract = typeof(IWebService_Callback))
public interface IWebService
{
[OperationContract]
[WebInvoke(UriTemplate = "CreateEmptyRecycleTask?emptyStation={line}", Method = "Get",
BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Result CreateEmptyRecycleTask(string line);
//log4net.Config.XmlConfigurator.Configure();
// TODO: 在此添加您的服务操作
}
//[ServiceContract]
//public interface IWebService_Callback
//{
// [OperationContract(IsOneWay = true)]
// void GetEmptyRecycleTask(string lineName);
//}
// 使用下面示例中说明的数据约定将复合类型添加到服务操作。
[DataContract]
public class Result
{
[DataMember]
public string Succeed { get; set; }
[DataMember]
public string ResultData { get; set; }
[DataMember]
public string ErrorMessage { get; set; }
}
}
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{074D4597-8955-4EEE-840A-8FAA9B174603}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>WebService</RootNamespace>
<AssemblyName>WebService</AssemblyName>
<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<StartArguments>/client:"WcfTestClient.exe"</StartArguments>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<WcfConfigValidationEnabled>True</WcfConfigValidationEnabled>
<XsdCodeGenEnabled>True</XsdCodeGenEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="IWebService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ClsWebService.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<VSToolsPath Condition="'$(VSToolsPath)' == '' and '$(VisualStudioVersion)' != '' and '$(VisualStudioVersion)' != '11.0'">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio</VSToolsPath>
<WcfServiceModelTargetPath>$(VSToolsPath)\WCF</WcfServiceModelTargetPath>
</PropertyGroup>
<Import Project="$(WcfServiceModelTargetPath)\Microsoft.VisualStudio.ServiceModel.targets" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
<WcfProjectProperties>
<AutoStart>True</AutoStart>
</WcfProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
<WcfProjectProperties>
<PublishCopyOption>RunFiles</PublishCopyOption>
<PublishTargetLocation>
</PublishTargetLocation>
<PublishDeleteAllFiles>False</PublishDeleteAllFiles>
</WcfProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>
\ No newline at end of file
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("WebService")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WebService")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("074d4597-8955-4eee-840a-8faa9b174603")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
此文件类型无法预览
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<protocolMapping>
<add scheme="https" binding="basicHttpsBinding" />
</protocolMapping>
<bindings>
<webHttpBinding>
<binding name="webBinding" maxReceivedMessageSize="2147483647" crossDomainScriptAccessEnabled="true" >
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="LineWebService.ClsWebService" behaviorConfiguration="RESTBehavior">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:11111/BenQMIR/Webservice/AGVService.asmx" />
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint address =""
binding="webHttpBinding"
contract="LineWebService.IWebService"
behaviorConfiguration="ESEndPointBehavior">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="RESTBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="ESEndPointBehavior">
<webHttp helpEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
此文件类型无法预览
此文件类型无法预览
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebService\bin\Debug\WebService.dll.config
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebService\bin\Debug\WebService.dll
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebService\bin\Debug\WebService.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebService\obj\Debug\LineWebService.csproj.CoreCompileInputs.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebService\obj\Debug\LineWebService.csproj.CopyComplete
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebService\obj\Debug\WebService.dll
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebService\obj\Debug\WebService.pdb
<ValidationRecord xmlns="http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.ServiceModel.Validation" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><TimeStamps xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:dateTime>2020-07-13T08:16:06.3485648Z</a:dateTime><a:dateTime>2020-07-13T10:34:24.1092534Z</a:dateTime><a:dateTime>2020-07-11T07:25:50.8678866Z</a:dateTime></TimeStamps></ValidationRecord>
\ No newline at end of file
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
using BLL.BLL;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace BLL
{
public class AGVManager
{
//public static string Add_emptyMsg = "http://10.85.199.1/BenQMIR/Webservice/AGVService.asmx/CreateEmptyRecycleTask";//"http://localhost:11111/BenQMIR/Webservice/AGVService.asmx/CreateEmptyRecycleTask";//
public static string CreateEmptyTask(string Add_emptyMsg, string line)
{
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 = HttpUtil.Post(path, "emptyStation=" + line);//HttpHelper.Post(path, "");
//Common.log.Debug("【" + path + "】【" + resultStr + "】");
//Result data = JsonHelper.DeserializeJsonToObject<Result>(resultStr);
return resultStr;
//if (data == null)
//{
// return " updateDeviceAlarmMsg 没有收到服务器反馈";
//}
//else
//{
// return data.Succeed;
//}
}
catch (Exception e)
{
return e.ToString();
}
}
public static Result GetWebservice(string Add_emptyMsg,string id)
{
Result rb = new Result();
try
{
//http://10.85.36.156/BenQMIR/Webservice/AGVService.asmx
string strURL = Add_emptyMsg + "?emptyStation=" + id;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
//request.Method="get";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream s = response.GetResponseStream();
XmlTextReader Reader = new XmlTextReader(s);
Reader.MoveToContent();
string strValue = Reader.ReadInnerXml();
strValue = strValue.Replace("&lt;", "<");
strValue = strValue.Replace("&gt;", ">");
//{"Succeed":false,"ResultData":null,"ErrorMessage":"无法通过[Feederaaaa]lineCode找到小车停靠点"}
rb = JsonConvert.DeserializeObject<Result>(strValue);
Reader.Close();
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
}
return rb;
}
}
public class Result
{
public string Succeed { get; set; }
public string ResultData { get; set; }
public string ErrorMessage { get; set; }
}
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<protocolMapping>
<add scheme="https" binding="basicHttpsBinding" />
</protocolMapping>
<bindings>
<webHttpBinding>
<binding name="webBinding" maxReceivedMessageSize="2147483647" crossDomainScriptAccessEnabled="true" >
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="LineWebService.ClsWebService" behaviorConfiguration="RESTBehavior">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:22222/BenQMIR/Webservice/AGVService.asmx/" />
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint address =""
binding="webHttpBinding"
contract="LineWebService.IWebService"
behaviorConfiguration="ESEndPointBehavior">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="RESTBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="ESEndPointBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
namespace WebServiceTest
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.button3 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.button4 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(12, 12);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(132, 54);
this.button1.TabIndex = 0;
this.button1.Text = "监听";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(12, 90);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(132, 54);
this.button2.TabIndex = 1;
this.button2.Text = "关闭";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(26, 187);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(55, 15);
this.label1.TabIndex = 2;
this.label1.Text = "label1";
//
// button3
//
this.button3.Location = new System.Drawing.Point(273, 90);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(132, 54);
this.button3.TabIndex = 3;
this.button3.Text = "访问";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(150, 12);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(497, 72);
this.textBox1.TabIndex = 4;
this.textBox1.Text = "http://127.0.0.1/BenQMIR/Webservice/AGVService.asmx/CreateEmptyRecycleTask";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(160, 119);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(79, 25);
this.textBox2.TabIndex = 5;
this.textBox2.Text = "D1";
//
// textBox3
//
this.textBox3.Location = new System.Drawing.Point(150, 176);
this.textBox3.Multiline = true;
this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(497, 160);
this.textBox3.TabIndex = 6;
//
// button4
//
this.button4.Location = new System.Drawing.Point(443, 90);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(132, 54);
this.button4.TabIndex = 7;
this.button4.Text = "feeder区访问";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(678, 368);
this.Controls.Add(this.button4);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button3);
this.Controls.Add(this.label1);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "客户端创建产线任务";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Button button4;
}
}
using LineWebService;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.ServiceModel.Web;
using System.ServiceModel;
using System.Linq.Expressions;
using BLL;
namespace WebServiceTest
{
public partial class Form1 : Form//, IWebService_Callback
{
public Form1()
{
InitializeComponent();
}
private WebServiceHost _serviceHost;
public void HostOpen()
{
try
{
ClsWebService service = new ClsWebService();
_serviceHost = new WebServiceHost(typeof(ClsWebService));//service, new Uri(url)
if (_serviceHost.State != CommunicationState.Opened)//判断服务是否关闭
{
_serviceHost.Open();
}
label1.Text="Web服务已开启";
}
catch (Exception ex)
{
//AGVControl.Common.log.Error("Open", ex);
MessageBox.Show(ex.ToString());
}
}
public void HostClose()
{
try
{
if (_serviceHost.State != CommunicationState.Closed)//判断服务是否关闭
{
_serviceHost.Close();//关闭服务
}
//_serviceHost.Close();
label1.Text="Web服务已关闭";
}
catch (Exception ex)
{
//AGVControl.Common.log.Error("Close", ex);
MessageBox.Show(ex.ToString());
}
}
//public void GetEmptyRecycleTask(string lineName)
//{
// label1.Text = lineName;
// MessageBox.Show(lineName);
//}
public void RecycleTask(string lineName)
{
label1.Text = lineName;
MessageBox.Show(lineName);
//if (AGVControl.Common.agvProductionLine.TryGetValue(lineName, out string value))
//{
// AGVControl.Common.LogInfo("WebService Response OK");
// //加到任务
// //int idx = AGVControl.Common.nodeInfo.FindIndex(s => s.Name == value);
// //if (idx > -1)
// // AGVControl.Common.linePlace.Add(value);
// //else
// // AGVControl.Common.log.Error("CreateEmptyRecycleTask " + value + "不存在");
// if (!Common.AddLinePlace(value))
// Common.log.Error("CreateEmptyRecycleTask 节点【" + value + "】不存在");
// else
// {
// Common.LogInfo("任务:" + value + " 出空料架 【" + lineName + "】");
// }
// //System.IO.File.WriteAllLines(Common.CONFIG_PATH + "LinePlace.txt", Common.linePlace);
//}
//else
//{
// AGVControl.Common.LogInfo("WebService Response false");
//}
}
private void button1_Click(object sender, EventArgs e)
{
HostOpen();
}
private void button2_Click(object sender, EventArgs e)
{
HostClose();
}
private void button3_Click(object sender, EventArgs e)
{
textBox3.Text=AGVManager.CreateEmptyTask(textBox1.Text,textBox2.Text);
}
private void button4_Click(object sender, EventArgs e)
{
AGVManager.GetWebservice(textBox1.Text, textBox2.Text);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Collections;
using System.Net;
using System.Net.Security;
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Reflection;
using System.Net.NetworkInformation;
using BLL;
namespace BLL
{
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Collections;
using System.Net;
using System.Net.Security;
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Reflection;
using log4net;
using Newtonsoft.Json;
using System.Windows.Forms;
namespace BLL
{
public class HttpUtil
{
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public static string Post(string url, string paramData)
{
return Post(url, paramData, Encoding.UTF8);
}
public static T ObjPost<T>(string url, object o) where T : class
{
try
{
string json = JsonUtil.SerializeObject(o);
string result = Post(url, json);
if (!string.IsNullOrEmpty(result))
{
return JsonUtil.DeserializeJsonToObject<T>(result);
}
}
catch (Exception ex)
{
LOGGER.Error("Http post 出错" + ex);
}
return default(T);
}
public static List<T> ListPost<T>(string url, object o) where T : class
{
try
{
string json = JsonUtil.SerializeObject(o);
string result = Post(url, json);
if (!string.IsNullOrEmpty(result))
{
return JsonUtil.DeserializeJsonToList<T>(result);
}
}
catch (Exception ex)
{
LOGGER.Error("Http post 出错" + ex);
}
return new List<T>();
}
public static string Post(string url, string paramData, Encoding encoding)
{
string result = "";
if (url.ToLower().IndexOf("https", System.StringComparison.Ordinal) > -1)
{
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback((sender, certificate, chain, errors) => { return true; });
}
try
{
var wc = new TimeoutWebClient(5000);
if (string.IsNullOrEmpty(wc.Headers["Content-Type"]))
//wc.Headers.Add("Content-Type", "application/json;charset=UTF-8");
//如果需要将body中的参数以key/value格式发送到服务器,使用下面的Header
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
wc.Encoding = encoding;
//paramData = Uri.EscapeDataString(paramData);
result = wc.UploadString(url, "POST", paramData);
//LogUtil.info(result);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
LOGGER.Error("POST【" + paramData + "】 ERROR:", e);
}
//LOGGER.Info("post receive <<" + result );
return result;
}
public static string Get(string url)
{
return Get(url, Encoding.UTF8);
}
public static string Get(string url, Encoding encoding)
{
try
{
LOGGER.Info("HTTP GET FROM: " + url);
var wc = new WebClient { Encoding = encoding };
var readStream = wc.OpenRead(url);
using (var sr = new StreamReader(readStream, encoding))
{
var result = sr.ReadToEnd();
LOGGER.Info("get receive << " + result);
return result;
}
}
catch (Exception e)
{
LOGGER.Error("HTTP GET ERROR:", e);
}
return "";
}
}
/// <summary>
/// Json帮助类
/// </summary>
public class JsonUtil
{
/// <summary>
/// 将对象序列化为JSON格式
/// </summary>
/// <param name="o">对象</param>
/// <returns>json字符串</returns>
public static string SerializeObject(object o)
{
string json = JsonConvert.SerializeObject(o);
return json;
}
/// <summary>
/// 解析JSON字符串生成对象实体
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
/// <returns>对象实体</returns>
public static T DeserializeJsonToObject<T>(string json) where T : class
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
T t = o as T;
return t;
}
/// <summary>
/// 解析JSON数组生成对象实体集合
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
/// <returns>对象实体集合</returns>
public static List<T> DeserializeJsonToList<T>(string json) where T : class
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
List<T> list = o as List<T>;
return list;
}
/// <summary>
/// 反序列化JSON到给定的匿名对象.
/// </summary>
/// <typeparam name="T">匿名对象类型</typeparam>
/// <param name="json">json字符串</param>
/// <param name="anonymousTypeObject">匿名对象</param>
/// <returns>匿名对象</returns>
public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
{
T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
return t;
}
}
public class TimeoutWebClient : WebClient
{
private int _timeout;
/// <summary>
/// 超时时间(毫秒)
/// </summary>
public int Timeout
{
get
{
return _timeout;
}
set
{
_timeout = value;
}
}
public TimeoutWebClient()
{
this._timeout = 60000;
}
public TimeoutWebClient(int timeout)
{
this._timeout = timeout;
}
protected override WebRequest GetWebRequest(Uri address)
{
var result = base.GetWebRequest(address);
result.Timeout = this._timeout;
return result;
}
}
}
}
\ No newline at end of file
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
namespace BLL
{
/// <summary>
/// Json帮助类
/// </summary>
public class JsonHelper
{
/// <summary>
/// 将对象序列化为JSON格式
/// </summary>
/// <param name="o">对象</param>
/// <returns>json字符串</returns>
public static string SerializeObject(object o)
{
string json = JsonConvert.SerializeObject(o);
return json;
}
/// <summary>
/// 解析JSON字符串生成对象实体
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
/// <returns>对象实体</returns>
public static T DeserializeJsonToObject<T>(string json) where T : class
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
T t = o as T;
return t;
}
/// <summary>
/// 解析JSON数组生成对象实体集合
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
/// <returns>对象实体集合</returns>
public static List<T> DeserializeJsonToList<T>(string json) where T : class
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
List<T> list = o as List<T>;
return list;
}
/// <summary>
/// 反序列化JSON到给定的匿名对象.
/// </summary>
/// <typeparam name="T">匿名对象类型</typeparam>
/// <param name="json">json字符串</param>
/// <param name="anonymousTypeObject">匿名对象</param>
/// <returns>匿名对象</returns>
public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
{
T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
return t;
}
}
///// <summary>
///// 与服务器通信用对象
///// </summary>
//public class Operation
//{
// private string _cid = "";
// public string cid
// {
// get { return _cid; }
// set { _cid = value; }
// }
// public int seq { get; set; }
// public int op { get; set; }
// public int status { get; set; }
// private string _error = "";
// public string error
// {
// get { return _error; }
// set { _error = value; }
// }
// private Dictionary<string, string> _data = new Dictionary<string,string>();
// public Dictionary<string, string> data {
// get { return _data; }
// set { _data = value; }
// }
//}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
namespace BLL
{
public class MyWebClient:WebClient
{
private int _timeout;
/// <summary>
/// 超时时间(毫秒)
/// </summary>
public int Timeout
{
get
{
return _timeout;
}
set
{
_timeout = value;
}
}
public MyWebClient()
{
this._timeout = 60000;
}
public MyWebClient(int timeout)
{
this._timeout = timeout;
}
protected override WebRequest GetWebRequest(Uri address)
{
var result = base.GetWebRequest(address);
result.Timeout = this._timeout;
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WebServiceTest
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("WebServiceTest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WebServiceTest")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("a89f6ec4-457a-4998-acdc-f1adc22c8bf8")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Result" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>LineWebService.Result, WebService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServiceTest.Properties
{
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WebServiceTest.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 覆盖当前线程的 CurrentUICulture 属性
/// 使用此强类型的资源类的资源查找。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebServiceTest.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A89F6EC4-457A-4998-ACDC-F1ADC22C8BF8}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>WebServiceTest</RootNamespace>
<AssemblyName>WebServiceTest</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>bin\Debug\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel.Web" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="WebService">
<HintPath>..\WebService\bin\Debug\WebService.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AGVManager.cs" />
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="HttpHelper.cs" />
<Compile Include="JsonHelper.cs" />
<Compile Include="MyWebClient.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="Properties\DataSources\LineWebService.Result.datasource" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
此文件类型无法预览
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<protocolMapping>
<add scheme="https" binding="basicHttpsBinding" />
</protocolMapping>
<bindings>
<webHttpBinding>
<binding name="webBinding" maxReceivedMessageSize="2147483647" crossDomainScriptAccessEnabled="true" >
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="LineWebService.ClsWebService" behaviorConfiguration="RESTBehavior">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:11111/BenQMIR/Webservice/AGVService.asmx" />
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint address =""
binding="webHttpBinding"
contract="LineWebService.IWebService"
behaviorConfiguration="ESEndPointBehavior">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="RESTBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="ESEndPointBehavior">
<webHttp helpEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
此文件类型无法预览
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true"/>
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<protocolMapping>
<add scheme="https" binding="basicHttpsBinding" />
</protocolMapping>
<bindings>
<webHttpBinding>
<binding name="webBinding" maxReceivedMessageSize="2147483647" crossDomainScriptAccessEnabled="true" >
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="LineWebService.ClsWebService" behaviorConfiguration="RESTBehavior">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:22222/BenQMIR/Webservice/AGVService.asmx/" />
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint address =""
binding="webHttpBinding"
contract="LineWebService.IWebService"
behaviorConfiguration="ESEndPointBehavior">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="RESTBehavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="ESEndPointBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
此文件类型无法预览
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")]
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.Form1.resources
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.Properties.Resources.resources
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceHost.csproj.GenerateResource.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceHost.csproj.CoreCompileInputs.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.exe
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebServiceTest.exe.config
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebServiceTest.exe
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebServiceTest.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebService.dll
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebService.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebService.dll.config
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceHost.csproj.CopyComplete
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceHost.csprojAssemblyReference.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebServiceTest.exe.config
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebServiceTest.exe
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebServiceTest.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebService.dll
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\log4net.dll
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebService.pdb
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\bin\Debug\WebService.dll.config
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.csprojAssemblyReference.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.Form1.resources
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.Properties.Resources.resources
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.csproj.GenerateResource.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.csproj.CoreCompileInputs.cache
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.csproj.CopyComplete
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.exe
C:\ZDL\Gitee\AGVControl-Qisda-ProductionLine\WebServiceTest\obj\Debug\WebServiceTest.pdb
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!