3.3.1.1 Přidání efektu

int IndoorTouch.LedsAddEffect(String effectName, int continuity, String transitions, int effectLedMask, int usedLedMask);
  • 1. Argument značí název efektu. Pakliže efekt již existuje, je vrácena chyba RC_ERR_EXIST
  • 2. Argument může nabývat těchto hodnot: LED_EFFECT_CONTINUITY_SINGLE, LED_EFFECT_CONTINUITY_REPEATING, LED_EFFECT_CONTINUITY_KEEP. Tyto hodnoty značí, co se stane, když vektor přechodů skončí. Hodnota SINGLE efekt ukončí a odstraní z databáze aktivních efektů. Zvolením REPEATING začne efekt znovu od začátku. Zvolením KEEP zůstane efekt aktivní, ale bude zobrazovat poslední finální hodnotu přechodu.
  • 3. Transitions je řetězec přechodů. Je ve formátu <počáteční jas>,<cílový jas>,<čas přechodu v ms>, … . 
    Počet čísel v řetězci musí být dělitelný třemi a obsahovat alespoň jeden přechod.
  • 4. Maska použitých LED pro vlastní efekt. Tyto LED budou ovlivněny definovaným přechodem.
  • 5. Maska použitých LED. Obsahuje všechny bity z masky argumentu 4 plus další, u kterých bude hodnota jasu 0. Ostatní LED nejsou efektem dotčeny a mohou používat jiný efekt, který používá množinu LED disjunktní s tímto efektem. Momentálně dostupné LED pro efekty jsou:
    • LED_RED = 0x01;
    • LED_GREEN = 0x02
    • LED_BLUE = 0x04;
    • LED_NFC = 0x08;

Příklad definování efektu pro blikání červenou diodou:

IndoorTouch.LedsAddEffect("test-r", LED_EFFECT_CONTINUITY_REPEATING,"0,255,1000,255,0,1000", LED_RED, LED_RED | LED_GREEN | LED_BLUE));

Momentálně má knihovna předdefinovaný efekt „red-blink-missedcalls“ pro blikání červenou.

Návratová hodnota je:

  • IndoorTouch.RC_OK = 0;
  • IndoorTouch.RC_ERR_CONN = -1; chyba při spojení s API démonem
  • IndoorTouch.RC_ERR_EXIST = -3; efekt s daným jménem už je definován
  • IndoorTouch.RC_ERR_INVALID = -5; neplatné argumenty funkce
  • IndoorTouch.RC_ERR_MAXREACHED = -10; maximální počet definovaných efektů byl překročen.