2230173_宁德吉利极片库WCS代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

148 lines
5.5 KiB

using CommLayerFactory;
using ICommLayer;
using Nancy;
using Nancy.Bootstrapper;
using Nancy.Hosting.Self;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WcfControlMonitorLib
{
public class SampleModule : NancyModule
{
private static NancyHost _server;
private Object thisLock = new Object();
public static void Start()
{
_server = new NancyHost(new Bootstrapper(), new Uri("http://192.168.0.30:8088"));
//_server = new NancyHost(new Bootstrapper(), new Uri("http://192.168.0.30:8686"));
_server.Start();
}
public class Bootstrapper : DefaultNancyBootstrapper
{
/// <summary>
/// Register only NancyModules found in this assembly
/// </summary>
protected override IEnumerable<ModuleRegistration> Modules
{
get
{
return GetType().Assembly.GetTypes().Where(type => type.BaseType == typeof(NancyModule)).Select(type => new ModuleRegistration(type));
}
}
}
public SampleModule()
{
// 设置库存上下限
Post["/API/SetInventory"] = _ =>
{
/*
{
"storage": [{
// 类型 1.2.3.4.5
"type": "1",
// 上下限 0.1.2
"inventory": "0"
}, {
"type": "2",
"inventory": ""
}, {
"type": "3",
"inventory": "2"
}]
}
*/
var body = this.Request.Body;
int length = (int)body.Length;
byte[] data = new byte[length];
body.Read(data, 0, length);
string jsonStr = Encoding.UTF8.GetString(data);
//JObject json = JsonConvert.DeserializeObject<JObject>(jsonStr);
//Dictionary<string, object> json = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonStr);
WCS_STORAGE jsonObject = JsonConvert.DeserializeObject<WCS_STORAGE>(jsonStr);
// 定义一个 JSON 键值对对象
//Dictionary<string, object> jsonObject1 = new Dictionary<string, object>();
//// 添加键值对,品种1.2.3.4.5 db区及设备号
//jsonObject1["1"] = 7060;
//jsonObject1["2"] = 7061;
//jsonObject1["3"] = 7062;
//jsonObject1["4"] = 7063;
//jsonObject1["5"] = 7064;
//for (int i = 0; i < jsonObject.storage; i++)
//type 1--对应电气db区7060
//type 2--对应电气db区7061 。。。
foreach (STORAGE storage in jsonObject.storage)
{
string deviceIndexii = storage.type;
int deviceinedx = 0;
switch (deviceIndexii)
{
case "1":
deviceinedx = 7060;
break;
case "2":
deviceinedx = 7061;
break;
case "3":
deviceinedx = 7062;
break;
case "4":
deviceinedx = 7063;
break;
case "5":
deviceinedx = 7064;
break;
}
//var deviceinedx = int.Parse(Convert.ToString(jsonObject[i]["type"]));
ISendDeviceOrder sdo;
//Model.MDevice devinfo;
//devinfo = Model.CGetInfo.GetDeviceInfo(deviceinedx);
StringBuilder[] witemnames = { new StringBuilder("") };
StringBuilder[] wv = { new StringBuilder("2") };
witemnames[0].Clear();
witemnames[0].Append(Model.CGeneralFunction.DBGet).Append(".").Append(Convert.ToString(deviceinedx + 0)).Append(",b");//20130510
//witemnames[0].Append(Model.CGeneralFunction.DBGet).Append(".").Append(Convert.ToString(devinfo.Dbw2Address + 0)).Append(",b");//20130510
wv[0].Clear();
wv[0].Append(storage.inventory);
//wv[0].Append(jsonObject[i]["inventory"]);
sdo = CommModeCreate.CreateSendDeviceOrder(deviceinedx);
//7060-7064 db区写入上下限值
sdo.WriteDBData(witemnames, wv, "S7 connection_2");
//sdo.WriteDBData(witemnames, wv, devinfo.S7Connection);
}
byte[] responseData = Encoding.UTF8.GetBytes(jsonStr);
return new Response()
{
Contents = stream => { stream.Write(responseData, 0, responseData.Length); },
StatusCode = HttpStatusCode.OK
};
};
}
}
public class WCS_STORAGE
{
public List<STORAGE> storage { get; set; }
}
public class STORAGE
{
public string type { get; set; }
public string inventory { get; set; }
}
}