Beispiel #1
0
        /// <summary>
        /// Конструирует модель просмотра для представления предоставленных данных DeviceDetaill
        /// </summary>
        /// <param name="device">Данные, для которых должны быть сконструирована модель ViewModel</param>
        /// <returns>Сконструированная модель ViewModel или null, если она не может быть построена</returns>
        public static DeviceDetaillViewModel BuildViewModel(DeviceDetail device)
        {
            if (device == null)
            {
                throw new ArgumentNullException(nameof(device));
            }

            DeviceBRS1M tuning = device as DeviceBRS1M;

            if (tuning != null)
            {
                return(new DeviceBRS1MViewModel(tuning));
            }

            return(null);
        }
Beispiel #2
0
        /// <summary>
        ///  Сохранить все устройства в конфигурации
        /// </summary>
        public virtual void SaveDeviceDetails()
        {
            Dictionary <string, DeviceBRS1M> BRS1Ms = new Dictionary <string, DeviceBRS1M>();
            bool needToSave = false;

            // просмотреть список параметров и добавить в специализированные коллекции
            foreach (DeviceDetail device in devices)
            {
                if (device.IsDirty)
                {
                    needToSave = true;
                    break;
                }
            }

            if (IsDirty || needToSave)
            {
                // просмотреть список параметров и добавить в специализированные коллекции
                // если имя параметра было оставлено пользователем по умолчанию,
                // то его во избежание коллизии уникальности переназначить имя как Guid
                foreach (DeviceDetail device in devices)
                {
                    DeviceBRS1M tuningParameter = device as DeviceBRS1M;
                    if (tuningParameter != null)
                    {
                        if (tuningParameter.ParameterName == USER_TEXT_CONTROL_BAROMETER || BRS1Ms.ContainsKey(tuningParameter.ParameterName))
                        {
                            tuningParameter.ParameterName = Guid.NewGuid().ToString();
                        }

                        BRS1Ms.Add(tuningParameter.ParameterName, tuningParameter);
                    }
                }

                PartDevices allBRS1Ms = new PartDevices(BRS1Ms);
                // серелизация JSON в строку, а затем запись строки в файл
                File.WriteAllText(puthPartSetting, JsonConvert.SerializeObject(allBRS1Ms, Formatting.Indented));

                // сбросить флаг IsDirty после сохранения изменений
                IsDirty = false;
                foreach (DeviceDetail device in devices)
                {
                    device.IsDirty = false;
                }
            }
        }
        //private const string partBarometersSetting = "D:\\PartParametersString.json";
        private void TestDictionarySerialize()
        {
            Dictionary <string, DeviceBRS1M> deviceBRS1Ms = new Dictionary <string, DeviceBRS1M>();
            DeviceBRS1M d1 = new DeviceBRS1M
            {
                ParameterName   = "Name Registration1",
                PortName        = "COM3",
                Parity          = Parity.None,
                StopBits        = StopBits.One,
                DataBits        = 8,
                BaudRate        = 1200,
                ClearOnOpen     = false,
                ClearWithDTR    = false,
                CurrentDataMode = DataMode.Hex,
                UnitInput       = UnitOfMeasureInput.гПаВх,
                UnitOutput      = UnitOfMeasureOutput.гПаВых
            };
            DeviceBRS1M d2 = new DeviceBRS1M
            {
                ParameterName   = "Name Registration2",
                PortName        = "COM3",
                Parity          = Parity.None,
                StopBits        = StopBits.One,
                DataBits        = 8,
                BaudRate        = 1200,
                ClearOnOpen     = false,
                ClearWithDTR    = false,
                CurrentDataMode = DataMode.Hex,
                UnitInput       = UnitOfMeasureInput.гПаВх,
                UnitOutput      = UnitOfMeasureOutput.гПаВых
            };

            deviceBRS1Ms.Add(d1.ParameterName, d1);
            deviceBRS1Ms.Add(d2.ParameterName, d2);

            PartDevices allParameters = new PartDevices {
                All_BRS_1M = deviceBRS1Ms
            };

            json = JsonConvert.SerializeObject(allParameters, Formatting.Indented);
            //json = JsonConvert.SerializeObject(calculated)
            //Console.WriteLine(json)

            // серелизация JSON в строку, а затем запись строки в файл
            File.WriteAllText(partBarometersSetting, JsonConvert.SerializeObject(allParameters, Formatting.Indented));
        }
 /// <summary>
 /// Инициализирует новый экземпляр класса DeviceBRS1MViewModel.
 /// </summary>
 /// <param name="inDeviceBRS1M">Базовый базовое устройство, на котором должна быть основана эта модель ViewModel</param>
 public DeviceBRS1MViewModel(DeviceBRS1M inDeviceBRS1M)
 {
     _DeviceBRS1M = inDeviceBRS1M ?? throw new ArgumentNullException(nameof(inDeviceBRS1M));
 }