make shure that all changes were reflected in the .md file
This commit is contained in:
101
README.md
101
README.md
@@ -1,3 +1,100 @@
|
||||
# radar-simulation
|
||||
# radar-simulator
|
||||
|
||||
Source code for possible radar exhibit
|
||||
Museum exhibit software simulating 1940s–1960s vintage radar systems.
|
||||
|
||||
## Project overview
|
||||
|
||||
This application runs as a full-screen interactive exhibit on a Geekom A8 Max
|
||||
(AMD Ryzen 9 8945HS, Radeon 780M GPU, Ubuntu 25.10). Visitors can explore four
|
||||
historical radar types by cycling through a selection screen and interacting with
|
||||
keyboard controls.
|
||||
|
||||
**Four radar displays:**
|
||||
|
||||
| # | Name | Type | Location |
|
||||
|---|------|------|----------|
|
||||
| 1 | Chain Home | A-scope (WWII, 1940s) | RAF Ventnor, Isle of Wight |
|
||||
| 2 | Marine A-Scope | A-scope (pre-PPI, manually steered dish) | Community Boating Center, Bellingham Bay WA |
|
||||
| 3 | Marine Traffic Control | PPI scope | Center of Bellingham Bay WA |
|
||||
| 4 | Police Boat | PPI scope (moving platform) | Taylor Dock / Boulevard Park, Bellingham Bay WA |
|
||||
|
||||
## Tech stack
|
||||
|
||||
- **Language:** C++20
|
||||
- **Graphics:** OpenGL 4.3 Core, GLFW, GLAD
|
||||
- **Text:** FreeType 2
|
||||
- **Maps/LIDAR:** GDAL (libgdal-dev)
|
||||
- **Database:** PostgreSQL (database: radar, user: radar)
|
||||
- **Build:** CMake
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
mkdir -p build && cd build
|
||||
cmake ..
|
||||
make -j$(nproc)
|
||||
```
|
||||
|
||||
The executable is `build/radar_simulator`.
|
||||
|
||||
## Running
|
||||
|
||||
```bash
|
||||
# All four radars available
|
||||
./radar_simulator
|
||||
|
||||
# Specific radars only
|
||||
./radar_simulator chain_home marine_ascope
|
||||
./radar_simulator marine_traffic police_boat
|
||||
```
|
||||
|
||||
If only one radar is specified, it auto-activates after 5 seconds.
|
||||
|
||||
## Screen layout
|
||||
|
||||
The window is 1920×1080 and is divided into three areas:
|
||||
|
||||
- **Left text panel** (upper-left, 500 px wide): radar description and keyboard controls
|
||||
- **Status bar** (lower-left, 500×250 px): current control values in yellow
|
||||
- **Scope** (right side, square, full height): radar display
|
||||
|
||||
## Keyboard controls
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| **1** | Step forward in radar selection (or return to selection when operating) |
|
||||
| **2** | Step backward in radar selection |
|
||||
| **ENTER** | Activate selected radar |
|
||||
| **ESC** | Exit |
|
||||
| **3 / 4** | Intensity lower / higher |
|
||||
| **5 / 6** | Receiver sensitivity lower / higher |
|
||||
| **Q / W** | STC sensitivity lower / higher |
|
||||
| **E / R** | STC range lower / higher |
|
||||
| **T / Y** | Rain noise filter lower / higher (PPI scopes only) |
|
||||
| **U / I** | Radiogoniometer left / right (Chain Home only) |
|
||||
| **O / P** | Max range step down / up (all except Chain Home) |
|
||||
| **A / S** | Range cursor lower / higher (PPI scopes only) |
|
||||
| **D / F** | Bearing cursor CCW / CW (PPI scopes only) |
|
||||
| **G / H** | Antenna rotation CCW / CW (Marine A-Scope only) |
|
||||
|
||||
## Component .md files
|
||||
|
||||
Each component has a specification and status file:
|
||||
|
||||
- `01_classes.md` — class hierarchy (RadarBase + 4 subclasses; stubs built)
|
||||
- `02_text_description.md` — text renderer and left-panel text content (complete)
|
||||
- `03_setup_and_radar_selection.md` — startup, selection loop, main render loop (complete)
|
||||
|
||||
## Current build state
|
||||
|
||||
The initialization and radar-management infrastructure is complete:
|
||||
|
||||
- Four stub radar subclasses render description text, keyboard control lists,
|
||||
and current control values in the status bar.
|
||||
- The scope area shows the radar name with a `[stub]` label — no actual radar
|
||||
simulation is drawn yet.
|
||||
- All keyboard controls update CPU globals; uniforms will be pushed to shaders
|
||||
as each scope component is built.
|
||||
|
||||
Real radar scope rendering (sweep, targets, graticule, range rings/ticks,
|
||||
terrain, P7 phosphor persistence) will be added one radar at a time.
|
||||
|
||||
Reference in New Issue
Block a user