finish implementing base for scrim bot
horrible code yet again, implement everyting
This commit is contained in:
parent
f027da53a2
commit
4c7f4e6943
@ -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::lcd::register_btn1_cb(on_center_button);
|
||||
pros::delay(500); // legacy ports configure
|
||||
|
||||
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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user