Where does Windriver printf

So I know you can setup smartdashboard or DriverStationLCD, but where does Windriver print a line if you just put in the following (as seen in vision example):


	if(scoreCompare(scores*, false))
	{
		printf("particle: %d  is a High Goal  centerX: %f  centerY: %f 
", i, report->center_mass_x_normalized, report->center_mass_y_normalized);
		printf("Distance: %f 
", computeDistance(thresholdImage, report, false));
	} else if (scoreCompare(scores*, true)) {
		printf("particle: %d  is a Middle Goal  centerX: %f  centerY: %f 
", i, report->center_mass_x_normalized, report->center_mass_y_normalized);
		printf("Distance: %f 
", computeDistance(thresholdImage, report, true));
	} else {
		printf("particle: %d  is not a goal  centerX: %f  centerY: %f 
", i, report->center_mass_x_normalized, report->center_mass_y_normalized);
	}
	printf("rect: %f  ARinner: %f 
", scores*.rectangularity, scores*.aspectRatioInner);
	printf("ARouter: %f  xEdge: %f  yEdge: %f  
", scores*.aspectRatioOuter, scores*.xEdge, scores*.yEdge);	
}
printf("
");

DriverStationLCD is pretty limited and I am still figuring stuff in SmartDashboard.

Thanks.*******

Printf’s go to the NetConsole for cRio or to the target console that can be accessed from Windriver. NetConsole is much more convenient as it does not go away when the cRio reboots; if you enabled NetConsole with your cRio imaging tool, I highly recommend the use of NetConsole. You can monitor all printfs from there.

Awesome, thanks

Just be careful of sending a printf() in your while(IsOperatorControl()) loop. The frequency of such a thing is very high and will quickly swamp the network/cRio etc. Often we will use a static int counter or a timer.HasPeriodPassed(500) to only allow a printf to occur a few times per second.

bob

^This. Another good option is to printf() in a separate task that sleeps for 100ms or so every loop - we did this for our DriverStationLCD stuff and any printf()s we needed for debugging last year.