blob: b2d9d571698a6767bcfb057f0f62b30db1cdb235 [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 Jones5127ccc2022-07-31 16:32:45 -070020RobotType = namedtuple("Robot", ['width', 'length'])
John Parkcf545162020-02-23 20:07:25 -080021
Ravago Jones5f787df2021-01-23 16:26:27 -080022GALACTIC_SEARCH = "Galactic Search"
23ARED = "A Red"
24BRED = "B Red"
25ABLUE = "A Blue"
26BBLUE = "B Blue"
27AUTONAV = "AutoNav"
28BOUNCE = "Bounce"
29SLALOM = "Slalom"
30BARREL = "Barrel"
31
Ravago Jones5e09c072021-03-27 13:21:03 -070032Robot2019 = RobotType(width=0.65, length=0.8)
Ravago Jones5127ccc2022-07-31 16:32:45 -070033Robot2020 = RobotType(width=0.8128, length=0.8636) # 32 in x 34 in
Ravago Jones5e09c072021-03-27 13:21:03 -070034Robot2021 = Robot2020
Henry Speiserb0703aa2022-03-14 22:19:40 -070035Robot2022 = RobotType(width=0.8763, length=0.96647)
Ravago Jones5e09c072021-03-27 13:21:03 -070036
Ravago Jones5f787df2021-01-23 16:26:27 -080037FIELDS = {
38 "2019 Field":
Ravago Jones5127ccc2022-07-31 16:32:45 -070039 FieldType("2019 Field",
40 tags=[],
41 year=2019,
42 width=8.258302,
43 length=8.258302,
44 robot=Robot2019,
45 field_id="2019"),
Ravago Jones5f787df2021-01-23 16:26:27 -080046 "2020 Field":
Ravago Jones5127ccc2022-07-31 16:32:45 -070047 FieldType("2020 Field",
48 tags=[],
49 year=2020,
50 width=15.98295,
51 length=8.21055,
52 robot=Robot2020,
53 field_id="2020"),
Ravago Jones5f787df2021-01-23 16:26:27 -080054 "2021 Galactic Search BRed":
Ravago Jones5127ccc2022-07-31 16:32:45 -070055 FieldType("2021 Galactic Search BRed",
56 tags=[GALACTIC_SEARCH, BRED],
57 year=2021,
58 width=9.144,
59 length=4.572,
60 robot=Robot2021,
61 field_id="red_b"),
Ravago Jones5f787df2021-01-23 16:26:27 -080062 "2021 Galactic Search ARed":
Ravago Jones5127ccc2022-07-31 16:32:45 -070063 FieldType("2021 Galactic Search ARed",
64 tags=[GALACTIC_SEARCH, ARED],
65 year=2021,
66 width=9.144,
67 length=4.572,
68 robot=Robot2021,
69 field_id="red_a"),
Ravago Jones5f787df2021-01-23 16:26:27 -080070 "2021 Galactic Search BBlue":
Ravago Jones5127ccc2022-07-31 16:32:45 -070071 FieldType("2021 Galactic Search BBlue",
72 tags=[GALACTIC_SEARCH, BBLUE],
73 year=2021,
74 width=9.144,
75 length=4.572,
76 robot=Robot2021,
77 field_id="blue_b"),
Ravago Jones5f787df2021-01-23 16:26:27 -080078 "2021 Galactic Search ABlue":
Ravago Jones5127ccc2022-07-31 16:32:45 -070079 FieldType("2021 Galactic Search ABlue",
80 tags=[GALACTIC_SEARCH, ABLUE],
81 year=2021,
82 width=9.144,
83 length=4.572,
84 robot=Robot2021,
85 field_id="blue_a"),
Ravago Jones5f787df2021-01-23 16:26:27 -080086 "2021 AutoNav Barrel":
Ravago Jones5127ccc2022-07-31 16:32:45 -070087 FieldType("2021 AutoNav Barrel",
88 tags=[AUTONAV, BARREL],
89 year=2021,
90 width=9.144,
91 length=4.572,
92 robot=Robot2021,
93 field_id="autonav_barrel"),
Ravago Jones5f787df2021-01-23 16:26:27 -080094 "2021 AutoNav Slalom":
Ravago Jones5127ccc2022-07-31 16:32:45 -070095 FieldType("2021 AutoNav Slalom",
96 tags=[AUTONAV, SLALOM],
97 year=2021,
98 width=9.144,
99 length=4.572,
100 robot=Robot2021,
101 field_id="autonav_slalom"),
Ravago Jones5f787df2021-01-23 16:26:27 -0800102 "2021 AutoNav Bounce":
Ravago Jones5127ccc2022-07-31 16:32:45 -0700103 FieldType("2021 AutoNav Bounce",
104 tags=[AUTONAV, BOUNCE],
105 year=2021,
106 width=9.144,
107 length=4.572,
108 robot=Robot2021,
109 field_id="autonav_bounce"),
Griffin Bui41a08f32022-02-26 16:20:29 -0800110 "2022 Field":
Ravago Jones5127ccc2022-07-31 16:32:45 -0700111 FieldType("2022 Field",
112 tags=[],
113 year=2022,
114 width=16.4592,
115 length=8.2296,
116 robot=Robot2022,
117 field_id="2022"),
Ravago Jones5f787df2021-01-23 16:26:27 -0800118}
119
Griffin Bui41a08f32022-02-26 16:20:29 -0800120FIELD = FIELDS["2022 Field"]
John Parkcf545162020-02-23 20:07:25 -0800121
James Kuszmaul1c933e02020-03-07 16:17:51 -0800122
Ravago Jones09f59722021-03-03 21:11:41 -0800123def get_json_folder(field):
124 if field.year == 2020 or field.year == 2021:
125 return "y2020/actors/splines"
Griffin Bui41a08f32022-02-26 16:20:29 -0800126 elif field.year == 2022:
127 return "y2022/actors/splines"
Ravago Jones09f59722021-03-03 21:11:41 -0800128 else:
129 return "frc971/control_loops/python/spline_jsons"
130
Ravago Jones5127ccc2022-07-31 16:32:45 -0700131
John Parkcf545162020-02-23 20:07:25 -0800132def inToM(i):
James Kuszmaul1c933e02020-03-07 16:17:51 -0800133 return (i * 0.0254)