using Newtonsoft.Json.Linq; using ProjectBase.Data.BaseDAL; using SIMDP.DAL.IDALSQL; using SIMDP.Model; using System; using System.Collections.Generic; namespace SIMDP.BLL { /// /// Plc配置信息 /// public class BlPlcInfo : BaseBLL { private IDalPlcInfo dalPlcInfo; /// /// 构造函数 /// public BlPlcInfo() : base() { base.Init(this.GetType().FullName, System.Reflection.Assembly.GetExecutingAssembly().GetName().Name); dalPlcInfo = baseDal as IDalPlcInfo; dalPlcInfo.OnOperationLog += new OperationLogEventHandler(BlLogOperation.OnOperationLog); } /// /// 获取PLC配置信息 /// /// plc id /// plc名称 /// public List GetActivePLC() { string sql = string.Format("SELECT * FROM plc_info where link_type <> 99"); return dalPlcInfo.GetList(sql, null); } /// /// 从PLC表中获取扫码枪的IP端口号 /// /// public bool GetScannerParams(string plc_name, out string Ip, out int port) { Ip = ""; port = 0; string sql = $"select top 1 link_config from plc_info where plc_name like '{plc_name}%' "; string linkconfig = dalPlcInfo.SqlValueList(sql); if (string.IsNullOrEmpty(linkconfig)) return false; try { ScannerInfo info = new ScannerInfo(linkconfig); Ip = info.Ip; port = info.Port; return true; } catch { return false; } } internal class ScannerInfo { internal ScannerInfo(string json) { JObject jObject = JObject.Parse(json); JToken token = jObject["Ip"]; if (token != null) Ip = token.ToString(); token = jObject["Port"]; if (token != null) Port = Convert.ToInt32(token); } internal string Ip { get; set; } internal int Port { get; set; } } } }