ui: a signal's details sit directly under its name; its unit is user-changeable and saved with the session
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
bbef7faf3d
commit
87f61ea364
14 files changed
+360
-135
No files matched your search
@@ -465,6 +465,17 @@ class ScopeModel {
|
||||
/// no channel to read it from, and the record is what a dialog must show.
|
||||
std::pair<double, double> calibration(std::size_t signal);
|
||||
|
||||
/// Renames the unit a streamed signal is shown, read and exported in. Stored by the signal's *name*
|
||||
/// like the calibration, and re-applied to every later CONFIG, so a rename survives a reconnect.
|
||||
/// An empty `unit` removes the override and restores the unit the stream declared. A math channel's
|
||||
/// unit belongs to its graph and is ignored here. Bumps `generation()` when it changed something,
|
||||
/// which is what makes the panels re-read the signal list.
|
||||
void set_signal_unit(std::size_t signal, const std::string& unit);
|
||||
/// The unit the stream declared for that signal, whatever the user renamed it to.
|
||||
std::string declared_unit(std::size_t signal);
|
||||
/// The renames in force, `{name, unit}`, for the session file.
|
||||
std::vector<std::pair<std::string, std::string>> unit_overrides();
|
||||
|
||||
std::size_t channel_count() const noexcept { return channels_.size(); }
|
||||
const Partition& partition() const noexcept { return part_; }
|
||||
|
||||
@@ -868,6 +879,9 @@ class ScopeModel {
|
||||
std::atomic<bool> paused_{false};
|
||||
/// Per-signal-name calibration (see `set_calibration`).
|
||||
std::unordered_map<std::string, std::pair<double, double>> calibration_;
|
||||
/// Per-signal-name unit renames (see `set_signal_unit`) and the units the stream declared.
|
||||
std::unordered_map<std::string, std::string> unit_override_;
|
||||
std::unordered_map<std::string, std::string> declared_unit_;
|
||||
std::atomic<std::uint64_t> event_seq_{0};
|
||||
std::atomic<double> display_epoch_{0.0};
|
||||
std::atomic<bool> trigger_armed_{false};
|
||||
|
||||
Reference in new issue
Block a user