4 Commits
Author SHA1 Message Date
BlubbFish 6a20324c6d add file Changelog.md 2019-12-01 17:55:59 +01:00
BlubbFish 7ee7060c7c catch exceptions 2019-11-29 14:46:10 +01:00
BlubbFish cc00efe5ea Add netcore 2019-11-24 20:46:32 +01:00
BlubbFish 0877e6ffbb Refactoring 2019-11-24 20:12:35 +01:00
20 changed files with 175 additions and 93 deletions
View File
+4 -1
View File
@@ -3,4 +3,7 @@ Library contains utils for Iot
## Linking to ## Linking to
### External ### External
* litjson * [litjson](http://git.blubbfish.net/vs_librarys/litjson)
### Internal
* [Utils](http://git.blubbfish.net/vs_utils/Utils)
+8 -2
View File
@@ -1,12 +1,14 @@
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio Version 16
VisualStudioVersion = 15.0.27004.2010 VisualStudioVersion = 16.0.29519.87
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utils-IoT", "Utils-IoT\Utils-IoT.csproj", "{B870E4D5-6806-4A0B-B233-8907EEDC5AFC}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utils-IoT", "Utils-IoT\Utils-IoT.csproj", "{B870E4D5-6806-4A0B-B233-8907EEDC5AFC}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "litjson_4.7.1", "..\..\Librarys\litjson\litjson\litjson_4.7.1.csproj", "{91A14CD2-2940-4500-8193-56D37EDDDBAA}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "litjson_4.7.1", "..\..\Librarys\litjson\litjson\litjson_4.7.1.csproj", "{91A14CD2-2940-4500-8193-56D37EDDDBAA}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utils", "..\Utils\Utils\Utils.csproj", "{FAC8CE64-BF13-4ECE-8097-AEB5DD060098}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@@ -21,6 +23,10 @@ Global
{91A14CD2-2940-4500-8193-56D37EDDDBAA}.Debug|Any CPU.Build.0 = Debug|Any CPU {91A14CD2-2940-4500-8193-56D37EDDDBAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{91A14CD2-2940-4500-8193-56D37EDDDBAA}.Release|Any CPU.ActiveCfg = Release|Any CPU {91A14CD2-2940-4500-8193-56D37EDDDBAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{91A14CD2-2940-4500-8193-56D37EDDDBAA}.Release|Any CPU.Build.0 = Release|Any CPU {91A14CD2-2940-4500-8193-56D37EDDDBAA}.Release|Any CPU.Build.0 = Release|Any CPU
{FAC8CE64-BF13-4ECE-8097-AEB5DD060098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FAC8CE64-BF13-4ECE-8097-AEB5DD060098}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FAC8CE64-BF13-4ECE-8097-AEB5DD060098}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FAC8CE64-BF13-4ECE-8097-AEB5DD060098}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
+6 -4
View File
@@ -22,18 +22,20 @@ namespace BlubbFish.Utils.IoT.Connector {
if (settings.Count == 0) { if (settings.Count == 0) {
return null; return null;
} }
String object_sensor = "BlubbFish.Utils.IoT.Connector." + ty.ToString() + "." + settings["type"].ToUpperLower() + ", " + "Connector" + ty.ToString() + settings["type"].ToUpperLower(); String object_sensor = "BlubbFish.Utils.IoT.Connector." + ty.ToString() + "." + settings["type"].ToUpperLower() + ", " + "Connector" + ty.ToString() + settings["type"].ToUpperLower();
Type t = null;
try { try {
t = Type.GetType(object_sensor, true); Type t = Type.GetType(object_sensor, true);
return (ABackend)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>) }).Invoke(new Object[] { settings });
} catch (TypeLoadException) { } catch (TypeLoadException) {
Console.Error.WriteLine("Configuration: " + settings["type"] + " is not a " + ty.ToString() + "Backend"); Console.Error.WriteLine("Configuration: " + settings["type"] + " is not a " + ty.ToString() + "Backend");
return null; return null;
} catch (System.IO.FileNotFoundException) { } catch (System.IO.FileNotFoundException) {
Console.Error.WriteLine("Driver " + object_sensor + " could not load!"); Console.Error.WriteLine("Driver " + object_sensor + " could not load!");
return null; return null;
} catch (Exception e) {
Console.Error.WriteLine("Something bad Happend while Loading Connectior: "+e.Message);
} }
return (ABackend)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>) }).Invoke(new Object[] { settings }); return null;
} }
protected void NotifyClientIncomming(BackendEvent value) => this.MessageIncomming?.Invoke(this, value); protected void NotifyClientIncomming(BackendEvent value) => this.MessageIncomming?.Invoke(this, value);
-1
View File
@@ -1,6 +1,5 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using BlubbFish.Utils.IoT.Events;
namespace BlubbFish.Utils.IoT.Connector { namespace BlubbFish.Utils.IoT.Connector {
public abstract class ADataBackend : ABackend { public abstract class ADataBackend : ABackend {
-1
View File
@@ -1,6 +1,5 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using BlubbFish.Utils.IoT.Events;
namespace BlubbFish.Utils.IoT.Connector { namespace BlubbFish.Utils.IoT.Connector {
public abstract class AUserBackend : ABackend { public abstract class AUserBackend : ABackend {
-26
View File
@@ -1,26 +0,0 @@
using System;
namespace BlubbFish.Utils.IoT.Connector {
public class UserMessageEventArgs : EventArgs {
public UserMessageEventArgs() : base() { }
public UserMessageEventArgs(String message, Int64 UserId, DateTime date) {
this.UserId = UserId;
this.Message = message;
this.Date = date;
}
public Int64 UserId { get; private set; }
public String Message { get; private set; }
public DateTime Date { get; private set; }
}
public class MqttEventArgs : EventArgs {
public MqttEventArgs() : base() { }
public MqttEventArgs(String message, String topic) {
this.Topic = topic;
this.Message = message;
this.Date = DateTime.Now;
}
public String Topic { get; private set; }
public String Message { get; private set; }
public DateTime Date { get; private set; }
}
}
-4
View File
@@ -1,8 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BlubbFish.Utils.IoT.Events { namespace BlubbFish.Utils.IoT.Events {
public class BackendEvent : EventArgs { public class BackendEvent : EventArgs {
+1 -5
View File
@@ -1,12 +1,8 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BlubbFish.Utils.IoT.Events { namespace BlubbFish.Utils.IoT.Events {
public class DataEvent : BackendEvent { public class DataEvent : BackendEvent {
public DataEvent(String data) : base() { } public DataEvent() : base() { }
public DataEvent(String message, String topic, DateTime date) : base(message, topic, date, "Data") { } public DataEvent(String message, String topic, DateTime date) : base(message, topic, date, "Data") { }
} }
} }
+21
View File
@@ -0,0 +1,21 @@
using System;
namespace BlubbFish.Utils.IoT.Events {
public class MqttEventArgs : EventArgs {
public MqttEventArgs() : base() { }
public MqttEventArgs(String message, String topic) {
this.Topic = topic;
this.Message = message;
this.Date = DateTime.Now;
}
public String Topic {
get; private set;
}
public String Message {
get; private set;
}
public DateTime Date {
get; private set;
}
}
}
-4
View File
@@ -1,8 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BlubbFish.Utils.IoT.Events { namespace BlubbFish.Utils.IoT.Events {
public class UserEvent : BackendEvent { public class UserEvent : BackendEvent {
+21
View File
@@ -0,0 +1,21 @@
using System;
namespace BlubbFish.Utils.IoT.Events {
public class UserMessageEventArgs : EventArgs {
public UserMessageEventArgs() : base() { }
public UserMessageEventArgs(String message, Int64 UserId, DateTime date) {
this.UserId = UserId;
this.Message = message;
this.Date = date;
}
public Int64 UserId {
get; private set;
}
public String Message {
get; private set;
}
public DateTime Date {
get; private set;
}
}
}
-19
View File
@@ -1,19 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BlubbFish.Utils.IoT {
static class Helper {
internal static String ToUpperLower(this String s) {
if (s.Length == 0) {
return "";
}
if (s.Length == 1) {
return s.ToUpper();
}
return s[0].ToString().ToUpper() + s.Substring(1).ToLower();
}
}
}
+7 -5
View File
@@ -19,9 +19,9 @@ namespace BlubbFish.Utils.IoT.JsonSensor {
this.GetBool = true; this.GetBool = true;
this.GetFloat = 0.0f; this.GetFloat = 0.0f;
this.GetInt = 0; this.GetInt = 0;
this.topic = (settings.Keys.Contains("topic")) ? settings["topic"] : ""; this.topic = settings.Keys.Contains("topic") ? settings["topic"] : "";
this.settings = settings; this.settings = settings;
this.Title = (settings.Keys.Contains("title")) ? settings["title"] : ""; this.Title = settings.Keys.Contains("title") ? settings["title"] : "";
this.Name = name; this.Name = name;
this.backend = backend; this.backend = backend;
this.backend.MessageIncomming += this.IncommingMqttMessage; this.backend.MessageIncomming += this.IncommingMqttMessage;
@@ -52,7 +52,7 @@ namespace BlubbFish.Utils.IoT.JsonSensor {
public static AJsonSensor GetInstance(Dictionary<String, ABackend> backends, Dictionary<String, String> settings, String name) { public static AJsonSensor GetInstance(Dictionary<String, ABackend> backends, Dictionary<String, String> settings, String name) {
String object_sensor = "BlubbFish.Utils.IoT.JsonSensor." + Char.ToUpper(settings["type"][0]) + settings["type"].Substring(1).ToLower(); String object_sensor = "BlubbFish.Utils.IoT.JsonSensor." + Char.ToUpper(settings["type"][0]) + settings["type"].Substring(1).ToLower();
Type t = null; Type t;
try { try {
t = Type.GetType(object_sensor, true); t = Type.GetType(object_sensor, true);
} catch(TypeLoadException) { } catch(TypeLoadException) {
@@ -117,11 +117,13 @@ namespace BlubbFish.Utils.IoT.JsonSensor {
this.disposedValue = true; this.disposedValue = true;
} }
} }
~AJsonSensor() { ~AJsonSensor() {
Dispose(false); this.Dispose(false);
} }
public void Dispose() { public void Dispose() {
Dispose(true); this.Dispose(true);
GC.SuppressFinalize(this); GC.SuppressFinalize(this);
} }
#endregion #endregion
+1 -3
View File
@@ -5,9 +5,7 @@ using BlubbFish.Utils.IoT.Events;
namespace BlubbFish.Utils.IoT.JsonSensor { namespace BlubbFish.Utils.IoT.JsonSensor {
class Pir : AJsonSensor { class Pir : AJsonSensor {
public Pir(Dictionary<String, String> settings, String name, ADataBackend backend) : base(settings, name, backend) { public Pir(Dictionary<String, String> settings, String name, ADataBackend backend) : base(settings, name, backend) => this.Datatypes = Types.Bool;
this.Datatypes = Types.Bool;
}
protected override Boolean UpdateValue(BackendEvent e) { protected override Boolean UpdateValue(BackendEvent e) {
this.GetBool = (e.Message.ToLower() == "on") ? true : false; this.GetBool = (e.Message.ToLower() == "on") ? true : false;
+1 -3
View File
@@ -5,9 +5,7 @@ using BlubbFish.Utils.IoT.Events;
namespace BlubbFish.Utils.IoT.JsonSensor { namespace BlubbFish.Utils.IoT.JsonSensor {
class Switch : AJsonSensor { class Switch : AJsonSensor {
public Switch(Dictionary<System.String, System.String> settings, String name, ADataBackend backend) : base(settings, name, backend) { public Switch(Dictionary<String, String> settings, String name, ADataBackend backend) : base(settings, name, backend) => this.Datatypes = Types.Bool;
this.Datatypes = Types.Bool;
}
protected override Boolean UpdateValue(BackendEvent e) { protected override Boolean UpdateValue(BackendEvent e) {
this.GetBool = (e.Message.ToLower() == "on") ? true : false; this.GetBool = (e.Message.ToLower() == "on") ? true : false;
+17 -14
View File
@@ -1,18 +1,20 @@
using System.Reflection; #if !NETCOREAPP
using System.Runtime.CompilerServices; using System.Reflection;
using System.Runtime.InteropServices; using System.Resources;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, // 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. // die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("IoT")] [assembly: AssemblyTitle("Utils-IoT")]
[assembly: AssemblyDescription("")] [assembly: AssemblyDescription("Provides classes for iot development")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("BlubbFish")]
[assembly: AssemblyProduct("IoT")] [assembly: AssemblyProduct("Utils-IoT")]
[assembly: AssemblyCopyright("Copyright © 2017")] [assembly: AssemblyCopyright("Copyright © BlubbFish 2017 - 24.11.2019")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("BlubbFish")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
[assembly: NeutralResourcesLanguage("de-DE")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly // 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 // für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
@@ -32,5 +34,6 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, // Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben: // indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyVersion("1.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0")]
#endif
+10 -1
View File
@@ -40,7 +40,6 @@
<Compile Include="Events\BackendEvent.cs" /> <Compile Include="Events\BackendEvent.cs" />
<Compile Include="Events\DataEvent.cs" /> <Compile Include="Events\DataEvent.cs" />
<Compile Include="Events\UserEvent.cs" /> <Compile Include="Events\UserEvent.cs" />
<Compile Include="Helper.cs" />
<Compile Include="JsonSensor\Bosmon.cs" /> <Compile Include="JsonSensor\Bosmon.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="JsonSensor\AJsonSensor.cs" /> <Compile Include="JsonSensor\AJsonSensor.cs" />
@@ -50,11 +49,21 @@
<Compile Include="JsonSensor\Switch.cs" /> <Compile Include="JsonSensor\Switch.cs" />
<Compile Include="JsonSensor\Temperatur.cs" /> <Compile Include="JsonSensor\Temperatur.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="..\CHANGELOG.md" />
<Content Include="..\CONTRIBUTING.md" />
<Content Include="..\LICENSE" />
<Content Include="..\README.md" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\Librarys\litjson\litjson\litjson_4.7.1.csproj"> <ProjectReference Include="..\..\..\Librarys\litjson\litjson\litjson_4.7.1.csproj">
<Project>{91a14cd2-2940-4500-8193-56d37edddbaa}</Project> <Project>{91a14cd2-2940-4500-8193-56d37edddbaa}</Project>
<Name>litjson_4.7.1</Name> <Name>litjson_4.7.1</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\..\Utils\Utils\Utils.csproj">
<Project>{fac8ce64-bf13-4ece-8097-aeb5dd060098}</Project>
<Name>Utils</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>
+41
View File
@@ -0,0 +1,41 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>BlubbFish.Utils.IoT</RootNamespace>
<AssemblyName>Utils-IoT</AssemblyName>
<AssemblyVersion>1.0.0</AssemblyVersion>
<NeutralLanguage>de-DE</NeutralLanguage>
<PackageReleaseNotes>1.0.0 Init</PackageReleaseNotes>
<Copyright>Copyright © BlubbFish 2017 - 24.11.2019</Copyright>
<Description>Provides classes for iot development</Description>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<Company>BlubbFish</Company>
<Authors>BlubbFish</Authors>
<FileVersion>1.0.0</FileVersion>
<PackageProjectUrl>http://git.blubbfish.net/vs_utils/Utils-IoT</PackageProjectUrl>
<RepositoryUrl>http://git.blubbfish.net/vs_utils/Utils-IoT.git</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<Version>1.0.0</Version>
<PackageId>IoT.Utils.BlubbFish</PackageId>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Librarys\litjson\litjson\litjson_Core.csproj" />
<ProjectReference Include="..\..\Utils\Utils\Utils_Core.csproj" />
</ItemGroup>
<ItemGroup>
<Content Include="../CHANGELOG.md" />
<Content Include="../CONTRIBUTING.md" />
<Content Include="../LICENSE" />
<Content Include="../README.md" />
</ItemGroup>
<ItemGroup>
<None Include="..\LICENSE">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
</Project>
+37
View File
@@ -0,0 +1,37 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29519.87
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Utils-IoT_Core", "Utils-IoT\Utils-IoT_Core.csproj", "{549D532E-F859-4128-BA8E-9658E7349F64}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Utils_Core", "..\Utils\Utils\Utils_Core.csproj", "{5A666820-02FF-4649-95F7-476CE95E0E29}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "litjson_Core", "..\..\Librarys\litjson\litjson\litjson_Core.csproj", "{822DFFA0-7838-4590-8160-63EC92AE15B5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{549D532E-F859-4128-BA8E-9658E7349F64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{549D532E-F859-4128-BA8E-9658E7349F64}.Debug|Any CPU.Build.0 = Debug|Any CPU
{549D532E-F859-4128-BA8E-9658E7349F64}.Release|Any CPU.ActiveCfg = Release|Any CPU
{549D532E-F859-4128-BA8E-9658E7349F64}.Release|Any CPU.Build.0 = Release|Any CPU
{5A666820-02FF-4649-95F7-476CE95E0E29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5A666820-02FF-4649-95F7-476CE95E0E29}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5A666820-02FF-4649-95F7-476CE95E0E29}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5A666820-02FF-4649-95F7-476CE95E0E29}.Release|Any CPU.Build.0 = Release|Any CPU
{822DFFA0-7838-4590-8160-63EC92AE15B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{822DFFA0-7838-4590-8160-63EC92AE15B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{822DFFA0-7838-4590-8160-63EC92AE15B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{822DFFA0-7838-4590-8160-63EC92AE15B5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {28A0A2C2-A747-4FB6-80F6-50CA564403B8}
EndGlobalSection
EndGlobal