commit 5c182b95ddd42543878d930183b78f1f6c75fc5c Author: Philip Schell Date: Thu Feb 14 11:54:29 2019 +0100 move Iot to Iot-Interfaces diff --git a/Iot-Interfaces/IMqtt.cs b/Iot-Interfaces/IMqtt.cs new file mode 100644 index 0000000..89de56f --- /dev/null +++ b/Iot-Interfaces/IMqtt.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BlubbFish.Utils.IoT.Interfaces { + public interface IMqtt { + /// + /// Gibt einen JSON-String der Eigenschaften eines Objekts zurück + /// + /// JSON-String + String ToJson(); + /// + /// Gibt das MQTT-Topic als String zurück unter dem die Daten des Objekts Publiziert werden sollen + /// + /// MQTT-Topic + String MqttTopic(); + } +} diff --git a/Iot-Interfaces/ISenml.cs b/Iot-Interfaces/ISenml.cs new file mode 100644 index 0000000..6f9babd --- /dev/null +++ b/Iot-Interfaces/ISenml.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BlubbFish.Utils.IoT.Interfaces { + public interface ISenml { + /// + /// Gibt einen Senml-JSON-String der Eigenschaften eines Objekts zurück + /// + /// Senml-JSON-String + String ToSenml(); + /// + /// Gibt das Senml-Topic als String zurück unter dem die Daten des Objekts Publiziert werden sollen + /// + /// Senml-Topic + String SenmlTopic(); + } +} diff --git a/Iot-Interfaces/Iot-Interfaces.csproj b/Iot-Interfaces/Iot-Interfaces.csproj new file mode 100644 index 0000000..47b3dfa --- /dev/null +++ b/Iot-Interfaces/Iot-Interfaces.csproj @@ -0,0 +1,50 @@ + + + + + Debug + AnyCPU + {4DAADA29-C600-4CF3-8AD3-9C97C8D7F632} + Library + Properties + BlubbFish.Utils.IoT.Interfaces + Iot-Interfaces + v4.7.1 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Iot-Interfaces/Language/Senml.cs b/Iot-Interfaces/Language/Senml.cs new file mode 100644 index 0000000..e1801bd --- /dev/null +++ b/Iot-Interfaces/Language/Senml.cs @@ -0,0 +1,62 @@ +using System; +using System.ComponentModel; +using System.Reflection; + +namespace BlubbFish.Utils.IoT.Interfaces.Language { + public abstract class Senml { + #pragma warning disable IDE1006 // Benennungsstile + public String n { get; } + public String u { get; } + public Int32 t { get; } + #pragma warning restore IDE1006 // Benennungsstile + + public enum Units { + [Description("%")] + Percent, + [Description("count")] + CounterValue, + [Description("W")] + Watt, + [Description("J")] + Joule, + [Description("Cel")] + Celsius, + [Description("lx")] + Lux + } + + public Senml(String name, Units unit) { + this.n = name; + this.u = this.GetEnumDescription(unit); + this.t = 0; + } + + private String GetEnumDescription(Enum value) { + FieldInfo fi = value.GetType().GetField(value.ToString()); + + DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); + + if (attributes != null && attributes.Length > 0) { + return attributes[0].Description; + } else { + return value.ToString(); + } + } + } + public class SenmlBool : Senml { + #pragma warning disable IDE1006 // Benennungsstile + public Boolean bv { get; } + #pragma warning restore IDE1006 // Benennungsstile + public SenmlBool(String name, Units unit, Boolean level) : base(name, unit) { + this.bv = level; + } + } + public class SenmlDouble : Senml { + #pragma warning disable IDE1006 // Benennungsstile + public Double v { get; } + #pragma warning restore IDE1006 // Benennungsstile + public SenmlDouble(String name, Units unit, Double level) : base(name, unit) { + this.v = level; + } + } +} diff --git a/Iot-Interfaces/Properties/AssemblyInfo.cs b/Iot-Interfaces/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a014b72 --- /dev/null +++ b/Iot-Interfaces/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("Iot-Interfaces")] +[assembly: AssemblyDescription("Interfaces for IoT-Stuff")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("BlubbFish")] +[assembly: AssemblyProduct("Iot-Interfaces")] +[assembly: AssemblyCopyright("Copyright © 2018 - 02.05.2018")] +[assembly: AssemblyTrademark("BlubbFish")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("4daada29-c600-4cf3-8ad3-9c97c8d7f632")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")]