move Iot to Iot-Interfaces

This commit is contained in:
Philip Schell 2019-02-14 11:54:29 +01:00
commit 5c182b95dd
5 changed files with 188 additions and 0 deletions

20
Iot-Interfaces/IMqtt.cs Normal file
View File

@ -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 {
/// <summary>
/// Gibt einen JSON-String der Eigenschaften eines Objekts zurück
/// </summary>
/// <returns>JSON-String</returns>
String ToJson();
/// <summary>
/// Gibt das MQTT-Topic als String zurück unter dem die Daten des Objekts Publiziert werden sollen
/// </summary>
/// <returns>MQTT-Topic</returns>
String MqttTopic();
}
}

20
Iot-Interfaces/ISenml.cs Normal file
View File

@ -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 {
/// <summary>
/// Gibt einen Senml-JSON-String der Eigenschaften eines Objekts zurück
/// </summary>
/// <returns>Senml-JSON-String</returns>
String ToSenml();
/// <summary>
/// Gibt das Senml-Topic als String zurück unter dem die Daten des Objekts Publiziert werden sollen
/// </summary>
/// <returns>Senml-Topic</returns>
String SenmlTopic();
}
}

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{4DAADA29-C600-4CF3-8AD3-9C97C8D7F632}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>BlubbFish.Utils.IoT.Interfaces</RootNamespace>
<AssemblyName>Iot-Interfaces</AssemblyName>
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ISenml.cs" />
<Compile Include="IMqtt.cs" />
<Compile Include="Language\Senml.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -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;
}
}
}

View File

@ -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")]