#pragma once #include #include "api.h" #include "pros/adi.hpp" #include "pros/rotation.hpp" namespace ez{ enum class ControlPeriod { driver, auton }; enum class Controller { master, slave }; enum class Buttons { arrow_buttons, Y_B_buttons, left_shoulder_buttons, right_shoulder_buttons }; class ArmMech{ private: std::vector levelOneArmStates; std::vector levelTwoArmStates; std::vector levelThreeArmStates; std::vector levelFourArmStates; int numArmStates = 2; float armKP; public: std::vector selectedStates; int targetPos; int currArmState; int armTarget; float armError; float armVelocity; ArmMech(); void arm_driver_control(enum Controller, enum Buttons); void arm_auton_control(int pickState); void cycle_states(); void reset_state(); void arm_control(); void set_arm_kp(float _armKP); void set_state_values(std::vector _levelOneArmStates, std::vector _levelTwoArmStates, std::vector _levelThreeArmStates, std::vector _levelFourArmStates); int get_arm_state(); int get_num_arm_states(); float get_arm_kp(); }; class LiftMech { private: std::vector liftStates; int numLiftStates; float liftKP; std::vector firstRange; std::vector secondRange; std::vector thirdRange; std::vector fourthRange; public: int currLiftState; int liftTarget; int liftHeight; float liftError; float liftVelocity; LiftMech(); LiftMech(std::initializer_list _liftStates, int _numLiftStates); void lift_driver_control(enum Controller, enum Buttons); void lift_auton_control(int pickState); void cycle_states(); void reset_state(); void lift_control(); void lift_range_finder(); void set_lift_kp(float _liftKP); void set_ranges(std::vector _firstRange, std::vector _secondRange, std::vector _thirdRange, std::vector _fourthRange); int get_lift_state(); int get_num_lift_states(); float get_lift_kp(); }; class WristMech { private: std::vector wristStates; int numWristStates; float wristKP; public: int currWristState; int wristTarget; float wristError; float wristVelocity; WristMech(); WristMech(std::initializer_list _wristStates, int _numWristStates); void wrist_driver_control(enum Controller, enum Buttons); void rotate_wrist(int wristThreshold); void reset_state(); void wrist_control(); int get_wrist_state(); int get_num_wrist_states(); float get_wrist_kp(); void set_wrist_kp(float _wristKP); }; };