Jump to content

Color Bricklet is_light_on ist falschrum


Recommended Posts

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

Link zu diesem Kommentar
Share on other sites

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.

Link zu diesem Kommentar
Share on other sites

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

Link zu diesem Kommentar
Share on other sites

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

Link zu diesem Kommentar
Share on other sites

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