1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- using Newtonsoft.Json.Linq;
- using ProjectBase.Data.BaseDAL;
- using SIMDP.DAL.IDALSQL;
- using SIMDP.Model;
- using System;
- using System.Collections.Generic;
- namespace SIMDP.BLL
- {
- /// <summary>
- /// Plc配置信息
- /// </summary>
- public class BlPlcInfo : BaseBLL<MoPlcInfo>
- {
- private IDalPlcInfo dalPlcInfo;
- /// <summary>
- /// 构造函数
- /// </summary>
- public BlPlcInfo() : base()
- {
- base.Init(this.GetType().FullName, System.Reflection.Assembly.GetExecutingAssembly().GetName().Name);
- dalPlcInfo = baseDal as IDalPlcInfo;
- dalPlcInfo.OnOperationLog += new OperationLogEventHandler(BlLogOperation.OnOperationLog);
- }
- /// <summary>
- /// 获取PLC配置信息
- /// </summary>
- /// <param name="id">plc id</param>
- /// <param name="name">plc名称</param>
- /// <returns></returns>
- public List<MoPlcInfo> GetActivePLC()
- {
- string sql = string.Format("SELECT * FROM plc_info where link_type <> 99");
- return dalPlcInfo.GetList(sql, null);
- }
- /// <summary>
- /// 从PLC表中获取扫码枪的IP端口号
- /// </summary>
- /// <returns></returns>
- 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; }
- }
- }
- }
|