/********************************************************************* // created: 2014-02-01 - 12:08 // filename: SickComponent.cpp // // author: Cyril Fougeray // Copyright Heudiasyc UMR UTC/CNRS 6599 // // version: $Id: $ // // purpose: The acquisition component of the Sick sensors (parent class) // *********************************************************************/ #include "SickComponent.h" //#include "AlascaDataGenerator.h" #include "SickSocket.h" #include "Pacpus/kernel/ComponentFactory.h" #include "Pacpus/kernel/DbiteException.h" #include "Pacpus/kernel/DbiteFileTypes.h" #include "Pacpus/kernel/Log.h" #include "Pacpus/PacpusTools/ShMem.h" #include #include #include using namespace std; namespace pacpus { DECLARE_STATIC_LOGGER("pacpus.base.SickComponent"); // Construct the factory static ComponentFactory sFactory("SickComponent"); SickComponent::SickComponent(QString name) : ComponentBase(name) { LOG_TRACE("constructor(" << name << ")"); S_sensors = new std::vector(); } SickComponent::~SickComponent() { LOG_TRACE("destructor"); } void SickComponent::startActivity() { for(std::vector::iterator it = S_sensors->begin(); it != S_sensors->end(); ++it){ (*it)->startActivity(); } } void SickComponent::stopActivity() { for(std::vector::iterator it = S_sensors->begin(); it != S_sensors->end(); ++it){ (*it)->stopActivity(); } } ComponentBase::COMPONENT_CONFIGURATION SickComponent::configureComponent(XmlComponentConfig config) { /* * */ // Sick LD-MRS int num = 0; while (config.getProperty("sickldmrs_"+QString::number(num)) != QString::null){ QString information = config.getProperty("sickldmrs_"+QString::number(num)); QStringList list = information.split(":"); int recording = 0; if (config.getProperty("sickldmrs_"+QString::number(num)+"_recording") != QString::null) { recording = config.getProperty("sickldmrs_"+QString::number(num)+"_recording").toInt(); } S_sensors->push_back(new SickLDMRSSensor(this, "sickldmrs_"+QString::number(num), list.at(0), list.at(1).toInt(), recording)); ++num; } // Sick LMS 151 num = 0; while (config.getProperty("sicklms151_"+QString::number(num)) != QString::null){ QString information = config.getProperty("sicklms151_"+QString::number(num)); QStringList list = information.split(":"); int recording = 0; if (config.getProperty("sicklms151_"+QString::number(num)+"_recording") != QString::null) { recording = config.getProperty("sicklms151_"+QString::number(num)+"_recording").toInt(); } S_sensors->push_back(new SickLMSSensor(this, "sicklms151_"+QString::number(num), list.at(0), list.at(1).toInt(), recording)); ++num; } // Sick LMS 511 num = 0; while (config.getProperty("sicklms511_"+QString::number(num)) != QString::null){ QString information = config.getProperty("sicklms511_"+QString::number(num)); QStringList list = information.split(":"); int recording = 0; if (config.getProperty("sicklms511_"+QString::number(num)+"_recording") != QString::null) { recording = config.getProperty("sicklms511_"+QString::number(num)+"_recording").toInt(); } S_sensors->push_back(new SickLMSSensor(this, "sicklms511_"+QString::number(num), list.at(0), list.at(1).toInt(), recording)); ++num; } return ComponentBase::CONFIGURED_OK; } } // namespace pacpus