blob: e038cb283c60833496708d7a36ae58dfdeb24afa [file] [log] [blame]
Het Satasiya9633d4b2020-08-16 15:31:17 -07001from gi.repository import Gtk
Ravago Jones5f787df2021-01-23 16:26:27 -08002from collections import namedtuple
John Park91e69732019-03-03 13:12:43 -08003
Het Satasiya9633d4b2020-08-16 15:31:17 -07004window = Gtk.Window()
5screen = window.get_screen()
6
7#Set screen size for rest of program.
Austin Schuhb2d77af2021-03-31 20:07:21 -07008SCREEN_SIZE = screen.get_height() / 1.5
John Park91e69732019-03-03 13:12:43 -08009
Het Satasiya9633d4b2020-08-16 15:31:17 -070010# Placeholder value
11ROBOT_SIDE_TO_BALL_CENTER = 0.15
John Park91e69732019-03-03 13:12:43 -080012BALL_RADIUS = 0.165
Het Satasiya9633d4b2020-08-16 15:31:17 -070013
14# Placeholder value
15ROBOT_SIDE_TO_HATCH_PANEL = 0.1
John Park91e69732019-03-03 13:12:43 -080016HATCH_PANEL_WIDTH = 0.4826
17
Ravago Jones5f787df2021-01-23 16:26:27 -080018FieldType = namedtuple(
Ravago Jonesc26b9162021-06-30 20:12:48 -070019 'Field', ['name', 'tags', 'year', 'width', 'length', 'robot', 'field_id'])
Ravago Jones5e09c072021-03-27 13:21:03 -070020RobotType = namedtuple(
21 "Robot", ['width', 'length'])
John Parkcf545162020-02-23 20:07:25 -080022
Ravago Jones5f787df2021-01-23 16:26:27 -080023GALACTIC_SEARCH = "Galactic Search"
24ARED = "A Red"
25BRED = "B Red"
26ABLUE = "A Blue"
27BBLUE = "B Blue"
28AUTONAV = "AutoNav"
29BOUNCE = "Bounce"
30SLALOM = "Slalom"
31BARREL = "Barrel"
32
Ravago Jones5e09c072021-03-27 13:21:03 -070033Robot2019 = RobotType(width=0.65, length=0.8)
34Robot2020 = RobotType(width=0.8128, length=0.8636) # 32 in x 34 in
35Robot2021 = Robot2020
Henry Speiserb0703aa2022-03-14 22:19:40 -070036Robot2022 = RobotType(width=0.8763, length=0.96647)
Ravago Jones5e09c072021-03-27 13:21:03 -070037
Ravago Jones5f787df2021-01-23 16:26:27 -080038FIELDS = {
39 "2019 Field":
40 FieldType(
41 "2019 Field",
42 tags=[],
43 year=2019,
44 width=8.258302,
45 length=8.258302,
Ravago Jones5e09c072021-03-27 13:21:03 -070046 robot=Robot2019,
Ravago Jonesc26b9162021-06-30 20:12:48 -070047 field_id="2019"),
Ravago Jones5f787df2021-01-23 16:26:27 -080048 "2020 Field":
49 FieldType(
50 "2020 Field",
51 tags=[],
52 year=2020,
53 width=15.98295,
54 length=8.21055,
Ravago Jones5e09c072021-03-27 13:21:03 -070055 robot=Robot2020,
Ravago Jonesc26b9162021-06-30 20:12:48 -070056 field_id="2020"),
Ravago Jones5f787df2021-01-23 16:26:27 -080057 "2021 Galactic Search BRed":
58 FieldType(
59 "2021 Galactic Search BRed",
60 tags=[GALACTIC_SEARCH, BRED],
61 year=2021,
62 width=9.144,
63 length=4.572,
Ravago Jones5e09c072021-03-27 13:21:03 -070064 robot=Robot2021,
Ravago Jonesc26b9162021-06-30 20:12:48 -070065 field_id="red_b"),
Ravago Jones5f787df2021-01-23 16:26:27 -080066 "2021 Galactic Search ARed":
67 FieldType(
68 "2021 Galactic Search ARed",
69 tags=[GALACTIC_SEARCH, ARED],
70 year=2021,
71 width=9.144,
72 length=4.572,
Ravago Jones5e09c072021-03-27 13:21:03 -070073 robot=Robot2021,
Ravago Jonesc26b9162021-06-30 20:12:48 -070074 field_id="red_a"),
Ravago Jones5f787df2021-01-23 16:26:27 -080075 "2021 Galactic Search BBlue":
76 FieldType(
77 "2021 Galactic Search BBlue",
78 tags=[GALACTIC_SEARCH, BBLUE],
79 year=2021,
80 width=9.144,
81 length=4.572,
Ravago Jones5e09c072021-03-27 13:21:03 -070082 robot=Robot2021,
Ravago Jonesc26b9162021-06-30 20:12:48 -070083 field_id="blue_b"),
Ravago Jones5f787df2021-01-23 16:26:27 -080084 "2021 Galactic Search ABlue":
85 FieldType(
86 "2021 Galactic Search ABlue",
87 tags=[GALACTIC_SEARCH, ABLUE],
88 year=2021,
89 width=9.144,
90 length=4.572,
Ravago Jones5e09c072021-03-27 13:21:03 -070091 robot=Robot2021,
Ravago Jonesc26b9162021-06-30 20:12:48 -070092 field_id="blue_a"),
Ravago Jones5f787df2021-01-23 16:26:27 -080093 "2021 AutoNav Barrel":
94 FieldType(
95 "2021 AutoNav Barrel",
96 tags=[AUTONAV, BARREL],
97 year=2021,
98 width=9.144,
99 length=4.572,
Ravago Jones5e09c072021-03-27 13:21:03 -0700100 robot=Robot2021,
Ravago Jonesc26b9162021-06-30 20:12:48 -0700101 field_id="autonav_barrel"),
Ravago Jones5f787df2021-01-23 16:26:27 -0800102 "2021 AutoNav Slalom":
103 FieldType(
104 "2021 AutoNav Slalom",
105 tags=[AUTONAV, SLALOM],
106 year=2021,
107 width=9.144,
108 length=4.572,
Ravago Jones5e09c072021-03-27 13:21:03 -0700109 robot=Robot2021,
Ravago Jonesc26b9162021-06-30 20:12:48 -0700110 field_id="autonav_slalom"),
Ravago Jones5f787df2021-01-23 16:26:27 -0800111 "2021 AutoNav Bounce":
112 FieldType(
113 "2021 AutoNav Bounce",
114 tags=[AUTONAV, BOUNCE],
115 year=2021,
116 width=9.144,
117 length=4.572,
Ravago Jones5e09c072021-03-27 13:21:03 -0700118 robot=Robot2021,
Ravago Jonesc26b9162021-06-30 20:12:48 -0700119 field_id="autonav_bounce"),
Griffin Bui41a08f32022-02-26 16:20:29 -0800120 "2022 Field":
121 FieldType(
122 "2022 Field",
123 tags=[],
124 year=2022,
125 width=16.4592,
126 length=8.2296,
127 robot=Robot2022,
128 field_id="2022"),
Ravago Jones5f787df2021-01-23 16:26:27 -0800129}
130
Griffin Bui41a08f32022-02-26 16:20:29 -0800131FIELD = FIELDS["2022 Field"]
John Parkcf545162020-02-23 20:07:25 -0800132
James Kuszmaul1c933e02020-03-07 16:17:51 -0800133
Ravago Jones09f59722021-03-03 21:11:41 -0800134def get_json_folder(field):
135 if field.year == 2020 or field.year == 2021:
136 return "y2020/actors/splines"
Griffin Bui41a08f32022-02-26 16:20:29 -0800137 elif field.year == 2022:
138 return "y2022/actors/splines"
Ravago Jones09f59722021-03-03 21:11:41 -0800139 else:
140 return "frc971/control_loops/python/spline_jsons"
141
John Parkcf545162020-02-23 20:07:25 -0800142def inToM(i):
James Kuszmaul1c933e02020-03-07 16:17:51 -0800143 return (i * 0.0254)