using HH.WCS.TempleteOver.DispatchService;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Xml;
|
using static HH.WCS.Hexafluo.dispatch.NDC;
|
|
namespace HH.WCS.Hexafluo.dispatch
|
{
|
public class NDCHelper
|
{
|
private static HostToAGV callClient = new HostToAGV();
|
public static void Test()
|
{
|
//dic.Add("Ext1", ""); dic.Add("Ext2", ""); dic.Add("N_CNTR_COUNT", "");
|
//var r = callClient.AddNewOrderAsync(new AddNewOrderRequest() { bufin = "<Req><Order Pri='1' TS='1' From='1' To='2' No='123471118_1' Ext1='1' Ext2='CALLADDAGV' N_CNTR_COUNT='' /></Req>" });
|
//r.Wait();
|
|
var dic = new Dictionary<string, string>();
|
dic.Add("Pri", "1"); dic.Add("From", "1"); dic.Add("To", "1"); dic.Add("No", "12311411718_2");// dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", "");
|
var result = NDC.AddNewOrder(1, dic);
|
|
var dic1 = new Dictionary<string, string>();
|
var no = "3454566666";
|
dic1.Add("From", "1"); dic1.Add("To", "0"); dic1.Add("No", no);
|
result = NDC.AddNewOrder(101, dic1);
|
|
var dic2 = new Dictionary<string, string>();
|
dic2.Add("ExtDeviceNo", "1"); dic2.Add("From", "2"); dic2.Add("To", "2"); dic2.Add("No", DateTime.Now.Ticks.ToString()); dic2.Add("CtrlVal", "1");
|
result = NDC.AddNewOrder(39, dic2);
|
|
var dic3 = new Dictionary<string, string>();
|
dic3.Add("From", "1"); dic3.Add("To", "9"); dic3.Add("No", no);
|
result = NDC.CancelOrder(101, dic3);
|
|
var dic4 = new Dictionary<string, string>();
|
dic4.Add("ExtDeviceNo", "1"); dic4.Add("CtrlVal", "1"); dic4.Add("DispInfo", "AAAAAAAA"); dic4.Add("No", DateTime.Now.Ticks.ToString());
|
result = NDC.StartNewOrderWithQCmd(41, dic4);
|
|
var dic5 = new Dictionary<string, string>();
|
dic5.Add("ExtDeviceNo", "1"); dic5.Add("CtrlVal", "1"); dic5.Add("No", DateTime.Now.Ticks.ToString());
|
result = NDC.StartNewOrderWithQCmd(170, dic5);
|
|
var dic6 = new Dictionary<string, string>();
|
dic6.Add("ExtDeviceNo", "11"); dic6.Add("From", "2"); dic6.Add("To", "2"); dic6.Add("No", DateTime.Now.Ticks.ToString());
|
result = NDC.StartNewOrderWithQCmd(164, dic6);
|
|
var dic7 = new Dictionary<string, string>();
|
dic7.Add("Param1", "50"); dic7.Add("No", DateTime.Now.Ticks.ToString());
|
result = NDC.ChangeOrder(dic7);
|
}
|
|
/// <summary>
|
/// 改参
|
/// </summary>
|
/// <param name="taskNo"></param> 1111 22222
|
/// <param name="param1"></param>通知小车下一个站点的值 1101 22222
|
/// <param name="paramNo"></param>18 2
|
/// <returns></returns>
|
public static bool ChangeParam(string taskNo, int param1, int paramNo = 0)
|
{
|
bool bResult = false;
|
var dic = new Dictionary<string, string>();
|
dic.Add("No", taskNo);
|
if (paramNo >= 0)
|
{
|
dic.Add("ParamNo", paramNo.ToString());
|
}
|
dic.Add("Param1", param1.ToString());
|
var result = NewNDC.ChangeOrder(dic);
|
if (result.Res.ErrCode == 0) { bResult = true; }
|
return bResult;
|
}
|
|
|
/// <summary>
|
/// 修改优先级
|
/// </summary>
|
/// <param name="taskNo">任务号</param>
|
/// <param name="paramNo">优先级</param>
|
/// <returns></returns>
|
public static bool ChangeParamPri(string taskNo, int paramNo = 0)
|
{
|
bool bResult = false;
|
var dic = new Dictionary<string, string>();
|
dic.Add("No", taskNo);
|
if (paramNo >= 0)
|
{
|
dic.Add("Pri", paramNo.ToString());
|
}
|
dic.Add("IKey", "");
|
var result = NewNDC.ChangeOrder(dic);
|
if (result.Res.ErrCode == 0) { bResult = true; }
|
return bResult;
|
}
|
|
public static AGVResult ChangeParamTo(string taskNo, int paramNo, params int[] param)
|
{
|
bool bResult = false;
|
var AGVResult = new AGVResult();
|
|
|
//发送行走指令 到AGV
|
var req = $"<Req><Order No = '{taskNo}' ParamNo = '{paramNo}' Param1='{param[0]}'/></Req> ";
|
if (param.Length > 1)
|
{
|
req = $"<Req><Order No = '{taskNo}' ParamNo = '{paramNo}' Param1='{param[0]}' Param2='{param[1]}'/></Req> ";
|
}
|
try
|
{
|
LogHelper.Info("NDC", $"{req}");
|
var r = callClient.ChangeOrder(req);
|
return GetResult(r);
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
return AGVResult;
|
}
|
}
|
private static AGVResult GetResult(string bufout)
|
{
|
//<Res><ErrCode>0</ErrCode><Result>11</Result></Res>
|
XmlDocument xml = new XmlDocument();
|
xml.LoadXml(bufout);
|
var json = JsonConvert.SerializeXmlNode(xml);
|
return JsonConvert.DeserializeObject<AGVResult>(json);
|
}
|
|
public static bool Traffic(string lockNo)
|
{
|
bool bResult = false;
|
var dic = new Dictionary<string, string>();
|
dic.Add("ExtDeviceNo", lockNo);
|
dic.Add("From", "2");
|
dic.Add("To", "2"); dic.Add("No", DateTime.Now.Ticks.ToString());
|
|
var result = NDC.StartNewOrderWithQCmd(164, dic);
|
return bResult;
|
}
|
|
public static bool Cancel(string taskNo)
|
{
|
bool bResult = false;
|
var dic = new Dictionary<string, string>();
|
dic.Add("No", taskNo);
|
dic.Add("IsForce", "1");
|
|
var result = NDC.CancelOrder(1, dic);
|
return bResult;
|
}
|
}
|
}
|