DevMgr: Add methods to print the parsed devSpecs
This commit is contained in:
@@ -5,31 +5,42 @@
|
||||
#include <vector>
|
||||
#include <sstream>
|
||||
#include <opts.h>
|
||||
#include <deviceManager/deviceSpecParser.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;
|
||||
deviceStrings.insert(deviceStrings.end(), options.extro.begin(),
|
||||
options.extro.end());
|
||||
deviceStrings.insert(deviceStrings.end(), options.intero.begin(),
|
||||
options.intero.end());
|
||||
deviceStrings.insert(deviceStrings.end(), options.actuator.begin(),
|
||||
options.actuator.end());
|
||||
|
||||
for (const auto& file : options.deviceSpecFiles) {
|
||||
std::vector<std::string> fileDeviceStrings = readDeviceFile(file);
|
||||
deviceStrings.insert(deviceStrings.end(), fileDeviceStrings.begin(),
|
||||
fileDeviceStrings.end());
|
||||
os << "Device: " << spec.sensorType << ", Implexor: "
|
||||
<< spec.implexor << ", API: " << spec.api
|
||||
<< ", API Params: (";
|
||||
for (auto it = spec.apiParams.begin(); it != spec.apiParams.end(); ++it) {
|
||||
os << *it << (it + 1 == spec.apiParams.end() ? "" : " ");
|
||||
}
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> deviceSpecifiers =
|
||||
parseDeviceSpecifiers(deviceStrings);
|
||||
|
||||
// Use deviceSpecifiers with the device manager
|
||||
for (const auto& specifier : deviceSpecifiers) {
|
||||
std::cout << "Device: " << specifier.first << ", Specifier: "
|
||||
<< specifier.second << std::endl;
|
||||
os << "), Server: " << spec.server << ", Server Params: (";
|
||||
for (auto it = spec.serverParams.begin(); it != spec.serverParams.end(); ++it) {
|
||||
os << *it << (it + 1 == spec.serverParams.end() ? "" : " ");
|
||||
}
|
||||
os << "), Device Selector: " << spec.deviceSelector << std::endl;
|
||||
return os;
|
||||
}
|
||||
|
||||
const std::string DeviceManager::printDeviceSpecs(void)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
|
||||
for (const auto& spec : DeviceManager::interoceptorDeviceSpecs) {
|
||||
oss << "Interoceptor " << spec;
|
||||
}
|
||||
|
||||
for (const auto& spec : DeviceManager::extrospectorDeviceSpecs) {
|
||||
oss << "Extrospector " << spec;
|
||||
}
|
||||
|
||||
return oss.str();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user