Ejemplo n.º 1
0
void AerialMapDisplay::loadImagery() {
  if (loader_) {
    //  cancel current imagery, if any
    loader_->abort();
    delete loader_;
    loader_ = 0;
  }
  if (!received_msg_) {
    //  no message received from publisher
    return;
  }
  if (object_uri_.empty()) {
    setStatus(StatusProperty::Error, "Message",
              "Received message but object URI is not set");
  }
  const std::string service = object_uri_;
  try {
    loader_ = new TileLoader(service, ref_lat_, ref_lon_, zoom_, blocks_, this);
  }
  catch (std::exception &e) {
    setStatus(StatusProperty::Error, "Message", QString(e.what()));
    return;
  }

  QObject::connect(loader_, SIGNAL(errorOcurred(QString)), this,
                   SLOT(errorOcurred(QString)));
  QObject::connect(loader_, SIGNAL(finishedLoading()), this,
                   SLOT(finishedLoading()));
  QObject::connect(loader_, SIGNAL(initiatedRequest(QNetworkRequest)), this,
                   SLOT(initiatedRequest(QNetworkRequest)));
  QObject::connect(loader_, SIGNAL(receivedImage(QNetworkRequest)), this,
                   SLOT(receivedImage(QNetworkRequest)));
  //  start loading images
  loader_->start();
}
Ejemplo n.º 2
0
void TileLoader::finishedRequest(QNetworkReply *reply) {
  const QNetworkRequest request = reply->request();

  //  find corresponding tile
  const std::vector<MapTile>::iterator it =
      std::find_if(tiles_.begin(), tiles_.end(),
                   [&](const MapTile &tile) { return tile.reply() == reply; });
  if (it == tiles_.end()) {
    //  removed from list already, ignore this reply
    return;
  }
  MapTile &tile = *it;

  if (reply->error() == QNetworkReply::NoError) {
    //  decode an image
    QImageReader reader(reply);
    if (reader.canRead()) {
      QImage image = reader.read();
      tile.setImage(image);
      image.save(cachedPathForTile(tile.x(), tile.y(), tile.z()), "JPEG");
      emit receivedImage(request);
    } else {
      //  probably not an image
      QString err;
      err = "Unable to decode image at " + request.url().toString();
      emit errorOcurred(err);
    }
  } else {
    const QString err = "Failed loading " + request.url().toString() +
                        " with code " + QString::number(reply->error());
    emit errorOcurred(err);
  }

  checkIfLoadingComplete();
}
Ejemplo n.º 3
0
void MainWindow::setIP(QHostAddress myIP, QHostAddress partnerIP)
{
    ui->setupUi(this);

    ui->ErrorLabel->setText("No error :)");

    //Camera and image processer settings
    CaptureCamera.open(0);
    if(CaptureCamera.isOpened() == false)
    {
        ui->ErrorLabel->setText("Camera Error");
        std::cerr<< "Camera open error" <<std::endl;
    }

    CamSize = OriginalImageMat.size();
    Processer = new ImageProcesser(CamSize);
    ProcessTimer = new QTimer(this);
    connect(ProcessTimer, SIGNAL(timeout()), this, SLOT(processVideoAndUpdateQUI()));

    ProcessTimer->start(100); //tested with QElapsedTimer, 50 was too low... it generated runtime between 60-90 msec
                              //with this we have ~12 msec :)


    //Add the graphics to graphicsview
    scene = new QGraphicsScene(0,0,Settings::SCREEN_WIDTH,Settings::SCREEN_HEIGHT,ui->graphicsView);
    ui->graphicsView->setScene(scene);

    //Other initializations
    myRoad = new Road();
    lives = Settings::STARTLIFE;
    ui->MyLifeLCD->display(lives);
    distance = 0;
    QObject::connect(myRoad, SIGNAL(sendLifeNumber(int)), this, SLOT(receiveLifeNumber(int)));
    QObject::connect(myRoad, SIGNAL(sendDistanceNumber(int)), this, SLOT(receiveDistanceNumber(int)));
    scene->addItem(myRoad);

    //Start the game
    QObject::connect(&timer, SIGNAL(timeout()), scene, SLOT(advance()));

    MyIpAddr=myIP;
    ui->MyIP->setText("My IP: " + MyIpAddr.toString());
    PartnerIpAddr=partnerIP;
    ui->PartnerIP->setText("Partner IP: " + PartnerIpAddr.toString());
    n = new Network();
    n->setIp(MyIpAddr,PartnerIpAddr);
    n->startBinding();
    QObject::connect(n, SIGNAL(receivedImage(QImage)), this, SLOT(receiveNetworkImage(QImage)));
    gameStarted = false;
    this->show();
}
Ejemplo n.º 4
0
void TileLoader::finishedRequest(QNetworkReply *reply) {
  const QNetworkRequest request = reply->request();

  //  find corresponding tile
  MapTile *tile = 0;
  for (MapTile &t : tiles_) {
    if (t.reply() == reply) {
      tile = &t;
    }
  }
  if (!tile) {
    //  removed from list already, ignore this reply
    return;
  }

  if (reply->error() == QNetworkReply::NoError) {
    //  decode an image
    QImageReader reader(reply);
    if (reader.canRead()) {
      QImage image = reader.read();
      tile->setImage(image);
      emit receivedImage(request);
    } else {
      //  probably not an image
      QString err;
      err = "Unable to decode image at " + request.url().toString();
      emit errorOcurred(err);
    }
  } else {
    QString err;
    err = "Failed loading " + request.url().toString();
    err += " with code " + QString::number(reply->error());
    emit errorOcurred(err);
  }

   emit finishedLoading();
}