Commands
The commands fall into four areas. Only the first is mandatory; a display may
offer the others or not, and it says which are present in its answer to
hello.
The four areas#
| Area | Key in caps |
Commands |
|---|---|---|
| Basics | – (always present) | hello, ping, status |
| Session | session |
session.open, session.update, session.close |
| Display | idle, message, media, venue |
idle.show, idle.slides, message.show, message.clear, media.show, venue.set |
| Device | monitor, config, lifecycle |
monitor.*, config.get, config.set, lifecycle.* |
Profiles#
Conformance is measured against these profiles. A product implements the basics in full and at least one profile:
| Profile | Required |
|---|---|
| Patron display | basics + session.open, session.update, session.close + idle.show |
| Notice display | basics + message.show, message.clear |
| Manageable | in addition monitor.*, config.get, lifecycle.* |
A display at the circulation desk usually meets "patron display" and "manageable"; a screen in the entrance area only "notice display".
States#
A display is always in exactly one state.
status reveals
which one.
| State | What is on the screen |
|---|---|
idle |
idle screen – greeting, opening hours, image sequence |
active |
a running session |
farewell |
the goodbye after session.close |
saver |
screen saver after a longer pause |
session.open session.close (delay, seconds)
idle ──────────────► active ─────────────────────────────────► farewell
▲ │ │
│ idle.show │ idle timeout (idle.timeout_s) │ seconds
└────────────────────┴──────────────────────────────────────────┘
│
▼ idle timeout (saver.timeout_s)
saver ───── any request ─────► previous state
Three rules go with it:
- Every valid request counts as activity and ends the screen saver – even a
bare
ping. - While a session is open there is no idle transition to
idle. Someone with a patron in front of them does not suddenly revert to the idle screen. - A session command cancels an announced goodbye. If something is charged while the countdown runs, the session continues.
How a controlling program proceeds#
hello once per connection: remember the capabilities
↓
venue.set once at start-up and on every change
↓
session.open patron called up
↓
session.update after every transaction
↓
session.close business finished, say goodbye
The data from venue.set applies across all sessions: it tells the display what
to show when nobody is standing in front of it.
If an area is missing (404/501), the controlling program leaves it out and
carries on with the rest. There is no request whose failure may hold up business
at the desk.