Question in Templates

In my perspective, I’ve seen amazing performances by all of the teams around the world. As a person whose interested in programming and engineering as a permanent profession, it is very competitive. Happy Holidays to you all, even if you do not celebrate it. I have 2 questions that regard the templates in competing in this year’s season and past seasons.

With that being said, the templates; a great way of creating and organizing robotc code. The templates are great to use in terms of making a sample program, testing / prototyping, and creating long lines of competition code. First off, why is it that skills is almost the exact same as competition (only change is autonomous is 60 seconds)? In my opinion, it would make it much easier and convenient to have the competition template compiled, but have 2 separate tasks of Programming Skills and Driver Skills. Second, I’m not exactly sure about this, nor am I a super expert on programming, but is it possible to have separate files be compiled into a main competition template. It would be much easier for a skilled programmer to do this while have files organized neatly.

I know that some of you will reply that this post is kind of ridiculous and that I should really check and research. But, this made me question into the logistics of programming robotc. Programming in real life is going to be much more difficult, but if you are neatly organized and keep track/ together work, then it will be very easy. Sorry if this is kind of a nonsense post to you. Happy Holidays!

Don’t know about the skills, but your separate files could be accomplished by:


autonomous.h
void runAuto()
{
    . . .
}

main.c
#include "autonomous.h"

task autonomous()
{
   runAuto()
}

RobotC and/or your robot have no way of differentiating between a normal match and a skills run. The driver interfaces/competition switches can only tell the robot to be disabled, run autonomous, or run driver. The idea behind the separate templates * is to make it easy for the programmer to differentiate between skills and match code.*