diff -r 4f569432e14b -r 70d0c3102424 Hardware/Sensor.cs --- a/Hardware/Sensor.cs Tue May 04 17:32:41 2010 +0000 +++ b/Hardware/Sensor.cs Thu May 06 19:20:38 2010 +0000 @@ -46,6 +46,7 @@ private string defaultName; private string name; private int index; + private bool defaultHidden; private SensorType sensorType; private IHardware hardware; private ReadOnlyArray parameters; @@ -64,31 +65,37 @@ public Sensor(string name, int index, SensorType sensorType, IHardware hardware) : this(name, index, null, sensorType, hardware, - new ParameterDescription[0]) { } + null) { } - public Sensor(string name, int index, float? limit, - SensorType sensorType, IHardware hardware) : this(name, index, limit, - sensorType, hardware, new ParameterDescription[0]) { } + public Sensor(string name, int index, float? limit, SensorType sensorType, + IHardware hardware, ParameterDescription[] parameterDescriptions) : + this(name, index, false, limit, sensorType, hardware, + parameterDescriptions) { } - public Sensor(string name, int index, float? limit, SensorType sensorType, - IHardware hardware, ParameterDescription[] parameterDescriptions) + public Sensor(string name, int index, bool defaultHidden, + float? limit, SensorType sensorType, IHardware hardware, + ParameterDescription[] parameterDescriptions) { this.defaultName = name; this.index = index; + this.defaultHidden = defaultHidden; this.defaultLimit = limit; this.sensorType = sensorType; this.hardware = hardware; - Parameter[] parameters = new Parameter[parameterDescriptions.Length]; + Parameter[] parameters = new Parameter[parameterDescriptions == null ? + 0 : parameterDescriptions.Length]; for (int i = 0; i < parameters.Length; i++ ) parameters[i] = new Parameter(parameterDescriptions[i], this); this.parameters = parameters; - string configName = Config.Settings[Identifier + "/name"]; + string configName = Config.Settings[ + new Identifier(Identifier, "name").ToString()]; if (configName != null) this.name = configName; else this.name = name; - string configLimit = Config.Settings[Identifier + "/limit"]; + string configLimit = Config.Settings[ + new Identifier(Identifier, "limit").ToString()]; if (configLimit != null && configLimit != "") this.limit = float.Parse(configLimit); else @@ -103,10 +110,10 @@ get { return sensorType; } } - public string Identifier { + public Identifier Identifier { get { - return hardware.Identifier + "/" + sensorType.ToString().ToLower() + - "/" + index; + return new Identifier(hardware.Identifier, + sensorType.ToString().ToLower(), index.ToString()); } } @@ -119,7 +126,7 @@ name = value; else name = defaultName; - Config.Settings[Identifier + "/name"] = name; + Config.Settings[new Identifier(Identifier, "name").ToString()] = name; } } @@ -127,6 +134,10 @@ get { return index; } } + public bool IsDefaultHidden { + get { return defaultHidden; } + } + public IReadOnlyArray Parameters { get { return parameters; } } @@ -169,11 +180,11 @@ set { if (value.HasValue) { limit = value; - Config.Settings[Identifier + "/limit"] = + Config.Settings[new Identifier(Identifier, "limit").ToString()] = limit.ToString(); } else { limit = defaultLimit; - Config.Settings[Identifier + "/limit"] = ""; + Config.Settings[new Identifier(Identifier, "limit").ToString()] = ""; } } }