I have a body object that has a sensor. The idea that is in the constructor the body should start a new thread that uses basic body functions to constantly monitor and update sensor date
/*
* Constructor
*/
Body::Body() {
l_leg = new Leg( p21, p22, p23, LEFT );
r_leg = new Leg( p24, p25, p26, RIGHT );
move_sensor = new minimu9();
semaphore = new Semaphore( 1 );
speed = 1;
calibrate();
wait( 1 );
Thread sensor_thread ( update_sensor );
}
/*
* Constantly monitor angle data
*/
void Body::update_sensor( void const *argument ){
float x, y, z;
while( 1 ) {
move_sensor->get_data();
x = move_sensor->get_roll();
y = move_sensor->get_pitch();
z = move_sensor->get_yaw();
set_angles( x, y, z );
}
}
/*
* Update values, lock before writing
*/
void Body::set_angles( float x, float y, float z ) {
semaphore->wait();
roll = x;
pitch = y;
yaw = z;
semaphore->release();
}
/*
* Retrieve the values, lock before grabbing to
* insure they are not contaminated
*/
float* Body::get_angles( void ) {
float angles[3];
semaphore->wait();
angles[0] = roll;
angles[1] = pitch;
angles[2] = yaw;
semaphore->release();
return angles;
}
However every time I get an error saying:
"no instance of constructor "rtos::Thread::Thread" matches the argument list" in file "/body.cpp", Line: 15, Col: 41
Line 15, col 41 referring to when I try to create the thread object. Any ideas on how to get this to work? I feel like it is something simple but I do not have a lot of experience with threaded programming.
I have a body object that has a sensor. The idea that is in the constructor the body should start a new thread that uses basic body functions to constantly monitor and update sensor date
However every time I get an error saying: "no instance of constructor "rtos::Thread::Thread" matches the argument list" in file "/body.cpp", Line: 15, Col: 41
Line 15, col 41 referring to when I try to create the thread object. Any ideas on how to get this to work? I feel like it is something simple but I do not have a lot of experience with threaded programming.