[NF] Schalter auslesen
[BF] C# Guidlines
This commit is contained in:
parent
90e662458e
commit
39c0ab4e3c
@ -60,6 +60,7 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Sensor\ASensor.cs" />
|
<Compile Include="Sensor\ASensor.cs" />
|
||||||
<Compile Include="Sensor\Power.cs" />
|
<Compile Include="Sensor\Power.cs" />
|
||||||
|
<Compile Include="Sensor\Switch.cs" />
|
||||||
<Compile Include="Tracings\ATracings.cs" />
|
<Compile Include="Tracings\ATracings.cs" />
|
||||||
<Compile Include="Tracings\Graph.cs" />
|
<Compile Include="Tracings\Graph.cs" />
|
||||||
<Compile Include="Tracings\Meter.cs" />
|
<Compile Include="Tracings\Meter.cs" />
|
||||||
|
@ -35,8 +35,8 @@ namespace Dashboard {
|
|||||||
ASensor s;
|
ASensor s;
|
||||||
switch(ini.GetValue(sensor, "type").ToLower()) {
|
switch(ini.GetValue(sensor, "type").ToLower()) {
|
||||||
case "power": s = new Power(ini.GetSection(sensor)); break;
|
case "power": s = new Power(ini.GetSection(sensor)); break;
|
||||||
default:
|
case "switch": s = new Switch(ini.GetSection(sensor)); break;
|
||||||
throw new ArgumentException("sensor.ini: " + sensor + " section has a missconfiguration in type");
|
default: throw new ArgumentException("sensor.ini: " + sensor + " section has a missconfiguration in type");
|
||||||
}
|
}
|
||||||
this.sensors.Add(sensor.ToLower().Substring(1, sensor.Length - 2), s);
|
this.sensors.Add(sensor.ToLower().Substring(1, sensor.Length - 2), s);
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,9 @@ namespace Dashboard.Sensor {
|
|||||||
public event UpdatedValue Update;
|
public event UpdatedValue Update;
|
||||||
|
|
||||||
public ASensor(Dictionary<String, String> settings) {
|
public ASensor(Dictionary<String, String> settings) {
|
||||||
|
this.GetBool = true;
|
||||||
|
this.GetFloat = 0.0f;
|
||||||
|
this.GetInt = 0;
|
||||||
this.topic = (settings.Keys.Contains("topic")) ? settings["topic"] : "";
|
this.topic = (settings.Keys.Contains("topic")) ? settings["topic"] : "";
|
||||||
this.Polling = (settings.Keys.Contains("polling")) ? Int32.Parse(settings["polling"]) : 60;
|
this.Polling = (settings.Keys.Contains("polling")) ? Int32.Parse(settings["polling"]) : 60;
|
||||||
this.pollcount = this.Polling;
|
this.pollcount = this.Polling;
|
||||||
|
15
Mqtt-Dashboard/Sensor/Switch.cs
Normal file
15
Mqtt-Dashboard/Sensor/Switch.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using uPLibrary.Networking.M2Mqtt.Messages;
|
||||||
|
|
||||||
|
namespace Dashboard.Sensor {
|
||||||
|
class Switch : ASensor {
|
||||||
|
public Switch(Dictionary<System.String, System.String> settings) : base(settings) {
|
||||||
|
this.Datatypes = Types.Bool;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void UpdateValue(MqttMsgPublishEventArgs e) {
|
||||||
|
this.GetBool = (Encoding.UTF8.GetString(e.Message).ToLower() == "on") ? true : false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -9,7 +9,7 @@ namespace Dashboard.Tracings {
|
|||||||
class Graph : ATracings, IDisposable {
|
class Graph : ATracings, IDisposable {
|
||||||
private Series series;
|
private Series series;
|
||||||
private Chart chart;
|
private Chart chart;
|
||||||
private Queue<Tuple<DateTime, float>> hist = new Queue<Tuple<DateTime, float>>();
|
private Queue<Tuple<DateTime, Single>> hist = new Queue<Tuple<DateTime, Single>>();
|
||||||
private Int32 Chart_Items;
|
private Int32 Chart_Items;
|
||||||
|
|
||||||
public Graph(ASensor sensor, Dictionary<String, String> settings) : base(sensor, settings) {
|
public Graph(ASensor sensor, Dictionary<String, String> settings) : base(sensor, settings) {
|
||||||
@ -58,9 +58,9 @@ namespace Dashboard.Tracings {
|
|||||||
}
|
}
|
||||||
protected override void SensorUpdate(Object sender, EventArgs e) {
|
protected override void SensorUpdate(Object sender, EventArgs e) {
|
||||||
switch(this.sensor.Datatypes) {
|
switch(this.sensor.Datatypes) {
|
||||||
case ASensor.Types.Bool: this.hist.Enqueue(new Tuple<DateTime, float>(this.sensor.Timestamp, (this.sensor.GetBool) ? 1 : 0)); break;
|
case ASensor.Types.Bool: this.hist.Enqueue(new Tuple<DateTime, Single>(this.sensor.Timestamp, (this.sensor.GetBool) ? 1 : 0)); break;
|
||||||
case ASensor.Types.Int: this.hist.Enqueue(new Tuple<DateTime, float>(this.sensor.Timestamp, this.sensor.GetInt)); break;
|
case ASensor.Types.Int: this.hist.Enqueue(new Tuple<DateTime, Single>(this.sensor.Timestamp, this.sensor.GetInt)); break;
|
||||||
case ASensor.Types.Float: this.hist.Enqueue(new Tuple<DateTime, float>(this.sensor.Timestamp, this.sensor.GetFloat)); break;
|
case ASensor.Types.Float: this.hist.Enqueue(new Tuple<DateTime, Single>(this.sensor.Timestamp, this.sensor.GetFloat)); break;
|
||||||
}
|
}
|
||||||
if(this.hist.Count > this.Chart_Items) {
|
if(this.hist.Count > this.Chart_Items) {
|
||||||
this.hist.Dequeue();
|
this.hist.Dequeue();
|
||||||
@ -69,7 +69,7 @@ namespace Dashboard.Tracings {
|
|||||||
this.chart.BeginInvoke((MethodInvoker)delegate {
|
this.chart.BeginInvoke((MethodInvoker)delegate {
|
||||||
this.series.Points.Clear();
|
this.series.Points.Clear();
|
||||||
try {
|
try {
|
||||||
foreach(Tuple<DateTime, float> temp in this.hist) {
|
foreach(Tuple<DateTime, Single> temp in this.hist) {
|
||||||
this.series.Points.AddXY(temp.Item1, temp.Item2);
|
this.series.Points.AddXY(temp.Item1, temp.Item2);
|
||||||
}
|
}
|
||||||
} catch(Exception) { };
|
} catch(Exception) { };
|
||||||
|
@ -8,7 +8,7 @@ using System.Globalization;
|
|||||||
namespace Dashboard.Tracings {
|
namespace Dashboard.Tracings {
|
||||||
class Meter : ATracings {
|
class Meter : ATracings {
|
||||||
private Int32 DisplayItems;
|
private Int32 DisplayItems;
|
||||||
private Queue<float> DisplayAverage = new Queue<float>();
|
private Queue<Single> DisplayAverage = new Queue<Single>();
|
||||||
private String DisplayUnit;
|
private String DisplayUnit;
|
||||||
private Label label1;
|
private Label label1;
|
||||||
private Label label2;
|
private Label label2;
|
||||||
@ -20,22 +20,24 @@ namespace Dashboard.Tracings {
|
|||||||
public override Panel GetPanel() {
|
public override Panel GetPanel() {
|
||||||
Panel panel = new Panel();
|
Panel panel = new Panel();
|
||||||
|
|
||||||
label1 = new Label();
|
this.label1 = new Label() {
|
||||||
label1.Font = new System.Drawing.Font("Lucida Sans Typewriter", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
Font = new System.Drawing.Font("Lucida Sans Typewriter", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((Byte)(0))),
|
||||||
label1.Location = new System.Drawing.Point(0, 0);
|
Location = new System.Drawing.Point(0, 0),
|
||||||
label1.Size = new System.Drawing.Size(200, 43);
|
Size = new System.Drawing.Size(200, 43),
|
||||||
label1.Text = "";
|
Text = "",
|
||||||
label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
TextAlign = System.Drawing.ContentAlignment.TopCenter
|
||||||
|
};
|
||||||
|
|
||||||
label2 = new Label();
|
this.label2 = new Label() {
|
||||||
label2.AutoSize = true;
|
AutoSize = true,
|
||||||
label2.Location = new System.Drawing.Point(0, 50);
|
Location = new System.Drawing.Point(0, 50),
|
||||||
label2.Size = new System.Drawing.Size(96, 13);
|
Size = new System.Drawing.Size(96, 13),
|
||||||
label2.Text = "";
|
Text = ""
|
||||||
|
};
|
||||||
|
|
||||||
panel.BorderStyle = BorderStyle.FixedSingle;
|
panel.BorderStyle = BorderStyle.FixedSingle;
|
||||||
panel.Controls.Add(label2);
|
panel.Controls.Add(this.label2);
|
||||||
panel.Controls.Add(label1);
|
panel.Controls.Add(this.label1);
|
||||||
panel.Size = new System.Drawing.Size(200, 100);
|
panel.Size = new System.Drawing.Size(200, 100);
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
@ -49,12 +51,12 @@ namespace Dashboard.Tracings {
|
|||||||
if(this.DisplayAverage.Count > this.DisplayItems) {
|
if(this.DisplayAverage.Count > this.DisplayItems) {
|
||||||
this.DisplayAverage.Dequeue();
|
this.DisplayAverage.Dequeue();
|
||||||
}
|
}
|
||||||
float average = this.DisplayAverage.Sum() / this.DisplayAverage.Count();
|
Single average = this.DisplayAverage.Sum() / this.DisplayAverage.Count();
|
||||||
this.label1.BeginInvoke((MethodInvoker)delegate {
|
this.label1.BeginInvoke((MethodInvoker)delegate {
|
||||||
label1.Text = value+" "+this.DisplayUnit;
|
this.label1.Text = value+" "+this.DisplayUnit;
|
||||||
});
|
});
|
||||||
this.label2.BeginInvoke((MethodInvoker)delegate {
|
this.label2.BeginInvoke((MethodInvoker)delegate {
|
||||||
label2.Text = "Durchschnitt: " + Math.Round(average, 2) + " " + this.DisplayUnit;
|
this.label2.Text = "Durchschnitt: " + Math.Round(average, 2) + " " + this.DisplayUnit;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user