|
|
|
![]() |
|
|||||||
|
||||||||
|
|
Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
DB/Button and DB/Slider not seen in robotInit
Hi -
We are trying to simply use the Digital and Analog inputs provided on the Labview Dashboard from our Java command-based robot. We have found that the value of these controls is not read correctly in robotInit making it difficult to use these to initialize commands or OI assignments. To demonstrate the problem I have written a simple command-based robot like this (just showing those parts that are different than the generated code): Code:
public void robotInit() {
System.out.println(String.format("robotInit: DI0: %b"
, SmartDashboard.getBoolean("DB/Button 0", false)));
System.out.println(String.format("robotInit: AI0: %f"
, SmartDashboard.getNumber("DB/Slider 0", 0.0)));
oi = new OI();
// instantiate the command used for the autonomous period
autonomousCommand = new ExampleCommand();
}
public void autonomousInit() {
System.out.println(String.format("autonomousInit: DI0: %b"
, SmartDashboard.getBoolean("DB/Button 0", false)));
System.out.println(String.format("autonomousInit: AI0: %f"
, SmartDashboard.getNumber("DB/Slider 0", 0.0)));
// schedule the autonomous command (example)
if (autonomousCommand != null) autonomousCommand.start();
}
public void teleopInit() {
// This makes sure that the autonomous stops running when
// teleop starts running. If you want the autonomous to
// continue until interrupted by another command, remove
// this line or comment it out.
System.out.println(String.format("teleopInit: DI0: %b"
, SmartDashboard.getBoolean("DB/Button 0", false)));
System.out.println(String.format("teleopInit: AI0: %f"
, SmartDashboard.getNumber("DB/Slider 0", 0.0)));
if (autonomousCommand != null) autonomousCommand.cancel();
}
Code:
robotInit: DI0: false robotInit: AI0: 0.000000 edu.wpi.first.wpilibj.networktables2.server.ServerConnectionAdapter@fe5989 entered connection state: GOT_CONNECTION_FROM_CLIENT edu.wpi.first.wpilibj.networktables2.server.ServerConnectionAdapter@fe5989 entered connection state: CONNECTED_TO_CLIENT autonomousInit: DI0: true autonomousInit: AI0: 2.500000 teleopInit: DI0: true teleopInit: AI0: 2.500000 Does anyone have any suggestions about how to use the the LabView dashboard settings if we want to use them to initialize OI, subsystems, commands, etc. We want to put the initialization in robotInit because we know that always gets run whether we are testing autonomous or teleop. So far our workaround is to do all the creation in a common function called by autonomousInit and teleopInit and to keep track if the initialization has already been done or not, but we are not happy with this solution. mp |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|