task main () {
  bFloatDuringInactiveMotorPWM = true;
  int numDegrees = 0;
  nxtDisplayCenteredTextLine(0, "HiTechnic");
  nxtDisplayCenteredBigTextLine(1, "Compass");
  nxtDisplayCenteredTextLine(3, "Test 2");


  nMotorEncoder[M_RIGHT] = 0;
  nMotorEncoder[M_LEFT] = 0;
  // This will make the robot spin about 1.5 times, depends on many factors, YYMV, etc
  numDegrees = ((numRotations() * 3) / 2) * 450;
  StartTask(timeMe);
  startCalibration();
  nxtDisplayCenteredTextLine(5, "Calibrating...");
  StartTask(showPulse);
  motor[M_RIGHT] = MOTORSPEED;
  motor[M_LEFT] = -MOTORSPEED;

  while(nMotorEncoder[M_RIGHT] < numDegrees) wait1Msec(5);
  motor[M_LEFT] = 0;
  motor[M_RIGHT]= 0;
  stopCalibration();
  nxtDisplayCenteredTextLine(5, "Calibration done");
  wait1Msec(5000);
}
void ofxMultiplexerManager::cancelCalibration()
{
	if (calibration->calibrate.bCalibrating)
	{
		for (int i=0;i<cameraBasesCalibration.size();i++)
		{
			cameraBasesCalibration[i]->calibrationPoints.clear();
			int calibrationPointWidth = calibrationGridWidth + 1;
			int calibrationPointHeight = calibrationGridHeight + 1;
			float cameraCellWidth = 1.0f / calibrationGridWidth;
			float cameraCellHeight = 1.0f / calibrationGridHeight;
			for (int j = 0;j<calibrationPointWidth*calibrationPointHeight;j++)
			{
				vector2df newPoint;
				newPoint.X = cameraCellWidth * (j%(calibrationGridWidth+1));
				newPoint.Y = cameraCellHeight * (j/(calibrationGridWidth+1));
				cameraBasesCalibration[i]->calibrationPoints.push_back(newPoint);
			}
		}
		stopCalibration();
	}
	else
	{
		cameraMultiplexer->initializeMultiplexer();
		cameraMultiplexer->startStreamingFromAllCameras();
		cameraMultiplexer->updateStitchedFrame();
	}
	filters->bLearnBakground = true;
}
void ofxMultiplexerManager::updateCalibrationStatus()
{
	if (needToUpdateBackground)
	{
		if (calibration->calibrate.selectedCameraIndex > 0)
		{
			cameraMultiplexer->pauseStreamingFromAllCameras();
			cameraMultiplexer->startStreamingFromCamera(calibration->calibrate.selectedCameraIndex);
			cameraMultiplexer->updateStitchedFrame();
		}
		filters->bLearnBakground = true;
		needToUpdateBackground = false;
	}

	if (calibration->calibrate.bNextCamera)
	{
		cameraMultiplexer->setCalibrationPointsToCamera(calibration->calibrate.selectedCameraIndex,calibration->calibrate.cameraPoints);
		calibration->calibrate.nextCameraCalibration();
		if (calibration->calibrate.selectedCameraIndex == 0)
		{
			stopCalibration();
		}
		needToUpdateBackground = true;
	}
}
Exemple #4
0
void SensorManager::devicePSMStateChanged(bool psmState)
{
    if (psmState)
    {
        emit stopCalibration();
    }
}
//------------------------------------------------------------------------------------------------
void CalibrationWidget::on_pushButton_kalibrieren_clicked()
{
    if (calibrationRunning) // calibration is already running --> stop it
        stopCalibration();
    else // calibration is not running --> start it
        startCalibration();
}
void CompassMotorCalibrationDialog::activeUASSet(UASInterface *uas)
{
    if (m_uasInterface){
        disconnect(ui->startButton, SIGNAL(clicked()), this, SLOT(startCalibration()));
        disconnect(ui->stopButton, SIGNAL(clicked()), this, SLOT(stopCalibration()));
        disconnect(m_uasInterface, SIGNAL(compassMotCalibration(mavlink_compassmot_status_t)),
                this, SLOT(compassMotCalibration(mavlink_compassmot_status_t)));
        disconnect(m_uasInterface, SIGNAL(textMessageReceived(int,int,int,QString)),
                this, SLOT(textMessageReceived(int,int,int,QString)));
    }
    m_uasInterface = uas;

    if(m_uasInterface){
        connect(ui->startButton, SIGNAL(clicked()), this, SLOT(startCalibration()));
        connect(ui->stopButton, SIGNAL(clicked()), this, SLOT(stopCalibration()));
        connect(m_uasInterface, SIGNAL(compassMotCalibration(mavlink_compassmot_status_t*)),
                this, SLOT(compassMotCalibration(mavlink_compassmot_status_t*)));
    }
}
void ofxNetworkSyncClientState::threadedFunction(){
	while(isThreadRunning()){
		if(step == CALIBRATING && calibrator.isFinishMeasuremant()){
			stopCalibration();
		}
		
		if(! isConnected()){
			ofNotifyEvent(clientDisconnected, clientId, this);
			break;
		}
		string recv = tcpServer->receive(clientId);
		if(recv.length() > 0){
			ofNotifyEvent(messageReceived, recv, this);
			server->onClientMessageReceived(clientId, recv);
		}
		ofSleepMillis(10);
	}
	
}
Exemple #8
0
int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    SensorManager& sm = SensorManager::instance();
    Parser parser(app.arguments());
    SensordLogger::init(parser.logTarget(), parser.logFilePath(), "sensord");

    if (parser.printHelp())
    {
        printUsage();
        app.exit(EXIT_SUCCESS);
        return 0;

    }

    if (parser.changeLogLevel())
    {
        SensordLogger::setOutputLevel(parser.getLogLevel());
    }

    const char* CONFIG_FILE_PATH = "/etc/sensorfw/sensord.conf";
    const char* CONFIG_DIR_PATH = "/etc/sensorfw/sensord.conf.d/";

    QString defConfigFile = CONFIG_FILE_PATH;
    if(parser.configFileInput())
    {
        defConfigFile = parser.configFilePath();
    }

    QString defConfigDir = CONFIG_DIR_PATH;
    if(parser.configDirInput())
    {
        defConfigDir = parser.configDirPath();
    }

    if (!Config::loadConfig(defConfigFile, defConfigDir))
    {
        sensordLogC() << "Config file error! Load using default paths.";
        if (!Config::loadConfig(CONFIG_FILE_PATH, CONFIG_DIR_PATH))
        {
            sensordLogC() << "Which also failed. Bailing out";
            return 1;
        }
    }

    signal(SIGUSR1, signalUSR1);
    signal(SIGUSR2, signalUSR2);
    signal(SIGINT, signalINT);

