Пример #1
0
CameraSettings::Camera NAOCamera::setActiveCamera(CameraSettings::Camera newCamera)
{
    // If no change required, do nothing.
    if(m_settings.activeCamera == newCamera) return m_settings.activeCamera;

    CameraSettings::Camera previous_camera = m_settings.activeCamera;
    int i2cFd = open("/dev/i2c-0", O_RDWR);
    ASSERT(i2cFd != -1);
    VERIFY(ioctl(i2cFd, 0x703, 8) == 0);
    VERIFY(i2c_smbus_read_byte_data(i2cFd, 170) >= 2); // at least Nao V3
    unsigned char cmd[2] = {newCamera, 0};
    VERIFY(i2c_smbus_write_block_data(i2cFd, 220, 1, cmd) != -1); // set camera
    close(i2cFd);

#if DEBUG_NUCAMERA_VERBOSITY > 4
    // Display debug message.
    debug << "NAOCamera: Active camera changed: " << CameraSettings::cameraName(previous_camera);
    debug << " --> " << CameraSettings::cameraName(newCamera) << endl;
#endif

    int horzontal_flip, vertical_flip;
    int cameraSettingsIndex;
    switch(newCamera)
    {
        case CameraSettings::TOP_CAMERA:
            horzontal_flip = 1;
            vertical_flip = 1;
            cameraSettingsIndex = 0;
            break;
        case CameraSettings::BOTTOM_CAMERA:
            horzontal_flip = 0;
            vertical_flip = 0;
            cameraSettingsIndex = 1;
            break;
        default:
            horzontal_flip = 0;
            vertical_flip = 0;
            cameraSettingsIndex = -1;
            break;
    }
    if(cameraSettingsIndex != -1)
    {
        m_cameraSettings[!cameraSettingsIndex] = m_settings;
        m_settings = m_cameraSettings[cameraSettingsIndex];
    }

    m_settings.activeCamera = newCamera;

    VERIFY(applySetting(V4L2_CID_HFLIP, horzontal_flip));
    VERIFY(applySetting(V4L2_CID_VFLIP, vertical_flip));

    return m_settings.activeCamera;
}
Пример #2
0
/**
 * @brief Constructor.
 */
