Пример #1
0
        public static int GetDevId(uint nodeId)//根据地址获得设备的编号
        {
            var rst = 0;

            if (_devAddrDic.ContainsKey(nodeId))
            {
                rst = _devAddrDic[nodeId];
            }
            else
            {
                var dev = new ESMonitor.BLL.Devs().GetDevByNodeId(nodeId);
                if (dev != null)
                {
                    var model = new DevStatus
                    {
                        Id            = dev.Id,
                        IsRegistered  = false,
                        RecvTime      = DateTime.Now,
                        Status        = (int)CommStatus.DisConnect,
                        HeartBeatTime = DateTime.Now,
                        SendTime      = DateTime.Now
                    };

                    _devStatusDic.Add(model.Id, model);
                    _devAddrDic.Add(nodeId, dev.Id);
                    rst = dev.Id;
                }
            }

            return(rst);
        }
Пример #2
0
        public static void Init()
        {
            _devStatusDic      = new Dictionary <int, DevStatus>(); //初始化这两个结构
            _devAddrDic        = new Dictionary <uint, int>();      //编号和Id的关系
            _devRelatedStatDic = new Dictionary <int, StatInfo>();

            var bll = new ESMonitor.BLL.Devs();//生成一个业务层的设备类

            var dt = bll.GetDevAddrList().Tables[0];

            foreach (DataRow dr in dt.Rows)
            {
                var model = new DevStatus
                {
                    Id            = Convert.ToInt32(dr["DevId"]),
                    IsRegistered  = false,
                    RecvTime      = new DateTime(),
                    Status        = (int)CommStatus.DisConnect,
                    HeartBeatTime = new DateTime(),
                    SendTime      = new DateTime()
                };
                _devStatusDic.Add(model.Id, model);

                var addr   = (byte[])(dr["NodeId"]);
                var nodeId = Utility.BytesToUint32(addr, 0, false);
                _devAddrDic.Add(nodeId, model.Id);
            }


            dt = bll.GetDevRelatedStat("").Tables[0];
            foreach (DataRow dr in dt.Rows)
            {
                var statInfo = new StatInfo();
                var devId    = Convert.ToInt32(dr["DevId"]);
                statInfo.StatId     = Convert.ToInt32(dr["StatId"]);
                statInfo.Country    = dr["Country"].ToString();
                statInfo.StatCodeUp = int.Parse(dr["StatCodeUp"].ToString());

                _devRelatedStatDic.Add(devId, statInfo);
            }
        }
Пример #3
0
        public static void Init()
        {
            devStatusDic      = new Dictionary <int, DevStatus>(); //初始化这两个结构
            devAddrDic        = new Dictionary <UInt32, int>();    //编号和Id的关系
            devRelatedStatDic = new Dictionary <int, StatInfo>();

            ESMonitor.BLL.Devs bll      = new ESMonitor.BLL.Devs();//生成一个业务层的设备类
            DevStatus          model    = null;
            StatInfo           statInfo = null;

            DataTable dt = bll.GetDevAddrList().Tables[0];

            foreach (DataRow dr in dt.Rows)
            {
                model               = new DevStatus();                     //描述设备综合状态的一个model
                model.Id            = Convert.ToInt32(dr["DevId"]);        //
                model.IsRegistered  = false;                               //是否注册
                model.RecvTime      = new DateTime();                      //时间
                model.Status        = (int)ESMonApp.CommStatus.DisConnect; //设置连接状态为非连接
                model.HeartBeatTime = new DateTime();                      //心跳时间
                model.SendTime      = new DateTime();                      //发送时间
                devStatusDic.Add(model.Id, model);

                byte[] addr   = (byte[])(dr["NodeId"]);
                UInt32 nodeId = Utility.BytesToUINT32(addr, 0, false);
                devAddrDic.Add(nodeId, model.Id);
            }


            dt = bll.GetDevRelatedStat("").Tables[0];
            foreach (DataRow dr in dt.Rows)
            {
                statInfo = new StatInfo();
                int devId = Convert.ToInt32(dr["DevId"]);
                statInfo.StatId     = Convert.ToInt32(dr["StatId"]);
                statInfo.Country    = dr["Country"].ToString();
                statInfo.StatCodeUp = int.Parse(dr["StatCodeUp"].ToString());

                devRelatedStatDic.Add(devId, statInfo);
            }
        }