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.