fix timer logic and everything inbetween

This commit is contained in:
ary 2023-11-10 16:29:00 -05:00
parent 50460a1e30
commit 0147b49ceb
10 changed files with 39 additions and 8 deletions

View File

@ -11,5 +11,4 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
#include "ary-lib/auton_selector.hpp" #include "ary-lib/auton_selector.hpp"
#include "ary-lib/drive/drive.hpp" #include "ary-lib/drive/drive.hpp"
#include "ary-lib/autonselector.hpp" #include "ary-lib/autonselector.hpp"
#include "ary-lib/util.hpp" #include "ary-lib/util.hpp"
#include "ary-lib/Timer.h"

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "ary-lib/drive/drive.hpp" #include "ary-lib/drive/drive.hpp"
#include "main.h"
void near_side(); void near_side();
void far_side(); void far_side();

View File

@ -2,6 +2,7 @@
#include "main.h" #include "main.h"
#include "Wings.h" #include "Wings.h"
#include "Timer.h"
#define TRACK_WIDTH 11.5 #define TRACK_WIDTH 11.5
#define PLACEHOLDER_TC_OFFSET 2.5 #define PLACEHOLDER_TC_OFFSET 2.5
@ -44,9 +45,10 @@ namespace globals {
extern pros::ADIDigitalOut intake_piston; extern pros::ADIDigitalOut intake_piston;
extern pros::ADIDigitalOut doinker_piston; extern pros::ADIDigitalOut climb_piston;
extern Wings wings; extern Wings wings;
extern Timer timer;
extern lemlib::TrackingWheel vert_tracking_wheel; extern lemlib::TrackingWheel vert_tracking_wheel;
extern lemlib::TrackingWheel horiz_tracking_wheel; extern lemlib::TrackingWheel horiz_tracking_wheel;

View File

@ -46,6 +46,7 @@
#include "superstructure.hpp" #include "superstructure.hpp"
#include "autons.hpp" #include "autons.hpp"
#include "wings.h" #include "wings.h"
#include "Timer.h"
#include "asset.h" #include "asset.h"
#include "gif-pros/gifclass.hpp" #include "gif-pros/gifclass.hpp"

View File

@ -11,6 +11,7 @@
#define RENU_LEFT_WING_CONTROL DIGITAL_LEFT #define RENU_LEFT_WING_CONTROL DIGITAL_LEFT
#define RENU_RIGHT_WING_CONTROL DIGITAL_RIGHT #define RENU_RIGHT_WING_CONTROL DIGITAL_RIGHT
#define RENU_WING_CONTROL DIGITAL_L2 #define RENU_WING_CONTROL DIGITAL_L2
#define RENU_CLIMB_CONTROL DIGITAL_A
// Ria's control preferences // Ria's control preferences
#define RIA_PTO_TOGGLE DIGITAL_LEFT #define RIA_PTO_TOGGLE DIGITAL_LEFT
@ -50,13 +51,14 @@ namespace superstruct {
//- Structure methods //- Structure methods
void intakeControl(pros::controller_digital_e_t intakeButton); void intakeControl(pros::controller_digital_e_t intakeButton);
void togglePto(); void togglePto(bool toggle);
void runCata(double inpt); void runCata(double inpt);
void runAntiBlock(double inpt); void runAntiBlock(double inpt);
void subsysControl(pros::controller_digital_e_t ptoToggleButton, pros::controller_digital_e_t cataRunButton); void subsysControl(pros::controller_digital_e_t ptoToggleButton, pros::controller_digital_e_t cataRunButton);
void wingsControl(); void wingsControl();
void wingsControlSingle(pros::controller_digital_e_t wingControlButton); void wingsControlSingle(pros::controller_digital_e_t wingControlButton);
void wingsControlComplex(pros::controller_analog_e_t leftWingButton, pros::controller_analog_e_t rightWingButton, pros::controller_analog_e_t wingButton); void wingsControlComplex(pros::controller_analog_e_t leftWingButton, pros::controller_analog_e_t rightWingButton, pros::controller_analog_e_t wingButton);
void climbControl(pros::controller_digital_e_t climbButton);
//More methods //More methods
void toggleIntake(bool val); void toggleIntake(bool val);

View File

@ -1,4 +1,5 @@
#include "ary-lib/Timer.h" #include "main.h"
#include "Timer.h"
Timer::Timer() { Timer::Timer() {
start = pros::millis(); start = pros::millis();

View File

@ -75,7 +75,7 @@ void far_side() {
toggleIntake(true); // Secure preload triball toggleIntake(true); // Secure preload triball
// Drive forward to removal match load triball with wings, close wings immediately // Drive forward to removal match load triball with wings, close wings immediately
driveSync(30, true); driveSync(30, true);
wings.close(); wings.close();
//Score the preload //Score the preload
@ -101,4 +101,14 @@ void skills() {
turnSync(-60); turnSync(-60);
driveSync(10, true); driveSync(10, true);
wings.open(); wings.open();
togglePto(true);
timer.reset();
while (timer.getElapsedTimeMS() < 30000) {
runCata(-12000);
}
runCata(0);
togglePto(false);
wings.close();
} }

View File

@ -37,9 +37,10 @@ namespace globals {
pros::ADIDigitalOut intake_piston('D'); pros::ADIDigitalOut intake_piston('D');
//pros::ADIDigitalOut doinker_piston('E'); pros::ADIDigitalOut climb_piston('B');
Wings wings; Wings wings;
Timer timer;
pros::Imu inertial_sensor(18); pros::Imu inertial_sensor(18);

View File

@ -221,13 +221,26 @@ namespace superstruct {
if (globals::master.get_digital(DIGITAL_UP)) { if (globals::master.get_digital(DIGITAL_UP)) {
runAntiBlock(-12000); runAntiBlock(-12000);
} else if (globals::master.get_digital(DIGITAL_UP)) { } else if (globals::master.get_digital(DIGITAL_LEFT)) {
runAntiBlock(12000); runAntiBlock(12000);
} else { } else {
runAntiBlock(0); runAntiBlock(0);
} }
} }
int climb_state = 0;
void climbControl(pros::controller_digital_e_t climbButton) {
if (globals::master.get_digital_new_press(climbButton)) {
if (climb_state == 0) {
climb_piston.set_value(1);
climb_state = 1;
} else if (climb_state == 1) {
climb_piston.set_value(0);
climb_state = 0;
}
}
}
void wingsControlSingle(pros::controller_digital_e_t wingControlButton) { void wingsControlSingle(pros::controller_digital_e_t wingControlButton) {
if (globals::master.get_digital_new_press(wingControlButton)) { if (globals::master.get_digital_new_press(wingControlButton)) {
if (wings.getState() == 0) // A value of 0 indicates that both wings are closed if (wings.getState() == 0) // A value of 0 indicates that both wings are closed
@ -255,6 +268,7 @@ namespace superstruct {
subsysControl(RENU_PTO_TOGGLE, RENU_CATA_CONTROL); subsysControl(RENU_PTO_TOGGLE, RENU_CATA_CONTROL);
wingsControlSingle(RENU_WING_CONTROL); wingsControlSingle(RENU_WING_CONTROL);
intakeControl(RENU_INTAKE_CONTROL); intakeControl(RENU_INTAKE_CONTROL);
climbControl(RENU_CLIMB_CONTROL);
} }
void ria_control() { void ria_control() {