Compare commits
No commits in common. "83481852723f2f676bda4400f6ad70e82a931161" and "2e6f2f464bc783d371e5f63cacb4609700f58485" have entirely different histories.
8348185272
...
2e6f2f464b
@ -1,15 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using BlubbFish.Utils.IoT.Events;
|
||||
|
||||
namespace BlubbFish.Utils.IoT.Connector {
|
||||
public abstract class ABackend {
|
||||
public enum BackendType {
|
||||
Data,
|
||||
Db,
|
||||
Storage,
|
||||
User
|
||||
}
|
||||
public event BackendMessage MessageIncomming;
|
||||
@ -22,44 +18,20 @@ namespace BlubbFish.Utils.IoT.Connector {
|
||||
|
||||
public ABackend(Dictionary<String, String> settings) => this.settings = settings;
|
||||
|
||||
|
||||
public static ABackend GetInstance(Dictionary<String, String> settings) {
|
||||
if(settings.Count == 0) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return GetInstance(settings, (BackendType)Enum.Parse(typeof(BackendType), settings["backendtype"]));
|
||||
} catch(Exception e) {
|
||||
throw new Exception("Something bad Happend while Loading Connector without type: " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public static ABackend GetStorageInstance(Dictionary<String, String> settings, List<Type> types) {
|
||||
if(settings.Count == 0 || types.Count != 1) {
|
||||
return null;
|
||||
}
|
||||
String object_sensor = "BlubbFish.Utils.IoT.Connector.Storage." + settings["type"].ToUpperLower() + "`"+types.Count+"["+ String.Join(",", new List<String>(types.Select(x => "["+x.FullName + "," + x.Assembly.FullName+"]"))) + "], " + "ConnectorStorage" + settings["type"].ToUpperLower();
|
||||
return LoadInstance(object_sensor, settings, "Storage");
|
||||
}
|
||||
|
||||
public static ABackend GetInstance(Dictionary<String, String> settings, BackendType ty) {
|
||||
if (settings.Count == 0) {
|
||||
return null;
|
||||
}
|
||||
String object_sensor = "BlubbFish.Utils.IoT.Connector." + ty.ToString() + "." + settings["type"].ToUpperLower() + ", " + "Connector" + ty.ToString() + settings["type"].ToUpperLower();
|
||||
return LoadInstance(object_sensor, settings, ty.ToString());
|
||||
}
|
||||
|
||||
public static ABackend LoadInstance(String object_sensor, Dictionary<String, String> settings, String backendtype) {
|
||||
try {
|
||||
Type t = Type.GetType(object_sensor, true);
|
||||
return (ABackend)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>) }).Invoke(new Object[] { settings });
|
||||
} catch (TypeLoadException) {
|
||||
throw new TypeLoadException("Configuration: " + settings["type"] + " is not a " + backendtype + "Backend");
|
||||
throw new TypeLoadException("Configuration: " + settings["type"] + " is not a " + ty.ToString() + "Backend");
|
||||
} catch (System.IO.FileNotFoundException) {
|
||||
throw new DllNotFoundException("Driver " + object_sensor + " could not load!");
|
||||
} catch (Exception e) {
|
||||
throw new Exception("Something bad Happend while Loading Connector: " + e.Message);
|
||||
throw new Exception("Something bad Happend while Loading Connectior: "+e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BlubbFish.Utils.IoT.Connector {
|
||||
public abstract class ADbBackend : ABackend {
|
||||
public ADbBackend(Dictionary<String, String> settings) : base(settings) { }
|
||||
|
||||
public abstract T LoadSingleRow<T>(String query, Dictionary<String, Object> param) where T : new();
|
||||
|
||||
public abstract List<T> LoadMultiRows<T>(String query, Dictionary<String, Object> param) where T : new();
|
||||
|
||||
public abstract Int32 Insert(String query, Dictionary<String, Object> param);
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BlubbFish.Utils.IoT.Connector {
|
||||
public abstract class AStorageBackend<O> : ABackend {
|
||||
public AStorageBackend(Dictionary<String, String> settings) : base(settings) { }
|
||||
|
||||
public abstract Dictionary<String, O> Get() ;
|
||||
|
||||
public abstract O Get(String key);
|
||||
|
||||
public abstract Boolean Put(O param, String key);
|
||||
}
|
||||
}
|
||||
@ -5,5 +5,6 @@ namespace BlubbFish.Utils.IoT.Connector {
|
||||
public abstract class AUserBackend : ABackend {
|
||||
public AUserBackend(Dictionary<String, String> settings) : base(settings) {}
|
||||
public abstract void Send(String message);
|
||||
public abstract void Send(String message, String[] buttons);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,58 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace BlubbFish.Utils.IoT.Events {
|
||||
public class GpsEvent : BackendEvent {
|
||||
#region mandatory field
|
||||
public Double BatteryLevel {
|
||||
get; set;
|
||||
}
|
||||
public Boolean CorrectInterface {
|
||||
get; set;
|
||||
}
|
||||
public LoraDataGps Gps {
|
||||
get; set;
|
||||
}
|
||||
public String Hash {
|
||||
get; set;
|
||||
}
|
||||
public String Name {
|
||||
get; set;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region optional field
|
||||
public DateTime Receivedtime {
|
||||
get; set;
|
||||
}
|
||||
public Double Rssi {
|
||||
get; set;
|
||||
}
|
||||
public Double Snr {
|
||||
get; set;
|
||||
}
|
||||
#endregion
|
||||
|
||||
public class LoraDataGps {
|
||||
#region mandatory field
|
||||
public Double Latitude {
|
||||
get; set;
|
||||
}
|
||||
public Double Longitude {
|
||||
get; set;
|
||||
}
|
||||
public Boolean Fix {
|
||||
get; set;
|
||||
}
|
||||
public Double Height {
|
||||
get; set;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region optional field
|
||||
public Double Hdop {
|
||||
get; set;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,6 +3,6 @@
|
||||
namespace BlubbFish.Utils.IoT.Events {
|
||||
public class UserEvent : BackendEvent {
|
||||
public UserEvent() : base() { }
|
||||
public UserEvent(String message, Tuple<Int64, String, Int64, String> UserId, DateTime date) : base(message, UserId, date, "User") { }
|
||||
public UserEvent(String message, Int64 UserId, DateTime date) : base(message, UserId, date, "User") { }
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<RootNamespace>BlubbFish.Utils.IoT</RootNamespace>
|
||||
<AssemblyName>Utils-IoT</AssemblyName>
|
||||
<NeutralLanguage>de-DE</NeutralLanguage>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user