DevMgr: Add methods to print the parsed devSpecs

This commit is contained in:
2025-01-07 14:14:24 -04:00
parent 42413d1cc6
commit 54de145b2d
+31 -20
View File
@@ -5,31 +5,42 @@
#include <vector> #include <vector>
#include <sstream> #include <sstream>
#include <opts.h> #include <opts.h>
#include <deviceManager/deviceSpecParser.h>
#include <deviceManager/deviceManager.h> #include <deviceManager/deviceManager.h>
void DeviceManager::handleDeviceSpecifiers(const OptionParser& options)
std::vector<DeviceManager::InteroceptorDeviceSpec>
DeviceManager::interoceptorDeviceSpecs;
std::vector<DeviceManager::ExtrospectorDeviceSpec>
DeviceManager::extrospectorDeviceSpecs;
std::ostream& operator<<(
std::ostream& os, const DeviceManager::SensorDeviceSpec& spec)
{ {
std::vector<std::string> deviceStrings; os << "Device: " << spec.sensorType << ", Implexor: "
deviceStrings.insert(deviceStrings.end(), options.extro.begin(), << spec.implexor << ", API: " << spec.api
options.extro.end()); << ", API Params: (";
deviceStrings.insert(deviceStrings.end(), options.intero.begin(), for (auto it = spec.apiParams.begin(); it != spec.apiParams.end(); ++it) {
options.intero.end()); os << *it << (it + 1 == spec.apiParams.end() ? "" : " ");
deviceStrings.insert(deviceStrings.end(), options.actuator.begin(), }
options.actuator.end()); os << "), Server: " << spec.server << ", Server Params: (";
for (auto it = spec.serverParams.begin(); it != spec.serverParams.end(); ++it) {
for (const auto& file : options.deviceSpecFiles) { os << *it << (it + 1 == spec.serverParams.end() ? "" : " ");
std::vector<std::string> fileDeviceStrings = readDeviceFile(file); }
deviceStrings.insert(deviceStrings.end(), fileDeviceStrings.begin(), os << "), Device Selector: " << spec.deviceSelector << std::endl;
fileDeviceStrings.end()); return os;
} }
std::vector<std::pair<std::string, std::string>> deviceSpecifiers = const std::string DeviceManager::printDeviceSpecs(void)
parseDeviceSpecifiers(deviceStrings); {
std::ostringstream oss;
// Use deviceSpecifiers with the device manager for (const auto& spec : DeviceManager::interoceptorDeviceSpecs) {
for (const auto& specifier : deviceSpecifiers) { oss << "Interoceptor " << spec;
std::cout << "Device: " << specifier.first << ", Specifier: "
<< specifier.second << std::endl;
} }
for (const auto& spec : DeviceManager::extrospectorDeviceSpecs) {
oss << "Extrospector " << spec;
}
return oss.str();
} }