arminiusdc Geschrieben October 25, 2014 at 20:57 Geschrieben October 25, 2014 at 20:57 Hallo kann es sein das is_light_on negiert ist ? im Code void is_light_on(const ComType com, const IsLightOn *data) { IsLightOnReturn ilor; ilor.header = data->header; ilor.header.length = sizeof(IsLightOnReturn); ilor.light = PIN_LED.pio->PIO_PDSR & PIN_LED.mask ? 0 : 1; BA->send_blocking_with_timeout(&ilor, sizeof(IsLightOnReturn), com); } die Zeile ilor.light = PIN_LED.pio->PIO_PDSR & PIN_LED.mask ? 0 : 1; dreht die Logig um. Besser währe ilor.light = PIN_LED.pio->PIO_PDSR & PIN_LED.mask ? 1 : 0; oder gleich ilor.light = PIN_LED.pio->PIO_PDSR & PIN_LED.mask; mfg Armin Zitieren
photron Geschrieben October 27, 2014 at 09:26 Geschrieben October 27, 2014 at 09:26 is_light_on() ist nicht negiert. is_light_on() gibt keinen bool zurück, sondern einen uint8 mit 2 definierten Werten LIGHT_ON = 0 und LIGHT_OFF = 1. ilor.light = PIN_LED.pio->PIO_PDSR & PIN_LED.mask ? LIGHT_ON : LIGHT_OFF; Wenn du das als bool betrachten willst dann ist das negiert, ja. Man hätte da einen bool zurückgeben können. So ist es aber nicht definiert worden und jetzt ist es zu spät das zu ändern, sorry. Zitieren
arminiusdc Geschrieben October 28, 2014 at 14:57 Autor Geschrieben October 28, 2014 at 14:57 Hallo Proton, die Doku sagt BrickletColor.is_light_on Funktions ID: 12 Anfrage: keine Nutzdaten Antwort: light -- uint8 Gibt true zurück wenn die LED aktiv ist, sonst false. http://www.tinkerforge.com/de/doc/Software/Bricklets/Color_Bricklet_TCPIP.html#color-bricklet-tcpip-api Welche Doku hast du denn ? mfg Armin Zitieren
photron Geschrieben October 29, 2014 at 10:53 Geschrieben October 29, 2014 at 10:53 Hrm, da ist wohl einiges schief gelaufen mit dieser Funktion. Ich hab mir die Dokumention gar nicht angesehen, sondern die Firmware. Die Dokumention ist schlicht falsch, sorry. Ich habe sie jetzt korrigiert, danke für den Hinweis. Zitieren
arminiusdc Geschrieben November 3, 2014 at 07:57 Autor Geschrieben November 3, 2014 at 07:57 Hallo Proton, wäre es nicht besser die Funktion doch so wie is_backlight_on vom LCD zu implementieren und nicht auf einmal so eine komische Logik mit 0 is True und 1 ist False zu definieren ? mfg Armin Zitieren
borg Geschrieben November 3, 2014 at 11:12 Geschrieben November 3, 2014 at 11:12 Wir haben irgendwann (nachdem es das LCD20x4 gab) den Binding-Generatoren beigebracht Konstanten zu definieren/generieren. Seitdem versuchen wir in der API überall Konstanten einzusetzen wo möglich. Daher haben wir hier auf "LIGHT_ON", "LIGHT_OFF" gesetzt. LIGHT_ON = 0 zu definieren war natürlich trotzdem ungeschickt, da haben wir nicht aufgepasst . Zitieren
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.