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 deviceInfos { get; set; } public static List devicePlcInfos { get; set; } public static List storeAreaInfos { get; set; } public static List sortAreaInfos { get; set; } public static List dispatchAreaInfos { get; set; } public static List 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>(keyValue.Value.ToString()); } if (keyValue.Name == "DevicePlcInfo") { devicePlcInfos = JsonConvert.DeserializeObject>(keyValue.Value.ToString()); } if (keyValue.Name == "StoreAreaInfo") { storeAreaInfos = JsonConvert.DeserializeObject>(keyValue.Value.ToString()); } if (keyValue.Name == "SortAreaInfo") { sortAreaInfos = JsonConvert.DeserializeObject>(keyValue.Value.ToString()); } if (keyValue.Name == "DispatchAreaInfo") { dispatchAreaInfos = JsonConvert.DeserializeObject>(keyValue.Value.ToString()); } if (keyValue.Name == "WeightPlcInfo") { weightPlcInfos = JsonConvert.DeserializeObject>(keyValue.Value.ToString()); } if (keyValue.Name == "X5SqlServer") { X5SqlServer = keyValue.Value.ToString(); } if (keyValue.Name == "MQTTServer") { mqttServer = JsonConvert.DeserializeObject(keyValue.Value.ToString()); } } } } LogHelper.Info("加载配置文件信息 完成"); } catch (Exception ex) { LogHelper.Error("加载配置文件失败!" + ex.Message, ex); } } /// /// 查询存储库区编码 /// 库区类型 :1.开发式立库 2.封闭式立体库 /// 货品类型 :1.半成品/成品 2.钢卷 3.模具 /// /// /// /// public static List getStoreAreaCodes(int areaType,int cargoType) { return storeAreaInfos.Where(a => (a.areaType == areaType || 0 == areaType) && a.cargoType == cargoType).Select(a => a.areaCode).ToList(); } /// /// 根据接驳库区查询存储库区 /// /// /// public static string getStoreAreaByAccessArea(string accessArea) { return storeAreaInfos.Where(a => a.accessArea == accessArea).Select(a => a.areaCode).FirstOrDefault(); } /// /// 查询发货库区编码 /// /// public static List 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; } } } }