diff --git a/RELENTLESS-Lite/src/main.cpp b/RELENTLESS-Lite/src/main.cpp index c2fbbf5..d721a3a 100644 --- a/RELENTLESS-Lite/src/main.cpp +++ b/RELENTLESS-Lite/src/main.cpp @@ -1,93 +1,66 @@ #include "main.h" +#include "globals.hpp" +#include "autons.hpp" +#include "superstructure.hpp" +#include "arylib/autonselector.hpp" -/** - * A callback function for LLEMU's center button. - * - * When this callback is fired, it will toggle line 2 of the LCD text between - * "I was pressed!" and nothing. - */ -void on_center_button() { - static bool pressed = false; - pressed = !pressed; - if (pressed) { - pros::lcd::set_text(2, "I was pressed!"); - } else { - pros::lcd::clear_line(2); - } -} +using namespace superstruct; +using namespace globals; -/** - * Runs initialization code. This occurs as soon as the program is started. - * - * All other competition modes are blocked by initialize; it is recommended - * to keep execution time for this mode under a few seconds. - */ void initialize() { - pros::lcd::initialize(); - pros::lcd::set_text(1, "Hello PROS User!"); + ary::print_ez_template(); + + pros::delay(500); // legacy ports configure - pros::lcd::register_btn1_cb(on_center_button); + chassis.set_curve_buttons(pros::E_CONTROLLER_DIGITAL_LEFT, pros::E_CONTROLLER_DIGITAL_RIGHT); + chassis.toggle_modify_curve_with_controller(true); + chassis.set_active_brake(0.1); + chassis.set_curve_default(0, 0); + + chassis.set_joystick_drivescale(1.0); + chassis.set_joystick_turnscale(0.75); + + default_constants(); + exit_condition_defaults(); + + ary::autonselector::auton_selector.add_autons({ + Auton("Test Auton\n\nTesting Autonomous on field", test_auton), + }); + + chassis.initialize(); + ary::autonselector::initialize(); } -/** - * Runs while the robot is in the disabled state of Field Management System or - * the VEX Competition Switch, following either autonomous or opcontrol. When - * the robot is enabled, this task will exit. - */ -void disabled() {} -/** - * Runs after initialize(), and before autonomous when connected to the Field - * Management System or the VEX Competition Switch. This is intended for - * competition-specific initialization routines, such as an autonomous selector - * on the LCD. - * - * This task will exit when the robot is enabled and autonomous or opcontrol - * starts. - */ -void competition_initialize() {} -/** - * Runs the user autonomous code. This function will be started in its own task - * with the default priority and stack size whenever the robot is enabled via - * the Field Management System or the VEX Competition Switch in the autonomous - * mode. Alternatively, this function may be called in initialize or opcontrol - * for non-competition testing purposes. - * - * If the robot is disabled or communications is lost, the autonomous task - * will be stopped. Re-enabling the robot will restart the task, not re-start it - * from where it left off. - */ -void autonomous() {} +// fms / comp switch disable +void disabled() { + // . . . +} + + + +// run after init if comp control +void competition_initialize() { + // . . . +} + +void autonomous() { + chassis.reset_pid_targets(); + chassis.reset_gyro(); + chassis.reset_drive_sensor(); + chassis.set_drive_brake(MOTOR_BRAKE_HOLD); + + ary::autonselector::auton_selector.call_selected_auton(); +} -/** - * Runs the operator control code. This function will be started in its own task - * with the default priority and stack size whenever the robot is enabled via - * the Field Management System or the VEX Competition Switch in the operator - * control mode. - * - * If no competition control is connected, this function will run immediately - * following initialize(). - * - * If the robot is disabled or communications is lost, the - * operator control task will be stopped. Re-enabling the robot will restart the - * task, not resume it from where it left off. - */ void opcontrol() { - pros::Controller master(pros::E_CONTROLLER_MASTER); - pros::Motor left_mtr(1); - pros::Motor right_mtr(2); + chassis.set_drive_brake(MOTOR_BRAKE_COAST); - while (true) { - pros::lcd::print(0, "%d %d %d", (pros::lcd::read_buttons() & LCD_BTN_LEFT) >> 2, - (pros::lcd::read_buttons() & LCD_BTN_CENTER) >> 1, - (pros::lcd::read_buttons() & LCD_BTN_RIGHT) >> 0); - int left = master.get_analog(ANALOG_LEFT_Y); - int right = master.get_analog(ANALOG_RIGHT_Y); + while (true) { + chassis.arcade_standard(ary::SINGLE, ary::DEFAULT); // Flipped single arcade - left_mtr = left; - right_mtr = right; - pros::delay(20); - } -} + pros::delay(ary::util::DELAY_TIME); + } +} \ No newline at end of file