2013-11-11 7 views
2

Я собираюсь закодировать программу анализа вибраций, как школьный проект, который будет измерять вибрацию и некоторые другие вещи, используя сенсор, а затем анализировать их с использованием некоторых алгоритмов.Создать новый экземпляр настроек

В любом случае, я хочу, чтобы пользователь мог установить параметры и переменные и поэтому создал несколько разных настроек. Однако это связано с тем, что у меня будет множество датчиков одного типа (я не знаю, сколько на данный момент), я хотел бы создать новый набор или экземпляр этих настроек при добавлении датчика. Кроме того, есть некоторые типы переменных, которые я не знаю, сколько экземпляров этого типа (например, скажем, разные RPM для сравнения вибраций) будет и поэтому захочет добавить еще один экземпляр этой переменной.

Кто-нибудь знает, как это должно быть выполнено? Это, вероятно, довольно прямолинейно, но Google ничего мне не дал, и попытка создания нового экземпляра с использованием конструктора вообще не работала.

Это то, что я пытался до сих пор:

AccelerometerSettings Sensor3 = new AccelerometerSettings(); 

дал мне новый экземпляр настройки для акселерометра имени Sensor3, но

Sensor3.accelerometerResolution = 10; 

(У меня есть настройки в акселерометрия типа двойного разрешения) ничего мне не дает. Или на самом деле, это дает мне ошибку для '=' и говорит, что это недопустимый токен, и что accelometerResolution является полем, но используется как тип.

Edit: Вот код для класса настройки, который автоматически генерируется Visual Studio:

 //------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:4.0.30319.18052 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

namespace Fault_detection_system { 


    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 
    internal sealed partial class AccelerometerSettings : global::System.Configuration.ApplicationSettingsBase { 

     private static AccelerometerSettings defaultInstance = ((AccelerometerSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new AccelerometerSettings()))); 

     public static AccelerometerSettings Default { 
      get { 
       return defaultInstance; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("Accelerometer-Name")] 
     public string accelerometerName { 
      get { 
       return ((string)(this["accelerometerName"])); 
      } 
      set { 
       this["accelerometerName"] = value; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("20.0")] 
     public decimal accelerometerResolution { 
      get { 
       return ((decimal)(this["accelerometerResolution"])); 
      } 
      set { 
       this["accelerometerResolution"] = value; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("10.0")] 
     public decimal accelerometerAccuracyUp { 
      get { 
       return ((decimal)(this["accelerometerAccuracyUp"])); 
      } 
      set { 
       this["accelerometerAccuracyUp"] = value; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("10.0")] 
     public decimal accelerometerAccuracyDown { 
      get { 
       return ((decimal)(this["accelerometerAccuracyDown"])); 
      } 
      set { 
       this["accelerometerAccuracyDown"] = value; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("10")] 
     public decimal faultFrequency { 
      get { 
       return ((decimal)(this["faultFrequency"])); 
      } 
      set { 
       this["faultFrequency"] = value; 
      } 
     } 
    } 
+5

Теперь, когда вы сказали нам, что хотите, ** покажите нам, что вы пробовали ... (разместите свой код). – Brian

+1

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

@ user2950764 - не размещайте свой код в комментариях. Пожалуйста, отредактируйте свой пост и добавьте его туда. – Brian

ответ

0

Это ваш Settings класс, который вы можете получить доступ во время выполнения статического свойства Default, которая дает вам доступ к загруженные параметры из файла app.config, который имеет типа AccelerometerSettings и там вы можете получить доступ к его свойствам следующим образом:

var resolution = AccelerometerSettings.Default.accelerometerResolution; 

, и если вы хотите изменить настройки и сохранить его в user.conf ig

AccelerometerSettings.Default.accelerometerResolution = 42.0; 
AccelerometerSettings.Default.Save(); 
Смежные вопросы