| 1 | # Screenshots for bnchelp.html
|
|---|
| 2 |
|
|---|
| 3 | Scripts that produce the figures of `src/bnchelp.html` with the current BNC
|
|---|
| 4 | build: BNC's GUI runs on a virtual X display (Xvfb + openbox), is configured
|
|---|
| 5 | with the example configurations, driven with xdotool and photographed with
|
|---|
| 6 | ImageMagick. Figure numbers are those of `bnchelp.html`.
|
|---|
| 7 |
|
|---|
| 8 | | File | Content |
|
|---|
| 9 | |---|---|
|
|---|
| 10 | | `start_display.sh` | starts (`stop`: ends) Xvfb 2600x1800 and openbox on `:99` |
|
|---|
| 11 | | `shoot.py` | driver: helpers, BNC instances, options |
|
|---|
| 12 | | `jobs.py` | one job per figure (or group of figures), click positions |
|
|---|
| 13 | | `viewer.py` | small text window, shows the concatenation log in Figure 15 |
|
|---|
| 14 |
|
|---|
| 15 | ## Requirements
|
|---|
| 16 |
|
|---|
| 17 | - BNC built (`./bnc`), network access for the live figures
|
|---|
| 18 | - ImageMagick (`import`, `convert`, `montage`, `composite`), Python 3 with tkinter
|
|---|
| 19 | - Figure 17: Perl modules of `scripts/compareSP3Plot.pl` and gnuplot
|
|---|
| 20 | - Xvfb, openbox, xdotool: from the system if installed, otherwise
|
|---|
| 21 | `start_display.sh` downloads the Debian/Ubuntu packages with `apt-get download`
|
|---|
| 22 | (no root needed) and unpacks them into `~/.cache/bnc_screenshot_tools`
|
|---|
| 23 | (`BNC_SHOT_PREFIX`); the package names are those of Ubuntu 22.04
|
|---|
| 24 |
|
|---|
| 25 | ## Usage
|
|---|
| 26 |
|
|---|
| 27 | ```
|
|---|
| 28 | scripts/helpScreenshots/start_display.sh
|
|---|
| 29 | scripts/helpScreenshots/shoot.py --list
|
|---|
| 30 | scripts/helpScreenshots/shoot.py --user bkg # all jobs, ~1 h
|
|---|
| 31 | scripts/helpScreenshots/shoot.py --user bkg fig09 fig23_26 # selected jobs
|
|---|
| 32 | scripts/helpScreenshots/shoot.py --user bkg --install # and copy to src/IMG
|
|---|
| 33 | scripts/helpScreenshots/start_display.sh stop
|
|---|
| 34 | ```
|
|---|
| 35 |
|
|---|
| 36 | The images are written to `/tmp/bnc_screenshots/out` (`--work`); check them
|
|---|
| 37 | before installing. After `--install`, rebuild BNC: the help with its images is
|
|---|
| 38 | compiled in (`src/bnc.qrc`, which lists every image).
|
|---|
| 39 |
|
|---|
| 40 | ## Live streams
|
|---|
| 41 |
|
|---|
| 42 | Jobs marked `live` (`--list`) connect to igs-ip.net and products.igs-ip.net.
|
|---|
| 43 | `--user` replaces `Example:Configs` of the example configurations by that
|
|---|
| 44 | account; its password comes from the credentials file (`~/.netrc` or option
|
|---|
| 45 | `credentialsFile`), never from the command line. The example account itself
|
|---|
| 46 | only works on igs-ip.net. An account may be limited to about 20 simultaneous
|
|---|
| 47 | connections (Figures 34/35 use 20 streams). Nothing is uploaded: the upload
|
|---|
| 48 | panels (30, 32, 33) are shown without starting.
|
|---|
| 49 |
|
|---|
| 50 | The real-time PPP jobs (23-26, 29) run 20 minutes each for a converged
|
|---|
| 51 | solution.
|
|---|
| 52 |
|
|---|
| 53 | ## When the GUI changes
|
|---|
| 54 |
|
|---|
| 55 | The click positions in `jobs.py` are client coordinates of the main window
|
|---|
| 56 | (1200x850, Qt Fusion style, English locale). If a panel's layout changes, take
|
|---|
| 57 | a screenshot of it (e.g. with a job that only calls `panel()`), read the new
|
|---|
| 58 | position and adapt the constant. Not part of the scripts: the diagrams
|
|---|
| 59 | (Figures 1-4, 6, 20).
|
|---|