Geschrieben December 27, 2019 at 11:3027. Dez 2019 Hallo, bin neu hier. Ich habe am Industrieal Counter Bricklet einen Drehfeldgeber angeschlossen. Das ganze funktioniert auch sehr gut. Ist es möglich das Callback so zu konfigurieren, dass nur bei Änderung eines Wertes zB. "Counter" die Callback-Funktion ausgeführt wird? Habe viel probiert, es gelingt mir nicht. Vieleicht habe ich ein Verständnisproblem bzw. mache ich was falsch. mfg Sahip
Geschrieben December 30, 2019 at 14:1130. Dez 2019 Eigentlich sollte das per set_all_counter_callback_configuration(100, True) funktionieren. Damit bekommst du den Callback alle 100ms, aber nur dann wenn sich der Wert auch geändert hat.
Geschrieben December 30, 2019 at 17:5930. Dez 2019 Autor Hallo borg, hier mein Testprogramm import time from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_industrial_counter import BrickletIndustrialCounter def my_callback(param): print (param) if __name__ == "__main__": ipcon = IPConnection() ic = BrickletIndustrialCounter("CoUNT", ipcon) ipcon.connect("192.168.250.80", 4223) ic.register_callback(ic.CALLBACK_ALL_COUNTER, my_callback) ic.set_all_counter_callback_configuration(2000,True) time.sleep(100) ipcon.disconnect() Es wird alle 2s diese Zeile (Beispiel) ausgegeben obwohl sich der Wert nicht geändert hat (717, 0, 9765, 1253) Auch wenn sich der wert ändert, wird dieser erst nach Ablauf der Periode (2s) ausgeben. Kann es sein, dass hier evt. ein Bug vorliegt?
Geschrieben January 3, 2020 at 16:593. Jan 2020 In der Tat. Ich schaue mir gerade den Code an: if((!counter.cb_counter_value_has_to_change) || (last_counter[0] != new_counter[0]) || (last_counter[1] != new_counter[1]) || (last_counter[2] != new_counter[2]) || (last_counter[3] != new_counter[3])) { last_time = system_timer_get_ms(); tfp_make_default_header(&cb.header, bootloader_get_uid(), sizeof(AllCounter_Callback), FID_CALLBACK_ALL_COUNTER); for(uint8_t channel = 0; channel < COUNTER_NUM; channel++) { cb.counter[channel] = new_counter[channel]; } } Der Check ist zwar richtig, aber last_counter wird nie gesetzt... Ich fixe das kurzfristig.
Geschrieben January 3, 2020 at 17:203. Jan 2020 So, sollte jetzt in der frisch veröffentlichten Firmware 2.0.3 gefixt sein:https://github.com/Tinkerforge/industrial-counter-bricklet/commit/ef2a1251b43653d8aebaba87803ac32e004bd72f Vielen Dank für denk Hinweis!
Geschrieben January 3, 2020 at 17:243. Jan 2020 Autor Hallo borg, das ging aber schnell. Habe das Update gemacht, jetzt funktioniert es. Vielen Dank
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.