CMS:Panel gen

panel_gen is software written by Sarah Autumn for the museum. It generates call traffic on the museum's switches to illustrate how they would have looked and sounded while in active service. It also functions as a load box for the machines, both for testing purposes, and for regularly exercising the mechanical apparatus.
Background
In 2017, Sarah visited the collection of Phil McCarter in Oregon. Among other things, Phil demonstrated call generation software written for him by fellow collector Shane Young. As Sarah walked through Phil's switchroom, she was inspired to create similar software for the Connections Museum.
Sarah began writing the code in Python with significant input from fellow volunteer æstrid Smith. Originally designed to be run as a console only application, it has evolved significantly over the years to be a full-featured application that is used regularly at the museum.
Features
panel_gen features a core program in panel_gen.py
, and a REST API and browser-based web UI in http_server.py
. It is normally run as a systemd
service.
Although it is easily configured for different switching requirements, it is not designed to be portable beyond kercheep, due to the specialized requirements imposed on it by the hardware and software that it interacts with.

It is configured by modifying /etc/panel_gen.conf
, and then restarting the service. The configuration framework was specifically designed to allow the user to shape the call load for each switch based on the available equipment at the museum. Thus, the program should act safely, while still maintaining a reasonable load on the switches.
The software provides three human interfaces:
- an ncurses console app (
console.py
) which displays a realtime view of the program's status - a simple web UI which can be viewed as an "app" on smartphones. The UI presents "START" and "STOP" buttons for each switch, along with a large red "FORCE STOP" button which stops calls on all switches immediately.
- physical keys and lamps placed in the telephone switches themselves. The keys can be used to start or stop calls, and adjust the traffic level to low or high.