@startuml
:instantiate mussel object;
:instantiate bluetooth object;
group init
:setup mussel voting;
:setup bluetooth scanner;
end group
split
while (each beacon detected)
group "bluetooth callback" {
:collect beacon data;
end group
endwhile
-[hidden]->
kill
split again
while (each 500ms)
group loop {
:allign beacon data as ballots;
:qualify ballots for a vote;
:conclude vote result;
:act on vote result;
end group
endwhile
-[hidden]->
kill
@enduml