arminiusdc Posted October 25, 2014 at 08:57 PM Posted October 25, 2014 at 08:57 PM 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 Quote
photron Posted October 27, 2014 at 09:26 AM Posted October 27, 2014 at 09:26 AM 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. Quote
arminiusdc Posted October 28, 2014 at 02:57 PM Author Posted October 28, 2014 at 02:57 PM 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 Quote
photron Posted October 29, 2014 at 10:53 AM Posted October 29, 2014 at 10:53 AM 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. Quote
arminiusdc Posted November 3, 2014 at 07:57 AM Author Posted November 3, 2014 at 07:57 AM 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 Quote
borg Posted November 3, 2014 at 11:12 AM Posted November 3, 2014 at 11:12 AM 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 . Quote
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.