diff --git a/02-UML/ST_BLINKER.uxf b/02-UML/ST_BLINKER.uxf new file mode 100644 index 0000000..6c56d48 --- /dev/null +++ b/02-UML/ST_BLINKER.uxf @@ -0,0 +1,183 @@ + + + 17 + + UMLSpecialState + + 646 + 51 + 34 + 34 + + type=initial + + + + Relation + + 646 + 68 + 153 + 153 + + lt=-> +evBLInit + 10.0;10.0;10.0;70.0 + + + UMLState + + 510 + 187 + 306 + 85 + + ST_WAIT +-- +remainBlinks = 3; + + + + UMLState + + 510 + 374 + 306 + 102 + + ST_ON +-- +if(blink3) remainBlinks-- +-. +/ entry: turnOn() + + + + Relation + + 646 + 459 + 153 + 136 + + lt=-> +evTimer + 10.0;10.0;10.0;60.0 + + + UMLState + + 544 + 561 + 238 + 102 + + ST_OFF +-- +-. +/ entry: turnOff() + + + + Relation + + 646 + 646 + 153 + 153 + + lt=-> +evTimer + 10.0;10.0;10.0;70.0 + + + Relation + + 527 + 255 + 272 + 153 + + lt=-> +m1=evBlinkN +m2=/ nBlinkIsOn = true + 10.0;10.0;10.0;70.0 + + + Relation + + 765 + 255 + 289 + 153 + + lt=-> +m1=evBlink +m2=/ nBlinkIsOn = false + 10.0;10.0;10.0;70.0 + + + UMLSpecialState + + 629 + 765 + 68 + 68 + + type=decision + + + + Relation + + 442 + 408 + 221 + 442 + + lt=-> +m1=[else] + 110.0;230.0;10.0;230.0;10.0;10.0;40.0;10.0 + + + Relation + + 680 + 204 + 391 + 646 + + lt=-> +m1=[remainBlinks==0] + 10.0;350.0;210.0;350.0;210.0;10.0;80.0;10.0 + + + UMLClass + + 1462 + 0 + 952 + 527 + + BLINKER +-- ++state: BLINKER_STATES ++tON: uint16_t ++tOFF: uint16_t ++blink3: bool ++nBlink: uint8_t ++turnOn: blinkerCallBack ++turnOff: blinkerCallBack +-- ++BLINKER_init(me: BLINKER*): void ++BLINKER_defineCallBack(f: fBlinkerCallBack, param: void*): blinkerCallBack ++BLINKER_starBehaviour(me: BLINKER*): void ++BLINKER_setTurnOn(me: BLINKER*, callBack: blinkerCallBack): void ++BLINKER_setTurnOff(me: BLINKER*, callBack: blinkerCallBack): void ++BLINKER_blink3(me: BLINKER*): void ++BLINKER_blink(me: BLINKER*): void ++BLINKER_processEvent(mev: Event*): bool ++BLINKER_endBlink(me: BLINKER*): void + + + diff --git a/02-UML/ST_BUTTON.uxf b/02-UML/ST_BUTTON.uxf index ae28134..6c15d78 100644 --- a/02-UML/ST_BUTTON.uxf +++ b/02-UML/ST_BUTTON.uxf @@ -4,8 +4,8 @@ UMLSpecialState - 1160 - 200 + 860 + 80 40 40 @@ -15,8 +15,8 @@ UMLState - 680 - 520 + 380 + 400 280 80 @@ -26,8 +26,8 @@ UMLState - 1400 - 520 + 1100 + 400 280 80 @@ -37,8 +37,8 @@ Relation - 1520 - 580 + 1220 + 460 180 240 @@ -49,8 +49,8 @@ evPBPoll Relation - 1160 - 220 + 860 + 100 180 180 @@ -61,8 +61,8 @@ evPBInit UMLSpecialState - 1140 - 360 + 840 + 240 80 80 @@ -72,8 +72,8 @@ evPBInit Relation - 800 - 380 + 500 + 260 380 180 @@ -84,8 +84,8 @@ m1=[pB==1] Relation - 800 - 580 + 500 + 460 180 180 @@ -96,8 +96,8 @@ evPBPoll Relation - 1200 - 380 + 900 + 260 380 180 @@ -108,8 +108,8 @@ m1=[pB==0] UMLSpecialState - 780 - 720 + 480 + 600 80 80 @@ -119,8 +119,8 @@ m1=[pB==0] UMLSpecialState - 1500 - 780 + 1200 + 660 80 80 @@ -130,8 +130,8 @@ m1=[pB==0] Relation - 880 - 440 + 580 + 320 660 440 @@ -142,8 +142,8 @@ m1=[pB==1] / pbPress() Relation - 840 - 440 + 540 + 320 660 380 @@ -155,8 +155,8 @@ m1=[pB==0] / pbRelease() Relation - 600 - 440 + 300 + 320 220 380 @@ -167,8 +167,8 @@ m1=[else] Relation - 1560 - 440 + 1260 + 320 220 440 @@ -179,8 +179,8 @@ m1=[else] UMLNote - 1000 - 880 + 700 + 760 400 100