SettingsWindow::SettingsWindow(QDialog *parent) : QDialog(parent)
{
    m_app = qobject_cast<Application *>(qApp);
    resize(400,300);
    setWindowTitle("Settings");
    m_mainLayout = new QVBoxLayout(this);
    m_filesPathLayout = new QHBoxLayout;
    m_filesPathMessage = new QLabel("");

    m_filesPathLabel = new QLabel("Files path");
    m_filesPathEdit = new QLineEdit;
    m_filesPathEdit->setText(m_app->getFilesPath());
    m_filesPathSearchButton = new QPushButton("Browse");
    QObject::connect(m_filesPathSearchButton, SIGNAL(clicked()), this, SLOT(browseFilesPathDialog()));

    m_knownPathList = new QListView;
    m_knownPathList->setModel(m_app->getDatabaseManager()->getMoviesPathModel());

    m_cancelButton = new QPushButton("Cancel");
    QObject::connect(m_cancelButton, SIGNAL(clicked()), this, SLOT(close()));

    m_submitButton = new QPushButton("Submit");
    QObject::connect(m_submitButton, SIGNAL(clicked()), this, SLOT(applySetting()));

    m_closeLayout = new QHBoxLayout;
    m_mainLayout->addLayout(m_filesPathLayout);
    m_mainLayout->addWidget(m_filesPathMessage);
    m_mainLayout->addWidget(m_knownPathList);
    m_mainLayout->addLayout(m_closeLayout);
    m_closeLayout->addWidget(m_cancelButton);
    m_closeLayout->addWidget(m_submitButton);
    m_filesPathLayout->addWidget(m_filesPathLabel);
    m_filesPathLayout->addWidget(m_filesPathEdit);
    m_filesPathLayout->addWidget(m_filesPathSearchButton);
}
void app::applySettingString(string setting)
{
	//Split on the ':' character
	vector<string> args = split(setting,':');

	int num_args = args.size();
	if(num_args < 2) return;

	applySetting(args[0],args[1]);
}
Пример #4
0
void RPiCamera::forceApplySettings(const CameraSettings& newset)
{
#if DEBUG_NUCAMERA_VERBOSITY > 1
    //Copying the new Paramters into m_settings
    debug << "p_exposureAuto" << newset.p_exposureAuto.get() << endl;
    debug << "p_autoWhiteBalance" << newset.p_autoWhiteBalance.get() << endl;
    debug << "p_whiteBalanceTemperature" << newset.p_whiteBalanceTemperature.get() << endl;
    debug << "p_exposureAutoPriority" << newset.p_exposureAutoPriority.get() << endl;
    debug << "p_brightness" << newset.p_brightness.get() << endl;
    debug << "p_contrast" << newset.p_contrast.get() << endl;
    debug << "p_saturation" << newset.p_saturation.get() << endl;
    debug << "p_gain" << newset.p_gain.get() << endl;
    debug << "p_exposureAbsolute" << newset.p_exposureAbsolute.get() << endl;
    debug << "p_powerLineFrequency" << newset.p_powerLineFrequency.get() << endl;
    debug << "p_sharpness" << newset.p_sharpness.get() << endl;
#endif
    //Copying the new Paramters into m_settings
    m_settings = newset;

    // Auto Controls
    applySetting(V4L2_CID_EXPOSURE_AUTO, (m_settings.p_exposureAuto.get()));
    applySetting(V4L2_CID_AUTO_WHITE_BALANCE, (m_settings.p_autoWhiteBalance.get()));
    applySetting(V4L2_CID_WHITE_BALANCE_TEMPERATURE, (m_settings.p_whiteBalanceTemperature.get()));
    applySetting(V4L2_CID_EXPOSURE_AUTO_PRIORITY, (m_settings.p_exposureAutoPriority.get()));
    //Other controls
    applySetting(V4L2_CID_BRIGHTNESS, (m_settings.p_brightness.get()));
    applySetting(V4L2_CID_CONTRAST, (m_settings.p_contrast.get()));
    applySetting(V4L2_CID_SATURATION, (m_settings.p_saturation.get()));
    applySetting(V4L2_CID_GAIN, (m_settings.p_gain.get()));
    applySetting(V4L2_CID_EXPOSURE_ABSOLUTE, (m_settings.p_exposureAbsolute.get()));
    applySetting(V4L2_CID_POWER_LINE_FREQUENCY, (m_settings.p_powerLineFrequency.get()));
    applySetting(V4L2_CID_SHARPNESS, (m_settings.p_sharpness.get()));

    //COPIES INTO OLD FORMAT:
    m_settings.copyParams();
}
Пример #5
0
void RPiCamera::applySettings(const CameraSettings& newset)
{
    // AutoSettings
    if(newset.p_exposureAuto.get() != m_settings.p_exposureAuto.get())
    {
        m_settings.p_exposureAuto.set(newset.p_exposureAuto.get());
        applySetting(V4L2_CID_EXPOSURE_AUTO, (m_settings.p_exposureAuto.get()));
    }
    if(newset.p_autoWhiteBalance.get() != m_settings.p_autoWhiteBalance.get())
    {
        m_settings.p_autoWhiteBalance.set(newset.p_autoWhiteBalance.get());
        applySetting(V4L2_CID_AUTO_WHITE_BALANCE, (m_settings.p_autoWhiteBalance.get()));
    }
    if(newset.p_whiteBalanceTemperature.get() != m_settings.p_whiteBalanceTemperature.get())
    {
        m_settings.p_whiteBalanceTemperature.set(newset.p_whiteBalanceTemperature.get());
        applySetting(V4L2_CID_WHITE_BALANCE_TEMPERATURE, (m_settings.p_whiteBalanceTemperature.get()));
    }
    if(newset.p_exposureAutoPriority.get() != m_settings.p_exposureAutoPriority.get())
    {
        m_settings.p_exposureAutoPriority.set(newset.p_exposureAutoPriority.get());
        applySetting(V4L2_CID_EXPOSURE_AUTO_PRIORITY, (m_settings.p_exposureAutoPriority.get()));
    }

    //Other controls
    if(newset.p_brightness.get() != m_settings.p_brightness.get())
    {
        m_settings.p_brightness.set(newset.p_brightness.get());
        applySetting(V4L2_CID_BRIGHTNESS, (m_settings.p_brightness.get()));
    }
    if(newset.p_contrast.get() != m_settings.p_contrast.get())
    {
        m_settings.p_contrast.set(newset.p_contrast.get());
        applySetting(V4L2_CID_CONTRAST, (m_settings.p_contrast.get()));
    }
    if(newset.p_saturation.get() != m_settings.p_saturation.get())
    {
        m_settings.p_saturation.set(newset.p_saturation.get());
        applySetting(V4L2_CID_SATURATION, (m_settings.p_saturation.get()));
    }
    if(newset.p_gain.get() != m_settings.p_gain.get())
    {
        m_settings.p_gain.set(newset.p_gain.get());
        applySetting(V4L2_CID_GAIN, (m_settings.p_gain.get()));
    }
    if(newset.p_exposureAbsolute.get() != m_settings.p_exposureAbsolute.get())
    {
        m_settings.p_exposureAbsolute.set(newset.p_exposureAbsolute.get());
        applySetting(V4L2_CID_EXPOSURE_ABSOLUTE, (m_settings.p_exposureAbsolute.get()));
    }

    if(newset.p_powerLineFrequency.get() != m_settings.p_powerLineFrequency.get())
    {
        m_settings.p_powerLineFrequency.set(newset.p_powerLineFrequency.get());
        applySetting(V4L2_CID_POWER_LINE_FREQUENCY, (m_settings.p_powerLineFrequency.get()));
    }
    if(newset.p_sharpness.get() != m_settings.p_sharpness.get())
    {
        m_settings.p_sharpness.set(newset.p_sharpness.get());
        applySetting(V4L2_CID_SHARPNESS, (m_settings.p_sharpness.get()));
    }

    //COPIES INTO OLD FORMAT:
    m_settings.copyParams();
}
Пример #6
0
void NAOCamera::forceApplySettings(const CameraSettings& newset)
{
    //Copying the new Paramters into the m_settings, but saving the old active camera
    m_settings.p_autoExposure.set(newset.p_autoExposure.get());
    m_settings.p_autoWhiteBalance.set(newset.p_autoWhiteBalance.get());
    m_settings.p_autoGain.set(newset.p_autoGain.get());
    
    m_settings.p_brightness.set(newset.p_brightness.get());
    m_settings.p_contrast.set(newset.p_contrast.get());
    m_settings.p_saturation.set(newset.p_saturation.get());
    m_settings.p_hue.set(newset.p_hue.get());
    m_settings.p_redChroma.set(newset.p_redChroma.get());
    m_settings.p_blueChroma.set(newset.p_blueChroma.get());
    m_settings.p_gain.set(newset.p_gain.get());
    m_settings.p_exposure.set(newset.p_exposure.get());
    
    // Auto Controls
    applySetting(V4L2_CID_AUTOEXPOSURE, (m_settings.p_autoExposure.get()));
    applySetting(V4L2_CID_AUTO_WHITE_BALANCE, (m_settings.p_autoWhiteBalance.get()));
    applySetting(V4L2_CID_AUTOGAIN, (m_settings.p_autoGain.get()));

    applySetting(V4L2_CID_BRIGHTNESS, (m_settings.p_brightness.get()));
    applySetting(V4L2_CID_CONTRAST, (m_settings.p_contrast.get()));
    applySetting(V4L2_CID_SATURATION, (m_settings.p_saturation.get()));
    applySetting(V4L2_CID_HUE, (m_settings.p_hue.get()));
    applySetting(V4L2_CID_RED_BALANCE, (m_settings.p_redChroma.get()));
    applySetting(V4L2_CID_BLUE_BALANCE, (m_settings.p_blueChroma.get()));
    applySetting(V4L2_CID_GAIN, (m_settings.p_gain.get()));
    applySetting(V4L2_CID_EXPOSURE, (m_settings.p_exposure.get()));
    
    //COPIES INTO OLD FORMAT:
    m_settings.copyParams();
}
Пример #7
0
void NAOCamera::applySettings(const CameraSettings& newset)
{
  // Auto Controls
  if(newset.p_autoExposure.get() != m_settings.p_autoExposure.get())
  {
    m_settings.p_autoExposure.set(newset.p_autoExposure.get());
    applySetting(V4L2_CID_AUTOEXPOSURE, (m_settings.p_autoExposure.get()));
  }
  if(newset.p_autoWhiteBalance.get() != m_settings.p_autoWhiteBalance.get())
  {
    m_settings.p_autoWhiteBalance.set(newset.p_autoWhiteBalance.get());
    applySetting(V4L2_CID_AUTO_WHITE_BALANCE, (m_settings.p_autoExposure.get()));
  }
  if(newset.p_autoGain.get() != m_settings.p_autoGain.get())
  {
    m_settings.p_autoGain.set(newset.p_autoGain.get());
    applySetting(V4L2_CID_AUTOGAIN, (m_settings.p_autoGain.get()));
  }

  if(newset.p_brightness.get() != m_settings.p_brightness.get())
  {
    m_settings.p_brightness.set(newset.p_brightness.get());
    applySetting(V4L2_CID_BRIGHTNESS, (m_settings.p_brightness.get()));
  }
  if(newset.p_contrast.get() != m_settings.p_contrast.get())
  {
    m_settings.p_contrast.set(newset.p_contrast.get());
    applySetting(V4L2_CID_CONTRAST, (m_settings.p_contrast.get()));
  }
  if(newset.p_saturation.get() != m_settings.p_saturation.get())
  {
    m_settings.p_saturation.set(newset.p_saturation.get());
    applySetting(V4L2_CID_SATURATION, (m_settings.p_saturation.get()));
  }
  if(newset.p_hue.get() != m_settings.p_hue.get())
  {
    m_settings.p_hue.set(newset.p_hue.get());
    applySetting(V4L2_CID_HUE, (m_settings.p_hue.get()));
  }
  if(newset.p_redChroma.get() != m_settings.p_redChroma.get())
  {
    m_settings.p_redChroma.set(newset.p_redChroma.get());
    applySetting(V4L2_CID_RED_BALANCE, (m_settings.p_redChroma.get()));
  }
  if(newset.p_blueChroma.get() != m_settings.p_blueChroma.get())
  {
    m_settings.p_blueChroma.set(newset.p_blueChroma.get());
    applySetting(V4L2_CID_BLUE_BALANCE, (m_settings.p_blueChroma.get()));
  }
  if(newset.p_gain.get() != m_settings.p_gain.get())
  {
    m_settings.p_gain.set(newset.p_gain.get());
    applySetting(V4L2_CID_GAIN, (m_settings.p_gain.get()));
  }
  if(newset.p_exposure.get() != m_settings.p_exposure.get())
  {
    m_settings.p_exposure.set(newset.p_exposure.get());
    applySetting(V4L2_CID_EXPOSURE, (m_settings.p_exposure.get()));
  }
  
  //COPIES INTO OLD FORMAT:
  m_settings.copyParams();
}
Пример #8
0
void NAOCamera::forceApplySettings(const CameraSettings& newset)
{
    // Auto Controls
    applySetting(V4L2_CID_AUTOEXPOSURE, (m_settings.autoExposure = newset.autoExposure));
    applySetting(V4L2_CID_AUTO_WHITE_BALANCE, (m_settings.autoWhiteBalance = newset.autoWhiteBalance));
    applySetting(V4L2_CID_AUTOGAIN, (m_settings.autoGain = newset.autoGain));

    applySetting(V4L2_CID_BRIGHTNESS, (m_settings.brightness = newset.brightness));
    applySetting(V4L2_CID_CONTRAST, (m_settings.contrast = newset.contrast));
    applySetting(V4L2_CID_SATURATION, (m_settings.saturation = newset.saturation));
    applySetting(V4L2_CID_HUE, (m_settings.hue = newset.hue));
    applySetting(V4L2_CID_RED_BALANCE, (m_settings.redChroma = newset.redChroma));
    applySetting(V4L2_CID_BLUE_BALANCE, (m_settings.blueChroma = newset.blueChroma));
    applySetting(V4L2_CID_GAIN, (m_settings.gain = newset.gain));
    applySetting(V4L2_CID_EXPOSURE, (m_settings.exposure = newset.exposure));
}