diff options
Diffstat (limited to 'ballotbox/ballotbox.puml')
-rw-r--r-- | ballotbox/ballotbox.puml | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/ballotbox/ballotbox.puml b/ballotbox/ballotbox.puml new file mode 100644 index 0000000..d03c650 --- /dev/null +++ b/ballotbox/ballotbox.puml @@ -0,0 +1,38 @@ +@startuml +start +partition init { +:setup serial connection; +:setup Bluetooth + * init server background task + * add hook to capture votes; +:setup ballot + * resolve nextVotingTime + * clear votes; +:print "ready"; +} +while (repeat every few millisecond) +partition loop { +:resolve currentTime; +if (currentTime >= nextVotingTime?) equals (yes) then +:count and print ballot; +switch (voterCount?) +case (< 5) +:print "ALARM: Too few voters!"; +kill +case (<= 8) +:resolve votesPositive; +if (votesPositive < 5 ?) equals (yes) then +:print "ALARM: Bad water quality!"; +kill +endif +:setup ballot; +case (> 8) +:print "ALARM: Too many voters!"; +kill +endswitch +endif +} +endwhile +-[hidden]-> +kill +@enduml |