outputting data to DS's usermessage

Are you calling update?

Wasn’t the DriverStationLCD class created to print text to the actual physical screen of the Driver Station last year?

To my knowledge, you print strings to the User Messages region in the dashbard using the Dashboard class.

You can do that too, but to see it, you need to add a text display to your dashboard. The DriverStationLCD interface is implemented in the “User Messages” box for the new DriverStation. Any code that would print on the Blue DS’s LCD will now print in User Messages box of the soft DS.

-Joe

Thanks for the response. And yes…I forgot to call update. I will test it tomorrow but expect that was my only problem.

I used this feature very successfully last year but only on 1 line. I had high hopes for this year.

I started trying to use this but cannot get it to work. I am writing to one line again. In this case the pointer is locally declared each time I come into the function I am using to write it.

DriverStationLCD *p_dsLCD = DriverStationLCD::GetInstance();
p_dsLCD->Printf(DriverStationLCD::kUser_Line6, 1, “test” );
p_dsLCD->UpdateLCD();

I applied the last software update and now I get and errro on cRio boot.

Warning: module 0x134ad80 (FRC_UserProgram.out) holds reference to undefined symbol _ZN16DriverStationLCD11kLineLengthE.
(unloading partially loaded module FRC_UserProgram.out)
…FRC_UserProgram failed to load.

If I comment out his code I am fine.

Any ideas?

Have you tried doing a clean and build?

We are also having pafwl’s issue, and will post if we figure anything out. Cleaning does not resolve the issue.

Clean and Build did not fix the issue.

We commented out all the lines that use DriverStationLCD and that did not fix the issue.

At this point we are in the process of reinstalling WindRiver workbench and not install the latest patch.

Can someone please assist.

Thanks,
Sunit

We are also having this problem with kLineLength. When we comment out the DriverStationLCD code the problem goes away. I looked at the new source code for the library and I didn’t see anything obvious as to what would cause this. I’m beginning to suspect that something went wrong with the wpilib.a build in the latest update.

I haven’t tried building the WPILIB from sources yet.

We are also having the same problem. Anyone have a workaround for this?

i see, I just needed to know the class name where I needed to get the functions from. So just use the functions from DriverStationLCD correct? Thanks x]

DriverStationLCD *myDS_LCD = DriverStationLCD::GetInstance();

when we do this we get a no robot code error on the driver station…anybody else have this problem??

Brian

Yeah there is a bug in WPILib right now that crashes any user code trying to get a DriverStationLCD. If you revert to the version released at the beginning of the season you should be able to use it until a fix is released. Just download the old workbench update and install it

There seems to have been a compiler or linker bug that was causing a static const int variable to not initialize correctly that just started happening. I posed a new version here:

http://first.wpi.edu/FRC/frccupdates.html

That seems to fix the problem. That’s the only change in this version so there’s no need to update if you aren’t using the DriverStationLCD class.

thanks for the tip Radical Pi …we pulled up the old DriverstationLCD.cpp file, fixed a type mismatch in the .h file that gave a warning and rebuilt. All is well in the world again (or at least until another update comes out).

BC

It’s already out, to fix this issue: http://forums.usfirst.org/showthread.php?t=14573

The fix works but breaks the Camera. LCD is working great.

We had the same problem so we replaced each instance of kLineLength with 21 in WPiLib and recompiled WPiLib. Not an ideal solution but it works. We have to modify WPiLib anyway to fix other problems and to get it to calibrate the gyro and one of the accelerometers in parallel and added a method so we could get the gyro rate to support a closed loop “arc turn”.

I am still interested in seeing an example of how to use the Printf function to print to the dashboard user data so we can use the logging function since we are using the serial port for the jag CAN bus, not the driver station LCD. When we try to add the Printf output to the high or low priority dashboard packer we get errors in the DS display. I guess it’s time to bite the bullet and figure out exactly how the data structures are configured. Does anyone know if there is documentation on this besides looking at the DS labview code?

Thanks,

Greg

You can only use the Printf -OR- the Add* + Finalize functions… not both on the same packer at the same time (without calling Finalize and waiting for a new DS packet). To use the Printf, simply stop calling the other functions on that packer. Then on the Dashboard side, instead of calling “unpack from string” on the received string, and instead use the string as is and write it to a file or an indicator or whatever.

-Joe