blob: 136cdee4d1fa4b4ad15c3c333600c04298cfadae [file] [log] [blame]
Brian Silverman2ccf8c52016-03-15 00:22:26 -04001load('/tools/build_rules/protobuf', 'proto_cc_library')
2load('/aos/build/queues', 'queue_library')
Parker Schuhd7db83d2017-02-08 20:49:15 -08003load('/tools/build_rules/gtk_dependent', 'gtk_dependent_cc_binary', 'gtk_dependent_cc_library')
Brian Silverman2ccf8c52016-03-15 00:22:26 -04004
5queue_library(
6 name = 'vision_queue',
Austin Schuhc65b0ea2016-03-16 22:09:19 -07007 visibility = ['//visibility:public'],
Brian Silverman2ccf8c52016-03-15 00:22:26 -04008 srcs = [
9 'vision.q',
10 ],
11)
12
13proto_cc_library(
14 name = 'vision_data',
15 src = 'vision_data.proto',
16)
17
18proto_cc_library(
19 name = 'calibration',
20 src = 'calibration.proto',
21)
22
23_calibration_values_embedded_before = '''
24#include "y2016/vision/stereo_geometry.h"
25
26#include <string>
27
28#include "third_party/protobuf/src/google/protobuf/text_format.h"
29
30namespace y2016 {
31namespace vision {
32namespace {
33
34const ::std::string kEmbeddedContents ='''
35
36_calibration_values_embedded_after = ''';
37
38} // namespace
39
40CalibrationFile EmbeddedCalibrationFile() {
41 CalibrationFile r;
42 ::google::protobuf::TextFormat::ParseFromString(kEmbeddedContents, &r);
43 return r;
44}
45
46} // namespace vision
47} // namespace y2016'''
48
49genrule(
50 name = 'embed_calibration_pb',
51 srcs = [
52 'calibration.pb',
53 ],
54 outs = [
55 'stereo_geometry_embedded.cc',
56 ],
57 cmd = '\n'.join([
58 'echo \'%s\' > $@' % _calibration_values_embedded_before,
59 'cat $(location :calibration.pb) | sed \'s/"/\\\\"/g ; s/^/"/g ; s/$$/\\\\n"/g\' >> $@',
60 'echo \'%s\' >> $@' % _calibration_values_embedded_after,
61 ]),
62)
63
64cc_library(
65 name = 'stereo_geometry',
66 hdrs = [
67 'stereo_geometry.h',
68 ],
69 srcs = [
70 'stereo_geometry.cc',
71 'stereo_geometry_embedded.cc',
72 ],
73 deps = [
74 ':calibration',
75 '//aos/common/logging',
76 '//aos/vision/math:vector',
77 ],
78)
79
Austin Schuh9d92e6b2017-10-17 01:19:38 -070080cc_binary(
81 name = 'target_sender',
Parker Schuh2cd173d2017-01-28 00:12:01 -080082 srcs = ['target_sender.cc'],
83 deps = [
84 '//aos/common:time',
85 '//aos/common/logging:logging',
86 '//aos/common/logging:implementations',
87 '//aos/vision/image:reader',
88 '//aos/vision/image:jpeg_routines',
89 '//aos/vision/image:image_stream',
90 '//y2016/vision:blob_filters',
91 '//aos/vision/events:udp',
92 '//aos/vision/events:epoll_events',
93 '//aos/vision/events:socket_types',
94 ':stereo_geometry',
95 ':vision_data',
96 ':calibration',
Austin Schuh9d92e6b2017-10-17 01:19:38 -070097 ],
98 restricted_to = ['//tools:k8', '//tools:armhf-debian'],
Parker Schuh2cd173d2017-01-28 00:12:01 -080099)
100
Austin Schuh9d92e6b2017-10-17 01:19:38 -0700101cc_library(
102 name = "blob_filters",
103 srcs = ["blob_filters.cc"],
104 hdrs = ["blob_filters.h"],
105 deps = [
106 "//aos/vision/math:vector",
107 "//aos/vision/math:segment",
108 "//aos/vision/blob:range_image",
109 "//aos/vision/blob:threshold",
110 "//aos/vision/blob:find_blob",
111 "//aos/vision/blob:hierarchical_contour_merge",
112 "//aos/vision/blob:codec",
113 ],
Parker Schuhd7db83d2017-02-08 20:49:15 -0800114 visibility = ['//visibility:public'],
Austin Schuh9d92e6b2017-10-17 01:19:38 -0700115 restricted_to = ['//tools:k8', '//tools:armhf-debian'],
Parker Schuh2cd173d2017-01-28 00:12:01 -0800116)
117
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400118cc_binary(
119 name = 'target_receiver',
120 srcs = [
121 'target_receiver.cc',
122 ],
Austin Schuhc65b0ea2016-03-16 22:09:19 -0700123 visibility = ['//visibility:public'],
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400124 deps = [
125 '//aos/common/logging',
126 '//aos/common/logging:queue_logging',
127 '//aos/linux_code:init',
128 '//aos/common:time',
129 '//aos/vision/events:udp',
130 ':vision_queue',
131 ':vision_data',
132 ':stereo_geometry',
133 '//y2016:constants',
Brian Silvermanbc831182016-04-16 02:06:09 -0400134 '//frc971/control_loops/drivetrain:drivetrain_queue',
135 '//aos/common:mutex',
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400136 ],
137)
Parker Schuhd7db83d2017-02-08 20:49:15 -0800138
139gtk_dependent_cc_binary(
140 name = "debug_receiver",
141 srcs = ["debug_receiver.cc"],
142 visibility = ['//visibility:public'],
143 deps = [
144 "//aos/vision/image:image_types",
145 "//aos/vision/image:jpeg_routines",
146 "//aos/vision/events:socket_types",
147 "//aos/vision/events:tcp_client",
148 "//aos/vision/events:epoll_events",
149 "//aos/vision/events:gtk_event",
Parker Schuh24ee58d2017-03-11 16:13:23 -0800150 "//aos/vision/debug:debug_window",
Parker Schuhd7db83d2017-02-08 20:49:15 -0800151 "//aos/vision/blob:range_image",
152 "//aos/vision/blob:codec",
153 "//aos/vision/blob:stream_view",
154 ":stereo_geometry",
155 ":blob_filters",
156 ":vision_data",
157 ":calibration",
158 ],
159)