-
-
Notifications
You must be signed in to change notification settings - Fork 0
Score a connected game
Use this workflow when tournament control software runs on the network. The scoresheet receives the assignment for your room. The scoresheet sends the result back.
Fruity is one tournament control implementation. Other software can implement the same protocol. Read QBTCP for implementers.
You need three things:
- The address of the tournament control server, for example
http://192.168.1.20:8080. - The name or the number of your room.
- A pairing code from the tournament staff.
The scoresheet and the server must be on the same local network. The staff must add the QBSheet address to the origin list on the server.
- Find the section Connect to tournament control on the start screen.
- Type the address in the field Tournament control address.
- Select Connect.
QBSheet reads the discovery information from the server. QBSheet then shows the tournament name.
If QBSheet shows an error, read Troubleshooting.
- Choose your room in the list Room. Leave the value Any room if the staff did not give you a room.
- Type the code in the field Pairing code.
- Select Pair this room.
The server gives the browser a room token. The token is a capability for one room only. The token cannot read another room and cannot read the tournament.
A failed pairing gives the same message for every cause. This is deliberate. A different message for each cause would let a stranger find valid rooms.
- Read the matchup on the screen. QBSheet names the two teams.
- Select Start scoring.
Two other results are possible:
| The screen says | Do this |
|---|---|
| This room has nothing assigned yet | Wait, then select Check again. |
| A blocked message | Ask the staff. The server holds this room for a reason. |
QBSheet writes the assignment to the device before you score anything. After that point the network is optional.
Read During the game.
While you score, QBSheet does two more things:
- QBSheet sends a snapshot of the game to the server. Each snapshot replaces the last one. A failed snapshot never blocks your scoring and never changes the score.
- QBSheet sends a heartbeat, so the tournament director can see that the room is alive.
The connection indicator shows the current state. A lost connection is not an error in the game. Continue to score.
- End the game. Read Finish a game.
- QBSheet sends the result to the server. The screen shows Result sent.
- Download the QBJ file as a backup.
Send the result twice and the server records one game. The server matches the game on the identifiers and on a fingerprint of the statistics. A second copy is a duplicate, not an error.
A device can die in the middle of a game. A second device can then take over. One session has one writer at a time.
- Open the game on the second device.
- QBSheet reports that another device is scoring this game.
- Select the takeover action. A person must do this.
The first device learns that it lost the writer role at its next write. The first device tells its operator. It does not throw away the work.
Caution: QBSheet never takes over by itself after a failed write. Two live devices that both believe that they are authoritative produce two different scoresheets.
The scoresheet sends only QBJ documents and the operational fields that the protocol defines. The scoresheet does not send the private recovery journal.
The files that you download are also clean. A portable file never holds a room token, a session token, a pairing code, a device identifier, or a server address.
QBSheet · AGPL-3.0-or-later · The specifications in
docs/ are normative. This wiki is a guide.
Report a security problem with
SECURITY.md. Do not open a public issue
for a security problem.