bandsaunter/tests
The Dust Council f01de4117f Make the aircraft breathe, and send a ring out from each of them
Two things that move on their own, on the window and in the animated
pictures alike, and both turned off with a flag.

An aircraft swells from bright to dim and back.  At the top of the swell it
burns: drawn in a set of peak colours and wearing a halo, which is what a
phosphor does when the beam sits in one place a little too long.  The halo
is the aeroplane's own shape spread outward a pixel at a time rather than a
circle drawn round it -- the first attempt did draw a circle and it looked
exactly like what it was, a ring of dots -- so the glow has the shape of the
thing casting it.  It goes only where the picture was still empty, over the
ground and the grid and the background and never over another aircraft,
since a halo is what light does to the dark around a thing.

And a ring leaves each aircraft and travels outward, growing and dimming as
it goes.  What a radar repeater does, and what the eye reads as this thing
is transmitting -- which is exactly what an aeroplane on this picture is
doing, twice a second, and is how it got on the picture at all.  One ring at
a time per aircraft: a new one leaves as the last reaches the end of its
reach, so the sky has one ring per aeroplane rather than a stack of them to
read through.

Five settings, in a group of their own because the others were already at
eight: whether to pulse, how long a swell takes, whether to echo, how long
between rings, and how far a ring gets.  Both times are seconds of watching
rather than of flying, so the rhythm looks the same whatever speed an
evening is being run through.

Two decisions worth naming.  Each aircraft is offset by its own address, so
a sky full of them swells and rings separately rather than beating as one,
which would read as a display flashing rather than as a lot of separate
things transmitting; the offset comes from the address, so an aeroplane
keeps its rhythm from one frame to the next and from one drawing of the same
log to the next.  And only an aircraft still being heard pulses: one that
has gone quiet is already fading, and a thing that is fading and beating at
once says two contradictory things about itself.

The window can blend and its swell is continuous.  The animation cannot, a
GIF being indexed colour, so there the swell is the steps a palette allows
-- which family of colours the aeroplane is drawn from, and how far its halo
reaches, which is six between them and reads as a swell at a couple of
seconds a cycle.  The peak has sixteen colours of its own, sixteen being
exactly what was left of the palette once 255 is set aside as the
transparent index.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016PsWPTweCT6pwxKngvVxcg
2026-09-06 17:03:16 -07:00
..
adsb_gen.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
conftest.py Aircraft, from the menus, on a live board, over a real map 2026-09-04 00:05:32 -07:00
image_gen.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
morse_gen.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
signals.py Decode data signals, starting with on-off keying 2026-08-28 12:55:37 -07:00
speech.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
terminal.py Deal with the recordings, not just read them 2026-08-29 13:21:32 -07:00
test_aircraft_display.py Give the aerodromes a colour of their own, and say what each aircraft is 2026-09-04 22:45:41 -07:00
test_aircraft_menu.py Cover every option in the help, the manual and the readme, and say what to install 2026-09-06 14:12:33 -07:00
test_announce.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
test_bands.py Name the band beside every frequency, and map who was heard 2026-08-28 11:02:56 -07:00
test_basemap.py A sharper map, and aircraft that fade rather than blink out 2026-09-04 19:04:09 -07:00
test_browse.py Draw the waterfall for everything that never spoke 2026-09-03 18:36:00 -07:00
test_callsign.py Hear the short replies, and read the other kind of callsign 2026-09-02 00:30:02 -07:00
test_classify.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
test_decode.py Decode data signals, starting with on-off keying 2026-08-28 12:55:37 -07:00
test_dsp.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
test_flags.py A window on the sky, and flags on the routes 2026-09-04 13:38:47 -07:00
test_flightmap.py Make the aircraft breathe, and send a ring out from each of them 2026-09-06 17:03:16 -07:00
test_flights.py Give the aerodromes a colour of their own, and say what each aircraft is 2026-09-04 22:45:41 -07:00
test_ident.py Hear the short replies, and read the other kind of callsign 2026-09-02 00:30:02 -07:00
test_images.py Ask a service that knows which leg it is, and fetch a map worth the screen 2026-09-04 20:19:53 -07:00
test_kml.py Hear the short replies, and read the other kind of callsign 2026-09-02 00:30:02 -07:00
test_licence.py Cover every option in the help, the manual and the readme, and say what to install 2026-09-06 14:12:33 -07:00
test_livemap.py Make the aircraft breathe, and send a ring out from each of them 2026-09-06 17:03:16 -07:00
test_manage.py Deal with the recordings, not just read them 2026-08-29 13:21:32 -07:00
test_manpage.py Cover every option in the help, the manual and the readme, and say what to install 2026-09-06 14:12:33 -07:00
test_morse.py Read the Morse a station sends over its own carrier 2026-09-02 07:57:18 -07:00
test_quality.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
test_ranges.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
test_resize.py Redraw cleanly when the window is resized 2026-08-28 15:47:36 -07:00
test_scanner.py Remember runtime lock-outs, and let a lock-out be a span 2026-08-21 23:44:24 -07:00
test_schedules.py Ask a service that knows which leg it is, and fetch a map worth the screen 2026-09-04 20:19:53 -07:00
test_settings.py Remember runtime lock-outs, and let a lock-out be a span 2026-08-21 23:44:24 -07:00
test_signals_named.py Frame the map on the receiver, and throw out what never happened 2026-09-04 12:25:39 -07:00
test_ssb.py Tune SSB to the carrier, and read the sideband from the signal 2026-08-21 23:09:44 -07:00
test_themes.py Let the map brightness reach the map, and put the options in groups 2026-09-06 12:26:00 -07:00
test_transcribe.py Hear the short replies, and read the other kind of callsign 2026-09-02 00:30:02 -07:00
test_trunk.py Recognise trunking control channels, and refuse to sit on them 2026-08-22 14:22:49 -07:00
test_tui.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
test_ui.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
test_version.py Add packaging, date-based versioning, and full install docs 2026-08-21 21:05:51 -07:00
test_waterfall.py Never call a string of Morse tones "words" 2026-09-03 21:44:14 -07:00