KlassenDLL im Main integriert
This commit is contained in:
41
SanSystem/TempCAN/TemperaturBuilder.cs
Normal file
41
SanSystem/TempCAN/TemperaturBuilder.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SanShared;
|
||||
|
||||
namespace TempCAN
|
||||
{
|
||||
/// <summary>
|
||||
/// Auflistung der Schnittstellen
|
||||
/// </summary>
|
||||
public enum TemperaturSchnittstellen
|
||||
{
|
||||
/// <summary>
|
||||
/// Tinkerforge schnittstelle
|
||||
/// </summary>
|
||||
TINKERFORGE
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public static class TemperaturBuilder
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public static ITemperature Temperatur(TemperaturSchnittstellen temperaturSchnittstellen)
|
||||
{
|
||||
switch(temperaturSchnittstellen)
|
||||
{
|
||||
case TemperaturSchnittstellen.TINKERFORGE:
|
||||
return new TinkerForgeTemperatur();
|
||||
|
||||
|
||||
default:
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
68
SanSystem/TempCAN/TinkerForgeTemperatur.cs
Normal file
68
SanSystem/TempCAN/TinkerForgeTemperatur.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SanShared;
|
||||
using Tinkerforge;
|
||||
|
||||
namespace TempCAN
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class TinkerForgeTemperatur : ITemperature
|
||||
{
|
||||
private static string HOST = "localhost";
|
||||
private static int PORT = 4223;
|
||||
private static string UID = "dW3";
|
||||
double temperatur;
|
||||
bool erfolg = true;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public TinkerForgeTemperatur()
|
||||
{
|
||||
IPConnection ipcon = new IPConnection();
|
||||
BrickletTemperature t = new BrickletTemperature(UID, ipcon);
|
||||
try
|
||||
{
|
||||
ipcon.Connect(HOST, PORT);
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
erfolg = false;
|
||||
ipcon = null;
|
||||
t = null;
|
||||
return;
|
||||
}
|
||||
|
||||
short temp;
|
||||
try
|
||||
{
|
||||
temp = t.GetTemperature();
|
||||
|
||||
}
|
||||
catch(Tinkerforge.TimeoutException)
|
||||
{
|
||||
temp = 100;
|
||||
erfolg = false;
|
||||
}
|
||||
temperatur = (temp / 100.0);
|
||||
ipcon.Disconnect();
|
||||
t = null;
|
||||
ipcon = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public double GetTemperatur(out string message)
|
||||
{
|
||||
message = "";
|
||||
if (!erfolg) message = "Es konnte keine Verbindung mit der TemperaturSystem aufgebaut werden";
|
||||
return temperatur;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user