forked from HEL/chronos
		
	added plantuml parser
This commit is contained in:
		
							
								
								
									
										271
									
								
								gallery/plantuml_test.typ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										271
									
								
								gallery/plantuml_test.typ
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,271 @@ | ||||
| #import "../src/lib.typ": from-plantuml | ||||
|  | ||||
| #set page(width: auto, height: auto) | ||||
|  | ||||
| /* | ||||
| #from-plantuml(``` | ||||
| @startuml | ||||
|  | ||||
| actor User as usr | ||||
| participant can_message as can | ||||
| control kartculator as kc | ||||
| queue XF as xf | ||||
| entity Drive as drive | ||||
| entity Steering as steering | ||||
|  | ||||
| usr -\ xf : set message "move" | ||||
| xf -> can : new value on joystick | ||||
|  | ||||
| == If X axis change value == | ||||
| can -> kc : calculate new position | ||||
| kc -> can : build message | ||||
| can -> steering : set new position | ||||
|  | ||||
| == If Y axis change value == | ||||
| can -> kc : calculate new torque | ||||
| kc -> can : build message | ||||
| can -> xf : set message "torque" | ||||
| xf -> drive : set new torque | ||||
|  | ||||
| @enduml | ||||
| ```) | ||||
|  | ||||
| #pagebreak(weak: true) | ||||
|  | ||||
| #from-plantuml(``` | ||||
| @startuml | ||||
|  | ||||
| actor CAN_BUS as bus | ||||
| participant interrupt as ISR | ||||
| queue XF as xf | ||||
| participant ecan as ecan | ||||
| participant canInterface as can | ||||
| control canMessageController as msg | ||||
|  | ||||
|  | ||||
| bus -\\ ISR ++  : can message | ||||
| ISR -> can : newMsg | ||||
| can -> ecan : read | ||||
| ecan --> can : message | ||||
| can -> xf : POST XF | ||||
| destroy ISR | ||||
|     group TICK XF | ||||
| xf o-> can : receiveCan() | ||||
| can -> msg : processIncoming() | ||||
| msg -> can : create message | ||||
| can -> xf : POST XF | ||||
|     end | ||||
|     group TICK XF | ||||
| xf o-> can : sendCan() | ||||
| can -> ecan : write | ||||
| ecan -\\ bus : can message | ||||
|     end | ||||
|  | ||||
| @enduml | ||||
| ```) | ||||
|  | ||||
| #pagebreak(weak: true) | ||||
| */ | ||||
|  | ||||
| /* | ||||
| #from-plantuml(``` | ||||
| @startuml | ||||
|  | ||||
| participant "Behavior::StateMachine" as sm | ||||
| participant Dispatcher as d | ||||
| participant TimeoutManager as tm | ||||
| entity "Event::Timeout" as t | ||||
| queue "TimeoutManager::timeouts_" as timeouts | ||||
|  | ||||
| autoactivate off | ||||
| ||| | ||||
| ||| | ||||
| == Schedule timeout == | ||||
| ||| | ||||
| sm -> sm++ : scheduleTimeout | ||||
| sm -> d ++: getDispatcher | ||||
| d --> sm --: dispatcher | ||||
| sm -> d --++ : scheduleTimeout | ||||
| d -> tm ++: getTimeoutManager | ||||
| tm --> d --: timeoutManager | ||||
| d -> tm --++ : scheduleTimeout | ||||
| tm -> t ** : new | ||||
| t --> tm | ||||
| tm -> timeouts --++: insert | ||||
|  | ||||
| ||| | ||||
| ||| | ||||
| == Decrement timeout (and dispatch) == | ||||
| ||| | ||||
| loop every tickInterval | ||||
| ?->> tm ++: tick | ||||
| tm -> timeouts : getFront | ||||
| timeouts -> t ++ | ||||
| t --> timeouts | ||||
| timeouts --> tm : timeout | ||||
| tm -> t  --: decrement | ||||
| end | ||||
| ||| | ||||
| note left t | ||||
| When timeout is 0, | ||||
| dispatch event | ||||
| end note | ||||
| t -> timeouts : pop | ||||
| deactivate timeouts | ||||
| t ->? --: pushEvent | ||||
|  | ||||
| ||| | ||||
| ||| | ||||
| == Unschedule timeout == | ||||
| ||| | ||||
| sm -> sm++ : unscheduleTimeout | ||||
| sm -> d ++: getDispatcher | ||||
| d --> sm --: dispatcher | ||||
| sm -> d --++ : unscheduleTimeout | ||||
| d -> tm ++: getTimeoutManager | ||||
| tm --> d --: timeoutManager | ||||
| d -> tm --++ : unscheduleTimeout | ||||
| tm -> timeouts --: erase | ||||
| timeouts -> t !! | ||||
|  | ||||
| @enduml | ||||
| ```) | ||||
| */ | ||||
|  | ||||
| #pagebreak(weak: true) | ||||
|  | ||||
| #from-plantuml(``` | ||||
| @startuml | ||||
|  | ||||
| participant Behavior as b | ||||
| participant Dispatcher as d | ||||
| entity Event as e | ||||
| participant EventQueue as eq | ||||
| queue "EventQueue::queue_" as q | ||||
|  | ||||
| == Create an Event == | ||||
| ||| | ||||
| ?->> b ++ : GEN | ||||
| b -> e ** : new | ||||
| b -> b --++ : pushEvent | ||||
| e -> b : getBehavior | ||||
| b --> e ++: setBehavior | ||||
| e --> b -- | ||||
| b -> d ++ : getDispatcher | ||||
| d --> b | ||||
| b -> d -- : pushEvent | ||||
| d ->? -- : push | ||||
|  | ||||
|  | ||||
| ||| | ||||
| ||| | ||||
| == Push Event  == | ||||
| ||| | ||||
| ?->> d ++: pushEvent | ||||
| d -> eq--++: push | ||||
| eq -> q ++ | ||||
| q --> eq | ||||
| eq -> q -- : pushEndQueue | ||||
|  | ||||
| ||| | ||||
| ||| | ||||
| == Dispatch == | ||||
| ||| | ||||
| ?->> d ++: executeOnce | ||||
| d -> q : getFront | ||||
| q -> e ++ | ||||
| e --> q | ||||
| q --> d : event | ||||
| d -> q : pop | ||||
| deactivate q | ||||
| d -> d --++ : dispatchEvent | ||||
| d -> b ++ : getBehavior | ||||
| b --> d | ||||
| d -> b -- : process | ||||
| b -> b--: processEvent | ||||
|  | ||||
| destroy e | ||||
|  | ||||
| @enduml | ||||
| ```) | ||||
|  | ||||
| #pagebreak(weak: true) | ||||
|  | ||||
| #from-plantuml(``` | ||||
| @startuml | ||||
| 'https://plantuml.com/sequence-diagram | ||||
| actor User as usr | ||||
| participant "Pb L" as pbL | ||||
| participant "Pb R" as pbR | ||||
| participant "LED L" as ledL | ||||
| participant "LED R" as ledR | ||||
|  | ||||
|  | ||||
| == Single click == | ||||
|  | ||||
| group Single click left | ||||
| usr -\ pbL ++: pressButton | ||||
| usr -\ pbL : releaseButton | ||||
| pbL -> ledL --++ : blink | ||||
| usr -\ pbL ++: pressButton | ||||
| usr -\ pbL : releaseButton | ||||
| pbL -> ledL -- : endBlink | ||||
| deactivate ledL | ||||
| end | ||||
|  | ||||
| group Single click right | ||||
| usr -\ pbR ++: pressButton | ||||
| usr -\ pbR : releaseButton | ||||
| pbR -> ledR --++ : blink | ||||
| usr -\ pbR ++: pressButton | ||||
| usr -\ pbR : releaseButton | ||||
| pbR -> ledR -- : endBlink | ||||
| deactivate ledR | ||||
| end | ||||
|  | ||||
| == Double click == | ||||
|  | ||||
| group Double click left | ||||
| usr -\ pbL ++: pressButton | ||||
| usr -\ pbL : releaseButton | ||||
| usr -\ pbL : pressButton | ||||
| pbL -> ledL --++ : blink | ||||
| note right ledL: blink 3x | ||||
| ledL ->x ledL -- : finished | ||||
| end | ||||
|  | ||||
| group Double click right | ||||
| usr -\ pbR ++: pressButton | ||||
| usr -\ pbR : releaseButton | ||||
| usr -\ pbR : pressButton | ||||
| pbR -> ledR --++ : blink | ||||
| note right ledR: blink 3x | ||||
| ledR ->x ledR -- : finished | ||||
| end | ||||
|  | ||||
| == Long click == | ||||
|  | ||||
| group Long click left | ||||
| usr -\ pbL ++: pressButton | ||||
| pbL -> ledR--: blink | ||||
| activate ledL | ||||
| activate ledR | ||||
| usr -\ pbL ++: pressButton | ||||
| pbL -> ledR -- : endBlink | ||||
| deactivate ledL | ||||
| deactivate ledR | ||||
| end | ||||
|  | ||||
| group Long click right | ||||
| usr -\ pbR ++: pressButton | ||||
| pbR -> ledR--: blink | ||||
| activate ledL | ||||
| activate ledR | ||||
| usr -\ pbL ++: pressButton | ||||
| pbL -> ledR -- : endBlink | ||||
| deactivate ledL | ||||
| deactivate ledR | ||||
| end | ||||
|  | ||||
| @enduml | ||||
| ```) | ||||
		Reference in New Issue
	
	Block a user