add toggle on blinker
This commit is contained in:
		| @@ -62,8 +62,11 @@ CLICK_HANDLER* ch3() { | |||||||
|     return &theFactory.ch3_; |     return &theFactory.ch3_; | ||||||
| } | } | ||||||
|  |  | ||||||
| BLINKER* blA() { | BLINKER* blL() { | ||||||
|     return &theFactory.blA_; |     return &theFactory.blL_; | ||||||
|  | } | ||||||
|  | BLINKER* blR() { | ||||||
|  |     return &theFactory.blR_; | ||||||
| } | } | ||||||
| BLINKER* blB() { | BLINKER* blB() { | ||||||
|     return &theFactory.blB_; |     return &theFactory.blB_; | ||||||
| @@ -106,31 +109,44 @@ void Factory_init() { | |||||||
|     CLICK_HANDLER_init(ch2(), b2()); |     CLICK_HANDLER_init(ch2(), b2()); | ||||||
|     CLICK_HANDLER_init(ch3(), b3()); |     CLICK_HANDLER_init(ch3(), b3()); | ||||||
|      |      | ||||||
|     BLINKER_init(blA()); |     BLINKER_init(blL()); | ||||||
|  |     BLINKER_init(blR()); | ||||||
|     BLINKER_init(blB()); |     BLINKER_init(blB()); | ||||||
|      |      | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void warningBlink(void* on_){ | ||||||
|  |     bool on = (bool)on_; | ||||||
|  |     BLINKER_endBlink(blL()); | ||||||
|  |     BLINKER_endBlink(blR()); | ||||||
|  |     if(on) { | ||||||
|  |         LED_on(l1()); | ||||||
|  |         LED_on(l10()); | ||||||
|  |     } else { | ||||||
|  |         LED_off(l1()); | ||||||
|  |         LED_off(l10()); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| //connect objects if required | //connect objects if required | ||||||
| void Factory_build() { | void Factory_build() { | ||||||
|     BLINKER_defineNblink(blA(), 3); |  | ||||||
|     BLINKER_defineNblink(blB(), 5); |  | ||||||
|          |          | ||||||
|     BLINKER_setTimeOn(blA(), 20); |  | ||||||
|     BLINKER_setTimeOff(blA(), 480); |  | ||||||
|      |      | ||||||
|     BLINKER_setTurnOn(blA(), BLINKER_defineCallBack(&LED_on, l1())); |     BLINKER_setTurnOn(blL(), BLINKER_defineCallBack(&LED_on, l1())); | ||||||
|     BLINKER_setTurnOff(blA(), BLINKER_defineCallBack(&LED_off, l1())); |     BLINKER_setTurnOff(blL(), BLINKER_defineCallBack(&LED_off, l1())); | ||||||
|     BLINKER_setTurnOn(blB(), BLINKER_defineCallBack(&LED_on, l10())); |     BLINKER_setTurnOn(blR(), BLINKER_defineCallBack(&LED_on, l10())); | ||||||
|     BLINKER_setTurnOff(blB(), BLINKER_defineCallBack(&LED_off, l10())); |     BLINKER_setTurnOff(blR(), BLINKER_defineCallBack(&LED_off, l10())); | ||||||
|  |     BLINKER_setTurnOn(blB(), BLINKER_defineCallBack(&warningBlink, true)); | ||||||
|  |     BLINKER_setTurnOff(blB(), BLINKER_defineCallBack(&warningBlink, false)); | ||||||
|      |      | ||||||
|     CLICK_HANDLER_setSingleClickCallback(ch1(), CLICK_HANDLER_defineCallBack(&BLINKER_blink, blA())); |     CLICK_HANDLER_setSingleClickCallback(ch1(), CLICK_HANDLER_defineCallBack(&BLINKER_toggle, blL())); | ||||||
|     CLICK_HANDLER_setDoubleClickCallback(ch1(), CLICK_HANDLER_defineCallBack(&BLINKER_endBlink, blA())); |     CLICK_HANDLER_setSingleClickCallback(ch3(), CLICK_HANDLER_defineCallBack(&BLINKER_toggle, blR())); | ||||||
|     CLICK_HANDLER_setLongClickCallback(ch1(), CLICK_HANDLER_defineCallBack(&BLINKER_blinkN, blA())); |  | ||||||
|      |      | ||||||
|     CLICK_HANDLER_setSingleClickCallback(ch3(), CLICK_HANDLER_defineCallBack(&BLINKER_blink, blB())); |     CLICK_HANDLER_setDoubleClickCallback(ch1(), CLICK_HANDLER_defineCallBack(&BLINKER_blinkN, blL())); | ||||||
|     CLICK_HANDLER_setDoubleClickCallback(ch3(), CLICK_HANDLER_defineCallBack(&BLINKER_endBlink, blB())); |     CLICK_HANDLER_setDoubleClickCallback(ch3(), CLICK_HANDLER_defineCallBack(&BLINKER_blinkN, blR())); | ||||||
|     CLICK_HANDLER_setLongClickCallback(ch3(), CLICK_HANDLER_defineCallBack(&BLINKER_blinkN, blB())); |      | ||||||
|  |     CLICK_HANDLER_setLongClickCallback(ch1(), CLICK_HANDLER_defineCallBack(&BLINKER_toggle, blB())); | ||||||
|  |     CLICK_HANDLER_setLongClickCallback(ch3(), CLICK_HANDLER_defineCallBack(&BLINKER_toggle, blB())); | ||||||
|      |      | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -142,6 +158,7 @@ void Factory_start() { | |||||||
|     CLICK_HANDLER_startBehaviour(ch1()); |     CLICK_HANDLER_startBehaviour(ch1()); | ||||||
|     CLICK_HANDLER_startBehaviour(ch2()); |     CLICK_HANDLER_startBehaviour(ch2()); | ||||||
|     CLICK_HANDLER_startBehaviour(ch3()); |     CLICK_HANDLER_startBehaviour(ch3()); | ||||||
|     BLINKER_starBehaviour(blA()); |     BLINKER_starBehaviour(blL()); | ||||||
|  |     BLINKER_starBehaviour(blR()); | ||||||
|     BLINKER_starBehaviour(blB()); |     BLINKER_starBehaviour(blB()); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -32,7 +32,8 @@ typedef struct { | |||||||
|     CLICK_HANDLER ch1_; |     CLICK_HANDLER ch1_; | ||||||
|     CLICK_HANDLER ch2_; |     CLICK_HANDLER ch2_; | ||||||
|     CLICK_HANDLER ch3_; |     CLICK_HANDLER ch3_; | ||||||
|     BLINKER blA_; |     BLINKER blL_; | ||||||
|  |     BLINKER blR_; | ||||||
|     BLINKER blB_; |     BLINKER blB_; | ||||||
| } Factory; | } Factory; | ||||||
|  |  | ||||||
| @@ -61,7 +62,8 @@ CLICK_HANDLER* ch1(); | |||||||
| CLICK_HANDLER* ch2(); | CLICK_HANDLER* ch2(); | ||||||
| CLICK_HANDLER* ch3(); | CLICK_HANDLER* ch3(); | ||||||
|  |  | ||||||
| BLINKER* blA(); | BLINKER* blL(); | ||||||
|  | BLINKER* blR(); | ||||||
| BLINKER* blB(); | BLINKER* blB(); | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
| @@ -132,3 +132,18 @@ bool BLINKER_processEvent(Event* ev) { | |||||||
| void BLINKER_endBlink(BLINKER* me) { | void BLINKER_endBlink(BLINKER* me) { | ||||||
|     me->remainBlinks = 0; |     me->remainBlinks = 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void BLINKER_toggle(BLINKER* me){ | ||||||
|  |     switch(me->state) { | ||||||
|  |         case STBL_WAIT: | ||||||
|  |             BLINKER_blink(me); | ||||||
|  |             break; | ||||||
|  |         case STBL_OFF: | ||||||
|  |             BLINKER_endBlink(me); | ||||||
|  |             break; | ||||||
|  |         case STBL_ON: | ||||||
|  |             BLINKER_endBlink(me); | ||||||
|  |             break; | ||||||
|  |     } | ||||||
|  |     me->toggleRemainBlinks = me->remainBlinks; | ||||||
|  | } | ||||||
|   | |||||||
| @@ -120,6 +120,8 @@ bool BLINKER_processEvent(Event* ev); | |||||||
|  */ |  */ | ||||||
| void BLINKER_endBlink(BLINKER* me); | void BLINKER_endBlink(BLINKER* me); | ||||||
|  |  | ||||||
|  | void BLINKER_toggle(BLINKER* me); | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif	/* BLINKER_H */ | #endif	/* BLINKER_H */ | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user