2025-05-06 20:16:15 +02:00
|
|
|
#include "probe.h"
|
|
|
|
|
#include "dsp/device/dev.h"
|
|
|
|
|
#include "logger.h"
|
|
|
|
|
|
|
|
|
|
namespace satdump
|
|
|
|
|
{
|
2025-07-15 18:02:13 +02:00
|
|
|
void ProbeCmdHandler::reg(CLI::App *app)
|
|
|
|
|
{
|
|
|
|
|
CLI::App *sub_probe = app->add_subcommand("probe", "Probe for SDR Devices");
|
|
|
|
|
auto sub_probe_group = sub_probe->add_option_group("--tx,--rx");
|
|
|
|
|
sub_probe_group->add_flag("--tx", "Only list devices with at least 1 TX Channel");
|
|
|
|
|
sub_probe_group->add_flag("--rx", "Only list devices with at least 1 RX Channel");
|
|
|
|
|
sub_probe_group->require_option(0, 1);
|
|
|
|
|
sub_probe->add_flag("--params", "Dump full device parameters");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ProbeCmdHandler::run(CLI::App *app, CLI::App *subcom)
|
|
|
|
|
{
|
|
|
|
|
bool tx = subcom->count("--tx");
|
|
|
|
|
bool rx = subcom->count("--rx");
|
|
|
|
|
bool pa = subcom->count("--params");
|
|
|
|
|
probeDevices(tx, rx, pa);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ProbeCmdHandler::probeDevices(bool tx, bool rx, bool params)
|
2025-05-06 20:16:15 +02:00
|
|
|
{
|
|
|
|
|
ndsp::DeviceBlock::device_mode_t m = ndsp::DeviceBlock::MODE_NORMAL;
|
|
|
|
|
if (tx)
|
|
|
|
|
m = satdump::ndsp::DeviceBlock::MODE_SINGLE_TX;
|
|
|
|
|
if (rx)
|
|
|
|
|
m = satdump::ndsp::DeviceBlock::MODE_SINGLE_RX;
|
|
|
|
|
auto devs = satdump::ndsp::getDeviceList(m);
|
|
|
|
|
|
|
|
|
|
if (params)
|
|
|
|
|
{
|
|
|
|
|
for (auto &d : devs)
|
|
|
|
|
{
|
|
|
|
|
auto i = satdump::ndsp::getDeviceInstanceFromInfo(d, satdump::ndsp::DeviceBlock::MODE_SINGLE_TX);
|
|
|
|
|
d.params = i->get_cfg_list();
|
|
|
|
|
logger->debug("\n" + nlohmann::json(d).dump(4) + "\n");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} // namespace satdump
|