示例#1
0
        public Dictionary <int, DecoderInfo> GetAllDecoderInfo(ref string errMessage)
        {
            /*Database db = DatabaseFactory.CreateDatabase();
             * errMessage = "";
             * Dictionary<int, DecoderInfo> list = new Dictionary<int, DecoderInfo>();
             * try
             * {
             *
             *  DataSet ds = DecoderDataAccess.GetAllDecInfo(db);
             *
             *  DecoderInfo oDecoder;
             *  for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
             *  {
             *      oDecoder = new DecoderInfo(ds.Tables[0].Rows[i]);
             *      list.Add(oDecoder.id, oDecoder);
             *
             *  }
             *  return list;
             *
             * }
             * catch (Exception ex)
             * {
             *  errMessage = ex.Message + ex.StackTrace;
             *  logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
             *  return null;
             * }*/
            Database db = DatabaseFactory.CreateDatabase();

            errMessage = "";
            Dictionary <int, DecoderInfo> list = new Dictionary <int, DecoderInfo>();

            try
            {
                DecoderInfo oDecoderInfo;
                DataSet     ds = DecoderDataAccess.GetAllDecInfo(db);
                DataSet     dsCamera;
                CameraInfo  oCamera;

                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    oDecoderInfo = new DecoderInfo(ds.Tables[0].Rows[i]);
                    dsCamera     = DecoderDataAccess.GetCameraInfoByDecoderId(db, oDecoderInfo.id);
                    //DecoderDataAccess.GetCamInfoByCameraId(db,dsCamera.Tables[0].Rows[i].)
                    oDecoderInfo.ListCameras = new Dictionary <int, CameraInfo>();
                    foreach (DataRow dr in dsCamera.Tables[0].Rows)
                    {
                        oCamera = new CameraInfo(dr);
                        oDecoderInfo.ListCameras.Add(oCamera.CameraId, oCamera);
                    }
                    list.Add(oDecoderInfo.id, oDecoderInfo);
                }
                return(list);
            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return(null);
            }
        }
示例#2
0
        public DecoderInfo GetDecoderInfoByDecoderIP(ref string errMessage, string IP)
        {
            Database db = DatabaseFactory.CreateDatabase();

            errMessage = "";
            try
            {
                DataSet ds = DecoderDataAccess.GetDecoderInfoByDecoderIP(db, IP);
                if (ds.Tables[0].Rows.Count == 0)
                {
                    return(null);
                }
                DecoderInfo decoderInfo = new DecoderInfo(ds.Tables[0].Rows[0]);
                DataSet     dsCamera;
                CameraInfo  oCamera;
                dsCamera = DecoderDataAccess.GetCameraInfoByDecoderId(db, decoderInfo.id);
                //DecoderDataAccess.GetCamInfoByCameraId(db,dsCamera.Tables[0].Rows[i].)
                decoderInfo.ListCameras = new Dictionary <int, CameraInfo>();
                foreach (DataRow dr in dsCamera.Tables[0].Rows)
                {
                    oCamera = new CameraInfo(dr);
                    decoderInfo.ListCameras.Add(oCamera.CameraId, oCamera);
                }
                return(decoderInfo);
            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return(null);
            }
        }
