blob: 5d25c41b6f858b99d5cb58e1da827fcde2b524f4 [file] [log] [blame]
Brian Silvermand44258e2018-05-14 10:01:18 -07001load("//motors:macros.bzl", "hex_from_elf")
2load("//tools:environments.bzl", "mcu_cpus")
3
4cc_binary(
Brian Silvermand9566392018-06-10 15:02:03 -07005 name = "fet12.elf",
6 srcs = [
James Kuszmaul998d3032018-09-08 15:41:41 -07007 "current_equalization.h",
Brian Silvermand9566392018-06-10 15:02:03 -07008 "fet12.cc",
9 ],
10 restricted_to = mcu_cpus,
11 deps = [
12 ":motor_controls",
13 "//motors:motor",
14 "//motors:util",
15 "//motors/core",
16 "//motors/peripheral:adc",
17 "//motors/peripheral:can",
Brian Silverman4787a6e2018-10-06 16:00:54 -070018 "//motors/print:usb",
Brian Silvermand9566392018-06-10 15:02:03 -070019 ],
20)
21
James Kuszmaul998d3032018-09-08 15:41:41 -070022cc_binary(
23 name = "fet12v2.elf",
24 srcs = [
25 "current_equalization.h",
26 "fet12v2.cc",
27 ],
28 restricted_to = mcu_cpus,
29 deps = [
30 ":motor_controls",
31 "//motors:motor",
32 "//motors:util",
33 "//motors/core",
34 "//motors/peripheral:adc",
James Kuszmaul7c8aad62018-09-08 18:16:18 -070035 "//motors/peripheral:adc_dma",
James Kuszmaul998d3032018-09-08 15:41:41 -070036 "//motors/peripheral:can",
Brian Silverman37a95d62018-11-09 16:08:32 -080037 "//motors/print:itm",
James Kuszmaul998d3032018-09-08 15:41:41 -070038 ],
39)
40
Brian Silvermand9566392018-06-10 15:02:03 -070041hex_from_elf(
42 name = "fet12",
43 restricted_to = mcu_cpus,
44)
45
46cc_binary(
Brian Silvermand44258e2018-05-14 10:01:18 -070047 name = "power_wheels.elf",
48 srcs = [
49 "power_wheels.cc",
50 ],
51 restricted_to = mcu_cpus,
52 deps = [
53 "//motors:util",
54 "//motors/core",
55 "//motors/peripheral:adc",
56 "//motors/usb",
57 "//motors/usb:cdc",
58 ],
59)
60
61hex_from_elf(
62 name = "power_wheels",
63 restricted_to = mcu_cpus,
64)
Brian Silvermand9566392018-06-10 15:02:03 -070065
66cc_library(
67 name = "motor_controls",
68 srcs = [
69 "motor_controls.cc",
70 ],
71 hdrs = [
72 "motor_controls.h",
73 ],
74 restricted_to = mcu_cpus,
75 deps = [
76 "//motors:math",
77 "//motors:motor",
78 "//motors/peripheral:configuration",
Alex Perrycb7da4b2019-08-28 19:35:56 -070079 "@org_tuxfamily_eigen//:eigen",
Brian Silvermand9566392018-06-10 15:02:03 -070080 ],
81)
James Kuszmaul998d3032018-09-08 15:41:41 -070082
James Kuszmaul7c8aad62018-09-08 18:16:18 -070083py_library(
84 name = "calib_sensors",
Brian Silvermanb7fdb692018-09-09 15:50:45 -070085 srcs = [
James Kuszmaul7c8aad62018-09-08 18:16:18 -070086 "calib_sensors.py",
Brian Silvermanb7fdb692018-09-09 15:50:45 -070087 ],
88 data = [
89 "@python_repo//:scipy",
90 ],
91)
92
James Kuszmaul7c8aad62018-09-08 18:16:18 -070093py_binary(
94 name = "current_equalize",
95 srcs = [
96 "current_equalize.py",
97 ],
98 data = [
99 ":calib_sensors",
100 "@python_repo//:scipy",
101 ],
102)
103
James Kuszmaul998d3032018-09-08 15:41:41 -0700104genrule(
105 name = "gen_current_equalization",
James Kuszmaul7c8aad62018-09-08 18:16:18 -0700106 srcs = [
James Kuszmaul7c8aad62018-09-08 18:16:18 -0700107 "calib_data_60a.csv",
108 "calib_data_60b.csv",
109 "calib_data_60c.csv",
Brian Silverman37a95d62018-11-09 16:08:32 -0800110 "calib_data_6030a.csv",
111 "calib_data_6030b.csv",
112 "calib_data_6030c.csv",
James Kuszmaul7c8aad62018-09-08 18:16:18 -0700113 ],
James Kuszmaul998d3032018-09-08 15:41:41 -0700114 outs = ["current_equalization.h"],
Brian Silverman37a95d62018-11-09 16:08:32 -0800115 cmd = " ".join([
116 "$(location current_equalize)",
117 "$(location calib_data_60a.csv)",
118 "$(location calib_data_60b.csv)",
119 "$(location calib_data_60c.csv)",
120 "$(location calib_data_6030a.csv)",
121 "$(location calib_data_6030b.csv)",
122 "$(location calib_data_6030c.csv)",
123 "> \"$@\"",
124 ]),
James Kuszmaul998d3032018-09-08 15:41:41 -0700125 restricted_to = mcu_cpus,
Brian Silvermanb7fdb692018-09-09 15:50:45 -0700126 tools = ["current_equalize"],
James Kuszmaul998d3032018-09-08 15:41:41 -0700127)