Esempio n. 1
0
int main()
{
	// Handle CTLR + C
	struct sigaction sigIntHandler;
	sigIntHandler.sa_handler = handleSignal;
	sigemptyset(&sigIntHandler.sa_mask);
	sigaction(SIGINT, &sigIntHandler, NULL);

	quit = false;
	auto lead = new car("lead");
	auto follower = new car("follower");
	auto controller = new pidController();

	follower->setSpeed(0);
	lead->setSpeed(0);
	controller->setSetPoint(lead->getSpeed());

	controller->setKi(1);
	controller->setKd(1);
	controller->setKp(.2);

	auto pvThread = std::thread(runPv, controller);
	auto pidThread = std::thread(runPid, controller);
	auto simThread = std::thread(runSim, lead, follower, controller);

	std::random_device rd;     // only used once to initialise (seed) engine
	std::mt19937 rng(rd());    // random-number engine used (Mersenne-Twister in this case)
	std::uniform_int_distribution<int> uni(0,4); // guaranteed unbiased

	while (!quit)
	{
		int randomSpeed = uni(rng);

		lead->setSpeed(randomSpeed);
		controller->setSetPoint(lead->getSpeed());

		sleepSim(2);
	}

	pvThread.join();
	simThread.join();
	pidThread.join();

	delete lead;
	delete follower;
	delete controller;

	return 0;
}
Esempio n. 2
0
int SpecularEnhancement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: refreshImage(); break;
        case 1: setKd((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 2: setKs((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 3: setExp((*reinterpret_cast< int(*)>(_a[1]))); break;
        default: ;
        }
        _id -= 4;
    }
    return _id;
}
Esempio n. 3
0
	void PID::setWeights(const float &Kp, const float &Ki, const float &Kd) {
		setKp(Kp);
		setKi(Ki);
		setKd(Kd);
    }
Esempio n. 4
0
	Material::Material(const glm::vec3& ambientAndDiffuse) {
		setKa(ambientAndDiffuse);
		setKd(ambientAndDiffuse);
		setKs(glm::vec3(1.0f, 1.0f, 1.0f));
		setShininess(1.0f);
	}
Esempio n. 5
0
	Material::Material(const glm::vec3& ambientAndDiffuse, const glm::vec3& Ks, const float& shininess) {
		setKa(ambientAndDiffuse);
		setKd(ambientAndDiffuse);
		setKs(Ks);
		setShininess(shininess);
	}
Esempio n. 6
0
	Material::Material() {
		setKa(glm::vec3(0.25f, 0.25f, 0.25f));
		setKd(glm::vec3(0.5f, 0.5f, 0.5f));
		setKs(glm::vec3(1.0f, 1.0f, 1.0f));
		setShininess(8.0f);
	}
Esempio n. 7
0
	Material::Material(const glm::vec3& Ka, const glm::vec3& Kd) {
		setKa(Ka);
		setKd(Kd);
		setKs(glm::vec3(1.0f, 1.0f, 1.0f));
		setShininess(1.0f);
	}
Esempio n. 8
0
	Material::Material(const glm::vec3& Ka, const glm::vec3& Kd, const glm::vec3& Ks) {
		setKa(Ka);
		setKd(Kd);
		setKs(Ks);
		setShininess(1.0f);
	}
Esempio n. 9
0
	Material::Material(const glm::vec3& Ka, const glm::vec3& Kd, const glm::vec3& Ks, const float& shininess) {
		setKa(Ka);
		setKd(Kd);
		setKs(Ks);
		setShininess(shininess);
	}