Jump to content

Recommended Posts

Geschrieben

Hi zusammen,

ich beschäftige mich aktuell mit der Programmierung mit Swift unter Mac OS und iOS. Es würde mich nun sehr interessieren, ob jemand da schon Erfahrungen im Zusammenhang mit Tinkerforge hat, also der Steuerung von Bricklets mittels Swift-Programmen. Ich vermute, dass man wohl die C++-APIs verwenden kann, hab aber noch keine Erfahrungen damit. Ansonsten geht natürlich immer direkt TCP-IP, was aber von der Implementierung her natürlich komplexer ist, als wenn man direkt die Bindings verwendet. Gibt es hier schon Ansätze / Beispielprojekte in Swift?

Danke auf jeden Fall für Tipps / Erfahrungen hierzu!

Liebe Grüße,

Robin

Geschrieben

Hi Manni,

vielen Dank für deine Antwort! Wenn ich in Objective-C programmieren würde, wäre das wohl die Antwort auf all meine Fragen... Da es hier aber um Swift geht, kann ich mit den Cocoa-Anpassungen so leider aktuell nichts anfangen, da diese in Objective-C geschrieben wurden und es sich hier um 2 verschiedene Programmiersprachen handelt. Mittlerweile hab ich auch mal versucht, die C-Bindings direkt mit Swift einzubinden, dass scheint aber leider auch nicht machbar zu sein. Soweit ich das verstanden habe, ist Swift zwar eingeschränkt kompatibel zu C-Libraries. Bei den Bindings von TinkerForge scheint es aber zu große Unterschiede zu geben, sodass nach meinen ersten Erkenntnissen wohl keine direkte Nutzung möglich ist. Einzige Möglichkeit wäre wohl, die Kommunikation direkt via TCP-IP abzuwickeln - das werde ich mir demnächst mal anschauen...

Viele Grüße,

Robin

Geschrieben

Das kann ich leider bestätigen. Ich habe es mit den vorhandenen Bindings auch nicht vernünftig hinbekommen - und dann (aus Zeitgründen) leider aufgegeben.

Tja, da sind wir wohl beide nicht wirklich weit gekommen! Ist für mich jetzt aber halb so wild... Ich hab mich jetzt mal etwas mit den Python-Bindings beschäftigt und schon erste kleinere Erfolge damit erzielt, obwohl ich Python eigentlich gar nicht beherrsche... Ich denke, dass ich mir nun einfach noch einen Raspberry Pi auf's Mounting Plate schraube, dann den Brick dort anschließe und über den Pi die Sensoren einfach mittels Python auslese und weiterverarbeite... Für iOS-Apps kann ich dann was Eigenes entwickeln, dass eine TCP-IP-Verbindung zum Pi aufbaut und die aufbereiteten Daten abruft - wäre in meinem Fall wohl die vernünftigste Lösung! Natürlich könnte man auch einen RED Brick statt dem Pi benutzen, aber ich hab eh noch einen ungenutzten Pi bei mir rumliegen... :-)

Auf jeden Fall vielen Dank für die Antworten!

Viele Grüße,

Robin

  • 8 months later...
Geschrieben

Man kann die C/C++ Bindings über ein Bridging header in swift integrieren. Wenn man die Bindings dem Projekt hinzufügt fragt Xcode ob es einen Bridging header erstellen soll. In diesen Header (.h) kann man dann die header der bindings importieren: Einfach

#include "ip_connection.h"

hinzufügen. Dann kann man diese in Swift ganz normal nutzen. Eine IPConnection erstellt man z.B. halt so:

let ipCon = UnsafeMutablePointer<IPConnection>.alloc(1); ipcon_create(ipCon);

ipcon_connect(ipCon, "192.168.", 4223);

 

Hoffe das Hilft.

Grüße,

Michael

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...