blob: e8d0b17ecc642809bae74129c35862a7fa53725f [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
Parker Schuh2cd173d2017-01-28 00:12:01 -080080cc_binary(name = 'target_sender',
81 srcs = ['target_sender.cc'],
82 deps = [
83 '//aos/common:time',
84 '//aos/common/logging:logging',
85 '//aos/common/logging:implementations',
86 '//aos/vision/image:reader',
87 '//aos/vision/image:jpeg_routines',
88 '//aos/vision/image:image_stream',
89 '//y2016/vision:blob_filters',
90 '//aos/vision/events:udp',
91 '//aos/vision/events:epoll_events',
92 '//aos/vision/events:socket_types',
93 ':stereo_geometry',
94 ':vision_data',
95 ':calibration',
96 ]
97)
98
99cc_library(name = "blob_filters",
100 srcs = ["blob_filters.cc"],
101 hdrs = ["blob_filters.h"],
102 deps = [
103 "//aos/vision/math:vector",
104 "//aos/vision/math:segment",
105 "//aos/vision/blob:range_image",
106 "//aos/vision/blob:threshold",
107 "//aos/vision/blob:find_blob",
108 "//aos/vision/blob:hierarchical_contour_merge",
109 "//aos/vision/blob:codec",
110 ],
Parker Schuhd7db83d2017-02-08 20:49:15 -0800111 visibility = ['//visibility:public'],
Parker Schuh2cd173d2017-01-28 00:12:01 -0800112)
113
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400114cc_binary(
115 name = 'target_receiver',
116 srcs = [
117 'target_receiver.cc',
118 ],
Austin Schuhc65b0ea2016-03-16 22:09:19 -0700119 visibility = ['//visibility:public'],
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400120 deps = [
121 '//aos/common/logging',
122 '//aos/common/logging:queue_logging',
123 '//aos/linux_code:init',
124 '//aos/common:time',
125 '//aos/vision/events:udp',
126 ':vision_queue',
127 ':vision_data',
128 ':stereo_geometry',
129 '//y2016:constants',
Brian Silvermanbc831182016-04-16 02:06:09 -0400130 '//frc971/control_loops/drivetrain:drivetrain_queue',
131 '//aos/common:mutex',
Brian Silverman2ccf8c52016-03-15 00:22:26 -0400132 ],
133)
Parker Schuhd7db83d2017-02-08 20:49:15 -0800134
135gtk_dependent_cc_binary(
136 name = "debug_receiver",
137 srcs = ["debug_receiver.cc"],
138 visibility = ['//visibility:public'],
139 deps = [
140 "//aos/vision/image:image_types",
141 "//aos/vision/image:jpeg_routines",
142 "//aos/vision/events:socket_types",
143 "//aos/vision/events:tcp_client",
144 "//aos/vision/events:epoll_events",
145 "//aos/vision/events:gtk_event",
146 "//aos/vision/debug:debug_viewer",
147 "//aos/vision/blob:range_image",
148 "//aos/vision/blob:codec",
149 "//aos/vision/blob:stream_view",
150 ":stereo_geometry",
151 ":blob_filters",
152 ":vision_data",
153 ":calibration",
154 ],
155)