示例#3
0
        public static int Insert(Database db, DecoderInfo oDecoderInfo)
        {
            /* StringBuilder sbField = new StringBuilder();
             * StringBuilder sbValue = new StringBuilder();
             * sbField.Append("INSERT INTO DecoderInfo(");
             * sbValue.Append("values(");
             * sbField.Append("id");
             * sbValue.AppendFormat("{0}", oDecoderInfo.id);
             * sbField.Append(",Name");
             * sbValue.AppendFormat(",'{0}'", oDecoderInfo.Name);
             * sbField.Append(",Ip");
             * sbValue.AppendFormat(",'{0}'", oDecoderInfo.Ip);
             * sbField.Append(",Port");
             * sbValue.AppendFormat(",{0}", oDecoderInfo.Port);
             * sbField.Append(",MaxDecodeChannelNo");
             * sbValue.AppendFormat(",{0}", oDecoderInfo.MaxDecodeChannelNo);
             *
             * string cmdText = sbField.ToString() + " " + sbValue.ToString();
             * try
             * {
             *  // cmdText = cmdText.Replace("\r\n", "");
             *   return db.ExecuteNonQuery(CommandType.Text, cmdText);
             *
             * }
             * catch (Exception ex)
             * {
             *
             *   throw ex;
             * }*/
            StringBuilder sbField = new StringBuilder();
            StringBuilder sbValue = new StringBuilder();

            sbField.Append("INSERT INTO  [DecoderInfo](");
            sbValue.Append("values (");
            //sbField.Append("[id]");
            //sbValue.AppendFormat("'{0}'", oDecoderInfo.id);
            sbField.Append("[Name]");
            sbValue.AppendFormat("'{0}'", oDecoderInfo.Name);
            sbField.Append(",[Ip]");
            sbValue.AppendFormat(",'{0}'", oDecoderInfo.Ip);
            sbField.Append(",[Port]");
            sbValue.AppendFormat(",{0}", oDecoderInfo.Port);
            sbField.Append(",[MaxDecodeChannelNo])");
            sbValue.AppendFormat(",'{0}')", oDecoderInfo.MaxDecodeChannelNo);

            string cmdText = sbField.ToString() + " " + sbValue.ToString();


            try
            {
                cmdText = cmdText.Replace("\r\n", "");
                return(db.ExecuteNonQuery(CommandType.Text, cmdText));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#4
0
        /// <summary>
        /// Gets a list of additionally registered WIC decoders
        /// </summary>
        /// <returns></returns>
        private IEnumerable <DecoderInfo> GetAdditionalDecoders()
        {
            var result = new List <DecoderInfo>();

            foreach (var codecKey in GetCodecKeys())
            {
                DecoderInfo decoderInfo = new DecoderInfo();
                decoderInfo.FriendlyName   = Convert.ToString(codecKey.GetValue("FriendlyName", ""));
                decoderInfo.FileExtensions = Convert.ToString(codecKey.GetValue("FileExtensions", ""));
                result.Add(decoderInfo);
            }
            return(result);
        }
        public DecoderClientConnection(Socket socket)
        {
            string errMessage = "";

            _socket                 = socket;
            Ip                      = ((IPEndPoint)socket.RemoteEndPoint).Address.ToString();
            Port                    = ((IPEndPoint)socket.RemoteEndPoint).Port;
            DecoderInfo             = DecoderBusiness.Instance.GetDecoderInfoByDecoderIP(ref errMessage, Ip);
            _networkStream          = new NetworkStream(socket);
            LiveDecoderPacketHandle = new LiveDecoderPacketHandle();
            DecoderStateHandle      = new DecoderStateHandle();
            _handlers               = new IPacketHandler[] { LiveDecoderPacketHandle, DecoderStateHandle };
        }
示例#6
0
 public frmDecoder(DecoderInfo decoderInfo)
 {
     InitializeComponent();
     this.Text = "更新解码器";
     simpleButtonOk.TabIndex = 0;
     this.textEditname.Text  = decoderInfo.Name;
     this.textEditIp.Text    = decoderInfo.Ip;
     this.textEditport.Text  = decoderInfo.Port.ToString();
     this.textEditmax.Text   = decoderInfo.MaxDecodeChannelNo.ToString();
     Opt            = Util.Operateion.Update;
     decoderOldName = decoderInfo.Name;
     InitValidationRules();
 }
示例#7
0
        public int Update(ref string errMessage, DecoderInfo DecoderInfo)
        {
            Database db = DatabaseFactory.CreateDatabase();

            errMessage = "";
            try
            {
                return(DecoderDataAccess.Update(db, DecoderInfo));
            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return(-1);
            }
        }
示例#8
0
        /// <summary>
        /// Gets a list of additionally registered WIC decoders
        /// </summary>
        /// <returns></returns>
        public static IEnumerable <DecoderInfo> GetAdditionalDecoders()
        {
            var result = new List <DecoderInfo>();

            string baseKeyPath;

            // If we are a 32 bit process running on a 64 bit operating system,
            // we find our config in Wow6432Node subkey
            if (Environment.Is64BitOperatingSystem && !Environment.Is64BitProcess)
            {
                baseKeyPath = "Wow6432Node\\CLSID";
            }
            else
            {
                baseKeyPath = "CLSID";
            }

            RegistryKey baseKey = Registry.ClassesRoot.OpenSubKey(baseKeyPath, false);

            if (baseKey != null)
            {
                var categoryKey = baseKey.OpenSubKey(WICDecoderCategory + "\\instance", false);
                if (categoryKey != null)
                {
                    // Read the guids of the registered decoders
                    var codecGuids = categoryKey.GetSubKeyNames();

                    foreach (var codecGuid in codecGuids)
                    {
                        // Read the properties of the single registered decoder
                        var codecKey = baseKey.OpenSubKey(codecGuid);
                        if (codecKey != null)
                        {
                            DecoderInfo decoderInfo = new DecoderInfo();
                            decoderInfo.FriendlyName   = Convert.ToString(codecKey.GetValue("FriendlyName", ""));
                            decoderInfo.FileExtensions = Convert.ToString(codecKey.GetValue("FileExtensions", ""));
                            result.Add(decoderInfo);
                        }
                    }
                }
            }

            return(result);
        }
示例#9
0
        public static int Update(Database db, DecoderInfo oDecoderInfo)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("update DecoderInfo set");
            sb.AppendFormat(" Name='{0}'", oDecoderInfo.Name);
            //sb.AppendFormat(",id='{0}'", oDecoderInfo.id);
            sb.AppendFormat(",Ip='{0}'", oDecoderInfo.Ip);
            sb.AppendFormat(",Port={0}", oDecoderInfo.Port);
            sb.AppendFormat(",MaxDecodeChannelNo={0}", oDecoderInfo.MaxDecodeChannelNo);
            sb.AppendFormat(" where id={0}", oDecoderInfo.id);
            string cmdText = sb.ToString();

            try
            {
                return(db.ExecuteNonQuery(CommandType.Text, cmdText));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#10
0
        public Dictionary <int, DecoderInfo> GetDecoderInfoByName(ref string errMessage, string Name)
        {
            Database db = DatabaseFactory.CreateDatabase();

            errMessage = "";
            Dictionary <int, DecoderInfo> mylist = new Dictionary <int, DecoderInfo>();

            try
            {
                DataSet ds = DecoderDataAccess.GetDecoderInfoByName(db, Name);

                DecoderInfo decoderInfo;
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    decoderInfo = new DecoderInfo(ds.Tables[0].Rows[i]);
                    DataSet    dsCamera;
                    CameraInfo oCamera;
                    dsCamera = DecoderDataAccess.GetCameraInfoByDecoderId(db, decoderInfo.id);
                    //DecoderDataAccess.GetCamInfoByCameraId(db,dsCamera.Tables[0].Rows[i].)
                    decoderInfo.ListCameras = new Dictionary <int, CameraInfo>();
                    foreach (DataRow dr in dsCamera.Tables[0].Rows)
                    {
                        oCamera = new CameraInfo(dr);
                        decoderInfo.ListCameras.Add(oCamera.CameraId, oCamera);
                    }

                    mylist.Add(decoderInfo.id, decoderInfo);
                }
                return(mylist);
            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return(null);
            }
        }
示例#11
0
        private void DecodeValue(byte[] bytes, DecoderInfo decoderInfo)
        {
            uint rtn = 0;

            var bitLength = decoderInfo.BitLength;
            var bitOffset = decoderInfo.StartBit;
            var signed    = decoderInfo.Signed;
            var factor    = decoderInfo.Factor;

            //Pass the number of bits over to our rtn value
            for (var i = 0; i < bitLength; ++i)
            {
                var b = bytes[(bitOffset + i) / 8];

                if ((b & (1 << (7 - (bitOffset + i) % 8))) > 0)
                {
                    rtn |= (uint)1 << (bitLength - 1 - i);
                }
            }

            decoderInfo.DecoderValue.Raw = rtn;

            //byte swap for big endian
            if (bitLength % 8 == 0 && bitLength > 8)
            {
                uint byteSwapped = 0;
                var  swaps       = bitLength / 8;

                for (var i = 0; i < swaps; ++i)
                {
                    byteSwapped += rtn & 0xFF;
                    rtn          = rtn >> 8;

                    if (i < swaps - 1)
                    {
                        byteSwapped = byteSwapped << 8;
                    }
                }

                rtn = byteSwapped;
            }

            if (signed)
            {
                if (bitLength == 8)
                {
                    decoderInfo.DecoderValue.Value = (sbyte)rtn * factor;
                }

                if (bitLength == 16)
                {
                    decoderInfo.DecoderValue.Value = (short)rtn * factor;
                }

                if (bitLength == 32)
                {
                    decoderInfo.DecoderValue.Value = (int)rtn * factor;
                }
            }
            else
            {
                decoderInfo.DecoderValue.Value = rtn * factor;
            }
        }
示例#12
0
        public bool LoadSettings()
        {
            var ofd = new OpenFileDialog {
                Filter = @"*.csv|*.csv", Multiselect = false
            };

            DecoderGroups.Clear();

            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return(DecoderGroups.Count > 0);
            }

            DecoderGroup dg = null;

            using (var sr = new StreamReader(ofd.FileName))
            {
                while (sr.EndOfStream == false)
                {
                    var line = sr.ReadLine();
                    if (line == null)
                    {
                        continue;
                    }

                    var items = line.Split(',');

                    if (items.Length == 6) //New Decode group
                    {
                        if (dg != null)
                        {
                            DecoderGroups.Add(dg);
                        }

                        //"Length,Sequence Number,Source Address,Source PAN ID,Destination PAN ID,Destination Address"
                        dg = new DecoderGroup
                        {
                            Header = new ZigBeeDecoder.ZigBeeHeader
                            {
                                Len         = byte.Parse(items[0]),
                                SequenceNum = byte.Parse(items[1]),
                                Src         = ushort.Parse(items[2]),
                                Pan         = ushort.Parse(items[3]),
                                DestPan     = ushort.Parse(items[4]),
                                DestAddr    = ushort.Parse(items[5])
                            }
                        };
                    }

                    if (items.Length == 9) //new Decode info
                    {
                        //"Name,Start Bit,Bit Length,Start Byte,Byte Length,Signed,Factor,Unit,Notes"
                        var di = new DecoderInfo
                        {
                            Name       = items[0],
                            StartBit   = int.Parse(items[1]),
                            BitLength  = int.Parse(items[2]),
                            StartByte  = int.Parse(items[3]),
                            ByteLength = float.Parse(items[4]),
                            Signed     = bool.Parse(items[5]),
                            Factor     = float.Parse(items[6]),
                            Unit       = items[7],
                            Notes      = items[8]
                        };

                        dg?.DecoderInfoList.Add(di);
                    }
                }

                DecoderGroups.Add(dg);
            }

            return(DecoderGroups.Count > 0);
        }
示例#13
0
        private void AddDecoderButton(object sender, EventArgs e)
        {
            if (!dxValidationProvider1.Validate())
            {
                return;
            }

            //string errMessage = "";
            DecoderInfo di = new DecoderInfo();

            di.id   = Id;
            di.Name = textEditname.Text;
            di.Port = int.Parse(textEditport.Text);
            di.Ip   = textEditIp.Text;
            di.MaxDecodeChannelNo = int.Parse(textEditmax.Text);
            switch (Opt)
            {
            case Util.Operateion.Add:

                DecoderBusiness.Instance.Insert(ref errMessage, di);
                OperateLog ol = new OperateLog
                {
                    HappenTime      = DateTime.Now,
                    OperateTypeId   = (int)(OperateLogTypeId.DecoderAdd),
                    OperateTypeName = OperateLogTypeName.DecoderAdd,
                    Content         = di.ToString(),
                    Id = di.id,
                    OperateUserName = MainForm.CurrentUser.UserName,
                    ClientUserName  = MainForm.CurrentUser.UserName,
                    ClientUserId    = MainForm.CurrentUser.UserId
                };
                OperateLogBusiness.Instance.Insert(ref errMessage, ol);
                break;

            case Util.Operateion.Update:
                di      = DecoderBusiness.Instance.GetDecoderInfoByDecoderId(ref errMessage, Id);
                di.Name = textEditname.Text;
                di.Port = int.Parse(textEditport.Text);
                di.Ip   = textEditIp.Text;
                di.MaxDecodeChannelNo = int.Parse(textEditmax.Text);
                Id = DecoderBusiness.Instance.Update(ref errMessage, di);
                OperateLogBusiness.Instance.Insert(ref errMessage, new OperateLog
                {
                    HappenTime      = DateTime.Now,
                    OperateTypeId   = (int)(OperateLogTypeId.DecoderUpdate),
                    OperateTypeName = OperateLogTypeName.DecoderUpdate,
                    Content         = di.ToString(),
                    Id = di.id,
                    OperateUserName = MainForm.CurrentUser.UserName,
                    ClientUserName  = MainForm.CurrentUser.UserName,
                    ClientUserId    = MainForm.CurrentUser.UserId
                });
                break;

            case Util.Operateion.Delete:
                break;

            default:
                break;
            }
            Close();
            Dispose();
        }
示例#14
0
        public string GetDecoderXMLString(int decoderid)
        {
            string      ret = "", errMessage = "";
            DecoderInfo decoderInfo = GetDecoderInfoByDecoderId(ref errMessage, decoderid);

            if (decoderInfo != null)
            {
                //头,版本,编码信息
                XmlDocument doc     = new XmlDocument();
                XmlNode     docNode = doc.CreateXmlDeclaration("1.0", "gb2312", null);
                doc.AppendChild(docNode);

                //decoder
                XmlNode      decoderNode      = doc.CreateElement("Decoder");
                XmlAttribute decoderAttribute = doc.CreateAttribute("id");
                decoderAttribute.Value = decoderid.ToString();
                decoderNode.Attributes.Append(decoderAttribute);
                doc.AppendChild(decoderNode);

                //cameras
                XmlNode camerasNode = doc.CreateElement("Cameras");
                decoderNode.AppendChild(camerasNode);
                if (decoderInfo.ListCameras != null)
                {
                    foreach (var VARIABLE in decoderInfo.ListCameras)
                    {
                        //camera
                        XmlNode cameraNode = doc.CreateElement("Camera");
                        camerasNode.AppendChild(cameraNode);

                        //id
                        XmlElement idNode = doc.CreateElement("id");
                        idNode.InnerText = VARIABLE.Value.CameraId.ToString();
                        cameraNode.AppendChild(idNode);
                        //name
                        XmlElement nameNode = doc.CreateElement("Name");
                        nameNode.InnerText = VARIABLE.Value.Name;
                        cameraNode.AppendChild(nameNode);

                        //获取设备信息

                        DeviceInfo deviceInfo = DeviceBusiness.Instance.GetDeviceInfoByDeviceId(ref errMessage, VARIABLE.Value.DeviceId);

                        //ip
                        XmlElement ipNode = doc.CreateElement("ip");
                        ipNode.InnerText = deviceInfo.source;
                        cameraNode.AppendChild(ipNode);


                        //ip
                        XmlElement portNode = doc.CreateElement("port");
                        portNode.InnerText = deviceInfo.Port.ToString();
                        cameraNode.AppendChild(portNode);


                        //user
                        XmlElement userNode = doc.CreateElement("username");
                        userNode.InnerText = deviceInfo.login;
                        cameraNode.AppendChild(userNode);

                        //password
                        XmlElement pwdNode = doc.CreateElement("password");
                        pwdNode.InnerText = deviceInfo.pwd;
                        cameraNode.AppendChild(pwdNode);


                        //channel
                        XmlElement channelNode = doc.CreateElement("channel");
                        channelNode.InnerText = VARIABLE.Value.ChannelNo.ToString();
                        cameraNode.AppendChild(channelNode);

                        //width
                        XmlElement widthNode = doc.CreateElement("width");
                        widthNode.InnerText = VARIABLE.Value.Width.ToString();
                        cameraNode.AppendChild(widthNode);

                        //channel
                        XmlElement heightNode = doc.CreateElement("height");
                        heightNode.InnerText = VARIABLE.Value.Height.ToString();
                        cameraNode.AppendChild(heightNode);
                    }
                }
                ret = doc.InnerXml;
            }

            return(ret);
        }