It would work something like this
Assume buzzerhubs come in batches of 8 (with increasing ids).
1) Teacher hub broadcasts it is looking for hubs with a counter
2) If buzzerid modulo counter ==0 then it tries to reply straight
away, with exponential random backoff
3) Teacher hub replies with the token id it should listen for, the
successful device id and the token id of the next one in the ring
3(b) If the teacher hub doesn't get a reply within (time out) it
closes the ring with itself as the last member
4) Every device listens to all traffic, if it hears a token for
itself it will start broadcasting and then pass the token on when it
doesn't have anything to say.
As we want to know if a device doesn't network properly (and devices
shouldn't be dropping out of the network randomly), the downsides of a
token ring shouldn't be too bad.
Will
Yup, if I am reinventing the wheel, or completely off base, let me know!
Will