Initial commit
This commit is contained in:
commit
8059b90de7
29 files changed
+7893
No files matched your search
@@ -0,0 +1,41 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// SPDX-FileCopyrightText: 2026 Martino Ferrari
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace udpscope {
|
||||
|
||||
/// Everything the command line can say. Defaults are the ones the spec names
|
||||
/// (200 MB per buffer, 10 ms trigger hold-off) unless the user overrides them.
|
||||
struct Config {
|
||||
std::string server = "127.0.0.1"; ///< IPv4 dotted quad of the stream source.
|
||||
std::uint16_t port = 8000; ///< UDP port (unicast) or TCP port (multicast).
|
||||
std::string multicast; ///< Empty selects unicast.
|
||||
std::string interface_addr; ///< Local IPv4 to join the group on; empty = default route.
|
||||
|
||||
/// Size of *each* of the two sample buffers, in megabytes. The application
|
||||
/// always allocates two identical buffers (spec item 1).
|
||||
double buffer_mb = 200.0;
|
||||
|
||||
/// Largest time window the toolbar offers, in seconds. The buffer partition is
|
||||
/// sized to hold at least this much time (spec: decimation).
|
||||
double max_window_s = 600.0;
|
||||
|
||||
double trigger_holdoff_s = 0.010;
|
||||
int recv_buffer_bytes = 8 * 1024 * 1024;
|
||||
|
||||
/// Number of stacked plots (rows) to start with, 1..4.
|
||||
int plots = 1;
|
||||
};
|
||||
|
||||
/// Parses argv. On `--help` prints usage to stdout and exits(0); on a bad
|
||||
/// argument prints a diagnostic to stderr and exits(2).
|
||||
Config parse_args(int argc, char** argv);
|
||||
|
||||
/// Writes the usage text to `out`.
|
||||
void print_usage(std::FILE* out, const char* argv0);
|
||||
|
||||
} // namespace udpscope
|
||||
Reference in new issue
Block a user