Advertisement
Trainlover08

Auto Selector

Dec 5th, 2024 (edited)
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.13 KB | None | 0 0
  1. class GUI {
  2. public:
  3.     GUI(std::vector<pros::Motor>) motor_list(motor_list) {}
  4.    
  5.     std::vector<pros::Motor> motor_list;
  6.     int current_view = 0;
  7.     int selected_auto = 0;
  8.     bool elim_awp = 0;
  9.    
  10.     void read_file (std::string& filename) {
  11.         std::string str;
  12.         std::ifstream file(filename);
  13.         file >> str;
  14.         file.close();
  15.         selected_auto = std::stoi(str);
  16.     }
  17.  
  18.     void write_file (std::string& filename) {
  19.         std::ofstream file(filename);
  20.         file << selected_auto;
  21.         file.close();
  22.     }
  23. private:
  24.     int E_IMAGE_WIDTH = 480;
  25.    
  26.     void render () {
  27.          void print_motor_temprature_screen() {
  28.             pros::screen::set_pen(pros::Color::white_smoke);
  29.             pros::screen::draw_line(360, 0, 360, 240);
  30.             pros::screen::draw_line(360, 120, 480, 120);
  31.  
  32.             pros::screen::draw_circle(420, 60, 46);
  33.             pros::screen::draw_circle(420, 180, 46);
  34.             pros::screen::draw_circle(300, 60, 46);
  35.             pros::screen::draw_circle(180, 60, 46);
  36.             pros::screen::draw_circle(60, 60, 46);
  37.             pros::screen::draw_circle(60, 180, 46);
  38.             pros::screen::draw_circle(180, 180, 46);
  39.             pros::screen::draw_circle(300, 180, 46);
  40.             pros::screen::set_pen(get_temp(motor_list[6]));
  41.             pros::screen::fill_circle(420, 60, 45);
  42.             pros::screen::set_pen(get_temp(motor_list[7]));
  43.             pros::screen::fill_circle(420, 180, 45);
  44.             pros::screen::set_pen(get_temp(motor_list[2]));
  45.             pros::screen::fill_circle(300, 60, 45);
  46.             pros::screen::set_pen(get_temp(motor_list[5]));
  47.             pros::screen::fill_circle(300, 180, 45);
  48.             pros::screen::set_pen(get_temp(motor_list[1]));
  49.             pros::screen::fill_circle(180, 60, 45);
  50.             pros::screen::set_pen(get_temp(motor_list[4]));
  51.             pros::screen::fill_circle(180, 180, 45);
  52.             pros::screen::set_pen(get_temp(motor_list[0]));
  53.             pros::screen::fill_circle(60, 60, 45);
  54.             pros::screen::set_pen(get_temp(motor_list[3]));
  55.             pros::screen::fill_circle(60, 180, 45);
  56.  
  57.             pros::screen::set_eraser(pros::Color::black);
  58.             pros::screen::set_pen(pros::Color::white_smoke);
  59.             pros::screen::print(pros::E_TEXT_SMALL, 17, 55, "L M 1 (%i)", motor_list[0].get_port());
  60.             pros::screen::print(pros::E_TEXT_SMALL, 137, 55, "L M 2 (%i)", motor_list[1].get_port());
  61.             pros::screen::print(pros::E_TEXT_SMALL, 257, 55, "L M 3 (%i)", motor_list[2].get_port());
  62.             pros::screen::print(pros::E_TEXT_SMALL, 17, 175, "R M 1 (%i)", motor_list[3].get_port());
  63.             pros::screen::print(pros::E_TEXT_SMALL, 137, 175, "R M 2 (%i)", motor_list[4].get_port());
  64.             pros::screen::print(pros::E_TEXT_SMALL, 257, 175, "R M 3 (%i)", motor_list[5].get_port());
  65.             pros::screen::print(pros::E_TEXT_SMALL, 377, 55, "Lower(%i)", motor_list[6].get_port());
  66.             pros::screen::print(pros::E_TEXT_SMALL, 377, 175, "Upper(%i)", motor_list[7].get_port());
  67.         }
  68.     }
  69.  
  70.     void press() {
  71.             // a function that looks to see if the screen is being used as a touch screen based on different conditions
  72.  
  73.         pros::screen_touch_status_s_t status = pros::screen::touch_status();
  74.         int x = status.x + 240;
  75.         int y = status.y + 120;
  76.         if (current_view == 0) {
  77.             if(status.touch_status == pros::E_TOUCH_PRESSED){
  78.                 if ((x > (E_IMAGE_WIDTH / 2)) || (x < -(E_IMAGE_WIDTH / 2))) {
  79.                     current_view = 1;
  80.                 } else {
  81.                     if (x < 0 && y > 0) {
  82.                         if (selected_auto =! 0) {
  83.                             selected_auto = 0;
  84.                             elim_awp = 0;
  85.                         } else {
  86.                             elim_awp = !elim_awp;
  87.                         }
  88.                     }
  89.  
  90.                     if (x < 0 && y < 0) {
  91.                         if (selected_auto =! 1) {
  92.                             selected_auto = 1;
  93.                             elim_awp = 0;
  94.                         } else {
  95.                             elim_awp = !elim_awp;
  96.                         }
  97.                     }
  98.                    
  99.                     if (x > 0 && y > 0) {
  100.                         if (selected_auto =! 2) {
  101.                             selected_auto = 2;
  102.                             elim_awp = 0;
  103.                         } else {
  104.                             elim_awp = !elim_awp;
  105.                         }
  106.                     }
  107.                    
  108.                     if (x > 0 && y < 0) {
  109.                         if (selected_auto =! 3) {
  110.                             selected_auto = 3;
  111.                             elim_awp = 0;
  112.                         } else {
  113.                             elim_awp = !elim_awp;
  114.                         }
  115.                     }
  116.                 }
  117.             }
  118.         } else {
  119.             if (status.touch_status == pros::E_TOUCH_PRESSED) {
  120.                 current_view = 1;
  121.             }
  122.         }
  123.         while (status == pros::E_TOUCH_PRESSED) {
  124.             status = pros::screen::touch_status();
  125.             pros::delay(100);
  126.         }
  127.     }
  128. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement