protected override void HandleTag(BStruBase data, string tagIsid) { if (!(data is TDOC tdoc)) { return; } TagRes tag = new TagRes() { tagIsid = tagIsid ?? Uuid.Create16Token(), tagName = data.Name, tagTypeCode = "21", //B接口读写 dataType = "5", //5-float ioType = "3", //'读写类型(0不可读写/1只读/2只写/3可读可写)' addition = 0, // bias multiplier = 1, // 倍数 ruleIsid = cfg.AppSettings["ruleIsid"], // saved tagAddr = "1", // 1 }; DbData = new SqlTdoc() { objDesc = tdoc.Des, objId = tdoc.ID, objName = tdoc.Name, objTypeId = (int)tdoc.Type, parentId = tdoc.ParentID, saved = (int)tdoc.Saved, controlEnable = (int)tdoc.ControlEnable, desc0 = tdoc.Desc0, desc1 = tdoc.Desc1, }; }
/// <summary> /// 请求修改配置属性 /// </summary> public void SetAttribute(int lUserID, BStruBase bStruBase, string stocken) { if (_sdkList.TryGetValue(lUserID, out BSDK bSDK)) { bSDK.SetAttribute(bStruBase, stocken); } }
public SuperBTagBase(BStruBase data, string devIsid, SqlAlarmMap[] alarmMaps) { AlarmRess = new List <SqlAlarmRes>(); OrgiData = data; DeviceIsid = devIsid; HandleTag(data, null); HandleAlarms(data, alarmMaps); }
protected override void HandleAlarms(BStruBase bData, SqlAlarmMap[] alarmMaps) { TDSC data = bData as TDSC; if (data == null && Tag == null) { return; } SqlAlarmRes valueAlarm = StruAlarm(data, alarmMaps.FirstOrDefault(a => a.alarmTypeCode == 0)); valueAlarm.alarmType = 5; AlarmRess.Add(valueAlarm); }
protected override void HandleAlarms(BStruBase bData, SqlAlarmMap[] alarmMaps) { TDIC data = bData as TDIC; if (data == null && Tag == null || data.AlarmLevel == EnumAlarmLevel.NOALARM) { return; } if (data.AlarmThresbhold == EnumEnable.ENABLE) { SqlAlarmRes valueAlarm = StruAlarm(data, alarmMaps.FirstOrDefault(a => a.alarmTypeCode == 0)); valueAlarm.alarmType = 5; AlarmRess.Add(valueAlarm); } }
protected override void HandleTag(BStruBase data, string tagIsid) { if (!(data is TAIC taic)) { return; } TagRes tag = new TagRes() { tagIsid = tagIsid ?? Uuid.Create16Token(), tagName = data.Name, tagTypeCode = "21", //B接口读写 dataType = "5", //5-float ioType = "1", //'读写类型(0不可读写/1只读/2只写/3可读可写)' addition = 0, // bias multiplier = 1, // 倍数 ruleIsid = cfg.AppSettings["ruleIsid"], // saved tagAddr = "1", // 1 }; DbData = new SqlTaic() { alarmEnable = (int)taic.AlarmEnable, alarmLevel = (int)taic.AlarmLevel, hiLimit1 = taic.HiLimit1, hiLimit2 = taic.HiLimit2, hiLimit3 = taic.HiLimit3, loLimit1 = taic.LoLimit1, loLimit2 = taic.LoLimit2, loLimit3 = taic.LoLimit3, maxVal = taic.MaxVal, minVal = taic.MinVal, objDesc = taic.Des, objId = taic.ID, objName = taic.Name, objTypeId = (int)taic.Type, parentId = taic.ParentID, percision = taic.Percision, saved = (int)taic.Saved, stander = taic.Stander, unit = taic.Unit, }; }
protected override void HandleAlarms(BStruBase bData, SqlAlarmMap[] alarmMaps) { TAIC data = bData as TAIC; if (data == null && Tag == null || data.AlarmLevel == EnumAlarmLevel.NOALARM) { return; } if (!string.IsNullOrEmpty(data.LoLimit1) || !string.IsNullOrEmpty(data.HiLimit1)) { SqlAlarmRes alarm = StruAlarm(data, alarmMaps.FirstOrDefault(a => a.alarmTypeCode == 1)); alarm.lowLimit = data.LoLimit1; alarm.upperLimit = data.HiLimit1; AlarmRess.Add(alarm); } if (!string.IsNullOrEmpty(data.LoLimit2) || !string.IsNullOrEmpty(data.HiLimit2)) { SqlAlarmRes alarm = StruAlarm(data, alarmMaps.FirstOrDefault(a => a.alarmTypeCode == 2)); alarm.lowLimit = data.LoLimit2; alarm.upperLimit = data.HiLimit2; AlarmRess.Add(alarm); } if (!string.IsNullOrEmpty(data.LoLimit3) || !string.IsNullOrEmpty(data.HiLimit3)) { SqlAlarmRes alarm = StruAlarm(data, alarmMaps.FirstOrDefault(a => a.alarmTypeCode == 3)); alarm.lowLimit = data.LoLimit3; alarm.upperLimit = data.HiLimit3; AlarmRess.Add(alarm); } SqlAlarmRes valueAlarm = StruAlarm(data, alarmMaps.FirstOrDefault(a => a.alarmTypeCode == 0)); valueAlarm.alarmType = 5; AlarmRess.Add(valueAlarm); }
public override bool Update(BStruBase tagbase) { if (!(tagbase is TDOC data)) { return(false); } if (!(OrgiData is TDOC orgData)) { return(false); } if (orgData == null) { OrgiData = data; HandleTag(data, null); return(true); } if (data.ID != orgData.ID) { return(false); } bool isUpdated = false; if (orgData.Name != data.Name) { orgData.Name = data.Name; DbData.objName = data.Name; isUpdated = true; } if (orgData.ParentID != data.ParentID) { orgData.ParentID = data.ParentID; DbData.parentId = data.ParentID; isUpdated = true; } if (orgData.Des != data.Des) { orgData.Des = data.Des; DbData.objDesc = data.Des; isUpdated = true; } if (orgData.Type != data.Type) { orgData.Type = data.Type; DbData.objTypeId = (int)data.Type; isUpdated = true; } if (orgData.Saved != data.Saved) { orgData.Saved = data.Saved; DbData.saved = (int)data.Saved; isUpdated = true; } if (orgData.ControlEnable != data.ControlEnable) { orgData.ControlEnable = data.ControlEnable; DbData.controlEnable = (int)data.ControlEnable; isUpdated = true; } if (orgData.Desc0 != data.Desc0) { orgData.Desc0 = data.Desc0; DbData.desc0 = data.Desc0; isUpdated = true; } if (orgData.Desc1 != data.Desc1) { orgData.Desc1 = data.Desc1; DbData.desc1 = data.Desc1; isUpdated = true; } return(isUpdated); }
protected override void HandleAlarms(BStruBase bData, SqlAlarmMap[] alarmMaps) { }
protected abstract void HandleAlarms(BStruBase data, SqlAlarmMap[] alarmMaps);
protected abstract void HandleTag(BStruBase data, string tagIsid);
public abstract bool Update(BStruBase tagbase);
public override bool Update(BStruBase tagbase) { if (!(tagbase is TDSC tdsc)) { return(false); } if (!(OrgiData is TDSC orgTdsc)) { return(false); } if (orgTdsc == null) { OrgiData = tdsc; HandleTag(tdsc, null); return(true); } if (tdsc.ID != orgTdsc.ID) { return(false); } bool isUpdated = false; if (orgTdsc.Name != tdsc.Name) { orgTdsc.Name = tdsc.Name; DbData.objName = tdsc.Name; isUpdated = true; } if (orgTdsc.ParentID != tdsc.ParentID) { orgTdsc.ParentID = tdsc.ParentID; DbData.parentId = tdsc.ParentID; isUpdated = true; } if (orgTdsc.Des != tdsc.Des) { orgTdsc.Des = tdsc.Des; DbData.objDesc = tdsc.Des; isUpdated = true; } if (orgTdsc.Type != tdsc.Type) { orgTdsc.Type = tdsc.Type; DbData.objTypeId = (int)tdsc.Type; isUpdated = true; } if (orgTdsc.AlarmEnable != tdsc.AlarmEnable) { orgTdsc.AlarmEnable = tdsc.AlarmEnable; DbData.alarmEnable = (int)tdsc.AlarmEnable; isUpdated = true; } if (orgTdsc.Saved != tdsc.Saved) { orgTdsc.Saved = tdsc.Saved; DbData.saved = (int)tdsc.Saved; isUpdated = true; } return(isUpdated); }
public override bool Update(BStruBase tagbase) { if (!(tagbase is TAIC data)) { return(false); } if (!(OrgiData is TAIC orgData)) { return(false); } if (orgData == null) { OrgiData = data; HandleTag(data, null); return(true); } if (data.ID != orgData.ID) { return(false); } bool isUpdated = false; if (orgData.Name != data.Name) { orgData.Name = data.Name; DbData.objName = data.Name; isUpdated = true; } if (orgData.ParentID != data.ParentID) { orgData.ParentID = data.ParentID; DbData.parentId = data.ParentID; isUpdated = true; } if (orgData.Des != data.Des) { orgData.Des = data.Des; DbData.objDesc = data.Des; isUpdated = true; } if (orgData.Type != data.Type) { orgData.Type = data.Type; DbData.objTypeId = (int)data.Type; isUpdated = true; } if (orgData.AlarmEnable != data.AlarmEnable) { orgData.AlarmEnable = data.AlarmEnable; DbData.alarmEnable = (int)data.AlarmEnable; isUpdated = true; } if (orgData.Saved != data.Saved) { orgData.Saved = data.Saved; DbData.saved = (int)data.Saved; isUpdated = true; } if (orgData.AlarmLevel != data.AlarmLevel) { orgData.AlarmLevel = data.AlarmLevel; DbData.alarmLevel = (int)data.AlarmLevel; isUpdated = true; } if (orgData.HiLimit1 != data.HiLimit1) { orgData.HiLimit1 = data.HiLimit1; DbData.hiLimit1 = data.HiLimit1; isUpdated = true; } if (orgData.HiLimit2 != data.HiLimit2) { orgData.HiLimit2 = data.HiLimit2; DbData.hiLimit2 = data.HiLimit2; isUpdated = true; } if (orgData.HiLimit3 != data.HiLimit3) { orgData.HiLimit3 = data.HiLimit3; DbData.hiLimit3 = data.HiLimit3; isUpdated = true; } if (orgData.LoLimit1 != data.LoLimit1) { orgData.LoLimit1 = data.LoLimit1; DbData.loLimit1 = data.LoLimit1; isUpdated = true; } if (orgData.LoLimit2 != data.LoLimit2) { orgData.LoLimit2 = data.LoLimit2; DbData.loLimit2 = data.LoLimit2; isUpdated = true; } if (orgData.LoLimit3 != data.LoLimit3) { orgData.LoLimit3 = data.LoLimit3; DbData.loLimit3 = data.LoLimit3; isUpdated = true; } if (orgData.MaxVal != data.MaxVal) { orgData.MaxVal = data.MaxVal; DbData.maxVal = data.MaxVal; isUpdated = true; } if (orgData.MinVal != data.MinVal) { orgData.MinVal = data.MinVal; DbData.minVal = data.MinVal; isUpdated = true; } if (orgData.Percision != data.Percision) { orgData.Percision = data.Percision; DbData.percision = data.Percision; isUpdated = true; } if (orgData.Stander != data.Stander) { orgData.Stander = data.Stander; DbData.stander = data.Stander; isUpdated = true; } return(isUpdated); }
public override bool Update(BStruBase tagbase) { if (!(tagbase is TAOC data)) { return(false); } if (!(OrgiData is TAOC orgData)) { return(false); } if (orgData == null) { OrgiData = data; HandleTag(data, null); return(true); } if (data.ID != orgData.ID) { return(false); } bool isUpdated = false; if (orgData.Name != data.Name) { orgData.Name = data.Name; DbData.objName = data.Name; isUpdated = true; } if (orgData.ParentID != data.ParentID) { orgData.ParentID = data.ParentID; DbData.parentId = data.ParentID; isUpdated = true; } if (orgData.Des != data.Des) { orgData.Des = data.Des; DbData.objDesc = data.Des; isUpdated = true; } if (orgData.Type != data.Type) { orgData.Type = data.Type; DbData.objTypeId = (int)data.Type; isUpdated = true; } if (orgData.Saved != data.Saved) { orgData.Saved = data.Saved; DbData.saved = (int)data.Saved; isUpdated = true; } if (orgData.MaxVal != data.MaxVal) { orgData.MaxVal = data.MaxVal; DbData.maxVal = data.MaxVal; isUpdated = true; } if (orgData.MinVal != data.MinVal) { orgData.MinVal = data.MinVal; DbData.minVal = data.MinVal; isUpdated = true; } if (orgData.Percision != data.Percision) { orgData.Percision = data.Percision; DbData.percision = data.Percision; isUpdated = true; } if (orgData.Stander != data.Stander) { orgData.Stander = data.Stander; DbData.stander = data.Stander; isUpdated = true; } if (orgData.ControlEnable != data.ControlEnable) { orgData.ControlEnable = data.ControlEnable; DbData.controlEnable = (int)data.ControlEnable; isUpdated = true; } if (orgData.Unit != data.Unit) { orgData.Unit = data.Unit; DbData.unit = data.Unit; isUpdated = true; } return(isUpdated); }
public async Task <bool> BeginUpdateOrAddTag(BStruBase data, TagReqFunc reqFunc) { var dev = devicemap.Find(m => m.objId == data.ParentID); if (dev == null) { return(false); //没有父节点,返回 } var tag = TagList.Find(n => n.OrgiData.ID == data.ID); if (tag == null) //新增设备,返回新增的设备,等web新增成功,插入数据库 { if (data.Type == EnumType.AI) { tag = new SuperB_Taic(data as TAIC, dev.devIsid, null); } else if (data.Type == EnumType.AO) { tag = new SuperB_Taoc(data as TAOC, dev.devIsid, null); } else if (data.Type == EnumType.DI) { tag = new SuperB_Tdic(data as TDIC, dev.devIsid, null); } else if (data.Type == EnumType.DO) { tag = new SuperB_Tdoc(data as TDOC, dev.devIsid, null); } else if (data.Type == EnumType.STRIN) { tag = new SuperB_Tdsc(data as TDSC, dev.devIsid, null); } var map = new SqlTagMap() { tagIsid = tag.Tag.tagIsid, objId = data.ID }; TagList.Add(tag); var req = await reqFunc(tag, dev.groupIsid, ChangeType.Add); if (!req) { return(true); } try { if (data.Type == EnumType.AI) { await _db.taic.AddAsync((tag as SuperB_Taic).DbData); } else if (data.Type == EnumType.AO) { await _db.taoc.AddAsync((tag as SuperB_Taoc).DbData); } else if (data.Type == EnumType.DI) { await _db.tdic.AddAsync((tag as SuperB_Tdic).DbData); } else if (data.Type == EnumType.DO) { await _db.tdoc.AddAsync((tag as SuperB_Tdoc).DbData); } else if (data.Type == EnumType.STRIN) { await _db.tdsc.AddAsync((tag as SuperB_Tdsc).DbData); } if (!tagmap.Exists(d => d.objId == tag.OrgiData.ID && d.tagIsid == tag.Tag.tagIsid)) { await _db.tagmap.AddAsync(map); tagmap.Add(map); } await _db.SaveChangesAsync(); TagList.Add(tag); } catch (Exception ex) { LogHelper.Error(ex); return(false); } } else { if (!tagmap.Exists(d => d.objId == tag.OrgiData.ID && d.tagIsid == tag.Tag.tagIsid)) { return(false); } var tmp = tag.OrgiData; if (tag.Update(data)) { var req = await reqFunc(tag, dev.groupIsid, ChangeType.Update); if (!req) { tag.Update(tmp); return(false); } try { if (data.Type == EnumType.AI) { _db.taic.Update((tag as SuperB_Taic).DbData); } else if (data.Type == EnumType.AO) { _db.taoc.Update((tag as SuperB_Taoc).DbData); } else if (data.Type == EnumType.DI) { _db.tdic.Update((tag as SuperB_Tdic).DbData); } else if (data.Type == EnumType.DO) { _db.tdoc.Update((tag as SuperB_Tdoc).DbData); } else if (data.Type == EnumType.STRIN) { _db.tdsc.Update((tag as SuperB_Tdsc).DbData); } await _db.SaveChangesAsync(); } catch (Exception ex) { LogHelper.Error(ex); return(false); } } } return(true); }