Limit Switch Problems

I’m having trouble creating a functional program for limit switches. The idea is that there is an arm that will move forward, trigger a switch at its limit, and move back until it triggers another switch in the ready position. I think the problem is either the switches themselves, my if statements, or how I’m trying to take the values of the switches. Right now when I run the program the arm will move back without stopping. The arm will continue to move back until I restart the cRio, completely ignoring the switches. I tried changing the if statements to false, but when I do that the arm just twitches for a second. If anyone can find what I’m doing wrong or give a better solution, that would be awesome.

The code can be found here- https://github.com/zackd97/RobotProject4

Sorry if the github repository sucks, I’m pretty new at this.

Edit: I forgot to mention that all of the issues are in the loader subsystem, pushfrisbee command, readyposition command, and the frisbeeload command group.

I’m not a pro at reading robotbuilder code, but in just taking a cursory glance at your loader subsystem file, I see the following code…


bool Loader::GetReadySwitch(){
	readySwitch->Get();
}
bool Loader::GetEndSwitch(){
	endSwitch->Get();
}

While I didn’t study the way these functions are used, it would seem that they are not doing you any good… GetReadySwitch() and GetEndSwitch() should return a boolean. They are not returning anything. They each go and ‘Get()’ the value of the digital inputs, but they don’t return them… a corrected version might be:


bool Loader::GetReadySwitch(){
	return readySwitch->Get();
}
bool Loader::GetEndSwitch(){
	return endSwitch->Get();
}

Without returning anything, whomever calls those Get*Switch() functions won’t get any info back.

Also, please look at your compiler warnings. The compiler should warn you that you have defined a function as a ‘bool’ but you returned no value at all. Warnings from compilers are often times very important - especially when you’re less experienced.

bob