Button Checking Code lags Teleop.vi

I have some code that I’m using to check button presses on a joystick. It looks like this:

http://lh4.googleusercontent.com/-ATa5hxm39Hc/URmwdV6FWQI/AAAAAAAAAPY/O0kA8S1o5Z8/s800/Screenshot_4.png

For some reason this code keeps hanging the program, and it takes forever to send output to a motor. I verified this but wrapping it in a disabled diagram block. Any workarounds?

I’m a little confused as to why you have contained your separate motor control VI’s in a flat sequence. Are you attempting to run these controls in a particular order if a certain combination of buttons is pressed? If not, there is no need for the flat sequence structure.

I assume you placed that code into teleop. If teleop doesn’t read the joysticks and update the robotDrive many times per second, it will act as you describe. Once your sequence starts, the delays prevent teleop from doing the robotDrive task.

What most teams do is to move the code you’ve shown into periodic tasks. That way teleop can run quickly and return to the scheduler.

Greg McKaskle

I had the idea that it was running too many things at once, and that if I put it into a flat sequence structure, it will slow down a bit. That, and I’m more used to coded languages such as python or java, the flat sequence make a little bit more “sence” to me.

I’ll try that tonight, thanks.

Found out that it wasn’t the button checking code, but the fact that SetOutput causes some sort of lag for some reason when it trys to set motor output on a jag that doesn’t exist. Is this normal?

Yes, this will happen when you try and access a refnum that hasn’t been previously opened. If you look on your Drive Station at the error messages, you’ll see your program throwing an error of that nature. Your code will slow down noticeably when there are errors being thrown, as handling them takes processing power away from your main code.