Example #1
0
void imu_process_values() {
  value_process_dt = micros() - value_process_timer;  // for benchmarking
  value_process_timer = micros();

  process_gyro();
  process_accel();
  combine();
}
Example #2
0
BOOL callback_tilt_reading( struct sCAN* mMsg )
{
	BOOL retval = FALSE;
	switch (mMsg->id.group.id)
	{
	case ID_ACCEL_XYZ : 
		count_accel++;
		parse_accel_msg	(mMsg);
		process_accel	(FALSE); //ShowAccelerometerData);		
		retval= TRUE;
		break;
	case ID_GYRO_XYZ : 
		count_gyro++;
		parse_gyro_msg	(mMsg); 		// puts into RawxyzGyro
		process_gyro	(FALSE); //ShowGyroData);		
		if (ShowGyroData)	
		{
			printf("\n");
			//print_vector( &RawxyzGyro );			printf("\n");
			//print_message(mMsg);					printf("\n");
		}
		retval=TRUE;
		break;
/*	case ID_MAGNET_XYZ : 
		count_magnet++;
		if (ShowMagnetData && ShowCANData)		print_message(mMsg);		
		parse_magnet_msg(mMsg);
		process_magnet(ShowMagnetData);
		if (ShowMagnetData) printf("\n");		
		retval= TRUE;
		break; */
	default:
		retval= FALSE;
		break;
	}
	//if ((count_accel==1) && (count_gyro==1) && (count_magnet==1))
	if ((count_accel==1) && (count_gyro==1))
	{
		printf("<<<=======FUSION===========>>>\n");
		compute_accelGyro_fusion(FALSE);
		(*tiltsensor_callback)( );
		
		/*if (count_samples++ < 300)
			save_timeslice_data();
		else 
			close_log_file();
		*/
		count_accel=0;
		count_gyro=0;
		count_magnet=0;
	}
	return retval;
}
Example #3
0
Bool
Window_process_accel( Handle self, int key)
{
   return var-> modal ? my-> first_that_component( self, (void*)find_accel, &key)
     : inherited process_accel( self, key);
}