Het Satasiya | 9633d4b | 2020-08-16 15:31:17 -0700 | [diff] [blame] | 1 | from gi.repository import Gtk |
Ravago Jones | 5f787df | 2021-01-23 16:26:27 -0800 | [diff] [blame] | 2 | from collections import namedtuple |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 3 | |
Het Satasiya | 9633d4b | 2020-08-16 15:31:17 -0700 | [diff] [blame] | 4 | window = Gtk.Window() |
| 5 | screen = window.get_screen() |
| 6 | |
| 7 | #Set screen size for rest of program. |
| 8 | SCREEN_SIZE = screen.get_height() / 3 |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 9 | |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 10 | WIDTH_OF_ROBOT = 0.65 |
| 11 | LENGTH_OF_ROBOT = 0.8 |
| 12 | |
Het Satasiya | 9633d4b | 2020-08-16 15:31:17 -0700 | [diff] [blame] | 13 | # Placeholder value |
| 14 | ROBOT_SIDE_TO_BALL_CENTER = 0.15 |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 15 | BALL_RADIUS = 0.165 |
Het Satasiya | 9633d4b | 2020-08-16 15:31:17 -0700 | [diff] [blame] | 16 | |
| 17 | # Placeholder value |
| 18 | ROBOT_SIDE_TO_HATCH_PANEL = 0.1 |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 19 | HATCH_PANEL_WIDTH = 0.4826 |
| 20 | |
Ravago Jones | 5f787df | 2021-01-23 16:26:27 -0800 | [diff] [blame] | 21 | FieldType = namedtuple( |
| 22 | 'Field', ['name', 'tags', 'year', 'width', 'length', 'json_name']) |
John Park | cf54516 | 2020-02-23 20:07:25 -0800 | [diff] [blame] | 23 | |
Ravago Jones | 5f787df | 2021-01-23 16:26:27 -0800 | [diff] [blame] | 24 | GALACTIC_SEARCH = "Galactic Search" |
| 25 | ARED = "A Red" |
| 26 | BRED = "B Red" |
| 27 | ABLUE = "A Blue" |
| 28 | BBLUE = "B Blue" |
| 29 | AUTONAV = "AutoNav" |
| 30 | BOUNCE = "Bounce" |
| 31 | SLALOM = "Slalom" |
| 32 | BARREL = "Barrel" |
| 33 | |
| 34 | FIELDS = { |
| 35 | "2019 Field": |
| 36 | FieldType( |
| 37 | "2019 Field", |
| 38 | tags=[], |
| 39 | year=2019, |
| 40 | width=8.258302, |
| 41 | length=8.258302, |
| 42 | json_name="spline_2019.json"), |
| 43 | "2020 Field": |
| 44 | FieldType( |
| 45 | "2020 Field", |
| 46 | tags=[], |
| 47 | year=2020, |
| 48 | width=15.98295, |
| 49 | length=8.21055, |
| 50 | json_name="spline_2020.json"), |
| 51 | "2021 Galactic Search BRed": |
| 52 | FieldType( |
| 53 | "2021 Galactic Search BRed", |
| 54 | tags=[GALACTIC_SEARCH, BRED], |
| 55 | year=2021, |
| 56 | width=9.144, |
| 57 | length=4.572, |
Ravago Jones | ab49f43 | 2021-03-03 21:18:49 -0800 | [diff] [blame] | 58 | json_name="spline_red_b.json"), |
Ravago Jones | 5f787df | 2021-01-23 16:26:27 -0800 | [diff] [blame] | 59 | "2021 Galactic Search ARed": |
| 60 | FieldType( |
| 61 | "2021 Galactic Search ARed", |
| 62 | tags=[GALACTIC_SEARCH, ARED], |
| 63 | year=2021, |
| 64 | width=9.144, |
| 65 | length=4.572, |
Ravago Jones | ab49f43 | 2021-03-03 21:18:49 -0800 | [diff] [blame] | 66 | json_name="spline_red_a.json"), |
Ravago Jones | 5f787df | 2021-01-23 16:26:27 -0800 | [diff] [blame] | 67 | "2021 Galactic Search BBlue": |
| 68 | FieldType( |
| 69 | "2021 Galactic Search BBlue", |
| 70 | tags=[GALACTIC_SEARCH, BBLUE], |
| 71 | year=2021, |
| 72 | width=9.144, |
| 73 | length=4.572, |
| 74 | json_name="spline_blue_b.json"), |
| 75 | "2021 Galactic Search ABlue": |
| 76 | FieldType( |
| 77 | "2021 Galactic Search ABlue", |
| 78 | tags=[GALACTIC_SEARCH, ABLUE], |
| 79 | year=2021, |
| 80 | width=9.144, |
| 81 | length=4.572, |
| 82 | json_name="spline_blue_a.json"), |
| 83 | "2021 AutoNav Barrel": |
| 84 | FieldType( |
| 85 | "2021 AutoNav Barrel", |
| 86 | tags=[AUTONAV, BARREL], |
| 87 | year=2021, |
| 88 | width=9.144, |
| 89 | length=4.572, |
| 90 | json_name="autonav_barrel.json"), |
| 91 | "2021 AutoNav Slalom": |
| 92 | FieldType( |
| 93 | "2021 AutoNav Slalom", |
| 94 | tags=[AUTONAV, SLALOM], |
| 95 | year=2021, |
| 96 | width=9.144, |
| 97 | length=4.572, |
| 98 | json_name="autonav_slalom.json"), |
| 99 | "2021 AutoNav Bounce": |
| 100 | FieldType( |
| 101 | "2021 AutoNav Bounce", |
| 102 | tags=[AUTONAV, BOUNCE], |
| 103 | year=2021, |
| 104 | width=9.144, |
| 105 | length=4.572, |
| 106 | json_name="autonav_bounce.json"), |
| 107 | } |
| 108 | |
| 109 | FIELD = FIELDS["2021 Galactic Search BRed"] |
John Park | cf54516 | 2020-02-23 20:07:25 -0800 | [diff] [blame] | 110 | |
James Kuszmaul | 1c933e0 | 2020-03-07 16:17:51 -0800 | [diff] [blame] | 111 | |
Ravago Jones | 09f5972 | 2021-03-03 21:11:41 -0800 | [diff] [blame^] | 112 | def get_json_folder(field): |
| 113 | if field.year == 2020 or field.year == 2021: |
| 114 | return "y2020/actors/splines" |
| 115 | else: |
| 116 | return "frc971/control_loops/python/spline_jsons" |
| 117 | |
| 118 | |
James Kuszmaul | 1c933e0 | 2020-03-07 16:17:51 -0800 | [diff] [blame] | 119 | def pxToM(p): |
Ravago Jones | 5f787df | 2021-01-23 16:26:27 -0800 | [diff] [blame] | 120 | return p * FIELD.width / SCREEN_SIZE |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 121 | |
James Kuszmaul | 1c933e0 | 2020-03-07 16:17:51 -0800 | [diff] [blame] | 122 | |
| 123 | def mToPx(m): |
Ravago Jones | 5f787df | 2021-01-23 16:26:27 -0800 | [diff] [blame] | 124 | return (m * SCREEN_SIZE / FIELD.width) |
James Kuszmaul | 1c933e0 | 2020-03-07 16:17:51 -0800 | [diff] [blame] | 125 | |
John Park | cf54516 | 2020-02-23 20:07:25 -0800 | [diff] [blame] | 126 | |
| 127 | def inToM(i): |
James Kuszmaul | 1c933e0 | 2020-03-07 16:17:51 -0800 | [diff] [blame] | 128 | return (i * 0.0254) |