Jump to content

C# API Plus


Recommended Posts

Hallo zusammen,

 

ich bin ein großer Fan des Tinkerforge Baukastensystems. Außerdem programmiere ich fast ausschließlich in C#. Leider finde ich die C# API nicht besonders komfortabel, was wie ich denke auf die vielen Methoden mit „out“-Parametren zurückzuführen ist. Microsoft bzw. das C# Team haben das erkannt und mit .net 4.7 und C# Version 7 (Windows 10 Creators Update) das Problem behoben.

 

Daher möchte ich nun hier meine C# Plugin für .net 4.7 vorstellen. Diese Erweiterung fügt für alle Methoden aus der Tinkerfoge API für .net eine Methoden-Überschreibung hinzu. Es handelt sich um keine neue API sondern um eine API-Erweiterung. Es wird weiterhin die Basis-DLL benötigt.

 

Beispiel für C#:

 

var ipcon = new IPConnection(); // Create IP connection
var io = new BrickletIO4("h2R", ipcon); // Create device object
ipcon.Connect("localhost", 4223); // Connect to brickd

//Old Style
io.GetMonoflop(0, out byte value, out long time, out long timeRemaining);
Console.WriteLine("Remaining time: " + timeRemaining);

//New Style            
Console.WriteLine("Remaining time: " + io.GetMonoflop(0).TimeRemaining);
            
ipcon.Disconnect();
Console.WriteLine("Press enter to exit...");
Console.ReadKey();

 

Beispiel VB.net:

 

Dim ipcon = New IPConnection
Dim io = New BrickletIO4("h2R", ipcon) ' Create device object
ipcon.Connect("localhost", 4223) ' Connect to brickd

'Old Style
Dim value As Byte
Dim time As Long
Dim timeRemaining As Long
io.GetMonoflop(0, value:=value, time:=time, timeRemaining:=timeRemaining)
Console.WriteLine("Remaining time: " + timeRemaining.ToString())

'New Style            
Console.WriteLine("Remaining time: " + io.GetMonoflop(0).TimeRemaining.ToString())


ipcon.Disconnect()
Console.WriteLine("Press enter to exit...")
Console.ReadKey()

 

Ich kenne mich leider mit Mono nicht aus, daher kann ich nicht sagen, ob das kompatibel ist.

 

Fragen und Kommentare sind willkommen! :)

TinkerforgeNetPlus47.zip

TinkerforgeNetPlus47.dll

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Gehe ich richtig in der Annahme, dass man dafür jetzt zwingend Visual Studio 2017 benötigt?

Ich habe die 2015er Community-Version, habe auch das .net-Framework 4.7 installiert (Betriebssystem ist Windows 7) aber ich kann das Zielframework nicht auf die Version 4.7 ändern. Es wird in der Dropdownliste nicht angezeigt.

Link zu diesem Kommentar
Share on other sites

  • 2 months later...
  • 6 months later...
  • 3 weeks later...

Update 1.3

Unterstützung für folgende Bricklet´s wurde ergänzt:

 

-Remote Switch Bricklet 2.0

-Motion Detector Bricklet 2.0

-Analog In Bricklet 3.0

-NFC Bricklet

-Temperature IR Bricklet 2.0

-Rotary Encoder Bricklet 2.0

-Solid State Relay Bricklet 2.0

-Outdoor Weather Bricklet

-DMX Bricklet, Humidity Bricklet 2.0

-Motorized Linear Poti Bricklet

-RGB LED Button Bricklet

-RGB LED Matrix Bricklet

-Thermal Imaging Bricklet

 

Link zu diesem Kommentar
Share on other sites

  • 10 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...