public static DeviceDictionary Find(UInt16 id, UInt16 version)
        {
            string dir = Directory.GetCurrentDirectory();

            string[] files = Directory.GetFiles(dir, "*.xml");
            foreach (var file in files)
            {
                string cutted_name = file.Replace(dir, "");
                cutted_name = cutted_name.Replace("\\", "");
                cutted_name = cutted_name.Replace(".xml", "");
                var parts = cutted_name.Split('_');
                if (parts.Length == 3)
                {
                    UInt16[] t = new UInt16[3];
                    t[0] = Convert.ToUInt16(parts[0], 16);
                    t[1] = Convert.ToUInt16(parts[1], 16);
                    t[2] = Convert.ToUInt16(parts[2], 16);

                    if ((id == t[0]) && (version >= t[1]) && (version <= t[2]))
                    {
                        XmlSerializer    x          = new XmlSerializer(typeof(DeviceDictionary));
                        TextReader       reader     = new StreamReader(file);
                        DeviceDictionary dictionary = (DeviceDictionary)x.Deserialize(reader);
                        reader.Close();
                        return(dictionary);
                    }
                }
            }
            throw new Exception("Нет подходящего файла с описание устройства");
        }
        void deviceWasChanged(object sender, EventArgs args)
        {
            UInt16[] gendata = _device._gen_data.ReadDeviceData();
            _dictionary = DeviceDictionary.Find(gendata[0], gendata[1]);



            GeneralInfo = new ROTableComposition(_device._gen_data, _dictionary.GenItems, "General info");
            ROInfo      = new ROTableComposition(_device._RO_data, _dictionary.ROItems, "Read-Only");
            RWInfo      = new RWTableComposition(_device._RW_data, _dictionary.RWItems, "Read-Write");
            RWFlashInfo = new RWTableComposition(_device._RW_flash, _dictionary.RWFlashItems, "Read-Write Flash");

            if (TablesWereCreated != null)
            {
                TablesWereCreated(this, null);
            }
        }