From 0147b49ceb1223aed1bcaeeb5926b22044bec580 Mon Sep 17 00:00:00 2001 From: ary Date: Fri, 10 Nov 2023 16:29:00 -0500 Subject: [PATCH] fix timer logic and everything inbetween --- HVN-ON-EARTH/include/{ary-lib => }/Timer.h | 0 HVN-ON-EARTH/include/ary-lib/api.hpp | 3 +-- HVN-ON-EARTH/include/autons.hpp | 1 + HVN-ON-EARTH/include/globals.hpp | 4 +++- HVN-ON-EARTH/include/main.h | 1 + HVN-ON-EARTH/include/superstructure.hpp | 4 +++- HVN-ON-EARTH/src/{ary-lib => }/Timer.cpp | 3 ++- HVN-ON-EARTH/src/autons.cpp | 12 +++++++++++- HVN-ON-EARTH/src/globals.cpp | 3 ++- HVN-ON-EARTH/src/superstructure.cpp | 16 +++++++++++++++- 10 files changed, 39 insertions(+), 8 deletions(-) rename HVN-ON-EARTH/include/{ary-lib => }/Timer.h (100%) rename HVN-ON-EARTH/src/{ary-lib => }/Timer.cpp (82%) diff --git a/HVN-ON-EARTH/include/ary-lib/Timer.h b/HVN-ON-EARTH/include/Timer.h similarity index 100% rename from HVN-ON-EARTH/include/ary-lib/Timer.h rename to HVN-ON-EARTH/include/Timer.h diff --git a/HVN-ON-EARTH/include/ary-lib/api.hpp b/HVN-ON-EARTH/include/ary-lib/api.hpp index 4b50d43..8d8709f 100644 --- a/HVN-ON-EARTH/include/ary-lib/api.hpp +++ b/HVN-ON-EARTH/include/ary-lib/api.hpp @@ -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/drive/drive.hpp" #include "ary-lib/autonselector.hpp" -#include "ary-lib/util.hpp" -#include "ary-lib/Timer.h" \ No newline at end of file +#include "ary-lib/util.hpp" \ No newline at end of file diff --git a/HVN-ON-EARTH/include/autons.hpp b/HVN-ON-EARTH/include/autons.hpp index abd163b..0d3c966 100644 --- a/HVN-ON-EARTH/include/autons.hpp +++ b/HVN-ON-EARTH/include/autons.hpp @@ -1,6 +1,7 @@ #pragma once #include "ary-lib/drive/drive.hpp" +#include "main.h" void near_side(); void far_side(); diff --git a/HVN-ON-EARTH/include/globals.hpp b/HVN-ON-EARTH/include/globals.hpp index 707ce46..d1ee514 100644 --- a/HVN-ON-EARTH/include/globals.hpp +++ b/HVN-ON-EARTH/include/globals.hpp @@ -2,6 +2,7 @@ #include "main.h" #include "Wings.h" +#include "Timer.h" #define TRACK_WIDTH 11.5 #define PLACEHOLDER_TC_OFFSET 2.5 @@ -44,9 +45,10 @@ namespace globals { extern pros::ADIDigitalOut intake_piston; - extern pros::ADIDigitalOut doinker_piston; + extern pros::ADIDigitalOut climb_piston; extern Wings wings; + extern Timer timer; extern lemlib::TrackingWheel vert_tracking_wheel; extern lemlib::TrackingWheel horiz_tracking_wheel; diff --git a/HVN-ON-EARTH/include/main.h b/HVN-ON-EARTH/include/main.h index e8c68ff..22fa5a1 100644 --- a/HVN-ON-EARTH/include/main.h +++ b/HVN-ON-EARTH/include/main.h @@ -46,6 +46,7 @@ #include "superstructure.hpp" #include "autons.hpp" #include "wings.h" +#include "Timer.h" #include "asset.h" #include "gif-pros/gifclass.hpp" diff --git a/HVN-ON-EARTH/include/superstructure.hpp b/HVN-ON-EARTH/include/superstructure.hpp index 22eea89..3ec68d1 100644 --- a/HVN-ON-EARTH/include/superstructure.hpp +++ b/HVN-ON-EARTH/include/superstructure.hpp @@ -11,6 +11,7 @@ #define RENU_LEFT_WING_CONTROL DIGITAL_LEFT #define RENU_RIGHT_WING_CONTROL DIGITAL_RIGHT #define RENU_WING_CONTROL DIGITAL_L2 +#define RENU_CLIMB_CONTROL DIGITAL_A // Ria's control preferences #define RIA_PTO_TOGGLE DIGITAL_LEFT @@ -50,13 +51,14 @@ namespace superstruct { //- Structure methods void intakeControl(pros::controller_digital_e_t intakeButton); - void togglePto(); + void togglePto(bool toggle); void runCata(double inpt); void runAntiBlock(double inpt); void subsysControl(pros::controller_digital_e_t ptoToggleButton, pros::controller_digital_e_t cataRunButton); void wingsControl(); 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 climbControl(pros::controller_digital_e_t climbButton); //More methods void toggleIntake(bool val); diff --git a/HVN-ON-EARTH/src/ary-lib/Timer.cpp b/HVN-ON-EARTH/src/Timer.cpp similarity index 82% rename from HVN-ON-EARTH/src/ary-lib/Timer.cpp rename to HVN-ON-EARTH/src/Timer.cpp index 105a06c..6c8250d 100644 --- a/HVN-ON-EARTH/src/ary-lib/Timer.cpp +++ b/HVN-ON-EARTH/src/Timer.cpp @@ -1,4 +1,5 @@ -#include "ary-lib/Timer.h" +#include "main.h" +#include "Timer.h" Timer::Timer() { start = pros::millis(); diff --git a/HVN-ON-EARTH/src/autons.cpp b/HVN-ON-EARTH/src/autons.cpp index 14f7a83..2f0a763 100644 --- a/HVN-ON-EARTH/src/autons.cpp +++ b/HVN-ON-EARTH/src/autons.cpp @@ -75,7 +75,7 @@ void far_side() { toggleIntake(true); // Secure preload triball // Drive forward to removal match load triball with wings, close wings immediately - driveSync(30, true); + driveSync(30, true); wings.close(); //Score the preload @@ -101,4 +101,14 @@ void skills() { turnSync(-60); driveSync(10, true); wings.open(); + + togglePto(true); + timer.reset(); + while (timer.getElapsedTimeMS() < 30000) { + runCata(-12000); + } + runCata(0); + togglePto(false); + + wings.close(); } \ No newline at end of file diff --git a/HVN-ON-EARTH/src/globals.cpp b/HVN-ON-EARTH/src/globals.cpp index 216d06f..9257dda 100644 --- a/HVN-ON-EARTH/src/globals.cpp +++ b/HVN-ON-EARTH/src/globals.cpp @@ -37,9 +37,10 @@ namespace globals { pros::ADIDigitalOut intake_piston('D'); - //pros::ADIDigitalOut doinker_piston('E'); + pros::ADIDigitalOut climb_piston('B'); Wings wings; + Timer timer; pros::Imu inertial_sensor(18); diff --git a/HVN-ON-EARTH/src/superstructure.cpp b/HVN-ON-EARTH/src/superstructure.cpp index 0a3c46d..b19be36 100644 --- a/HVN-ON-EARTH/src/superstructure.cpp +++ b/HVN-ON-EARTH/src/superstructure.cpp @@ -221,13 +221,26 @@ namespace superstruct { if (globals::master.get_digital(DIGITAL_UP)) { runAntiBlock(-12000); - } else if (globals::master.get_digital(DIGITAL_UP)) { + } else if (globals::master.get_digital(DIGITAL_LEFT)) { runAntiBlock(12000); } else { 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) { if (globals::master.get_digital_new_press(wingControlButton)) { 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); wingsControlSingle(RENU_WING_CONTROL); intakeControl(RENU_INTAKE_CONTROL); + climbControl(RENU_CLIMB_CONTROL); } void ria_control() {