robin24 Posted March 27, 2015 at 09:01 AM Share Posted March 27, 2015 at 09:01 AM 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 Quote Link to comment Share on other sites More sharing options...
SebastianHe Posted March 28, 2015 at 05:31 AM Share Posted March 28, 2015 at 05:31 AM Das würde mich auch interessiere. Gruß, Sebastian Quote Link to comment Share on other sites More sharing options...
Manni Posted March 28, 2015 at 07:15 AM Share Posted March 28, 2015 at 07:15 AM Hilft das weiter? http://www.tinkerunity.org/wiki/index.php/EN/Bindings/Cocoa Quote Link to comment Share on other sites More sharing options...
robin24 Posted March 28, 2015 at 04:03 PM Author Share Posted March 28, 2015 at 04:03 PM 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 Quote Link to comment Share on other sites More sharing options...
SebastianHe Posted March 29, 2015 at 09:25 AM Share Posted March 29, 2015 at 09:25 AM 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. Quote Link to comment Share on other sites More sharing options...
robin24 Posted March 29, 2015 at 02:58 PM Author Share Posted March 29, 2015 at 02:58 PM 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 Quote Link to comment Share on other sites More sharing options...
Michael_M_hofer Posted December 29, 2015 at 10:31 AM Share Posted December 29, 2015 at 10:31 AM 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.