|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Java Help
Hello I am new to Java for FRC and need help. I want to control two motors connected to jaguars hook up to PWM 1 and 2 to create tank drive. I will control them from one gamepad with two joysticks. This is my code:
Code:
package edu.wpi.first.wpilibj.templates;
import edu.wpi.first.wpilibj.*;
public class RobotTemplate extends SimpleRobot {
private Joystick stick1;
private RobotDrive tank;
public void autonomous() {
}
public void operatorControl() {
stick1 = new Joystick(1);
Jaguar Left = new Jaguar(2);
Jaguar Right = new Jaguar(1);
tank = new RobotDrive(Left,Right);
tank.setExpiration(0.1);
double leftValue = stick1.getRawAxis(1);
double rightValue = stick1.getRawAxis(3);
while (true && isOperatorControl() && isEnabled())
{
tank.tankDrive(leftValue,rightValue);
Timer.delay(0.005);
}
}
}
The code has no errors or warnings and builds successfully. When I run it, the console shows this: Code:
init:
init:
Deleting directory C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\build
Deleting directory C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\suite
Deleting directory C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\j2meclasses
clean:
Created dir: C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\build
Compiling 1 source file to C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\build
compile:
Created dir: C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\j2meclasses
preverify:
Created dir: C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\suite
Building jar: C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\suite\RobotTemplate2_1.0.0.jar
jar-app:
CompilerOracle: exclude com/sun/squawk/Method.getParameterTypes
CompilerOracle: exclude com/sun/squawk/SymbolParser.getSignatureTypeAt
CompilerOracle: exclude com/sun/squawk/SymbolParser.stripMethods
[translating suite image [closed: false, parent: squawk] ...]
### Excluding compile: com.sun.squawk.Method::getParameterTypes
### Excluding compile: com.sun.squawk.SymbolParser::getSignatureTypeAt
[Including resource: META-INF/MANIFEST.MF]
Romizer processed 96 classes and generated 4 files.
Expanding: C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\suite\RobotTemplate2_1.0.0.jar into C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\suite
Moving 1 file to C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\suite
Moving 1 file to C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\suite
Moving 1 file to C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\suite
Deleting: C:\Documents and Settings\Robo.CREVO1\My Documents\NetBeansProjects\RobotTemplate2\image.suite.api
Host OS: Windows XP 5.1, 5.1
Host JVM: Java HotSpot(TM) Client VM 20.5-b03
Target IP: 10.28.51.2
Network interfaces on host:
Intel(R) 82566MM Gigabit Network Connection - Packet Scheduler Miniport: address: 10.28.51.5 netmask: 255.0.0.0 <--- on robot's subnet
Connecting FTP @10.28.51.2
upgrade:
Sending local file image.suite
flashapp:
deploy:
init:
[cRIO] [OTA Server] ********* REBOOTING cRIO *********
[cRIO]
Waiting for cRIO to reboot (1s)
Waiting for cRIO to reboot (2s)
Waiting for cRIO to reboot (3s)
Waiting for cRIO to reboot (4s)
Waiting for cRIO to reboot (5s)
Waiting for cRIO to reboot (6s)
Waiting for cRIO to reboot (7s)
Waiting for cRIO to reboot (8s)
Waiting for cRIO to reboot (9s)
Waiting for cRIO to reboot (10s)
[cRIO]
[cRIO] -> * Loading debug.o: debug
[cRIO] Debugging is up, target server mounted at /tsfs
[cRIO]
[cRIO]
[cRIO] VxWorks
[cRIO]
[cRIO] Copyright 1984-2006 Wind River Systems, Inc.
[cRIO]
[cRIO] CPU: MPC5200 -- Wind River Lite5200 BSP.
[cRIO] Runtime Name: VxWorks
[cRIO] Runtime Version: 6.3
[cRIO] BSP version: 2.0/10
[cRIO] Created: May 27 2011, 11:02:24
[cRIO] ED&R Policy Mode: Deployed
[cRIO] WDB Comm Type: WDB_COMM_END
[cRIO] WDB: Ready.
[cRIO]
[cRIO] * Loading nisysrpc.out: nisysrpc
[cRIO] * Loading NiRioRpc.out: NiRioRpc
[cRIO] * Loading nivissvc.out: nivissvc
[cRIO] * Loading nivision.out: nivision
[cRIO] NI-RIO Server 4.0.0b8 started successfully.
[cRIO] task 0xe2f8d8 (NiRioRpc) deleted: errno=0 (0) status=0 (0)
[cRIO] * Loading visa32.out: visa32
[cRIO] * Loading niserial.out: niserial
[cRIO] * Loading NiFpgaLv.out: NiFpgaLv
[cRIO] * Loading FRC_FPGA.out: FRC_FPGA
[cRIO] * Loading FRC_NetworkCommunication.out: FRC_NetworkCommunication
[cRIO] FRC_NetworkCommunication was compiled from SVN revision 2923
[cRIO] FPGA Hardware GUID: 0xA14C11BDE4BB64AEF6A86FC52A294CD9
[cRIO] FPGA Software GUID: 0xA14C11BDE4BB64AEF6A86FC52A294CD9
[cRIO] FPGA Hardware Version: 2012
[cRIO] FPGA Software Version: 2012
[cRIO] FPGA Hardware Revision: 1.6.4
[cRIO] FPGA Software Revision: 1.6.4
[cRIO] * Loading FRC_JavaVM.out: FRC_JavaVM
[cRIO]
[cRIO]
[cRIO] [OTA Server] Version: 2012 FRC, Jan 5 2012, 17:20:48
[cRIO]
[cRIO]
[cRIO] Welcome to LabVIEW Real-Time 11.0rc14
[cRIO] task 0xddbd60 (sysapi-rpc) deleted: errno=0 (0) status=0 (0)
[cRIO]
[cRIO] [Squawk VM] Version: 2011 FRC, Nov 5 2011, 14:34:13
[cRIO] FPGA Hardware GUID: 0xa14c11bde4bb64aef6a86fc52a294cd9
[cRIO] FPGA Software GUID: 0xa14c11bde4bb64aef6a86fc52a294cd9
[cRIO] Default robotInit() method running, consider providing your own
[cRIO] Default disabled() method running, consider providing your own
[cRIO] Digital module 1 is not present.
[cRIO] Digital module 1 is not present.
[cRIO] DIO LoopTiming: 260, expecting: 261
[cRIO] Digital module 1 is not present.
[cRIO] Digital module 1 is not present.
[cRIO] Default disabled() method running, consider providing your own
Does my code do what I intend for it to do? Is the code being sent to the robot? Thanks in advance! |
|
#2
|
|||
|
|||
|
Re: Java Help
Same error. Does anybody know why the the digital module is not being detected?
|
|
#3
|
|||
|
|||
|
Re: Java Help
Ok, so I wrote a simpler version of your code to reduce redundancy.
Only problem you had was that u stored your left and right values before the loop. so once it had a value, that loop would continuously give the motors that value. Code:
public void operatorControl() {
stick1 = new Joystick(1);
tank = new RobotDrive(2,1);//Left, Right. PWM values instead of passing jaguars
tank.setExpiration(0.1);//Not sure if you need this. Probably not.
while (true && isOperatorControl() && isEnabled())
{
tank.tankDrive(stick1.getRawAxis(1),stick1.getRawAxis(3));
Timer.delay(0.005);//Probably don't need this either
}
}
|
|
#4
|
|||
|
|||
|
Re: Java Help
We are having a similar issue: we are unable to get inputs or set outputs through the cRIO. However, we are not getting the "Digital module 1 is not present" error message. You can use code like the following to detect module presence:
Code:
for(int i = 0; i < 2; ++i) {
System.out.println("digital module " + i + ": " + ModulePresence.getModulePresence(ModulePresence.ModuleType.kDigital, i));
System.out.println("analog module " + i + ": " + ModulePresence.getModulePresence(ModulePresence.ModuleType.kAnalog, i));
System.out.println("solenoid module " + i + ": " + ModulePresence.getModulePresence(ModulePresence.ModuleType.kSolenoid, i));
}
[cRIO] DIO LoopTiming: 260, expecting: 261 [cRIO] DIO LoopTiming: 260, expecting: 261 |
|
#5
|
|||
|
|||
|
Re: Java Help
So it turns out, we unplugged and re-plugged in our modules, and it magically started working.
You guys should make sure your modules are in the following slots: Analog - Slot 1 Digital - Slot 2 Solenoid - Slot 3 |
|
#6
|
|||
|
|||
|
Re: Java Help
So it seems like it isn't a coding issue. I'll check the connections in the robot tomorrow and see if this works.
|
|
#7
|
||||
|
||||
|
Re: Java Help
We are having this same issue. We have the same problem with both the cRIO and the cRIO II. Are there any updates on why this is happening? Could there be an issue with the Digital IO Sidecar?
|
|
#8
|
||||
|
||||
|
Re: Java Help
I compared the source code for WPILib 2011 & 2012 and the developers changed the constructors for all the I/O to use
Code:
ConstructorName(int moduleNumber, int channel) Code:
ConstructorName(int slot, int Channel) Team 997 was also seeing the exception “Solenoid channel 1 on module 3 is already allocated", which makes it sound like our code had allocated solenoid channel 1 twice. We made it work by using the simple constructor where only the channel is specified. A better error message could have saved us time. The error really should say something about 3 being an invalid module number and suggest using 1 or 2 (The solenoid module in slot 3 is module 1). In fact the incorrect exception message actually appears to be masking an only slightly more useful exception CheckedAllocationException("Index " + index + " out of range");. Hiding an exception with one that gives false information is a bad programming practice. Another way to fix this problem in WPILib would be to deprecate the old constructor and add a new one with a different signature. You can only have one of each module type, so a Boolean value would work for the module number. Code:
ConstructorName(boolean isModuleOne, int Channel) |
|
#9
|
|||
|
|||
|
Re: Java Help
Quote:
|
|
#10
|
|||
|
|||
|
Re: Java Help
I havent fixed that error but my codes running fine. Lol... our electronic team forgot to connect the sidecar to the crio. Thats why i was recieving code but i wasnt able to move the robot
![]() |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|