// Update Sensor Readings into _latest_sensor_data bool FC_IMU::update_sensors() { uint8_t data[14]; _tw.read_bytes(_i2c_address, ACCEL_XOUT_H, 14, data); _accel_data[0] = ((((int16_t)data[0]) << 8) | data[1]) - _accel_baseline[0]; _accel_data[1] = ((((int16_t)data[2]) << 8) | data[3]) - _accel_baseline[1]; _accel_data[2] = ((((int16_t)data[4]) << 8) | data[5]) - _accel_baseline[2] + (int16_t)16384; _gyro_data[0] = ((((int16_t)data[8]) << 8) | data[9]) - _gyro_baseline[0]; _gyro_data[1] = ((((int16_t)data[10]) << 8) | data[11]) - _gyro_baseline[1]; _gyro_data[2] = ((((int16_t)data[12]) << 8) | data[13]) - _gyro_baseline[2]; if (abs(_gyro_data[0]) < 30 ) { _gyro_data[0] = (int16_t)0; } if (abs(_gyro_data[1]) < 30 ) { _gyro_data[1] = (int16_t)0; } if (abs(_gyro_data[2]) < 100 ) { _gyro_data[2] = (int16_t)0; } gyro_rate(); accel_angle(); update_quaternion(); }
void Options::set_all_sliders() { rotation_x_view->set_value(rotation_x.to_degrees(), 0, max_angle_value); rotation_y_view->set_value(rotation_y.to_degrees(), 0, max_angle_value); rotation_z_view->set_value(rotation_z.to_degrees(), 0, max_angle_value); target_x_view->set_value(target_x.to_degrees(), 0, max_angle_value); target_y_view->set_value(target_y.to_degrees(), 0, max_angle_value); target_z_view->set_value(target_z.to_degrees(), 0, max_angle_value); update_quaternion(); update_all_slider_text(); }
void Options::set_all_sliders() { set_value(slider_rotation_x, rotation_x.to_degrees(), 0, max_angle_value); set_value(slider_rotation_y, rotation_y.to_degrees(), 0, max_angle_value); set_value(slider_rotation_z, rotation_z.to_degrees(), 0, max_angle_value); set_value(slider_target_x, target_x.to_degrees(), 0, max_angle_value); set_value(slider_target_y, target_y.to_degrees(), 0, max_angle_value); set_value(slider_target_z, target_z.to_degrees(), 0, max_angle_value); update_quaternion(); update_all_slider_text(); }
void Options::slider_rotation_z_changed() { rotation_z.set_degrees(rotation_z_view->get_value(0.0f, max_angle_value)); update_quaternion(); }
void Options::slider_rotation_y_changed() { rotation_y.set_degrees(get_value(slider_rotation_y, 0.0f, max_angle_value)); update_quaternion(); }