Exemplo n.º 1
0
void Controller::readConfig()
{
    if( !QFile::exists(DEFAULT_CONFIG_FILE) )
    {
        qDebug() << "Config file does not exists!";
        return;
    }

    QFile cf( DEFAULT_CONFIG_FILE );

    if( !cf.open(QFile::ReadOnly) )
        return;

    QByteArray line;
    QRegExp rx( "(\\d+\\.\\d+\\.\\d+\\.\\d+):(\\d+):(\\w+):(.+):" );

    while( !cf.atEnd() )
    {
        line = cf.readLine();
        if( rx.indexIn(line) == -1 )
            continue;

        qDebug() << "Setting connection info";
        setConnectionInfo(
            rx.cap(1),
            rx.cap(2).toUInt(),
            rx.cap(3),
            rx.cap(4)
        );
        break;
    }

    cf.close();
}
Exemplo n.º 2
0
terrama2::core::ProcessLogger::ProcessLogger(const ProcessLogger& other)
{
  schema_ = other.schema_;
  tableName_ = other.tableName_;
  messagesTableName_ = other.messagesTableName_;

  setConnectionInfo(other.dataSource_->getConnectionInfo());
}
int main(int argc, char* argv[])
{
  try
  {
    terrama2::core::TerraMA2Init terramaRaii("example", 0);
    terrama2::core::registerFactories();

    {
      QCoreApplication app(argc, argv);
      auto& serviceManager = terrama2::core::ServiceManager::getInstance();
      te::core::URI uri("pgsql://"+TERRAMA2_DATABASE_USERNAME+":"+TERRAMA2_DATABASE_PASSWORD+"@"+TERRAMA2_DATABASE_HOST+":"+TERRAMA2_DATABASE_PORT+"/"+TERRAMA2_DATABASE_DBNAME);
      serviceManager.setLogConnectionInfo(uri);
      serviceManager.setInstanceId(1);

      auto dataManager = std::make_shared<terrama2::services::collector::core::DataManager>();

      addInput(dataManager);
      addOutput(dataManager);

      terrama2::services::collector::core::Service service(dataManager);
      auto logger = std::make_shared<terrama2::services::collector::core::CollectorLogger>();
      logger->setConnectionInfo(uri);
      service.setLogger(logger);
      service.start();

      terrama2::services::collector::core::Collector* collector(new terrama2::services::collector::core::Collector());
      terrama2::services::collector::core::CollectorPtr collectorPtr(collector);
      collector->id = 777;
      collector->projectId = 1;
      collector->serviceInstanceId = 1;
      collector->filter.region = terrama2::core::ewktToGeom("SRID=4326;POLYGON((-73.8036991603083 -9.81412714740936,-73.8036991603083 2.24662115728613,-56.097053202293 2.24662115728613,-56.097053202293 -9.81412714740936,-73.8036991603083 -9.81412714740936))");
      collector->filter.cropRaster = true;
      collector->filter.discardBefore = terrama2::core::TimeUtils::stringToTimestamp("2016-11-25T06:00:00.000-02:00", terrama2::core::TimeUtils::webgui_timefacet);
      collector->filter.discardAfter = terrama2::core::TimeUtils::stringToTimestamp("2016-11-25T12:00:00.000-02:00", terrama2::core::TimeUtils::webgui_timefacet);

      collector->inputDataSeries = 1;
      collector->outputDataSeries = 2;
      collector->inputOutputMap.emplace(1, 2);

      dataManager->add(collectorPtr);

      service.addToQueue(collectorPtr->id, terrama2::core::TimeUtils::nowUTC());

      QTimer timer;
      QObject::connect(&timer, SIGNAL(timeout()), QCoreApplication::instance(), SLOT(quit()));
      timer.start(10000);
      app.exec();

      service.stopService();
    }
  }
  catch(...)
  {
    std::cout << "\n\nException...\n" << std::endl;
  }

  return 0;
}
WirelessInterfaceItem::WirelessInterfaceItem(Solid::Control::WirelessNetworkInterfaceNm09 * iface, RemoteActivatableList* activatables, InterfaceItem::NameDisplayMode mode, QGraphicsWidget* parent)
: InterfaceItem(iface, activatables, mode, parent)
{
    connect(iface, SIGNAL(activeAccessPointChanged(QString)),
            SLOT(updateInfo()));

    m_wirelessStatus = new WirelessStatus(iface);
    connect(m_wirelessStatus, SIGNAL(strengthChanged(int)), this, SLOT(updateInfo()));
    setConnectionInfo();
}
Exemplo n.º 5
0
void Connection::on_pushConnection_clicked()
{
    int32_t flags = 0x00;
    char buffer[MAX_BUFFER_SIZE] = {0x00};
    int size = 0;
    int index = 0;
    scopeMsgServerRes response;

    this->serverIP = this->ui->lineIP->text();
    this->serverPort = this->ui->linePort->text().toInt();

    hostAddress.setAddress(this->serverIP);
    if(hostAddress.protocol() != QAbstractSocket::IPv4Protocol) {
        QMessageBox::warning(this, "Error!", "Invalid IP address!");
        return;
    }

    size = strlen((const char *)this->client_data.name);
    flags |= scopeMsgClientReq_scopeRegisterFlagsReq_CLIENT_NAME;
    buffer[index++] = size;
    memcpy(&(buffer[index]), this->client_data.name, size);
    index += size;

    flags |= scopeMsgClientReq_scopeRegisterFlagsReq_CLIENT_SW_VER;
    buffer[index++] = strlen((const char *)this->client_data.sw_version);
    memcpy(&(buffer[index]), this->client_data.sw_version, strlen((const char *)this->client_data.sw_version));
    size += strlen((const char *)this->client_data.sw_version);

    size += 1;

    send_data(scopeMsgClientReq_scopeMsgIdReq_SCOPE_MSGID_REGISTER_REQ, flags, buffer, size);

    if(waitForResponse(scopeMsgServerRes_scopeMsgIdRes_SCOPE_MSGID_REGISTER_RES, &response)) {
        setServerConnected(true);
        setConnectionInfo(&response);
    } else {
        QMessageBox::warning(this, "Error!", "No response!");
    }
}
Exemplo n.º 6
0
int main(int argc, char* argv[])
{
  try
  {
    terrama2::core::TerraMA2Init terramaRaii("example", 0);
    Q_UNUSED(terramaRaii);

    terrama2::core::registerFactories();
    {
      QCoreApplication app(argc, argv);

      auto& serviceManager = terrama2::core::ServiceManager::getInstance();

      auto dataManager = std::make_shared<terrama2::services::collector::core::DataManager>();

      auto loggerCopy = std::make_shared<terrama2::core::MockCollectorLogger>();

      EXPECT_CALL(*loggerCopy, setConnectionInfo(::testing::_)).WillRepeatedly(::testing::Return());
      EXPECT_CALL(*loggerCopy, setTableName(::testing::_)).WillRepeatedly(::testing::Return());
      EXPECT_CALL(*loggerCopy, getLastProcessTimestamp(::testing::_)).WillRepeatedly(::testing::Return(nullptr));
      EXPECT_CALL(*loggerCopy, getDataLastTimestamp(::testing::_)).WillRepeatedly(::testing::Return(nullptr));
      EXPECT_CALL(*loggerCopy, done(::testing::_, ::testing::_)).WillRepeatedly(::testing::Return());
      EXPECT_CALL(*loggerCopy, start(::testing::_)).WillRepeatedly(::testing::Return(0));
      EXPECT_CALL(*loggerCopy, isValid()).WillRepeatedly(::testing::Return(true));

      auto logger = std::make_shared<terrama2::core::MockCollectorLogger>();

      EXPECT_CALL(*logger, setConnectionInfo(::testing::_)).WillRepeatedly(::testing::Return());
      EXPECT_CALL(*logger, setTableName(::testing::_)).WillRepeatedly(::testing::Return());
      EXPECT_CALL(*logger, getLastProcessTimestamp(::testing::_)).WillRepeatedly(::testing::Return(nullptr));
      EXPECT_CALL(*logger, getDataLastTimestamp(::testing::_)).WillRepeatedly(::testing::Return(nullptr));
      EXPECT_CALL(*logger, done(::testing::_, ::testing::_)).WillRepeatedly(::testing::Return());
      EXPECT_CALL(*logger, start(::testing::_)).WillRepeatedly(::testing::Return(0));
      EXPECT_CALL(*logger, clone()).WillRepeatedly(::testing::Return(loggerCopy));
      EXPECT_CALL(*logger, isValid()).WillRepeatedly(::testing::Return(true));

      terrama2::services::collector::core::Service service(dataManager);
      serviceManager.setInstanceId(1);
      serviceManager.setLogger(logger);
      serviceManager.setLogConnectionInfo(te::core::URI(""));

      service.setLogger(logger);
      service.start();

      // DataProvider and DataSeries GradsFTP
      auto dataProviderFTP = terrama2::gradsftp::dataProviderGradsFTP();
      dataManager->add(dataProviderFTP);

      auto inputDataSeriesFTP = terrama2::gradsftp::dataSeriesGradsFTP(dataProviderFTP);
      dataManager->add(inputDataSeriesFTP);


      // DataProvider and DataSeries GradsFILE
      auto dataProviderFILE = terrama2::gradsftp::dataProviderGradsFILE();
      dataManager->add(dataProviderFILE);

      auto outputDataSeriesFILE = terrama2::gradsftp::dataSeriesGradsFILE(dataProviderFILE);
      dataManager->add(outputDataSeriesFILE);


      std::shared_ptr<terrama2::services::collector::core::Collector> collector = std::make_shared<terrama2::services::collector::core::Collector>();

      collector->id = 777;
      collector->projectId = 0;
      collector->serviceInstanceId = 1;
      collector->filter.region = terrama2::core::ewktToGeom("SRID=4326;POLYGON((-73.8036991603083 -9.81412714740936,-73.8036991603083 2.24662115728613,-56.097053202293 2.24662115728613,-56.097053202293 -9.81412714740936,-73.8036991603083 -9.81412714740936))");
      collector->filter.cropRaster = true;
      collector->filter.discardBefore = terrama2::core::TimeUtils::stringToTimestamp("2017-10-10T12:00:00.000-02:00", terrama2::core::TimeUtils::webgui_timefacet);
      collector->filter.discardAfter = terrama2::core::TimeUtils::stringToTimestamp("2017-10-10T13:00:00.000-02:00", terrama2::core::TimeUtils::webgui_timefacet);

      collector->inputDataSeries = inputDataSeriesFTP->id;
      collector->outputDataSeries = outputDataSeriesFILE->id;
      collector->inputOutputMap.emplace(inputDataSeriesFTP->id, outputDataSeriesFILE->id);

      dataManager->add(collector);

      service.addToQueue(collector, terrama2::core::TimeUtils::nowUTC());

      QTimer timer;
      QObject::connect(&timer, SIGNAL(timeout()), QCoreApplication::instance(), SLOT(quit()));
      timer.start(10000);
      app.exec();

      service.stopService();
    }
  }
  catch(...)
  {
    std::cout << "\n\nException...\n" << std::endl;
  }

  return 0;
}
Exemplo n.º 7
0
int main(int argc, char* argv[])
{
  try
  {
    terrama2::core::TerraMA2Init terramaRaii("example", 0);
    terrama2::core::registerFactories();

    {
      QCoreApplication app(argc, argv);
      auto& serviceManager = terrama2::core::ServiceManager::getInstance();
    te::core::URI uri("pgsql://"+TERRAMA2_DATABASE_USERNAME+":"+TERRAMA2_DATABASE_PASSWORD+"@"+TERRAMA2_DATABASE_HOST+":"+TERRAMA2_DATABASE_PORT+"/"+TERRAMA2_DATABASE_DBNAME);
      serviceManager.setLogConnectionInfo(uri);
      serviceManager.setInstanceId(1);

      auto dataManager = std::make_shared<terrama2::services::collector::core::DataManager>();

      addInput(dataManager);
      addOutput(dataManager);
      addGridSeries(dataManager);

      terrama2::services::collector::core::Service service(dataManager);
      auto logger = std::make_shared<terrama2::services::collector::core::CollectorLogger>();
      logger->setConnectionInfo(uri);
      service.setLogger(logger);
      service.start();

      terrama2::services::collector::core::Collector* collector(new terrama2::services::collector::core::Collector());
      terrama2::services::collector::core::CollectorPtr collectorPtr(collector);
      collector->id = 1;
      collector->projectId = 1;
      collector->serviceInstanceId = 1;

      collector->inputDataSeries = 1;
      collector->outputDataSeries = 2;
      collector->inputOutputMap.emplace(1, 2);

      terrama2::services::collector::core::Intersection* intersection(new terrama2::services::collector::core::Intersection());
      terrama2::services::collector::core::IntersectionPtr intersectionPtr(intersection);

      // Adds the attribute "SIGLA" to the collected occurrences.
      intersection->collectorId = collector->id;
      std::vector<std::string> attrVec{"2"};
      intersection->attributeMap[3] = attrVec;
      collector->intersection = intersectionPtr;

      dataManager->add(collectorPtr);
      service.addToQueue(collectorPtr->id, terrama2::core::TimeUtils::nowUTC());

      QTimer timer;
      QObject::connect(&timer, SIGNAL(timeout()), QCoreApplication::instance(), SLOT(quit()));
      timer.start(10000);
      app.exec();

      service.stopService();
    }
  }
  catch(...)
  {
    std::cout << "\n\nException...\n" << std::endl;
  }

  return 0;
}
HDTBReturnItem NetworkClient::processRequest(std::vector<std::string> args)
{
/*
    std::cout << "ARGUMENTS IN" << std::endl;
    for(std::vector<std::string>::iterator it = args.begin();
        it != args.end(); ++it)
    {
        std::cout << "ARG :" << *it << std::endl;
    }
*/

    history.push(args);

    // Make sure command exists
    if(commands.find(args[0]) == commands.end())
    {
        // Call to super class
        displayAvailableCommands();

        for(std::vector<std::string>::iterator it = args.begin();
            it != args.end(); ++it)
        {
            std::cout << "ARG :" << *it << std::endl;
        }

        return errorHandler.generateGenericError("Unknown command");
    }

    //Handle command
    int c = 0;
    switch(commands[args[0]])
    {

    case HDTB_CLIENT_LOAD:
        if (args.size() != 3)
        {
            std::cout << " CLIENT_LOAD " << std::endl;
            return HDTBReturnItem(HDTB_RETURN_BAD, "not enough args -setinfo <<");
        }

        // Make sure port is int
        if( !( c = atoi(args[2].c_str())) )
            return HDTBReturnItem(HDTB_RETURN_BAD, "invalid port");

        return setConnectionInfo(args[1], c);
        break;

    case HDTB_CLIENT_SEND:
    {
        if (args.size() != 2)
            return HDTBReturnItem(HDTB_RETURN_BAD, "not enough args -fsend");

        HDTBReturnItem t = send(args[2]);
        if(t.retCode == HDTB_RETURN_GOOD)
        {
            if(recieve_data())
            {
                std::cout << "\t Recieved data back from " << connectionInfo.address << std::endl;
                t.message = statusInfo.data_received;
                t.comm = 'R';
            }
            else
            {
                std::cout << "\t Didn't recieve any data back from " << connectionInfo.address << std::endl;
                t.comm = 'N';
            }
            return t;
        }
        else
            return t;

        return send(args[2]);
        break;
    }

    case HDTB_CLIENT_COMM:
        return initiateComms();
        break;

    case HDTB_CLIENT_BLIND_COMM:
        return initiateBlindComms();
        break;

    case HDTB_NETWORK_CMD_KILL:
        return kill();
        break;

    default:
        return errorHandler.generateGenericError("Default accessed in command switch");
        break;
    }
    return errorHandler.generateGenericError("Uncaught return");
}
void WirelessInterfaceItem::updateInfo()
{
    setConnectionInfo();
}