Pros Linking Files

What is the proper way use header and include files on pros. My main goal is to be able configurate and set up motors on a separate file and then be able to use those configurated motors on on the autonomous.cpp and operator.cpp files as well as the initalize file. Using latest pros version with C++

extern your motors and stuff in main.h, then define them in a normal file somewhere. For example, I have this in my main.h file:

 extern pros::Motor left1;
 extern pros::Motor left2;
 extern pros::Motor right1;
 extern pros::Motor right2;

 extern pros::Motor flywheel_top;
 extern pros::Motor intake1;
 extern pros::Motor intake2;
 extern pros::Motor lift;

and this in my opcontrol.cpp file:

 pros::Motor left1(1);
 pros::Motor left2(2);
 pros::Motor right1(3, true);
 pros::Motor right2(4, true);

 pros::Motor flywheel_top(5, pros::E_MOTOR_GEARSET_06, true);
 pros::Motor intake1(7);
 pros::Motor intake2(6, true);
 pros::Motor lift(9, pros::E_MOTOR_GEARSET_36, true);
1 Like

where in main.h do your extern your motors?

it would need to be after you include the pros api or if using okapi then that one…

#define PROS_USE_LITERALS

#include "pros/apix.h"

/**
 * You should add more #includes here
 */
#include "okapi/api.hpp"
//#include "pros/api_legacy.h"

// put includes and other forward declaration here
#include "robot.h"
#include "robot_gui.h"

You may even want to do those after the “using namespace …” selection.

1 Like