View Single Post
  #1   Spotlight this post!  
Unread 24-01-2012, 20:33
grantf's Avatar
grantf grantf is offline
Software Engineering Mentor
FRC #4061 (SciBorgs)
Team Role: Engineer
 
Join Date: Feb 2007
Rookie Year: 2005
Location: Pullman, WA
Posts: 16
grantf has a spectacular aura aboutgrantf has a spectacular aura about
Subsystem::GetName() Doesn't Do What I Expect

Here's some code and expected versus actual results. I'm confident that WPILib would benefit from an update.

The Test Code
Code:
MyRobot::RobotInit()
{
    //
    // The class called "MySubsystem" derives from Subsystem and calls the
    //  parent class constructor, with a Subsystem name of "MySusbsystem"
    //
    Subsystem* p_subsystem = new MySubsystem();

    //
    // This code prints the name of the newly-created subsystem to the
    //  DriverStationLCD.
    //
    DriverStationLCD* p_driver_station_lcd = DriverStationLCD::GetInstance();
    p_driver_station_lcd->PrintfLine(DriverStationLCD::kUser_Line1, "%s", p_subsystem->GetName().c_str() );
    p_driver_station_lcd->UpdateLCD();
}
The Expected Result
After I compile this code and download it to the cRIO, I expect the DriverStationLCD to have a single line of text showing "MySubsystem".

The Actual Result
Instead, I see "Subsystem". If I change the name of the passed-in subsystem name to anything else, I always see "Subsystem" as the returned string.

My Suspicion
Subsystem::GetName() is returning a hard-coded value and not the user-provided name.

Please provide an update to the WPILib that solves this problem
Reply With Quote