Jump to content

Recommended Posts

Geschrieben

Hallo zusammen,

ich hab frisch mit Tinkerforge angefangen und habe eine kleine Frage zum Performance DC Bricklet. Speziell zur GPIO Konfiguration. Dort gibt es die Möglichkeit mit

setGPIOAction(0, BrickletPerformanceDC.GPIO_ACTION_CALLBACK_RISING_EDGE)

einen Callback auf die integrierten GPIOs zu legen und mit diesem dann eine StatusÀnderung eines angeschlossenen Schalters ohne Polling mitzubekommen. Ich finde in der Doku allerdings nicht wie man sich dann auf diesen Callback registriert. Ich bin in Java/Kotlin unterwegs und da gibt es nur den CurrentVelocity, EmergencyShutdown und VelocityReachedListener.

Was muss ich genau tun um diesen Callback nutzen zu können?

VG

Michael

Geschrieben

In der Tat. Ich hab die gleiche (bzw sehr Àhnliche API) in mehreren neuen Bricklets gleichzeitig implementiert. Dabei muss ich die GPIO-Callbacks beim Performance DC Bricklet nicht mitkopiert haben im Generator. Also ein Copy+Paste Fehler in der API...

Das ist natĂŒrlich Mist, wird dann mit dem nĂ€chsten API-Release gefixt. In der Zwischenzeit könntest du per GetGPIOState die GPIO-Änderung pollen.

Geschrieben

Hab das jetzt soweit implementiert: https://github.com/Tinkerforge/performance-dc-bricklet/commit/510cf95badfb5d4d8d1b5a6cfd5631255020f192

Firmware Version 2.0.1 ist auch bereits released.

Ein komplettes Bindings-Release ist allerdings recht aufwendig, das können wir erst machen wenn mehr Änderungen angefallen sind.

In der Zwischenzeit hab ich dir aber schonmal eine Vorabversion der Java-Bindings angehĂ€ngt die bereits einen Listener dafĂŒr hat.

tinkerforge_java_bindings_2_1_30.zip

  • 3 months later...
Geschrieben

Kann es sein, dass auch im Stepper Bricklet 2.0 der GPIO Callback nicht implementiert ist? Jedenfalls bekomme ich in Python

setGPIOAction(0, BrickletSilentStepperV2.GPIO_ACTION_CALLBACK_RISING_EDGE)

nicht ans Laufen. Das hier ist leider der einzige Foreneintrag den ich zu dem Thema gefunden habe. Auf Github finde ich auch nichts zum GPIO Callback (https://github.com/Tinkerforge/silent-stepper-v2-bricklet/blob/master/software/src/communication.c).

Vielen Dank schonmal fĂŒr eine Antwort!

Geschrieben

Ist jetzt implementiert: https://github.com/Tinkerforge/silent-stepper-v2-bricklet/commit/81326cd803c8c3bb01846b2ca88c179cc0d698fd

Bitte die Firmware einmal auf 2.0.1 updaten.

Habe mit folgendem Mini-Python-Test getestet:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

HOST = "localhost"
PORT = 4223
UID = "2hvABC" # Change to the UID of your Silent Stepper Bricklet 2.0

import time
import random

from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_silent_stepper_v2 import BrickletSilentStepperV2

def cb_gpio_state(state):
    print('ch 0: {0}'.format(state[0]))
    print('ch 1: {0}'.format(state[1]))

if __name__ == "__main__":
    ipcon = IPConnection() # Create IP connection
    ss = BrickletSilentStepperV2(UID, ipcon) # Create device object

    ipcon.connect(HOST, PORT) # Connect to brickd
    # Don't use device before ipcon is connected

    # Register gpio state callback to function cb_gpio_state
    ss.register_callback(ss.CALLBACK_GPIO_STATE, cb_gpio_state)
    ss.set_gpio_action(0, ss.GPIO_ACTION_CALLBACK_RISING_EDGE)
    ss.set_gpio_action(1, ss.GPIO_ACTION_CALLBACK_FALLING_EDGE)

    input("Press key to exit\n")

    ipcon.disconnect()

 

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