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