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 = "" });
//r.Wait();
var dic = new Dictionary();
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();
var no = "3454566666";
dic1.Add("From", "1"); dic1.Add("To", "0"); dic1.Add("No", no);
result = NDC.AddNewOrder(101, dic1);
var dic2 = new Dictionary();
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();
dic3.Add("From", "1"); dic3.Add("To", "9"); dic3.Add("No", no);
result = NDC.CancelOrder(101, dic3);
var dic4 = new Dictionary();
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();
dic5.Add("ExtDeviceNo", "1"); dic5.Add("CtrlVal", "1"); dic5.Add("No", DateTime.Now.Ticks.ToString());
result = NDC.StartNewOrderWithQCmd(170, dic5);
var dic6 = new Dictionary();
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();
dic7.Add("Param1", "50"); dic7.Add("No", DateTime.Now.Ticks.ToString());
result = NDC.ChangeOrder(dic7);
}
///
/// 改参
///
/// 1111 22222
/// 通知小车下一个站点的值 1101 22222
/// 18 2
///
public static bool ChangeParam(string taskNo, int param1, int paramNo = 0)
{
bool bResult = false;
var dic = new Dictionary();
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;
}
///
/// 修改优先级
///
/// 任务号
/// 优先级
///
public static bool ChangeParamPri(string taskNo, int paramNo = 0)
{
bool bResult = false;
var dic = new Dictionary();
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 = $" ";
if (param.Length > 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)
{
//011
XmlDocument xml = new XmlDocument();
xml.LoadXml(bufout);
var json = JsonConvert.SerializeXmlNode(xml);
return JsonConvert.DeserializeObject(json);
}
public static bool Traffic(string lockNo)
{
bool bResult = false;
var dic = new Dictionary();
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();
dic.Add("No", taskNo);
dic.Add("IsForce", "1");
var result = NDC.CancelOrder(1, dic);
return bResult;
}
}
}