Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

kutte

Members
  • Benutzer seit

  • Letzter Besuch

  1. Hi Manni, die refToSelf Variante funktioniert bei mir, Dir fehlt bestimmt nur eine Zuweisung...bei mir siehts so aus. 1. Definition der Zeiger und der Callback-Methode (den Typecast (id) nicht vergessen) in der .m Datei (AppDelegate.m) Dann bist Du die "Implicit conversion" Meldung los... #import "AppDelegate.h" void * refToLinearPotiSlider; void * refToLinearPotiText; void cb_lp_position(uint16_t position) { //NSLog(@" %@", @"callback from linearpoti..."); [(id)refToLinearPotiSlider setIntegerValue: position]; [(id)refToLinearPotiText setIntegerValue: position]; } @implementation AppDelegate 2. Die Zeiger auf die GUI Elemente in dieser Methode zuweisen (AppDelegate.m). Ich setze einen Slider und ein Textfeld (IBOutlets). - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // Insert code here to initialize your application refToLinearPotiSlider = linearpoti_slider; refToLinearPotiText = linearpoti_text; } 3. Registrierung der CallBack Methode in Deinem Code linear_poti_register_callback(&lp, LINEAR_POTI_CALLBACK_POSITION, cb_lp_position); das ruft die CallBack Methode wenn ich mien Poti bewege und setzt dann den Wert im GUI (Slider & Textfeld). Gruss kutte
  2. Erklärung: C Funktionen sind ausserhalb der @implementation einer Objective-C (.m) Datei deklariert. int MyCFunction(int num, void *data) { //code here... } @implementation - (void)MyObjectiveCMethod:(int)number withData:(NSData *)data { //code here } @end Da die C Funktion ausserhalb der @implementation ist, kann Sie keine Methoden aufrufen wie z.B. [self doSomething] und hat keinen Zugriff auf Instanz Variablen. Lösung: In der @implementation einen Zeiger definieren (refToSelf) und den Zeiger z.B. inder init() zuweisen. Nun ist im CallBack das Objekt sichtbar... void * refToSelf; int cCallback() { [refToSelf someMethod:someArg]; } @implementation SomeClass - (id) init { self = [super init]; refToSelf = self; } - (void) someMethod:(int) someArg { }
  3. das Problem zeigt sich bereits zur Compile-Zeit und nicht erst zur Laufzeit. Ich habe den Verdacht, dass das generell nicht funktionieren kann, weil ich ja versuche Obj-C Referenzen in der C Umgebung (die Callback-Methode des LinearPoti) zu nutzen. Kommentiere ich die Zeile aus, kann ich kompilieren und der CallBack wird gerufen linearpoti.tiff
  4. @Manni, Danke, hast Du auch schon versucht einen Callback zu Deinem Temperatur-Bricklet zu implementieren? und in der CallBack-Methode versucht z.B. ein NSTextField mit dem Wert zu füttern? Genau da (und nur da) hab ich das Problem...(wie in meinem Code-snippet angedeutet) Gruss kutte
  5. Hallo, ich hab ein Problem mit den C Bindings in Xcode innerhalb einer registrierten Callback Funktion für das LinearPoti Bricklet. void cb_lp_position(uint16_t position) { [linearpoti setIntegerValue: position]; } die Variable "linearpoti" (referenziert einen NSSlider) ist nur innerhalb dieser callback Methode nicht sichtbar (undeclared indentifier). Die Variable ist jedoch ordnungsgemäß definiert und in jeder anderen Obj-C Methode sichtbar. Hat jemand vielleicht ein Beispiel, in dem in Xcode mit Callbacks gearbeitet wird und in der Callback Methode ein GUI Objekt referenziert wird? Danke vorab - kutte

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.