Beispiel #1
0
        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,
            };
        }
Beispiel #2
0
 /// <summary>
 /// 请求修改配置属性
 /// </summary>
 public void SetAttribute(int lUserID, BStruBase bStruBase, string stocken)
 {
     if (_sdkList.TryGetValue(lUserID, out BSDK bSDK))
     {
         bSDK.SetAttribute(bStruBase, stocken);
     }
 }
Beispiel #3
0
        public SuperBTagBase(BStruBase data, string devIsid, SqlAlarmMap[] alarmMaps)
        {
            AlarmRess  = new List <SqlAlarmRes>();
            OrgiData   = data;
            DeviceIsid = devIsid;

            HandleTag(data, null);
            HandleAlarms(data, alarmMaps);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
        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,
            };
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
 protected override void HandleAlarms(BStruBase bData, SqlAlarmMap[] alarmMaps)
 {
 }
Beispiel #10
0
 protected abstract void HandleAlarms(BStruBase data, SqlAlarmMap[] alarmMaps);
Beispiel #11
0
 protected abstract void HandleTag(BStruBase data, string tagIsid);
Beispiel #12
0
 public abstract bool Update(BStruBase tagbase);
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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);
        }