| load('//tools/build_rules:protobuf.bzl', 'proto_cc_library') |
| load('//aos/build:queues.bzl', 'queue_library') |
| load('//tools/build_rules:gtk_dependent.bzl', 'gtk_dependent_cc_binary', 'gtk_dependent_cc_library') |
| |
| queue_library( |
| name = 'vision_queue', |
| visibility = ['//visibility:public'], |
| srcs = [ |
| 'vision.q', |
| ], |
| ) |
| |
| proto_cc_library( |
| name = 'vision_data', |
| src = 'vision_data.proto', |
| ) |
| |
| proto_cc_library( |
| name = 'calibration', |
| src = 'calibration.proto', |
| ) |
| |
| _calibration_values_embedded_before = ''' |
| #include "y2016/vision/stereo_geometry.h" |
| |
| #include <string> |
| |
| #include "third_party/protobuf/src/google/protobuf/text_format.h" |
| |
| namespace y2016 { |
| namespace vision { |
| namespace { |
| |
| const ::std::string kEmbeddedContents =''' |
| |
| _calibration_values_embedded_after = '''; |
| |
| } // namespace |
| |
| CalibrationFile EmbeddedCalibrationFile() { |
| CalibrationFile r; |
| ::google::protobuf::TextFormat::ParseFromString(kEmbeddedContents, &r); |
| return r; |
| } |
| |
| } // namespace vision |
| } // namespace y2016''' |
| |
| genrule( |
| name = 'embed_calibration_pb', |
| srcs = [ |
| 'calibration.pb', |
| ], |
| outs = [ |
| 'stereo_geometry_embedded.cc', |
| ], |
| cmd = '\n'.join([ |
| 'echo \'%s\' > $@' % _calibration_values_embedded_before, |
| 'cat $(location :calibration.pb) | sed \'s/"/\\\\"/g ; s/^/"/g ; s/$$/\\\\n"/g\' >> $@', |
| 'echo \'%s\' >> $@' % _calibration_values_embedded_after, |
| ]), |
| ) |
| |
| cc_library( |
| name = 'stereo_geometry', |
| hdrs = [ |
| 'stereo_geometry.h', |
| ], |
| srcs = [ |
| 'stereo_geometry.cc', |
| 'stereo_geometry_embedded.cc', |
| ], |
| deps = [ |
| ':calibration', |
| '//aos/common/logging', |
| '//aos/vision/math:vector', |
| ], |
| ) |
| |
| cc_binary( |
| name = 'target_sender', |
| srcs = ['target_sender.cc'], |
| deps = [ |
| '//aos/common:time', |
| '//aos/common/logging:logging', |
| '//aos/common/logging:implementations', |
| '//aos/vision/image:reader', |
| '//aos/vision/image:jpeg_routines', |
| '//aos/vision/image:image_stream', |
| '//y2016/vision:blob_filters', |
| '//aos/vision/events:udp', |
| '//aos/vision/events:epoll_events', |
| '//aos/vision/events:socket_types', |
| ':stereo_geometry', |
| ':vision_data', |
| ':calibration', |
| ], |
| restricted_to = ['//tools:k8', '//tools:armhf-debian'], |
| ) |
| |
| cc_library( |
| name = "blob_filters", |
| srcs = ["blob_filters.cc"], |
| hdrs = ["blob_filters.h"], |
| deps = [ |
| "//aos/vision/math:vector", |
| "//aos/vision/math:segment", |
| "//aos/vision/blob:range_image", |
| "//aos/vision/blob:threshold", |
| "//aos/vision/blob:find_blob", |
| "//aos/vision/blob:hierarchical_contour_merge", |
| "//aos/vision/blob:codec", |
| ], |
| visibility = ['//visibility:public'], |
| restricted_to = ['//tools:k8', '//tools:armhf-debian'], |
| ) |
| |
| cc_binary( |
| name = 'target_receiver', |
| srcs = [ |
| 'target_receiver.cc', |
| ], |
| visibility = ['//visibility:public'], |
| deps = [ |
| '//aos/common/logging', |
| '//aos/common/logging:queue_logging', |
| '//aos/linux_code:init', |
| '//aos/common:time', |
| '//aos/vision/events:udp', |
| ':vision_queue', |
| ':vision_data', |
| ':stereo_geometry', |
| '//y2016:constants', |
| '//frc971/control_loops/drivetrain:drivetrain_queue', |
| '//aos/common:mutex', |
| ], |
| ) |
| |
| gtk_dependent_cc_binary( |
| name = "debug_receiver", |
| srcs = ["debug_receiver.cc"], |
| visibility = ['//visibility:public'], |
| deps = [ |
| "//aos/vision/image:image_types", |
| "//aos/vision/image:jpeg_routines", |
| "//aos/vision/events:socket_types", |
| "//aos/vision/events:tcp_client", |
| "//aos/vision/events:epoll_events", |
| "//aos/vision/events:gtk_event", |
| "//aos/vision/debug:debug_window", |
| "//aos/vision/blob:range_image", |
| "//aos/vision/blob:codec", |
| "//aos/vision/blob:stream_view", |
| ":stereo_geometry", |
| ":blob_filters", |
| ":vision_data", |
| ":calibration", |
| ], |
| ) |