using MQTTnet.Server;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using static HH.WCS.Mobox3.HD.util.Settings;
|
|
namespace HH.WCS.Mobox3.HD.util
|
{
|
public class Settings
|
{
|
public static string HostToAgvServerUrl { get; set; }
|
public static string HASeverUrl { get; set; }
|
public static string HLSeverUrl { get; set; }
|
public static string SqlServer { get; set; }
|
public static string SqlServer1 { get; set; }
|
public static List<deviceInfo> deviceInfos { get; set; }
|
public static List<DevicePlcInfo> devicePlcInfos { get; set; }
|
public static List<StoreAreaInfo> storeAreaInfos { get; set; }
|
public static List<SortAreaInfo> sortAreaInfos { get; set; }
|
public static List<DispatchAreaInfo> dispatchAreaInfos { get; set; }
|
public static List<WeightPlcInfo> weightPlcInfos { get; set; }
|
public static int port { get; set; }
|
public static string WHCode { get; set; }
|
public static string FacCode { get; set; }
|
public static string X5SqlServer { get; set; }
|
public static MQTTServer mqttServer { get; set; }
|
|
public static void Init() {
|
LogHelper.Info("加载配置文件信息 开始");
|
try {
|
var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + "/config/config.json";
|
using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile)) {
|
using (JsonTextReader reader = new JsonTextReader(file)) {
|
JObject o = (JObject)JToken.ReadFrom(reader);
|
foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties()) {
|
Console.WriteLine(keyValue.Name);
|
if (keyValue.Name == "HostToAgvServerUrl") {
|
HostToAgvServerUrl = keyValue.Value.ToString();
|
}
|
if (keyValue.Name == "HASeverUrl") {
|
HASeverUrl = keyValue.Value.ToString();
|
}
|
if (keyValue.Name == "HLSeverUrl")
|
{
|
HLSeverUrl = keyValue.Value.ToString();
|
}
|
if (keyValue.Name == "SqlServer") {
|
SqlServer = keyValue.Value.ToString();
|
}
|
if (keyValue.Name == "SqlServer1") {
|
SqlServer1 = keyValue.Value.ToString();
|
}
|
if (keyValue.Name == "WHCode") {
|
WHCode = keyValue.Value.ToString();
|
}
|
if (keyValue.Name == "FacCode") {
|
FacCode = keyValue.Value.ToString();
|
}
|
if (keyValue.Name == "ApiPort") {
|
port = int.Parse(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "DeviceInfo") {
|
deviceInfos = JsonConvert.DeserializeObject<List<deviceInfo>>(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "DevicePlcInfo")
|
{
|
devicePlcInfos = JsonConvert.DeserializeObject<List<DevicePlcInfo>>(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "StoreAreaInfo")
|
{
|
storeAreaInfos = JsonConvert.DeserializeObject<List<StoreAreaInfo>>(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "SortAreaInfo")
|
{
|
sortAreaInfos = JsonConvert.DeserializeObject<List<SortAreaInfo>>(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "DispatchAreaInfo")
|
{
|
dispatchAreaInfos = JsonConvert.DeserializeObject<List<DispatchAreaInfo>>(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "WeightPlcInfo")
|
{
|
weightPlcInfos = JsonConvert.DeserializeObject<List<WeightPlcInfo>>(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "X5SqlServer")
|
{
|
X5SqlServer = keyValue.Value.ToString();
|
}
|
if (keyValue.Name == "MQTTServer")
|
{
|
mqttServer = JsonConvert.DeserializeObject<MQTTServer>(keyValue.Value.ToString());
|
}
|
}
|
}
|
}
|
LogHelper.Info("加载配置文件信息 完成");
|
}
|
catch (Exception ex) {
|
LogHelper.Error("加载配置文件失败!" + ex.Message, ex);
|
}
|
|
}
|
/// <summary>
|
/// 查询存储库区编码
|
/// 库区类型 :1.开发式立库 2.封闭式立体库
|
/// 货品类型 :1.半成品/成品 2.钢卷 3.模具
|
/// </summary>
|
/// <param name="areaType"></param>
|
/// <param name="cargoType"></param>
|
/// <returns></returns>
|
public static List<string> getStoreAreaCodes(int areaType,int cargoType) {
|
return storeAreaInfos.Where(a => (a.areaType == areaType || 0 == areaType) && a.cargoType == cargoType).Select(a => a.areaCode).ToList();
|
}
|
|
/// <summary>
|
/// 根据接驳库区查询存储库区
|
/// </summary>
|
/// <param name="accessArea"></param>
|
/// <returns></returns>
|
public static string getStoreAreaByAccessArea(string accessArea)
|
{
|
return storeAreaInfos.Where(a => a.accessArea == accessArea).Select(a => a.areaCode).FirstOrDefault();
|
}
|
|
/// <summary>
|
/// 查询发货库区编码
|
/// </summary>
|
/// <returns></returns>
|
public static List<string> getDispatchAreaCodes()
|
{
|
return dispatchAreaInfos.Select(a => a.areaCode).ToList();
|
}
|
|
public class MQTTServer {
|
public string name { get; set; }
|
public string url { get; set; }
|
public string port { get; set; }
|
public string clientId { get; set; }
|
}
|
|
public class WeightPlcInfo {
|
public string deviceNo { get; set; }
|
public string name { get; set; }
|
public string ip { get; set; } // ip地址
|
public string location { get; set; } // 称重货位
|
public string command { get; set; } // 命令
|
}
|
|
public class DispatchAreaInfo
|
{
|
public string areaCode { get; set; }
|
public string areaName { get; set; }
|
public string relateArea { get; set; }
|
}
|
|
public class SortAreaInfo
|
{
|
public string areaCode { get; set; }
|
public string areaName { get; set; }
|
public string inLocCode { get; set; }
|
public string outLocCode { get; set; }
|
public string relateArea { get; set; }
|
}
|
|
public class StoreAreaInfo
|
{
|
public string areaCode { get; set; }
|
public string areaName { get; set; }
|
public int areaType { get; set; } // 库区类型 :1.开发式立库 2.封闭式立体库
|
public int cargoType { get; set; } // 货品类型 :1.半成品/成品 2.钢卷 3.模具
|
public int frequency { get; set; } // 入库频率
|
public string accessArea { get; set; } // 接驳库区
|
}
|
|
public class DevicePlcInfo {
|
public string deviceName { get; set; }
|
public string deviceNo { get; set; }
|
public int deviceType { get; set; } // 设备类型(1.堆垛机 2.输送线 3.拆盘机)
|
public string address { get; set; }
|
public short enable { get; set; }
|
public string area { get; set; }
|
public int roadway { get; set; }
|
}
|
|
public class deviceInfo
|
{
|
public string address { get; set; }
|
public string deviceName { get; set; }
|
public string[] deviceNo { get; set; }
|
public string[] TN_Location { get; set; }
|
|
public int deviceType { get; set; }
|
public int enable { get; set; }
|
}
|
|
public class TableName
|
{
|
public string name { get; set; }
|
public string code { get; set; }
|
}
|
|
}
|
}
|