Added environment panel for depth, pressure and outside temperature.
This commit is contained in:
1 parent
2d91487c6a
commit
92006372da
21 files changed
+2825
-1616
No files matched your search
@@ -1,20 +1,13 @@
|
||||
To do:
|
||||
|
||||
- Pitch/yaw/tilt relative to magnetic north
|
||||
- Motor information
|
||||
- RPM
|
||||
- Torque
|
||||
- Power Consumption
|
||||
- Overall power consumption
|
||||
- Command line
|
||||
- Inputs
|
||||
- Camera Status
|
||||
- VR Peripherals and ROV connection status
|
||||
- Uplink/Downlink Data Rate
|
||||
- Manipulator Pos/Rot
|
||||
- 3D model of arm rotation
|
||||
- Status
|
||||
- Logging
|
||||
- Enclosure Temperature
|
||||
- Depth (Pressure)
|
||||
- Tether Latency
|
||||
@@ -41,7 +41,7 @@ The elements array is the complete active layout; omitted default panels stay de
|
||||
|
||||
`layout_overview.tscn` owns the shader grid and toolbar. Each `layout_canvas.tscn` places its panel children using `layout_item.gd`; set their IDs, cell rectangles, and minimum sizes in the Inspector. Existing UI scenes remain under each item's `Content` node. Each allocation has a full-size panel background with a shared `panel_gap` (16 logical pixels by default). Instruments scale uniformly inside that frame; reserved slots fill it. Embedded component backgrounds are transparent so their scaling does not change the visible gutters. The camera retains its 16:9 picture inside the camera/header allocation.
|
||||
|
||||
The initial layouts deliberately leave free cells for rearranging. Environment, VR/video, and operator tools are placeholders. The Link panel has a separate [telemetry demo](link_panel.md). Camera and telemetry feeds are not connected.
|
||||
The initial layouts deliberately leave free cells for rearranging. VR/video and operator tools are placeholders. The Link and Environment panels have separate [Link](link_panel.md) and [Environment](environment_panel.md) telemetry demos. Camera and telemetry feeds are not connected.
|
||||
|
||||
The library registry is `scripts/layout_catalog.gd`. Each entry supplies a scene, display text, preferred/minimum cells and sizing behavior. JSON stores registered type IDs rather than resource paths. `components/layout_library.tscn` owns the drawer; selection button order is unchanged.
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# Environment panel
|
||||
|
||||
Run `scenes/environment_demo.tscn` with F6. It previews surface/zero, shallow operation, deeper readings, independent depth/pressure warnings, stale data and both themes.
|
||||
|
||||
```gdscript
|
||||
$EnvironmentPanel.set_telemetry(248.6, 2.54, 7.4)
|
||||
# depth: metres; outside pressure: MPa; water temperature: Celsius
|
||||
```
|
||||
|
||||
The depth indicator uses `log(1 + depth / knee)`, normalized to the maximum depth. This includes zero and expands shallow readings; the default knee is 1 m. Tick labels show the non-linear spacing. Numeric readings are untransformed; negative depth remains visible numerically while the marker stays at zero. Above-limit readings remain visible while the marker clamps to the bottom.
|
||||
|
||||
Limits default to 1000 m and 10 MPa. Warning/saturation colors start at 80%/95% of each actual measurement's limit, independently of the scale transform. Temperature has no limit or gauge. Pressure and depth are supplied independently; no conversion is performed, and the pressure datum should match the configured pressure limit. Demo samples are illustrative.
|
||||
|
||||
Missing data shows dashes. After two seconds without a sample, values are marked STALE / HELD. Non-finite values and negative pressure are rejected. `clear_telemetry()` restores the missing-data state.
|
||||
|
||||
Labels and containers remain editable scene nodes; `depth_scale.gd` draws the indicator. There is no background icon. Colors use shared theme roles. The panel replaces the Environment placeholder in the library and both layouts without changing saved JSON type IDs.
|
||||
Reference in new issue
Block a user