#ifdef PROVIDE_CONTEXT_INFO
    if (parser.contextInfo())
    {
        sensordLogD() << "Loading ContextSensor " << sm.loadPlugin("contextsensor");
        sensordLogD() << "Loading ALSSensor " << sm.loadPlugin("alssensor");
    }
#endif


    if (parser.createDaemon())
    {
        int pid = fork();

        if(pid < 0)
        {
            sensordLogC() << "Failed to create a daemon: " << strerror(errno);
            exit(EXIT_FAILURE);
        } else if (pid > 0) {
            sensordLogW() << "Created a daemon";
            exit(EXIT_SUCCESS);
        }
    }

    if (parser.magnetometerCalibration())
    {
        CalibrationHandler* calibrationHandler_ = new CalibrationHandler(NULL);
        calibrationHandler_->initiateSession();
        QObject::connect(&sm, SIGNAL(resumeCalibration()), calibrationHandler_, SLOT(resumeCalibration()));
        QObject::connect(&sm, SIGNAL(stopCalibration()), calibrationHandler_, SLOT(stopCalibration()));
    }

    if (!sm.registerService())
    {
        sensordLogW() << "Failed to register service on D-Bus. Aborting.";
        exit(EXIT_FAILURE);
    }

    int ret = app.exec();
    sensordLogD() << "Exiting...";
    Config::close();
    SensordLogger::close();
    return ret;
}
//------------------------------------------------------------------------------------------------
CalibrationWidget::~CalibrationWidget()
{
    if (calibrationRunning)
        stopCalibration();
}