You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.4 KiB
C#

2 months ago
using System;
using System.IO;
using System.Data;
using System.Collections.Generic;
using Mesnac.Equips;
using Mesnac.Equips.BaseInfo;
using System.Runtime.InteropServices;
using System.Data.SqlClient;
namespace Mesnac.Equip.ConfigInfo.Test.GroupNet
{
public class Equip : BaseEquip
{
private Mesnac.Equips.Connection.GroupNet.ConnType connType = null;
private Dictionary<string, string> _dicIP = null;
#region 辅助方法 - 获取设备组IP字典
public Dictionary<string, string> GetIPS()
{
this.connType = (Mesnac.Equips.Connection.GroupNet.ConnType)this.Main.ConnType;
this._dicIP = new Dictionary<string, string>();
try
{
if (!String.IsNullOrEmpty(this.connType.IPList))
{
string[] strItems = this.connType.IPList.Split(new char[] { ';' });
if (null != strItems && strItems.Length > 0)
{
foreach (string strItem in strItems)
{
if (!String.IsNullOrEmpty(strItem))
{
string[] items = strItem.Split(new char[] { ':' });
if (null != items && items.Length > 0)
{
this._dicIP.Add(items[0], items[1]);
}
}
}
}
}
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService.Error("打开设备失败:解析设备配置错误-" + ex.Message);
}
return this._dicIP;
}
#endregion
public override bool Open()
{
if (this._dicIP == null)
{
this._dicIP = GetIPS();
}
if (this._dicIP.ContainsKey(this.Name))
{
string ip = this._dicIP[this.Name];
ICSharpCode.Core.LoggingService.Debug(String.Format("{0}:{1}", this.Name, ip));
return true;
}
else
{
ICSharpCode.Core.LoggingService.Debug(String.Format("设备配置中不存在此设备组的IP-{0}", this.Name));
return false;
}
}
int iPost = 0;
public override bool Read(string block, int start, int len, out object[] buff)
{
//if (this._dicIP == null)
//{
// this._dicIP = GetIPS();
//}
//if (this._dicIP.ContainsKey(this.Name))
//{
// string ip = this._dicIP[this.Name];
// ICSharpCode.Core.LoggingService.Debug(String.Format("{0}:{1}", this.Name, ip));
//}
//else
//{
// ICSharpCode.Core.LoggingService.Debug(String.Format("设备配置中不存在此设备组的IP-{0}", this.Name));
//}
if (iPost >= int.MaxValue - 10)
{
iPost = 0;
}
iPost++;
buff = new object[1] { iPost };
return true;
}
public override bool Write(int block, int start, object[] buff)
{
return false;
}
public override void Close()
{
}
}
}