Finish auto-converting most of the gyp files.
I've also started writing down which ones need manual work.
Change-Id: I442782e1e3352e0de32b612f1bd2c167f231495a
diff --git a/aos/common/BUILD b/aos/common/BUILD
index 32b0f3b..55f1a03 100644
--- a/aos/common/BUILD
+++ b/aos/common/BUILD
@@ -1,36 +1,41 @@
-"""
-aos_queue(
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+queue_library(
name = 'test_queue',
srcs = [
'test_queue.q',
],
)
-"""
cc_library(
name = 'queue_testutils',
srcs = [
'queue_testutils.cc',
],
+ hdrs = [
+ 'queue_testutils.h',
+ ],
deps = [
+ '//aos/common/logging',
':once',
- ':mutex',
- '//aos/build:logging',
'//aos/linux_code/ipc_lib:shared_mem',
+ ':mutex',
],
)
cc_library(
name = 'time',
- hdrs = [
- 'time.h',
- ],
srcs = [
'time.cc',
],
+ hdrs = [
+ 'time.h',
+ ],
deps = [
+ '//aos/common/logging:logging_interface',
':mutex',
- '//aos/build:logging_interface',
],
)
@@ -39,4 +44,219 @@
srcs = [
'queue_types.cc',
],
+ hdrs = [
+ 'queue_types.h',
+ ],
+ deps = [
+ '//aos/common/logging:logging_interface',
+ '//aos/linux_code/ipc_lib:shared_mem',
+ '//aos/linux_code/ipc_lib:core_lib',
+ ':mutex',
+ ':time',
+ ],
+)
+
+cc_test(
+ name = 'queue_types_test',
+ srcs = [
+ 'queue_types_test.cc',
+ ],
+ deps = [
+ ':queue_types',
+ '//third_party/gtest',
+ ':test_queue',
+ '//aos/common/logging',
+ ':queue_testutils',
+ ],
+)
+
+cc_library(
+ name = 'queues',
+ srcs = [
+ 'queue.cc',
+ ],
+ hdrs = [
+ 'queue.h',
+ ],
+ deps = [
+ '//aos/linux_code/ipc_lib:queue',
+ ':time',
+ ],
+)
+
+cc_library(
+ name = 'scoped_fd',
+ deps = [
+ '//aos/common/logging',
+ ],
+)
+
+cc_test(
+ name = 'queue_test',
+ srcs = [
+ 'queue_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':queue_testutils',
+ ':test_queue',
+ '//aos/common/util:thread',
+ ':die',
+ ],
+)
+
+cc_test(
+ name = 'type_traits_test',
+ srcs = [
+ 'type_traits_test.cpp',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ],
+)
+
+cc_library(
+ name = 'gtest_prod',
+ deps = [
+ '//third_party/gtest_prod',
+ ],
+)
+
+cc_library(
+ name = 'once',
+ deps = [
+ '//third_party/gtest_prod',
+ ],
+)
+
+cc_test(
+ name = 'once_test',
+ srcs = [
+ 'once_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':once',
+ ],
+)
+
+cc_test(
+ name = 'time_test',
+ srcs = [
+ 'time_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':time',
+ '//aos/common/logging',
+ '//aos/common/util:death_test_log_implementation',
+ ],
+)
+
+cc_library(
+ name = 'die',
+ srcs = [
+ 'die.cc',
+ ],
+ hdrs = [
+ 'die.h',
+ ],
+ deps = [
+ '//aos/common/libc:aos_strerror',
+ ],
+)
+
+cc_test(
+ name = 'queue_testutils_test',
+ srcs = [
+ 'queue_testutils_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':queue_testutils',
+ '//aos/common/logging',
+ ],
+)
+
+cc_test(
+ name = 'mutex_test',
+ srcs = [
+ 'mutex_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':mutex',
+ ':die',
+ '//aos/common/logging',
+ '//aos/common/util:death_test_log_implementation',
+ '//aos/common/util:thread',
+ '//aos/common:time',
+ ':queue_testutils',
+ ],
+)
+
+cc_test(
+ name = 'event_test',
+ srcs = [
+ 'event_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':event',
+ ':queue_testutils',
+ ':time',
+ ],
+)
+
+cc_test(
+ name = 'condition_test',
+ srcs = [
+ 'condition_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':condition',
+ '//aos/common/util:thread',
+ ':time',
+ ':mutex',
+ '//aos/common/logging',
+ ':queue_testutils',
+ '//aos/linux_code/ipc_lib:core_lib',
+ '//aos/linux_code/ipc_lib:aos_sync',
+ ':die',
+ '//aos/common/util:thread',
+ ],
+)
+
+cc_test(
+ name = 'die_test',
+ srcs = [
+ 'die_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':die',
+ ],
+)
+
+cc_library(
+ name = 'stl_mutex',
+ deps = [
+ '//aos/linux_code/ipc_lib:aos_sync',
+ '//aos/common/logging',
+ ],
+)
+
+cc_test(
+ name = 'stl_mutex_test',
+ srcs = [
+ 'stl_mutex_test.cc',
+ ],
+ deps = [
+ ':stl_mutex',
+ '//third_party/gtest',
+ ':queue_testutils',
+ '//aos/common/util:thread',
+ ':die',
+ ],
)
diff --git a/aos/common/actions/BUILD b/aos/common/actions/BUILD
new file mode 100644
index 0000000..22db816
--- /dev/null
+++ b/aos/common/actions/BUILD
@@ -0,0 +1,59 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_library(
+ name = 'action_lib',
+ srcs = [
+ 'actions.cc',
+ 'actor.cc',
+ ],
+ hdrs = [
+ 'actions.h',
+ 'actor.h',
+ ],
+ deps = [
+ '//aos/common/logging',
+ '//aos/common:queues',
+ '//aos/common/logging:queue_logging',
+ '//aos/common:time',
+ '//aos/common/controls:control_loop',
+ '//aos/common/util:phased_loop',
+ ],
+)
+
+queue_library(
+ name = 'action_queue',
+ srcs = [
+ 'actions.q',
+ ],
+)
+
+queue_library(
+ name = 'test_action_queue',
+ srcs = [
+ 'test_action.q',
+ ],
+ deps = [
+ ':action_queue',
+ ],
+)
+
+cc_test(
+ name = 'action_test',
+ srcs = [
+ 'action_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':action_lib',
+ ':test_action_queue',
+ '//aos/common:queue_testutils',
+ '//aos/common/logging',
+ '//aos/common/logging:queue_logging',
+ '//aos/common:queues',
+ '//aos/common:time',
+ ':action_queue',
+ '//aos/linux_code/ipc_lib:event',
+ ],
+)
diff --git a/aos/common/common.gyp b/aos/common/common.gyp
index 461200e..17df955 100644
--- a/aos/common/common.gyp
+++ b/aos/common/common.gyp
@@ -4,7 +4,7 @@
'target_name': 'test_queue',
'type': 'static_library',
'sources': [
- '<(AOS)/common/test_queue.q',
+ 'test_queue.q',
],
'variables': {
'header_path': 'aos/common',
diff --git a/aos/common/controls/BUILD b/aos/common/controls/BUILD
new file mode 100644
index 0000000..c021714
--- /dev/null
+++ b/aos/common/controls/BUILD
@@ -0,0 +1,65 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_library(
+ name = 'replay_control_loop',
+ deps = [
+ '//aos/common:queues',
+ ':control_loop',
+ '//aos/linux_code/logging:log_replay',
+ '//aos/common/logging:queue_logging',
+ '//aos/common:time',
+ ],
+)
+
+cc_library(
+ name = 'control_loop_test',
+ srcs = [
+ 'control_loop_test.cc',
+ ],
+ hdrs = [
+ 'control_loop_test.h',
+ ],
+ deps = [
+ '//aos/common:time',
+ '//aos/common/messages:robot_state',
+ '//third_party/gtest',
+ '//aos/common:queue_testutils',
+ ],
+)
+
+cc_library(
+ name = 'polytope',
+ deps = [
+ '//third_party/eigen',
+ '//third_party/libcdd',
+ ],
+)
+
+queue_library(
+ name = 'control_loop_queues',
+ srcs = [
+ 'control_loops.q',
+ ],
+)
+
+cc_library(
+ name = 'control_loop',
+ srcs = [
+ 'control_loop.cc',
+ ],
+ hdrs = [
+ 'control_loop.h',
+ ],
+ deps = [
+ '//aos/common/messages:robot_state',
+ '//aos/common/logging',
+ '//aos/common/util:phased_loop',
+ '//aos/common:time',
+ ':control_loop_queues',
+ '//aos/common/logging:queue_logging',
+ '//aos/common/util:log_interval',
+ '//aos/common:queues',
+ ],
+)
diff --git a/aos/common/controls/controls.gyp b/aos/common/controls/controls.gyp
index 4e0bc79..8af66be 100644
--- a/aos/common/controls/controls.gyp
+++ b/aos/common/controls/controls.gyp
@@ -57,7 +57,7 @@
{
'target_name': 'control_loop_queues',
'type': 'static_library',
- 'sources': [ '<(AOS)/common/controls/control_loops.q' ],
+ 'sources': [ 'control_loops.q' ],
'variables': {
'header_path': 'aos/common/controls',
},
diff --git a/aos/common/input/BUILD b/aos/common/input/BUILD
new file mode 100644
index 0000000..2539f55
--- /dev/null
+++ b/aos/common/input/BUILD
@@ -0,0 +1,14 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'driver_station_data',
+ srcs = [
+ 'driver_station_data.cc',
+ ],
+ hdrs = [
+ 'driver_station_data.h',
+ ],
+ deps = [
+ '//aos/common/messages:robot_state',
+ ],
+)
diff --git a/aos/common/libc/BUILD b/aos/common/libc/BUILD
index fb27f3a..ad88f9d 100644
--- a/aos/common/libc/BUILD
+++ b/aos/common/libc/BUILD
@@ -5,6 +5,9 @@
srcs = [
'aos_strsignal.cc',
],
+ hdrs = [
+ 'aos_strsignal.h',
+ ],
deps = [
'//aos/common/logging:logging_interface',
],
@@ -18,7 +21,7 @@
deps = [
':aos_strsignal',
'//third_party/gtest',
- '//aos/common/logging:logging',
+ '//aos/common/logging',
],
)
@@ -27,6 +30,9 @@
srcs = [
'dirname.cc',
],
+ hdrs = [
+ 'dirname.h',
+ ],
)
cc_test(
@@ -35,6 +41,7 @@
'dirname_test.cc',
],
deps = [
+ ':dirname',
'//third_party/gtest',
],
)
@@ -44,6 +51,9 @@
srcs = [
'aos_strerror.cc',
],
+ hdrs = [
+ 'aos_strerror.h',
+ ],
)
cc_test(
diff --git a/aos/common/logging/BUILD b/aos/common/logging/BUILD
index 181bcd5..db7f365 100644
--- a/aos/common/logging/BUILD
+++ b/aos/common/logging/BUILD
@@ -1,27 +1,43 @@
package(default_visibility = ['//visibility:public'])
-cc_library(
- name = 'logging_interface',
+cc_test(
+ name = 'logging_impl_test',
srcs = [
- 'logging_interface.cc',
+ 'logging_impl_test.cc',
],
deps = [
- '//aos/linux_code/logging:linux_interface',
- '//aos/common:die',
- '//aos/common/libc:aos_strerror',
+ '//third_party/gtest',
+ '//aos/common/logging',
],
)
cc_library(
- name = 'logging',
+ name = 'queue_logging',
srcs = [
- 'logging_impl.cc',
+ 'queue_logging.cc',
+ ],
+ hdrs = [
+ 'queue_logging.h',
],
deps = [
- '//aos/linux_code/logging:linux_logging',
- '//aos/common:time',
- '//aos/common:once',
- ':logging_interface',
+ '//aos/common/logging',
+ '//aos/common:die',
'//aos/common:queue_types',
],
)
+
+cc_library(
+ name = 'matrix_logging',
+ srcs = [
+ 'matrix_logging.cc',
+ ],
+ hdrs = [
+ 'matrix_logging.h',
+ ],
+ deps = [
+ '//aos/common/logging',
+ '//aos/common:die',
+ '//aos/common:queue_types',
+ '//third_party/eigen',
+ ],
+)
diff --git a/aos/common/messages/BUILD b/aos/common/messages/BUILD
new file mode 100644
index 0000000..dc125dd
--- /dev/null
+++ b/aos/common/messages/BUILD
@@ -0,0 +1,10 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+queue_library(
+ name = 'robot_state',
+ srcs = [
+ 'robot_state.q',
+ ],
+)
diff --git a/aos/common/network/BUILD b/aos/common/network/BUILD
new file mode 100644
index 0000000..a452e8f
--- /dev/null
+++ b/aos/common/network/BUILD
@@ -0,0 +1,37 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'team_number',
+ srcs = [
+ 'team_number.cc',
+ ],
+ hdrs = [
+ 'team_number.h',
+ ],
+ deps = [
+ '//aos/linux_code:configuration',
+ '//aos/common:once',
+ '//aos/common/logging',
+ '//aos/common/util:string_to_num',
+ ],
+)
+
+cc_library(
+ name = 'socket',
+ srcs = [
+ 'receive_socket.cc',
+ 'send_socket.cc',
+ 'socket.cc',
+ ],
+ hdrs = [
+ 'receive_socket.h',
+ 'send_socket.h',
+ 'socket.h',
+ ],
+ deps = [
+ '//aos/common/logging',
+ '//aos/common:time',
+ '//aos/common/util:inet_addr',
+ '//aos/linux_code:configuration',
+ ],
+)
diff --git a/aos/common/util/BUILD b/aos/common/util/BUILD
new file mode 100644
index 0000000..2409e00
--- /dev/null
+++ b/aos/common/util/BUILD
@@ -0,0 +1,148 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'run_command',
+ srcs = [
+ 'run_command.cc',
+ ],
+ hdrs = [
+ 'run_command.h',
+ ],
+ deps = [
+ '//aos/common/logging:logging_interface',
+ ],
+)
+
+cc_test(
+ name = 'run_command_test',
+ srcs = [
+ 'run_command_test.cc',
+ ],
+ deps = [
+ ':run_command',
+ '//third_party/gtest',
+ '//aos/common/logging',
+ ':thread',
+ ],
+)
+
+cc_library(
+ name = 'death_test_log_implementation',
+ deps = [
+ '//aos/common/logging',
+ ],
+)
+
+cc_library(
+ name = 'inet_addr',
+ srcs = [
+ 'inet_addr.cc',
+ ],
+ hdrs = [
+ 'inet_addr.h',
+ ],
+)
+
+cc_library(
+ name = 'phased_loop',
+ srcs = [
+ 'phased_loop.cc',
+ ],
+ hdrs = [
+ 'phased_loop.h',
+ ],
+ deps = [
+ '//aos/common/logging',
+ '//aos/common:time',
+ ],
+)
+
+cc_library(
+ name = 'log_interval',
+ deps = [
+ '//aos/common:time',
+ '//aos/common/logging',
+ ],
+)
+
+cc_library(
+ name = 'string_to_num',
+)
+
+cc_test(
+ name = 'string_to_num_test',
+ srcs = [
+ 'string_to_num_test.cc',
+ ],
+ deps = [
+ ':string_to_num',
+ '//third_party/gtest',
+ ],
+)
+
+cc_library(
+ name = 'thread',
+ srcs = [
+ 'thread.cc',
+ ],
+ hdrs = [
+ 'thread.h',
+ ],
+)
+
+cc_library(
+ name = 'trapezoid_profile',
+ srcs = [
+ 'trapezoid_profile.cc',
+ ],
+ hdrs = [
+ 'trapezoid_profile.h',
+ ],
+ deps = [
+ '//third_party/eigen',
+ '//aos/common:time',
+ '//aos/common/logging',
+ ],
+)
+
+cc_test(
+ name = 'trapezoid_profile_test',
+ srcs = [
+ 'trapezoid_profile_test.cc',
+ ],
+ deps = [
+ ':trapezoid_profile',
+ '//third_party/gtest',
+ ],
+)
+
+cc_library(
+ name = 'wrapping_counter',
+ srcs = [
+ 'wrapping_counter.cc',
+ ],
+ hdrs = [
+ 'wrapping_counter.h',
+ ],
+)
+
+cc_test(
+ name = 'wrapping_counter_test',
+ srcs = [
+ 'wrapping_counter_test.cc',
+ ],
+ deps = [
+ ':wrapping_counter',
+ '//third_party/gtest',
+ ],
+)
+
+cc_test(
+ name = 'options_test',
+ srcs = [
+ 'options_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ],
+)
diff --git a/aos/linux_code/BUILD b/aos/linux_code/BUILD
index 7305bc7..63c970c 100644
--- a/aos/linux_code/BUILD
+++ b/aos/linux_code/BUILD
@@ -6,7 +6,7 @@
'dump_rtprio.cc',
],
deps = [
- '//aos/common/logging:logging',
+ '//aos/common/logging',
'//aos/common:time',
],
)
@@ -14,7 +14,10 @@
cc_library(
name = 'complex_thread_local',
srcs = [
- 'complex_thread_local.cc'
+ 'complex_thread_local.cc',
+ ],
+ hdrs = [
+ 'complex_thread_local.h',
],
deps = [
'//aos/common:once',
@@ -31,7 +34,7 @@
':complex_thread_local',
'//third_party/gtest',
'//aos/common/util:thread',
- '//aos/common/logging:logging',
+ '//aos/common/logging',
],
)
@@ -40,21 +43,27 @@
srcs = [
'init.cc',
],
+ hdrs = [
+ 'init.h',
+ ],
deps = [
'//aos/linux_code/ipc_lib:shared_mem',
'//aos/common:die',
- '//aos/common/logging:logging',
+ '//aos/common/logging',
],
)
cc_library(
name = 'configuration',
- src = [
+ srcs = [
'configuration.cc',
],
+ hdrs = [
+ 'configuration.h',
+ ],
deps = [
'//aos/common:once',
- '//aos/common/logging:logging',
+ '//aos/common/logging',
],
)
diff --git a/aos/linux_code/ipc_lib/BUILD b/aos/linux_code/ipc_lib/BUILD
new file mode 100644
index 0000000..c511968
--- /dev/null
+++ b/aos/linux_code/ipc_lib/BUILD
@@ -0,0 +1,105 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'aos_sync',
+ srcs = [
+ 'aos_sync.cc',
+ ],
+ hdrs = [
+ 'aos_sync.h',
+ ],
+ deps = [
+ '//aos/common/logging:logging_interface',
+ '//aos/common:once',
+ ],
+)
+
+cc_library(
+ name = 'core_lib',
+ srcs = [
+ 'core_lib.c',
+ ],
+ hdrs = [
+ 'core_lib.h',
+ ],
+ deps = [
+ ':aos_sync',
+ ':shared_mem',
+ ],
+)
+
+cc_library(
+ name = 'shared_mem',
+ srcs = [
+ 'shared_mem.c',
+ ],
+ hdrs = [
+ 'shared_mem.h',
+ ],
+ deps = [
+ ':aos_sync',
+ '//aos/common/logging:logging_interface',
+ ],
+)
+
+cc_library(
+ name = 'queue',
+ srcs = [
+ 'queue.cc',
+ ],
+ hdrs = [
+ 'queue.h',
+ ],
+ deps = [
+ '//aos/linux_code/ipc_lib:condition',
+ '//aos/linux_code/ipc_lib:mutex',
+ ':core_lib',
+ '//aos/common/logging:logging_interface',
+ ],
+)
+
+cc_test(
+ name = 'raw_queue_test',
+ srcs = [
+ 'raw_queue_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':queue',
+ '//aos/common/logging',
+ ':core_lib',
+ '//aos/common:queue_testutils',
+ '//aos/common:time',
+ '//aos/common:die',
+ '//aos/common/util:thread',
+ '//aos/common/util:death_test_log_implementation',
+ ],
+)
+
+cc_test(
+ name = 'ipc_stress_test',
+ srcs = [
+ 'ipc_stress_test.cc',
+ ],
+ tags = [
+ 'manual',
+ ],
+ deps = [
+ '//third_party/gtest',
+ '//aos/common:time',
+ '//aos/common:queue_testutils',
+ '//aos/linux_code/ipc_lib:mutex',
+ ':core_lib',
+ '//aos/common:die',
+ '//aos/common/libc:dirname',
+ '//aos/common/libc:aos_strsignal',
+ '//aos/common/logging',
+ ],
+)
+
+cc_library(
+ name = 'scoped_message_ptr',
+ deps = [
+ ':queue',
+ ],
+)
diff --git a/aos/linux_code/logging/BUILD b/aos/linux_code/logging/BUILD
index fbd153f..a35cd0e 100644
--- a/aos/linux_code/logging/BUILD
+++ b/aos/linux_code/logging/BUILD
@@ -1,60 +1,72 @@
package(default_visibility = ['//visibility:public'])
cc_library(
- name = 'linux_interface',
+ name = 'log_replay',
srcs = [
- 'linux_interface.cc',
+ 'log_replay.cc',
+ ],
+ hdrs = [
+ 'log_replay.h',
],
deps = [
- '//aos/linux_code:complex_thread_local',
- '//aos/common:die',
- '//aos/common/libc:aos_strerror',
- ],
-)
-
-cc_library(
- name = 'linux_logging',
- srcs = [
- 'linux_logging.cc',
- ],
- deps = [
+ ':binary_log_file',
+ '//aos/common:queues',
+ '//aos/common/logging',
'//aos/linux_code/ipc_lib:queue',
+ ],
+)
+
+cc_binary(
+ name = 'binary_log_writer',
+ srcs = [
+ 'binary_log_writer.cc',
+ ],
+ deps = [
+ '//aos/common/logging',
+ '//aos/linux_code:init',
+ '//aos/linux_code:configuration',
+ '//aos/common:die',
+ ':binary_log_file',
+ '//aos/common:queue_types',
+ ],
+)
+
+cc_binary(
+ name = 'log_streamer',
+ srcs = [
+ 'log_streamer.cc',
+ ],
+ deps = [
+ '//aos/common/logging',
+ '//aos/linux_code:init',
'//aos/common:time',
+ '//aos/linux_code/ipc_lib:queue',
],
)
-cc_test(
- name = 'logging_impl_test',
+cc_binary(
+ name = 'log_displayer',
srcs = [
- 'logging_impl_test.cc',
+ 'log_displayer.cc',
],
deps = [
- '//third_party/gtest',
- '//aos/common/logging:logging',
+ '//aos/common/logging',
+ '//aos/linux_code:init',
+ ':binary_log_file',
+ '//aos/common:queue_types',
+ '//aos/linux_code:configuration',
],
)
cc_library(
- name = 'queue_logging',
+ name = 'binary_log_file',
srcs = [
- 'queue_logging.cc',
+ 'binary_log_file.cc',
+ ],
+ hdrs = [
+ 'binary_log_file.h',
],
deps = [
- '//aos/common/logging:logging',
- '//aos/common:die',
- '//aos/common:queue_types',
- ],
-)
-
-cc_library(
- name = 'matrix_logging',
- srcs = [
- 'matrix_logging.cc',
- ],
- deps = [
- '//aos/common/logging:logging',
- '//aos/common:die',
- '//aos/common:queue_types',
- '//third_party/eigen',
+ '//aos/common/logging',
],
)
diff --git a/aos/linux_code/output/BUILD b/aos/linux_code/output/BUILD
new file mode 100644
index 0000000..bcd63bd
--- /dev/null
+++ b/aos/linux_code/output/BUILD
@@ -0,0 +1,22 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'http_server',
+ srcs = [
+ 'HTTPServer.cpp',
+ 'evhttp_ctemplate_emitter.cc',
+ 'ctemplate_cache.cc',
+ ],
+ hdrs = [
+ 'HTTPServer.h',
+ 'evhttp_ctemplate_emitter.h',
+ 'ctemplate_cache.h',
+ ],
+ deps = [
+ '//third_party/libevent',
+ '//third_party/ctemplate',
+ '//aos/common:once',
+ '//aos/common:scoped_fd',
+ '//aos/common/logging',
+ ],
+)
diff --git a/aos/linux_code/starter/BUILD b/aos/linux_code/starter/BUILD
new file mode 100644
index 0000000..2e5a80c
--- /dev/null
+++ b/aos/linux_code/starter/BUILD
@@ -0,0 +1,17 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_binary(
+ name = 'starter_exe',
+ srcs = [
+ 'starter.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//third_party/libevent',
+ '//aos/common/logging',
+ '//aos/common:once',
+ '//aos/common:time',
+ '//aos/common/libc:aos_strsignal',
+ '//aos/common/util:run_command',
+ ],
+)
diff --git a/aos/prime/input/BUILD b/aos/prime/input/BUILD
new file mode 100644
index 0000000..30cb053
--- /dev/null
+++ b/aos/prime/input/BUILD
@@ -0,0 +1,18 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'joystick_input',
+ srcs = [
+ 'joystick_input.cc',
+ ],
+ hdrs = [
+ 'joystick_input.h',
+ ],
+ deps = [
+ '//aos/common/input:driver_station_data',
+ '//aos/common/messages:robot_state',
+ '//aos/common/network:socket',
+ '//aos/common/logging',
+ '//aos/common/logging:queue_logging',
+ ],
+)
diff --git a/doc/TODO.bazel b/doc/TODO.bazel
new file mode 100644
index 0000000..379792a
--- /dev/null
+++ b/doc/TODO.bazel
@@ -0,0 +1,15 @@
+//y2014/prime:All needs to conditionally have //y2014/wpilib:wpilib_interface.
+//y2014/prime:All needs to copy start_list.txt.
+ y2015 too
+
+//y2015:http_status needs to be finished.
+
+//aos/common:queue_types needs to be finished.
+
+Actually write //aos:prime_binaries.
+ Contents come from aos/build/aos_all.gyp.
+
+//aos/linux_code/starter needs to copy starter.sh.
+
+//aos/common:{condition,mutex,event} need their actual targets moved to
+ //aos/linux_code/ipc_lib where they belong and everything expects them.
diff --git a/doc/gyp_to_bazel.py b/doc/gyp_to_bazel.py
index b3da95b..85f7835 100755
--- a/doc/gyp_to_bazel.py
+++ b/doc/gyp_to_bazel.py
@@ -15,6 +15,7 @@
import os
import yaml
import collections
+import re
'''Converts a Gyp filename to its Bazel equivalent.
@@ -60,8 +61,24 @@
if target[0] == ':':
return target
+ # These thin wrappers won't be copied.
if target == '<(AOS)/build/aos.gyp:logging':
return '//aos/common/logging'
+ if target == '<(AOS)/build/aos.gyp:logging_interface':
+ return '//aos/common/logging:logging_interface'
+
+ # These are getting moved to the right place manually.
+ if target == '<(AOS)/common/common.gyp:condition':
+ return '//aos/linux_code/ipc_lib:condition'
+ if target == '<(AOS)/common/common.gyp:mutex':
+ return '//aos/linux_code/ipc_lib:mutex'
+ if target == '<(AOS)/common/common.gyp:event':
+ return '//aos/linux_code/ipc_lib:event'
+
+ # By building ..., we can mostly ignore these.
+ if (target == '<(AOS)/build/aos_all.gyp:Prime' or
+ target == '../../frc971/frc971.gyp:All'):
+ return '//aos:prime_binaries'
split = target.split(':')
if len(split) != 2:
@@ -95,6 +112,9 @@
def add_dep(self, bazel_dep):
self.__deps.append(bazel_dep)
+ def _type(self):
+ return self.__type
+
'''Returns a collections.OrderedDict with all of the attributes on the
Bazel rule this represents.
@@ -144,17 +164,30 @@
super(CcBuildTarget, self).__init__(type, name)
self.__srcs = []
+ self.__hdrs = []
self.__deps = []
+ self.__tags = []
def add_src(self, src):
self.__srcs.append(src)
+ def add_hdr(self, hdr):
+ self.__hdrs.append(hdr)
+
def add_dep(self, dep):
self.__deps.append(dep)
+ def add_tag(self, tag):
+ if self._type() != 'cc_test':
+ raise RuntimeError(
+ 'Trying to add tag %s to non-test type %s' % (tag, self._type()))
+ self.__tags.append(tag)
+
def attrs(self):
r = super(CcBuildTarget, self).attrs();
r['srcs'] = self.__srcs
+ r['hdrs'] = self.__hdrs
+ r['tags'] = self.__tags
r['deps'] = self.__deps
return r
@@ -179,18 +212,29 @@
super(QueueTarget, self).__init__('queue_library', name)
self.__srcs = []
+ self.__deps = []
def add_src(self, src):
self.__srcs.append(src)
+ def add_dep(self, dep):
+ self.__deps.append(dep)
+
def loads(self):
- return set((('aos/build/queues', 'queue_library'),))
+ return set((('/aos/build/queues', 'queue_library'),))
def attrs(self):
r = super(QueueTarget, self).attrs();
r['srcs'] = self.__srcs
+ r['deps'] = self.__deps
return r
+def _warn_attr(keys_to_handle, name, gyp_file_name, attr):
+ if attr in keys_to_handle:
+ print('Target %s in %s has %s' % (name, gyp_file_name, attr),
+ file=sys.stderr)
+ keys_to_handle.remove(attr)
+
def main(argv):
for d in argv:
build_targets = []
@@ -208,32 +252,96 @@
targets = gyp['targets']
for gyp_target in targets:
target = None
+ keys_to_handle = set(gyp_target.keys())
+ if 'export_dependent_settings' in gyp_target:
+ keys_to_handle.remove('export_dependent_settings')
name = gyp_target['target_name']
+ keys_to_handle.remove('target_name')
+ _warn_attr(keys_to_handle, name, gyp_file_name, 'actions')
+ _warn_attr(keys_to_handle, name, gyp_file_name, 'conditions')
+ _warn_attr(keys_to_handle, name, gyp_file_name, 'copies')
+ _warn_attr(keys_to_handle, name, gyp_file_name, 'hard_dependency')
+ _warn_attr(keys_to_handle, name, gyp_file_name,
+ 'direct_dependent_settings')
+
+ # These are getting moved to the right place manually.
+ if gyp_file_name == 'aos/common/common.gyp':
+ if name == 'condition' or name == 'mutex' or name == 'event':
+ continue
+ # By building ..., this becomes irrelevant.
+ if gyp_file_name == 'frc971/frc971.gyp':
+ if name == 'All':
+ continue
+
+ if 'variables' in gyp_target:
+ if 'no_rsync' in gyp_target['variables']:
+ del gyp_target['variables']['no_rsync']
+
type = gyp_target['type']
+ keys_to_handle.remove('type')
if (type in ['static_library', 'executable'] and
not 'includes' in gyp_target):
cc_type = {
'static_library': 'cc_library',
'executable': 'cc_binary',
}[type]
+ if re.match('.*_test$', name) and cc_type == 'cc_binary':
+ cc_type = 'cc_test'
target = CcBuildTarget(cc_type, name)
- for dep in gyp_target['dependencies']:
- target.add_dep(gyp_target_to_bazel(gyp_file_name, dep))
- for src in gyp_target['sources']:
- target.add_src(src)
+ if 'dependencies' in gyp_target:
+ for dep in gyp_target['dependencies']:
+ target.add_dep(gyp_target_to_bazel(gyp_file_name, dep))
+ keys_to_handle.remove('dependencies')
+ if 'sources' in gyp_target:
+ for src in gyp_target['sources']:
+ # In //aos/common:queue_types, this will get dealt with manually
+ # along with the actions.
+ if src == '<(print_field_cc)':
+ continue
+
+ if '/' in src:
+ raise RuntimeError(
+ 'Bad folder for %s in target %s in %s' % (src, name,
+ gyp_file_name))
+
+ target.add_src(src)
+
+ # This is sort of a heuristic: if there's a header file matching
+ # the source file, add it as an hdr. This is going to require some
+ # manual cleanup, but it'll be close.
+ src_filename = os.path.join(os.path.dirname(gyp_file_name), src)
+ if not os.path.exists(src_filename):
+ raise RuntimeError(
+ 'Can not find source %s in target %s' % (src_filename,
+ name))
+ header = src_filename.rsplit('.', 2)[0] + '.h'
+ if os.path.exists(header):
+ target.add_hdr(src.rsplit('.', 2)[0] + '.h')
+ keys_to_handle.remove('sources')
+ if 'variables' in gyp_target:
+ vars = gyp_target['variables']
+ if 'is_special_test' in vars:
+ if vars['is_special_test'] != 1:
+ raise RuntimeError(
+ 'Unexpected is_special_test value in target %s' % name)
+ target.add_tag('manual')
+ del vars['is_special_test']
elif type == 'none':
target = FilegroupTarget(name)
for dep in gyp_target['dependencies']:
target.add_src(gyp_target_to_bazel(gyp_file_name, dep))
+ keys_to_handle.remove('dependencies')
elif 'includes' in gyp_target:
includes = gyp_target['includes']
+ keys_to_handle.remove('includes')
if len(includes) != 1:
raise RuntimeError(
'Not sure how to handle multiple includes in %s' % gyp_target)
include = gyp_file_to_bazel(gyp_file_name, includes[0])
if include == '//aos/build/queues.gypi':
vars = gyp_target['variables']
+ keys_to_handle.remove('variables')
if 'header_path' not in vars:
raise RuntimeError(
'No header_path for target %s in %s' % (name, gyp_file_name))
@@ -253,6 +361,11 @@
name,
gyp_file_name))
target.add_src(src)
+ keys_to_handle.remove('sources')
+ if 'dependencies' in gyp_target:
+ for dep in gyp_target['dependencies']:
+ target.add_dep(gyp_target_to_bazel(gyp_file_name, dep))
+ keys_to_handle.remove('dependencies')
else:
raise RuntimeError(
'Unknown include %s for target %s in %s' % (include, name,
@@ -263,8 +376,31 @@
if not target:
raise
+
+ if (gyp_file_name == 'y2015/http_status/http_status.gyp' and
+ name == 'http_status'):
+ # We'll handle these manually.
+ keys_to_handle.remove('include_dirs')
+ if (gyp_file_name == 'aos/common/common.gyp' and
+ name == 'queue_types'):
+ # These will get handled manually as part of dealing with the
+ # actions.
+ keys_to_handle.remove('variables')
+
+ # If there were variables but they all got deleted, then we don't
+ # actually have any more to handle.
+ if 'variables' in keys_to_handle and not gyp_target['variables']:
+ keys_to_handle.remove('variables')
+ if keys_to_handle:
+ raise RuntimeError(
+ 'Unhandled keys for target %s in %s: %s' % (name, gyp_file_name,
+ keys_to_handle))
build_targets.append(target)
+ if not build_targets:
+ print('No output targets for %s' % d, file=sys.stderr)
+ continue
+
with open(os.path.join(d, 'BUILD'), 'w') as build_file:
build_file.write(
'package(default_visibility = [\'//visibility:public\'])\n')
diff --git a/doc/run_gyp_to_bazel.sh b/doc/run_gyp_to_bazel.sh
new file mode 100755
index 0000000..759caeb
--- /dev/null
+++ b/doc/run_gyp_to_bazel.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# This script runs doc/gyp_to_bazel for most of our code base.
+# We're skipping bot3 for now because it's under active development.
+
+set -e
+set -u
+
+run_for_folder() {
+ PYTHONPATH=${HOME}/pyyaml-3.11-prefix/lib/python3.4/site-packages/ find $1 \
+ -type d \
+ -exec bash -c '[[ -r {}/$(basename {}).gyp ]] && doc/gyp_to_bazel.py {}' \;
+ find $1 -type f \( -name '*.gyp' -or -name '*.gypi' \) \
+ -exec bash -c '[[ $(basename $(dirname {})).gyp = $(basename {}) ]] || \
+ echo Need to manually convert {} >&2' \;
+}
+
+run_for_folder aos
+run_for_folder frc971
+run_for_folder y2014
+run_for_folder y2015
+run_for_folder vision
diff --git a/frc971/autonomous/BUILD b/frc971/autonomous/BUILD
new file mode 100644
index 0000000..7f6b3e7
--- /dev/null
+++ b/frc971/autonomous/BUILD
@@ -0,0 +1,10 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+queue_library(
+ name = 'auto_queue',
+ srcs = [
+ 'auto.q',
+ ],
+)
diff --git a/frc971/control_loops/BUILD b/frc971/control_loops/BUILD
new file mode 100644
index 0000000..b6e1caf
--- /dev/null
+++ b/frc971/control_loops/BUILD
@@ -0,0 +1,100 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_library(
+ name = 'team_number_test_environment',
+ srcs = [
+ 'team_number_test_environment.cc',
+ ],
+ hdrs = [
+ 'team_number_test_environment.h',
+ ],
+ deps = [
+ '//aos/common/network:team_number',
+ '//third_party/gtest',
+ ],
+)
+
+cc_test(
+ name = 'state_feedback_loop_test',
+ srcs = [
+ 'state_feedback_loop_test.cc',
+ ],
+ deps = [
+ ':state_feedback_loop',
+ '//third_party/gtest',
+ ],
+)
+
+cc_library(
+ name = 'hall_effect_tracker',
+ deps = [
+ ':queues',
+ ],
+)
+
+queue_library(
+ name = 'queues',
+ srcs = [
+ 'control_loops.q',
+ ],
+)
+
+cc_test(
+ name = 'position_sensor_sim_test',
+ srcs = [
+ 'position_sensor_sim_test.cc',
+ ],
+ deps = [
+ ':queues',
+ ':position_sensor_sim',
+ '//third_party/gtest',
+ '//aos/common/logging',
+ ],
+)
+
+cc_library(
+ name = 'position_sensor_sim',
+ srcs = [
+ 'position_sensor_sim.cc',
+ ],
+ hdrs = [
+ 'position_sensor_sim.h',
+ ],
+ deps = [
+ ':queues',
+ ':gaussian_noise',
+ ],
+)
+
+cc_library(
+ name = 'gaussian_noise',
+ srcs = [
+ 'gaussian_noise.cc',
+ ],
+ hdrs = [
+ 'gaussian_noise.h',
+ ],
+)
+
+cc_library(
+ name = 'coerce_goal',
+ srcs = [
+ 'coerce_goal.cc',
+ ],
+ hdrs = [
+ 'coerce_goal.h',
+ ],
+ deps = [
+ '//third_party/eigen',
+ '//aos/common/controls:polytope',
+ ],
+)
+
+cc_library(
+ name = 'state_feedback_loop',
+ deps = [
+ '//third_party/eigen',
+ ],
+)
diff --git a/frc971/control_loops/voltage_cap/BUILD b/frc971/control_loops/voltage_cap/BUILD
new file mode 100644
index 0000000..1b9cc63
--- /dev/null
+++ b/frc971/control_loops/voltage_cap/BUILD
@@ -0,0 +1,23 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'voltage_cap',
+ srcs = [
+ 'voltage_cap.cc',
+ ],
+ hdrs = [
+ 'voltage_cap.h',
+ ],
+)
+
+cc_test(
+ name = 'voltage_cap_test',
+ srcs = [
+ 'voltage_cap_test.cc',
+ ],
+ deps = [
+ ':voltage_cap',
+ '//third_party/gtest',
+ '//aos/common:queue_testutils',
+ ],
+)
diff --git a/frc971/queues/BUILD b/frc971/queues/BUILD
new file mode 100644
index 0000000..a48cb78
--- /dev/null
+++ b/frc971/queues/BUILD
@@ -0,0 +1,10 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+queue_library(
+ name = 'gyro',
+ srcs = [
+ 'gyro.q',
+ ],
+)
diff --git a/frc971/wpilib/BUILD b/frc971/wpilib/BUILD
new file mode 100644
index 0000000..a7e8697
--- /dev/null
+++ b/frc971/wpilib/BUILD
@@ -0,0 +1,150 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+queue_library(
+ name = 'logging_queue',
+ srcs = [
+ 'logging.q',
+ ],
+)
+
+cc_library(
+ name = 'encoder_and_potentiometer',
+ srcs = [
+ 'encoder_and_potentiometer.cc',
+ ],
+ hdrs = [
+ 'encoder_and_potentiometer.h',
+ ],
+ deps = [
+ '//third_party/WPILib',
+ ':dma_edge_counting',
+ '//aos/linux_code:init',
+ '//aos/common/logging',
+ '//aos/linux_code/ipc_lib:mutex',
+ ],
+)
+
+cc_library(
+ name = 'dma_edge_counting',
+ srcs = [
+ 'dma_edge_counting.cc',
+ ],
+ hdrs = [
+ 'dma_edge_counting.h',
+ ],
+ deps = [
+ '//third_party/WPILib',
+ '//aos/common/logging',
+ ':hall_effect',
+ ],
+)
+
+cc_library(
+ name = 'interrupt_edge_counting',
+ srcs = [
+ 'interrupt_edge_counting.cc',
+ ],
+ hdrs = [
+ 'interrupt_edge_counting.h',
+ ],
+ deps = [
+ '//third_party/WPILib',
+ '//aos/common/logging',
+ '//aos/common:stl_mutex',
+ '//aos/common:time',
+ '//aos/linux_code:init',
+ ],
+)
+
+cc_library(
+ name = 'buffered_pcm',
+ srcs = [
+ 'buffered_solenoid.cc',
+ 'buffered_pcm.cc',
+ ],
+ hdrs = [
+ 'buffered_solenoid.h',
+ 'buffered_pcm.h',
+ ],
+ deps = [
+ '//third_party/WPILib',
+ '//aos/common/logging',
+ ],
+)
+
+cc_library(
+ name = 'gyro_interface',
+ srcs = [
+ 'gyro_interface.cc',
+ ],
+ hdrs = [
+ 'gyro_interface.h',
+ ],
+ deps = [
+ '//third_party/WPILib',
+ '//aos/common/logging',
+ ],
+)
+
+cc_library(
+ name = 'gyro_sender',
+ srcs = [
+ 'gyro_sender.cc',
+ ],
+ hdrs = [
+ 'gyro_sender.h',
+ ],
+ deps = [
+ '//frc971/queues:gyro',
+ ':gyro_interface',
+ '//aos/common/logging',
+ '//aos/common/logging:queue_logging',
+ '//aos/common/util:phased_loop',
+ '//aos/common/messages:robot_state',
+ '//aos/linux_code:init',
+ '//aos/common:time',
+ ],
+)
+
+cc_library(
+ name = 'loop_output_handler',
+ srcs = [
+ 'loop_output_handler.cc',
+ ],
+ hdrs = [
+ 'loop_output_handler.h',
+ ],
+ deps = [
+ '//aos/common:scoped_fd',
+ '//aos/linux_code:init',
+ '//aos/common:time',
+ '//aos/common/util:log_interval',
+ '//aos/common/messages:robot_state',
+ ],
+)
+
+cc_library(
+ name = 'joystick_sender',
+ srcs = [
+ 'joystick_sender.cc',
+ ],
+ hdrs = [
+ 'joystick_sender.h',
+ ],
+ deps = [
+ '//third_party/WPILib',
+ '//aos/common/messages:robot_state',
+ '//aos/linux_code:init',
+ '//aos/common/network:team_number',
+ '//aos/common/logging:queue_logging',
+ ],
+)
+
+cc_library(
+ name = 'hall_effect',
+ deps = [
+ '//third_party/WPILib',
+ ],
+)
diff --git a/frc971/zeroing/BUILD b/frc971/zeroing/BUILD
new file mode 100644
index 0000000..7209886
--- /dev/null
+++ b/frc971/zeroing/BUILD
@@ -0,0 +1,30 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'zeroing',
+ srcs = [
+ 'zeroing.cc',
+ ],
+ hdrs = [
+ 'zeroing.h',
+ ],
+ deps = [
+ '//frc971/control_loops:queues',
+ ],
+)
+
+cc_test(
+ name = 'zeroing_test',
+ srcs = [
+ 'zeroing_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ '//aos/common:queue_testutils',
+ ':zeroing',
+ '//aos/common/util:thread',
+ '//aos/common:die',
+ '//frc971/control_loops:position_sensor_sim',
+ '//frc971/control_loops:queues',
+ ],
+)
diff --git a/vision/BUILD b/vision/BUILD
new file mode 100644
index 0000000..d1f151a
--- /dev/null
+++ b/vision/BUILD
@@ -0,0 +1,41 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_binary(
+ name = 'OpenCVWorkTask',
+ srcs = [
+ 'OpenCVWorkTask.cpp',
+ 'CameraProcessor.cpp',
+ 'JPEGRoutines.cpp',
+ ],
+ hdrs = [
+ 'OpenCVWorkTask.h',
+ 'CameraProcessor.h',
+ 'JPEGRoutines.h',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common:time',
+ '//third_party/libevent',
+ '//third_party/libjpeg',
+ '//third_party/opencv',
+ '//aos/linux_code/camera:buffers',
+ '//frc971/queues:queues',
+ ],
+)
+
+cc_binary(
+ name = 'GoalMaster',
+ srcs = [
+ 'GoalMaster.cpp',
+ 'SensorProcessor.cpp',
+ ],
+ hdrs = [
+ 'SensorProcessor.h',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common:time',
+ '//frc971/queues:queues',
+ '//aos/common/logging',
+ ],
+)
diff --git a/y2014/BUILD b/y2014/BUILD
index 9c65f34..e6c9019 100644
--- a/y2014/BUILD
+++ b/y2014/BUILD
@@ -5,6 +5,9 @@
srcs = [
'constants.cc',
],
+ hdrs = [
+ 'constants.h',
+ ],
deps = [
'//aos/common/logging',
'//aos/common:once',
diff --git a/y2014/actors/BUILD b/y2014/actors/BUILD
index 35c8ec9..e060569 100644
--- a/y2014/actors/BUILD
+++ b/y2014/actors/BUILD
@@ -15,6 +15,9 @@
srcs = [
'shoot_action.q',
],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ],
)
cc_library(
@@ -22,6 +25,9 @@
srcs = [
'shoot_actor.cc',
],
+ hdrs = [
+ 'shoot_actor.h',
+ ],
deps = [
':shoot_action_queue',
'//aos/common/actions:action_lib',
@@ -51,6 +57,9 @@
srcs = [
'drivetrain_action.q',
],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ],
)
cc_library(
@@ -58,6 +67,9 @@
srcs = [
'drivetrain_actor.cc',
],
+ hdrs = [
+ 'drivetrain_actor.h',
+ ],
deps = [
':drivetrain_action_queue',
'//y2014:constants',
diff --git a/y2014/autonomous/BUILD b/y2014/autonomous/BUILD
index 0ff5b7e..4a4c842 100644
--- a/y2014/autonomous/BUILD
+++ b/y2014/autonomous/BUILD
@@ -5,6 +5,9 @@
srcs = [
'auto.cc',
],
+ hdrs = [
+ 'auto.h',
+ ],
deps = [
'//frc971/autonomous:auto_queue',
'//aos/common/controls:control_loop',
diff --git a/y2014/control_loops/claw/BUILD b/y2014/control_loops/claw/BUILD
index 8c6bfef..dced51a 100644
--- a/y2014/control_loops/claw/BUILD
+++ b/y2014/control_loops/claw/BUILD
@@ -19,6 +19,10 @@
srcs = [
'claw.q',
],
+ deps = [
+ '//aos/common/controls:control_loop_queues',
+ '//frc971/control_loops:queues',
+ ],
)
cc_library(
@@ -27,6 +31,10 @@
'claw.cc',
'claw_motor_plant.cc',
],
+ hdrs = [
+ 'claw.h',
+ 'claw_motor_plant.h',
+ ],
deps = [
':claw_queue',
'//aos/common/controls:control_loop',
@@ -39,7 +47,7 @@
],
)
-cc_binary(
+cc_test(
name = 'claw_lib_test',
srcs = [
'claw_lib_test.cc',
diff --git a/y2014/control_loops/drivetrain/BUILD b/y2014/control_loops/drivetrain/BUILD
index 1c70601..14003b1 100644
--- a/y2014/control_loops/drivetrain/BUILD
+++ b/y2014/control_loops/drivetrain/BUILD
@@ -19,6 +19,9 @@
srcs = [
'drivetrain.q',
],
+ deps = [
+ '//aos/common/controls:control_loop_queues',
+ ],
)
cc_library(
@@ -27,6 +30,10 @@
'polydrivetrain_dog_motor_plant.cc',
'drivetrain_dog_motor_plant.cc',
],
+ hdrs = [
+ 'polydrivetrain_dog_motor_plant.h',
+ 'drivetrain_dog_motor_plant.h',
+ ],
deps = [
'//frc971/control_loops:state_feedback_loop',
],
@@ -38,6 +45,10 @@
'drivetrain.cc',
'polydrivetrain_cim_plant.cc',
],
+ hdrs = [
+ 'drivetrain.h',
+ 'polydrivetrain_cim_plant.h',
+ ],
deps = [
':drivetrain_queue',
'//aos/common/controls:control_loop',
@@ -52,7 +63,7 @@
],
)
-cc_binary(
+cc_test(
name = 'drivetrain_lib_test',
srcs = [
'drivetrain_lib_test.cc',
diff --git a/y2014/control_loops/shooter/BUILD b/y2014/control_loops/shooter/BUILD
index dbc9c8f..aba74b9 100644
--- a/y2014/control_loops/shooter/BUILD
+++ b/y2014/control_loops/shooter/BUILD
@@ -19,6 +19,10 @@
srcs = [
'shooter.q',
],
+ deps = [
+ '//aos/common/controls:control_loop_queues',
+ '//frc971/control_loops:queues',
+ ],
)
cc_library(
@@ -28,6 +32,11 @@
'shooter_motor_plant.cc',
'unaugmented_shooter_motor_plant.cc',
],
+ hdrs = [
+ 'shooter.h',
+ 'shooter_motor_plant.h',
+ 'unaugmented_shooter_motor_plant.h',
+ ],
deps = [
':shooter_queue',
'//aos/common/controls:control_loop',
@@ -37,7 +46,7 @@
],
)
-cc_binary(
+cc_test(
name = 'shooter_lib_test',
srcs = [
'shooter_lib_test.cc',
diff --git a/y2014/prime/BUILD b/y2014/prime/BUILD
index 7a787e9..0b7d88a 100644
--- a/y2014/prime/BUILD
+++ b/y2014/prime/BUILD
@@ -3,7 +3,7 @@
filegroup(
name = 'All',
srcs = [
- '//frc971:All',
+ '//aos:prime_binaries',
'//y2014/control_loops/drivetrain:drivetrain',
'//y2014/control_loops/drivetrain:drivetrain_lib_test',
'//y2014/control_loops/drivetrain:replay_drivetrain',
diff --git a/y2014/wpilib/BUILD b/y2014/wpilib/BUILD
index a80ab2d..ac2c1cf 100644
--- a/y2014/wpilib/BUILD
+++ b/y2014/wpilib/BUILD
@@ -21,6 +21,7 @@
'//aos/common/logging:queue_logging',
'//aos/common/messages:robot_state',
'//aos/common/util:phased_loop',
+ '//aos/common/messages:robot_state',
'//frc971/wpilib:hall_effect',
'//frc971/wpilib:joystick_sender',
'//frc971/wpilib:loop_output_handler',
diff --git a/y2015/BUILD b/y2015/BUILD
new file mode 100644
index 0000000..1219e63
--- /dev/null
+++ b/y2015/BUILD
@@ -0,0 +1,49 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'constants',
+ srcs = [
+ 'constants.cc',
+ ],
+ hdrs = [
+ 'constants.h',
+ ],
+ deps = [
+ '//aos/common/logging',
+ '//aos/common:once',
+ '//aos/common/network:team_number',
+ '//frc971/control_loops:state_feedback_loop',
+ '//y2015/control_loops/drivetrain:polydrivetrain_plants',
+ ],
+)
+
+cc_binary(
+ name = 'joystick_reader',
+ srcs = [
+ 'joystick_reader.cc',
+ ],
+ deps = [
+ '//aos/prime/input:joystick_input',
+ '//aos/linux_code:init',
+ '//aos/common/logging',
+ '//aos/common:time',
+ '//aos/common/util:log_interval',
+ '//aos/common/actions:action_lib',
+ '//frc971/queues:gyro',
+ '//y2015/control_loops/claw:claw_queue',
+ '//y2015/control_loops/drivetrain:drivetrain_queue',
+ '//y2015/control_loops/fridge:fridge_queue',
+ '//y2015:constants',
+ '//frc971/autonomous:auto_queue',
+ '//y2015/actors:stack_action_lib',
+ '//y2015/actors:stack_and_lift_action_lib',
+ '//y2015/actors:stack_and_hold_action_lib',
+ '//y2015/actors:pickup_action_lib',
+ '//y2015/actors:lift_action_lib',
+ '//y2015/actors:held_to_lift_action_lib',
+ '//y2015/actors:can_pickup_action_lib',
+ '//y2015/actors:score_action_lib',
+ '//y2015/actors:horizontal_can_pickup_action_lib',
+ '//y2015/actors:fridge_profile_lib',
+ ],
+)
diff --git a/y2015/actors/BUILD b/y2015/actors/BUILD
new file mode 100644
index 0000000..8500bf0
--- /dev/null
+++ b/y2015/actors/BUILD
@@ -0,0 +1,539 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+filegroup(
+ name = 'binaries',
+ srcs = [
+ ':drivetrain_action',
+ ':score_action',
+ ':score_action_test',
+ ':pickup_action',
+ ':stack_action',
+ ':stack_and_lift_action',
+ ':stack_and_hold_action',
+ ':held_to_lift_action',
+ ':can_pickup_action',
+ ':horizontal_can_pickup_action',
+ ':lift_action',
+ ':stack_action_test',
+ ],
+)
+
+queue_library(
+ name = 'drivetrain_action_queue',
+ srcs = [
+ 'drivetrain_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ],
+)
+
+cc_library(
+ name = 'drivetrain_action_lib',
+ srcs = [
+ 'drivetrain_actor.cc',
+ ],
+ hdrs = [
+ 'drivetrain_actor.h',
+ ],
+ deps = [
+ ':drivetrain_action_queue',
+ '//y2015:constants',
+ '//aos/common:time',
+ '//aos/common/util:phased_loop',
+ '//aos/common/logging',
+ '//aos/common/actions:action_lib',
+ '//aos/common/logging:queue_logging',
+ '//third_party/eigen',
+ '//aos/common/util:trapezoid_profile',
+ '//y2015/control_loops/drivetrain:drivetrain_queue',
+ ],
+)
+
+cc_binary(
+ name = 'drivetrain_action',
+ srcs = [
+ 'drivetrain_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':drivetrain_action_queue',
+ ':drivetrain_action_lib',
+ ],
+)
+
+cc_library(
+ name = 'fridge_profile_lib',
+ srcs = [
+ 'fridge_profile_lib.cc',
+ ],
+ hdrs = [
+ 'fridge_profile_lib.h',
+ ],
+ deps = [
+ '//aos/common/logging:logging_interface',
+ '//aos/common/actions:action_lib',
+ '//y2015/control_loops/fridge:fridge_queue',
+ ],
+)
+
+queue_library(
+ name = 'score_action_queue',
+ srcs = [
+ 'score_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ],
+)
+
+cc_library(
+ name = 'score_action_lib',
+ srcs = [
+ 'score_actor.cc',
+ ],
+ hdrs = [
+ 'score_actor.h',
+ ],
+ deps = [
+ ':score_action_queue',
+ '//aos/common/logging',
+ '//aos/common/actions:action_lib',
+ '//aos/common/controls:control_loop',
+ '//y2015:constants',
+ '//y2015/control_loops/fridge:fridge_queue',
+ '//third_party/eigen',
+ ],
+)
+
+cc_binary(
+ name = 'score_action',
+ srcs = [
+ 'score_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':score_action_queue',
+ ':score_action_lib',
+ ],
+)
+
+cc_test(
+ name = 'score_action_test',
+ srcs = [
+ 'score_actor_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ '//aos/common:queue_testutils',
+ '//aos/common/logging:queue_logging',
+ '//aos/common:queues',
+ '//aos/common:time',
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ '//y2015/control_loops/fridge:fridge_queue',
+ '//frc971/control_loops:team_number_test_environment',
+ ':score_action_queue',
+ ':score_action_lib',
+ ],
+)
+
+queue_library(
+ name = 'pickup_action_queue',
+ srcs = [
+ 'pickup_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ],
+)
+
+cc_library(
+ name = 'pickup_action_lib',
+ srcs = [
+ 'pickup_actor.cc',
+ ],
+ hdrs = [
+ 'pickup_actor.h',
+ ],
+ deps = [
+ ':pickup_action_queue',
+ '//aos/common/logging',
+ '//aos/common/actions:action_lib',
+ '//aos/common/controls:control_loop',
+ '//y2015/control_loops/claw:claw_queue',
+ ],
+)
+
+cc_binary(
+ name = 'pickup_action',
+ srcs = [
+ 'pickup_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':pickup_action_queue',
+ ':pickup_action_lib',
+ ],
+)
+
+queue_library(
+ name = 'can_pickup_action_queue',
+ srcs = [
+ 'can_pickup_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ],
+)
+
+cc_library(
+ name = 'can_pickup_action_lib',
+ srcs = [
+ 'can_pickup_actor.cc',
+ ],
+ hdrs = [
+ 'can_pickup_actor.h',
+ ],
+ deps = [
+ ':fridge_profile_lib',
+ ':can_pickup_action_queue',
+ '//aos/common/logging',
+ '//aos/common/util:phased_loop',
+ '//aos/common/actions:action_lib',
+ '//y2015:constants',
+ '//y2015/control_loops/claw:claw_queue',
+ '//aos/common/controls:control_loop',
+ ],
+)
+
+cc_binary(
+ name = 'can_pickup_action',
+ srcs = [
+ 'can_pickup_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':can_pickup_action_queue',
+ ':can_pickup_action_lib',
+ ],
+)
+
+queue_library(
+ name = 'horizontal_can_pickup_action_queue',
+ srcs = [
+ 'horizontal_can_pickup_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ],
+)
+
+cc_library(
+ name = 'horizontal_can_pickup_action_lib',
+ srcs = [
+ 'horizontal_can_pickup_actor.cc',
+ ],
+ hdrs = [
+ 'horizontal_can_pickup_actor.h',
+ ],
+ deps = [
+ ':fridge_profile_lib',
+ ':horizontal_can_pickup_action_queue',
+ '//aos/common/logging',
+ '//aos/common/util:phased_loop',
+ '//aos/common/actions:action_lib',
+ '//y2015:constants',
+ '//y2015/control_loops/claw:claw_queue',
+ '//aos/common/controls:control_loop',
+ ],
+)
+
+cc_binary(
+ name = 'horizontal_can_pickup_action',
+ srcs = [
+ 'horizontal_can_pickup_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':horizontal_can_pickup_action_queue',
+ ':horizontal_can_pickup_action_lib',
+ ],
+)
+
+queue_library(
+ name = 'held_to_lift_action_queue',
+ srcs = [
+ 'held_to_lift_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ':lift_action_params',
+ ],
+)
+
+cc_library(
+ name = 'held_to_lift_action_lib',
+ srcs = [
+ 'held_to_lift_actor.cc',
+ ],
+ hdrs = [
+ 'held_to_lift_actor.h',
+ ],
+ deps = [
+ ':fridge_profile_lib',
+ ':held_to_lift_action_queue',
+ ':lift_action_lib',
+ '//aos/common/logging',
+ '//aos/common/util:phased_loop',
+ '//aos/common/actions:action_lib',
+ '//y2015:constants',
+ '//y2015/control_loops/claw:claw_queue',
+ '//aos/common/controls:control_loop',
+ ],
+)
+
+cc_binary(
+ name = 'held_to_lift_action',
+ srcs = [
+ 'held_to_lift_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':held_to_lift_action_queue',
+ ':held_to_lift_action_lib',
+ ],
+)
+
+queue_library(
+ name = 'stack_and_hold_action_queue',
+ srcs = [
+ 'stack_and_hold_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ':stack_action_params',
+ ],
+)
+
+cc_library(
+ name = 'stack_and_hold_action_lib',
+ srcs = [
+ 'stack_and_hold_actor.cc',
+ ],
+ hdrs = [
+ 'stack_and_hold_actor.h',
+ ],
+ deps = [
+ ':fridge_profile_lib',
+ ':stack_and_hold_action_queue',
+ ':stack_action_lib',
+ '//aos/common/logging',
+ '//aos/common/util:phased_loop',
+ '//aos/common/actions:action_lib',
+ '//y2015:constants',
+ '//y2015/control_loops/claw:claw_queue',
+ '//aos/common/controls:control_loop',
+ ],
+)
+
+cc_binary(
+ name = 'stack_and_hold_action',
+ srcs = [
+ 'stack_and_hold_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':stack_and_hold_action_queue',
+ ':stack_and_hold_action_lib',
+ ],
+)
+
+queue_library(
+ name = 'stack_and_lift_action_queue',
+ srcs = [
+ 'stack_and_lift_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ':stack_action_params',
+ ':lift_action_params',
+ ],
+)
+
+cc_library(
+ name = 'stack_and_lift_action_lib',
+ srcs = [
+ 'stack_and_lift_actor.cc',
+ ],
+ hdrs = [
+ 'stack_and_lift_actor.h',
+ ],
+ deps = [
+ ':fridge_profile_lib',
+ ':stack_and_lift_action_queue',
+ ':stack_action_lib',
+ ':lift_action_lib',
+ '//aos/common/logging',
+ '//aos/common/util:phased_loop',
+ '//aos/common/actions:action_lib',
+ '//y2015:constants',
+ '//y2015/control_loops/claw:claw_queue',
+ '//aos/common/controls:control_loop',
+ ],
+)
+
+cc_binary(
+ name = 'stack_and_lift_action',
+ srcs = [
+ 'stack_and_lift_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':stack_and_lift_action_queue',
+ ':stack_and_lift_action_lib',
+ ],
+)
+
+filegroup(
+ name = 'stack_action_queue',
+ srcs = [
+ ':stack_action_queue_real',
+ ],
+)
+
+queue_library(
+ name = 'stack_action_queue_real',
+ srcs = [
+ 'stack_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ':stack_action_params',
+ ],
+)
+
+queue_library(
+ name = 'stack_action_params',
+ srcs = [
+ 'stack_action_params.q',
+ ],
+)
+
+cc_test(
+ name = 'stack_action_test',
+ srcs = [
+ 'stack_actor_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ '//aos/common:queue_testutils',
+ '//aos/common/logging:queue_logging',
+ '//aos/common:queues',
+ '//aos/common:time',
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ '//y2015/control_loops/fridge:fridge_queue',
+ '//frc971/control_loops:team_number_test_environment',
+ ':stack_action_queue',
+ ':stack_action_lib',
+ ],
+)
+
+cc_library(
+ name = 'stack_action_lib',
+ srcs = [
+ 'stack_actor.cc',
+ ],
+ hdrs = [
+ 'stack_actor.h',
+ ],
+ deps = [
+ ':fridge_profile_lib',
+ ':stack_action_queue',
+ '//aos/common/logging',
+ '//aos/common/util:phased_loop',
+ '//aos/common/actions:action_lib',
+ '//y2015:constants',
+ '//y2015/control_loops/claw:claw_queue',
+ ],
+)
+
+cc_binary(
+ name = 'stack_action',
+ srcs = [
+ 'stack_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':stack_action_queue',
+ ':stack_action_lib',
+ ],
+)
+
+filegroup(
+ name = 'lift_action_queue',
+ srcs = [
+ ':lift_action_queue_real',
+ ],
+)
+
+queue_library(
+ name = 'lift_action_queue_real',
+ srcs = [
+ 'lift_action.q',
+ ],
+ deps = [
+ '//aos/common/actions:action_queue',
+ ':lift_action_params',
+ ],
+)
+
+queue_library(
+ name = 'lift_action_params',
+ srcs = [
+ 'lift_action_params.q',
+ ],
+)
+
+cc_library(
+ name = 'lift_action_lib',
+ srcs = [
+ 'lift_actor.cc',
+ ],
+ hdrs = [
+ 'lift_actor.h',
+ ],
+ deps = [
+ ':fridge_profile_lib',
+ ':lift_action_queue',
+ '//aos/common/logging',
+ '//aos/common/actions:action_lib',
+ '//y2015:constants',
+ '//y2015/control_loops/claw:claw_queue',
+ ],
+)
+
+cc_binary(
+ name = 'lift_action',
+ srcs = [
+ 'lift_actor_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/actions:action_lib',
+ ':lift_action_queue',
+ ':lift_action_lib',
+ ],
+)
diff --git a/y2015/autonomous/BUILD b/y2015/autonomous/BUILD
new file mode 100644
index 0000000..997c54f
--- /dev/null
+++ b/y2015/autonomous/BUILD
@@ -0,0 +1,40 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'auto_lib',
+ srcs = [
+ 'auto.cc',
+ ],
+ hdrs = [
+ 'auto.h',
+ ],
+ deps = [
+ '//frc971/autonomous:auto_queue',
+ '//aos/common/controls:control_loop',
+ '//y2015/control_loops/drivetrain:drivetrain_queue',
+ '//y2015:constants',
+ '//aos/common:time',
+ '//aos/common/util:phased_loop',
+ '//aos/common/util:trapezoid_profile',
+ '//aos/common/logging',
+ '//y2015/actors:drivetrain_action_lib',
+ '//aos/common/logging:queue_logging',
+ '//y2015/control_loops/claw:claw_queue',
+ '//y2015/control_loops/fridge:fridge_queue',
+ '//y2015/actors:stack_action_lib',
+ '//y2015/actors:held_to_lift_action_lib',
+ '//y2015/actors:pickup_action_lib',
+ ],
+)
+
+cc_binary(
+ name = 'auto',
+ srcs = [
+ 'auto_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//frc971/autonomous:auto_queue',
+ ':auto_lib',
+ ],
+)
diff --git a/y2015/control_loops/claw/BUILD b/y2015/control_loops/claw/BUILD
new file mode 100644
index 0000000..134ef55
--- /dev/null
+++ b/y2015/control_loops/claw/BUILD
@@ -0,0 +1,74 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_binary(
+ name = 'replay_claw',
+ srcs = [
+ 'replay_claw.cc',
+ ],
+ deps = [
+ ':claw_queue',
+ '//aos/common/controls:replay_control_loop',
+ '//aos/linux_code:init',
+ ],
+)
+
+queue_library(
+ name = 'claw_queue',
+ srcs = [
+ 'claw.q',
+ ],
+ deps = [
+ '//aos/common/controls:control_loop_queues',
+ '//frc971/control_loops:queues',
+ ],
+)
+
+cc_library(
+ name = 'claw_lib',
+ srcs = [
+ 'claw.cc',
+ 'claw_motor_plant.cc',
+ ],
+ hdrs = [
+ 'claw.h',
+ 'claw_motor_plant.h',
+ ],
+ deps = [
+ ':claw_queue',
+ '//aos/common/controls:control_loop',
+ '//aos/common:time',
+ '//aos/common/util:trapezoid_profile',
+ '//y2015:constants',
+ '//frc971/control_loops:state_feedback_loop',
+ '//frc971/zeroing:zeroing',
+ ],
+)
+
+cc_test(
+ name = 'claw_lib_test',
+ srcs = [
+ 'claw_lib_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':claw_lib',
+ '//frc971/control_loops:state_feedback_loop',
+ '//aos/common/controls:control_loop_test',
+ '//aos/common:time',
+ '//frc971/control_loops:position_sensor_sim',
+ '//frc971/control_loops:team_number_test_environment',
+ ],
+)
+
+cc_binary(
+ name = 'claw',
+ srcs = [
+ 'claw_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ ':claw_lib',
+ ],
+)
diff --git a/y2015/control_loops/drivetrain/BUILD b/y2015/control_loops/drivetrain/BUILD
new file mode 100644
index 0000000..c08e4b0
--- /dev/null
+++ b/y2015/control_loops/drivetrain/BUILD
@@ -0,0 +1,92 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_binary(
+ name = 'replay_drivetrain',
+ srcs = [
+ 'replay_drivetrain.cc',
+ ],
+ deps = [
+ ':drivetrain_queue',
+ '//aos/common/controls:replay_control_loop',
+ '//aos/linux_code:init',
+ ],
+)
+
+queue_library(
+ name = 'drivetrain_queue',
+ srcs = [
+ 'drivetrain.q',
+ ],
+ deps = [
+ '//aos/common/controls:control_loop_queues',
+ ],
+)
+
+cc_library(
+ name = 'polydrivetrain_plants',
+ srcs = [
+ 'polydrivetrain_dog_motor_plant.cc',
+ 'drivetrain_dog_motor_plant.cc',
+ ],
+ hdrs = [
+ 'polydrivetrain_dog_motor_plant.h',
+ 'drivetrain_dog_motor_plant.h',
+ ],
+ deps = [
+ '//frc971/control_loops:state_feedback_loop',
+ ],
+)
+
+cc_library(
+ name = 'drivetrain_lib',
+ srcs = [
+ 'drivetrain.cc',
+ 'polydrivetrain_cim_plant.cc',
+ ],
+ hdrs = [
+ 'drivetrain.h',
+ 'polydrivetrain_cim_plant.h',
+ ],
+ deps = [
+ ':drivetrain_queue',
+ '//aos/common/controls:control_loop',
+ '//y2015:constants',
+ '//aos/common/controls:polytope',
+ '//frc971/control_loops:state_feedback_loop',
+ '//frc971/control_loops:coerce_goal',
+ '//frc971/queues:gyro',
+ '//aos/common/util:log_interval',
+ '//aos/common/logging:queue_logging',
+ '//aos/common/logging:matrix_logging',
+ ],
+)
+
+cc_test(
+ name = 'drivetrain_lib_test',
+ srcs = [
+ 'drivetrain_lib_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':drivetrain_queue',
+ ':drivetrain_lib',
+ '//aos/common/controls:control_loop_test',
+ '//frc971/control_loops:state_feedback_loop',
+ '//frc971/queues:gyro',
+ '//aos/common:queues',
+ ],
+)
+
+cc_binary(
+ name = 'drivetrain',
+ srcs = [
+ 'drivetrain_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ ':drivetrain_lib',
+ ':drivetrain_queue',
+ ],
+)
diff --git a/y2015/control_loops/fridge/BUILD b/y2015/control_loops/fridge/BUILD
new file mode 100644
index 0000000..1304a82
--- /dev/null
+++ b/y2015/control_loops/fridge/BUILD
@@ -0,0 +1,80 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_binary(
+ name = 'replay_fridge',
+ srcs = [
+ 'replay_fridge.cc',
+ ],
+ deps = [
+ ':fridge_queue',
+ '//aos/common/controls:replay_control_loop',
+ '//aos/linux_code:init',
+ ],
+)
+
+queue_library(
+ name = 'fridge_queue',
+ srcs = [
+ 'fridge.q',
+ ],
+ deps = [
+ '//aos/common/controls:control_loop_queues',
+ '//frc971/control_loops:queues',
+ '//frc971/zeroing:zeroing',
+ ],
+)
+
+cc_library(
+ name = 'fridge_lib',
+ srcs = [
+ 'fridge.cc',
+ 'integral_arm_plant.cc',
+ 'elevator_motor_plant.cc',
+ ],
+ hdrs = [
+ 'fridge.h',
+ 'integral_arm_plant.h',
+ 'elevator_motor_plant.h',
+ ],
+ deps = [
+ ':fridge_queue',
+ '//aos/common/controls:control_loop',
+ '//aos/common/util:trapezoid_profile',
+ '//y2015:constants',
+ '//frc971/control_loops:state_feedback_loop',
+ '//frc971/control_loops/voltage_cap:voltage_cap',
+ ],
+)
+
+cc_test(
+ name = 'fridge_lib_test',
+ srcs = [
+ 'fridge_lib_test.cc',
+ 'arm_motor_plant.cc',
+ ],
+ hdrs = [
+ 'arm_motor_plant.h',
+ ],
+ deps = [
+ '//third_party/gtest',
+ ':fridge_lib',
+ '//frc971/control_loops:state_feedback_loop',
+ '//aos/common/controls:control_loop_test',
+ '//aos/common:time',
+ '//frc971/control_loops:position_sensor_sim',
+ '//frc971/control_loops:team_number_test_environment',
+ ],
+)
+
+cc_binary(
+ name = 'fridge',
+ srcs = [
+ 'fridge_main.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ ':fridge_lib',
+ ],
+)
diff --git a/y2015/http_status/BUILD b/y2015/http_status/BUILD
new file mode 100644
index 0000000..d71574c
--- /dev/null
+++ b/y2015/http_status/BUILD
@@ -0,0 +1,20 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_binary(
+ name = 'http_status',
+ srcs = [
+ 'http_status.cc',
+ ],
+ hdrs = [
+ 'http_status.h',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common/logging',
+ '//third_party/seasocks',
+ '//y2015/control_loops/claw:claw_queue',
+ '//y2015/control_loops/fridge:fridge_queue',
+ '//aos/common/util:phased_loop',
+ '//aos/common:time',
+ ],
+)
diff --git a/y2015/prime/BUILD b/y2015/prime/BUILD
new file mode 100644
index 0000000..78a8280
--- /dev/null
+++ b/y2015/prime/BUILD
@@ -0,0 +1,22 @@
+package(default_visibility = ['//visibility:public'])
+
+filegroup(
+ name = 'All',
+ srcs = [
+ '//aos:prime_binaries',
+ '//y2015/control_loops/drivetrain:drivetrain',
+ '//y2015/control_loops/drivetrain:drivetrain_lib_test',
+ '//y2015/control_loops/drivetrain:replay_drivetrain',
+ '//y2015/control_loops/fridge:fridge',
+ '//y2015/control_loops/fridge:fridge_lib_test',
+ '//y2015/control_loops/fridge:replay_fridge',
+ '//y2015/control_loops/claw:claw',
+ '//y2015/control_loops/claw:claw_lib_test',
+ '//y2015/control_loops/claw:replay_claw',
+ '//y2015/autonomous:auto',
+ '//y2015:joystick_reader',
+ '//y2015/http_status:http_status',
+ '//y2015/util:kinematics_test',
+ '//y2015/actors:binaries',
+ ],
+)
diff --git a/y2015/util/BUILD b/y2015/util/BUILD
new file mode 100644
index 0000000..2a7250f
--- /dev/null
+++ b/y2015/util/BUILD
@@ -0,0 +1,23 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+ name = 'kinematics',
+ deps = [
+ '//third_party/eigen',
+ '//y2015:constants',
+ ],
+)
+
+cc_test(
+ name = 'kinematics_test',
+ srcs = [
+ 'kinematics_test.cc',
+ ],
+ deps = [
+ '//third_party/gtest',
+ '//aos/common:queue_testutils',
+ '//aos/common/logging',
+ '//frc971/control_loops:team_number_test_environment',
+ ':kinematics',
+ ],
+)
diff --git a/y2015/wpilib/BUILD b/y2015/wpilib/BUILD
new file mode 100644
index 0000000..d25c424
--- /dev/null
+++ b/y2015/wpilib/BUILD
@@ -0,0 +1,35 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_binary(
+ name = 'wpilib_interface',
+ srcs = [
+ 'wpilib_interface.cc',
+ ],
+ deps = [
+ '//aos/linux_code:init',
+ '//aos/common:stl_mutex',
+ '//aos/common/logging',
+ '//third_party/WPILib',
+ '//y2015:constants',
+ '//y2015/control_loops/drivetrain:drivetrain_queue',
+ '//y2015/control_loops/fridge:fridge_queue',
+ '//y2015/control_loops/claw:claw_queue',
+ '//aos/common/controls:control_loop',
+ '//aos/common/util:log_interval',
+ '//aos/common:time',
+ '//aos/common/logging:queue_logging',
+ '//aos/common/messages:robot_state',
+ '//aos/common/util:phased_loop',
+ '//aos/common/messages:robot_state',
+ '//frc971/wpilib:hall_effect',
+ '//frc971/wpilib:joystick_sender',
+ '//frc971/wpilib:loop_output_handler',
+ '//frc971/wpilib:buffered_pcm',
+ '//frc971/wpilib:gyro_sender',
+ '//frc971/wpilib:dma_edge_counting',
+ '//frc971/wpilib:interrupt_edge_counting',
+ '//frc971/wpilib:encoder_and_potentiometer',
+ '//frc971/control_loops:queues',
+ '//frc971/wpilib:logging_queue',
+ ],
+)