cfranz Posted December 1, 2012 at 01:59 PM Share Posted December 1, 2012 at 01:59 PM [english summary: this post contains the first partly-complete cocoa layer for TF bricks/bricklets. Not all bricklets are currently supported. Please read the enclosed documentation and feedback here] Dieser Post ist nur interessant für iOS/OSX Tinkerer! Da ich in meinem 'echten Leben' für iOS und OSX programmiere, habe ich mir einen Cocoa Layer für meine TF bricklets gechrieben, den ich gerne jedem interessierten zugänglich mache. Der Cocoa-Layer sitzt auf den normalen C/C++ Bindings (die musst du also auch herunterladen) und macht das Arbeiten mit den TF bricklets *sehr* viel einfacher. Der Cocoa Layer ist sehr viel mehr als bloss ein Wrapper - er ist hierarchisch, baut auf NSObject auf und enthält eine Reihe von (für mich) wichtigen Vereinfachungen: - Alle TF bricks sind nun NSObject descendants - Relays und IO-Bricks können in IOArrays oder RelayArrays zu grossen virtuellen superbricklets zusammengefasst werden - Die LCD-Klasse kann mit writeLn und NSStrings arbeiten - Die TinkerIO (IPconnection) Klasse ist auf Plug&Play via delegates vorbereitet (noch nicht umgesetzt) Die beiden Attachments sind - der Cocoa Layer (source und extensive dokumentation in Englisch) - ein demo-programm, welches mit einem LCD und Distance IR arbeitet Momentan sind nur die bricklets umgesetzt, die ich selber besitze: Dual Relay, IO4, LCD 20x4, Ambient Light, Distance IR, Dreh-poti Feedback, Erfahrungen, Anregungen, Kommentare bitte in diesem Thread, bis die freundlichen TinkerForger eine Ecke für handgestrickte Bindings/Layer bereitstellen. Viel Spass, -ch Tinkerforge_Cocoa_Layer.zipstarter_demo_dist_and_lcd.zip Quote Link to comment Share on other sites More sharing options...
cfranz Posted December 3, 2012 at 05:20 PM Author Share Posted December 3, 2012 at 05:20 PM (English summary: another short example app, this one shows how I subclassed TDLCD20x4 to create an LCD display that shows a short message with animated 'snow flakes' - using asterisks '*'. Zip also contains Cocoa Layer ) Ein weiteres Cocoa Layer Beispiel, in dem ich das TDLCD20x4 erweitert habe zu einem Display, welches eine Nachricht in einem 'Schneesturm' aus Sternchen '*' zeigt. Das 'wirkliche' Programm sind nur ~20 Zeilen, der Rest der 108KB ist eine neue Version des Layers: erweitert um eine winzige Funktion für die TDLCD Klasse. Gruss -ch snowy.zip Quote Link to comment Share on other sites More sharing options...
cfranz Posted January 2, 2013 at 05:41 PM Author Share Posted January 2, 2013 at 05:41 PM (english summary: new version of cocoa layer that contains minor bug fixes, plus new objects for the folowing: Master Brick (incl. all extensions), Temperatrue Bricklet, Barometric Pressure Bricklet) Frohes neues Jahr! Weihnachten ist vorbei und der Weihnachtsmann hat mir ein paar neue bricklets mitgebracht. In der neuen Version des CocoaLayers sind die folgenden objects neu enthalten: - Master (mit allen extension) - Temperature - Barometric Pressure Viel Spass, -ch Tinkerforge_Cocoa_Layer.zip Quote Link to comment Share on other sites More sharing options...
batti Posted January 2, 2013 at 11:03 PM Share Posted January 2, 2013 at 11:03 PM Hi, im Wiki kannst du deine Bindings dokumentieren. Ich hatte für dich schon eine Seite angelegt: http://www.tinkerunity.org/wiki/index.php/EN/Bindings/Cocoa bzw. http://www.tinkerunity.org/wiki/index.php/DE/Bindings/Cocoa Quote Link to comment Share on other sites More sharing options...
cfranz Posted January 3, 2013 at 09:28 AM Author Share Posted January 3, 2013 at 09:28 AM Danke, Bastian - hatte das natürlich gesehen, aber war noch nicht dazu gekommen (= zu faul) die doku umzuformatieren. werde mich mal in den nächsten tagen dranmachen. gruss, -ch Quote Link to comment Share on other sites More sharing options...
neji Posted January 3, 2013 at 07:36 PM Share Posted January 3, 2013 at 07:36 PM Hi, schön, dass sich mal jemand um uns Macianer kümmert Ich habe ein wenig mit dem Layer rumgespielt und muss sagen, astreine Arbeit. Eine Frage dazu : sind die Callbacks schon irgendwie umgesetzt, z.B. in Form von Delegates? Grüße, Stefan Quote Link to comment Share on other sites More sharing options...
cfranz Posted January 3, 2013 at 08:44 PM Author Share Posted January 3, 2013 at 08:44 PM Zur Zeit sind die callbacks noch nicht mit Cocoa verwendbar - eine Objective-C Method kann bekanntlich nicht als callback für eine C/C++-Prozedur übergeben werden (Limitation der Sprache/LLVM). Sobald die TF 2.0 Bindings definiert sind (sind je bereits im test, wenn ich das richtig gesehen habe), haben die Callbacks einen (void *) pointer, mit dem wir das Objekt übergeben können, welches als delegate die callbacks umsetzt. Sofern dein Objekt dann das (noch zu definierende) Cocoa-Layer (Objective-C) TinkerForge-Protokoll unterstützt, geht das auch mit den Delegates. Habe mir noch nicht allzuviel gedanken darüber gemacht, aber nie Änderungen am Cocoa-Layer sollten sich in Grenzen halten. Als resultat haben wir dann hoffentlich einen layer, der der eleganz der TF-bausteine gerecht wird. C hat das ja nicht Gruss, -ch Quote Link to comment Share on other sites More sharing options...
batti Posted February 22, 2013 at 03:39 PM Share Posted February 22, 2013 at 03:39 PM Gibt es hier Neuigkeiten? Grüße Bastian Quote Link to comment Share on other sites More sharing options...
cfranz Posted February 25, 2013 at 09:06 AM Author Share Posted February 25, 2013 at 09:06 AM OK, ein kurzer update: Über der Wochenende habe ich den Layer auf das neue TF-Protokoll emigriert - und er funktioniert schon! Aber das beste: mit dem neuen TF-Protokoll kann der Layer nun auch callbacks unterstützen (was ja bekanntlich mit objektive-C messages nicht geht). Callbacks gehen im Cocoa-Layer via delegate objects und dem niegelnagelneuem TDevice-Protokoll. Muss jetzt noch die Doku updaten und ein paar neue objekte einbinden - dann sollte der neue Layer für eine erste Testrunde bereit stehen. Bastian - ich werde dann auf Dich zukommen, damit wir die neue version gleich in die Ecke stellen können, die Du dafür bereit gemacht hast. -ch 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.