From 7ff05a7e08e3b0151ffc43b87dda5ce8c338c0bc Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:41:49 -0400 Subject: [PATCH 01/12] first attempt conan ci job --- .github/workflows/conan.yml | 165 ++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 .github/workflows/conan.yml diff --git a/.github/workflows/conan.yml b/.github/workflows/conan.yml new file mode 100644 index 000000000..1071e3f9d --- /dev/null +++ b/.github/workflows/conan.yml @@ -0,0 +1,165 @@ +name: Test conan packages + +on: + workflow_dispatch: + +jobs: + build_macos: + if: github.repository_owner == 'viamrobotics' + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + include: + - target: aarch64-apple-darwin + platform: macosx_arm64 + - target: x86_64-apple-darwin + platform: macosx_x86_64 + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Install dependencies + run: | + brew install cmake + brew install python ninja buf + python -m pip install --user conan + + - name: Build + run: | + # `buf` tries to read a CLI config file that we don't actually use located at + # ~/.config/buf/config.yaml. We don't always have permission to access this + # directory in CI, so we set the `BUF_CONFIG_DIR` to some other value that we + # do have permissions for. See https://github.com/bufbuild/buf/issues/2698 for + # more details. + export BUF_CONFIG_DIR=$(mktemp -d) + conan profile detect + conan create . + + build_linux_ubuntu_jammy: + if: github.repository_owner == 'viamrobotics' + runs-on: ${{ matrix.runs_on }} + container: + image: ${{ matrix.image }} + strategy: + fail-fast: false + matrix: + include: + - target: aarch64-ubuntu-jammy-gnu + platform: linux_aarch64-ubuntu-jammy + image: ubuntu:22.04 + runs_on: buildjet-8vcpu-ubuntu-2204-arm + - target: x86_64-ubuntu-jammy-gnu + platform: linux_x86_64-ubuntu-jammy + image: ubuntu:22.04 + runs_on: buildjet-8vcpu-ubuntu-2204 + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Install dependencies + run: | + apt-get update + apt-get -y dist-upgrade + DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \ + build-essential \ + ca-certificates \ + curl \ + doxygen \ + g++ \ + gdb \ + git \ + gnupg \ + gpg \ + less \ + ninja-build \ + python3 \ + python3-pip \ + software-properties-common \ + sudo \ + wget \ + + sudo wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null + sudo echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null + + apt-get update + apt-get -y install cmake + + pip install conan + + - name: Create package + shell: bash + run: | + conan profile detect + conan create . + + build_linux_debian: + if: github.repository_owner == 'viamrobotics' + runs-on: ${{ matrix.runs_on }} + container: + image: ${{ matrix.image }} + strategy: + fail-fast: false + matrix: + include: + - target: aarch64-debian-bullseye + platform: linux_aarch64-debian-bullseye + image: debian:bullseye + runs_on: buildjet-8vcpu-ubuntu-2204-arm + - target: x86_64-debian-bullseye + platform: linux_x86_64-debian-bullseye + image: debian:bullseye + runs_on: buildjet-8vcpu-ubuntu-2204 + - target: aarch64-debian-bookworm + platform: linux_aarch64-debian-bookworm + image: debian:bookworm + runs_on: buildjet-8vcpu-ubuntu-2204-arm + - target: x86_64-debian-bookworm + platform: linux_x86_64-debian-bookworm + image: debian:bookworm + runs_on: buildjet-8vcpu-ubuntu-2204 + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Install dependencies + run: | + apt-get update + apt-get -y dist-upgrade + DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \ + build-essential \ + ca-certificates \ + cmake \ + curl \ + g++ \ + gdb \ + git \ + gnupg \ + gpg \ + less \ + ninja-build \ + python3 \ + python3-pip \ + software-properties-common \ + sudo \ + wget + + pip install conan + + - name: Update CMake for bullseye + if: ${{ matrix.image == 'debian:bullseye' }} + run: | + apt-add-repository -y 'deb http://deb.debian.org/debian bullseye-backports main' + + apt-get update + apt-get -y install cmake + + apt-get -y --no-install-recommends install -t bullseye-backports cmake + + - name: Create package + shell: bash + run: | + conan profile detect + conan create . From b04fc36d60a17c910223a62bc191ebf3aaf8cdd0 Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:42:14 -0400 Subject: [PATCH 02/12] remove git --- .github/workflows/conan.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/conan.yml b/.github/workflows/conan.yml index 1071e3f9d..d4d03f870 100644 --- a/.github/workflows/conan.yml +++ b/.github/workflows/conan.yml @@ -69,7 +69,6 @@ jobs: doxygen \ g++ \ gdb \ - git \ gnupg \ gpg \ less \ @@ -135,7 +134,6 @@ jobs: curl \ g++ \ gdb \ - git \ gnupg \ gpg \ less \ From 95f407e289a2705cd923fa8aed60415423ee1179 Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Tue, 24 Sep 2024 14:53:46 -0400 Subject: [PATCH 03/12] comment out repo owner --- .github/workflows/conan.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/conan.yml b/.github/workflows/conan.yml index d4d03f870..d4278b0b6 100644 --- a/.github/workflows/conan.yml +++ b/.github/workflows/conan.yml @@ -5,7 +5,7 @@ on: jobs: build_macos: - if: github.repository_owner == 'viamrobotics' + # if: github.repository_owner == 'viamrobotics' runs-on: macos-latest strategy: fail-fast: false @@ -37,7 +37,7 @@ jobs: conan create . build_linux_ubuntu_jammy: - if: github.repository_owner == 'viamrobotics' + # if: github.repository_owner == 'viamrobotics' runs-on: ${{ matrix.runs_on }} container: image: ${{ matrix.image }} @@ -94,7 +94,7 @@ jobs: conan create . build_linux_debian: - if: github.repository_owner == 'viamrobotics' + # if: github.repository_owner == 'viamrobotics' runs-on: ${{ matrix.runs_on }} container: image: ${{ matrix.image }} From c5bc9a6d386d8720deca78c9fce1cbae292d39d9 Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:00:50 -0400 Subject: [PATCH 04/12] global install --- .github/workflows/conan.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conan.yml b/.github/workflows/conan.yml index d4278b0b6..3634a4869 100644 --- a/.github/workflows/conan.yml +++ b/.github/workflows/conan.yml @@ -23,7 +23,7 @@ jobs: run: | brew install cmake brew install python ninja buf - python -m pip install --user conan + python -m pip install conan - name: Build run: | From be04812206a50a7209cdacd867387e71fef5011b Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:09:15 -0400 Subject: [PATCH 05/12] always set build = missing --- .github/workflows/conan.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/conan.yml b/.github/workflows/conan.yml index 3634a4869..52ca377de 100644 --- a/.github/workflows/conan.yml +++ b/.github/workflows/conan.yml @@ -34,7 +34,7 @@ jobs: # more details. export BUF_CONFIG_DIR=$(mktemp -d) conan profile detect - conan create . + conan create . --build=missing build_linux_ubuntu_jammy: # if: github.repository_owner == 'viamrobotics' @@ -91,7 +91,7 @@ jobs: shell: bash run: | conan profile detect - conan create . + conan create . --build=missing build_linux_debian: # if: github.repository_owner == 'viamrobotics' @@ -160,4 +160,4 @@ jobs: shell: bash run: | conan profile detect - conan create . + conan create . --build=missing From 6b5d948171b827050a8b973bca6f474309360929 Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:10:52 -0400 Subject: [PATCH 06/12] remove prototype and replace with protovalue --- .../examples/modules/complex/base/impl.cpp | 31 +-- .../examples/modules/complex/base/impl.hpp | 16 +- .../examples/modules/complex/gizmo/impl.cpp | 19 +- .../examples/modules/complex/gizmo/impl.hpp | 4 +- .../modules/complex/summation/impl.cpp | 11 +- .../modules/complex/test_complex_module.cpp | 2 +- src/viam/examples/modules/simple/client.cpp | 20 +- src/viam/examples/modules/simple/main.cpp | 25 ++- src/viam/examples/modules/tflite/main.cpp | 10 +- src/viam/examples/motor/example_motor.cpp | 4 +- src/viam/sdk/CMakeLists.txt | 4 +- src/viam/sdk/common/client_helper.hpp | 6 +- src/viam/sdk/common/proto_type.cpp | 206 ------------------ src/viam/sdk/common/proto_type.hpp | 90 -------- src/viam/sdk/common/proto_value.cpp | 5 +- src/viam/sdk/common/proto_value.hpp | 13 +- src/viam/sdk/common/service_helper.hpp | 2 +- src/viam/sdk/common/utils.cpp | 17 +- src/viam/sdk/common/utils.hpp | 8 +- src/viam/sdk/components/arm.hpp | 14 +- src/viam/sdk/components/base.hpp | 16 +- src/viam/sdk/components/board.hpp | 28 +-- src/viam/sdk/components/camera.hpp | 10 +- src/viam/sdk/components/encoder.hpp | 12 +- src/viam/sdk/components/gantry.hpp | 12 +- src/viam/sdk/components/generic.hpp | 6 +- src/viam/sdk/components/gripper.hpp | 8 +- src/viam/sdk/components/motor.hpp | 22 +- src/viam/sdk/components/movement_sensor.hpp | 24 +- src/viam/sdk/components/pose_tracker.hpp | 6 +- src/viam/sdk/components/power_sensor.hpp | 16 +- .../sdk/components/private/arm_client.cpp | 16 +- .../sdk/components/private/arm_client.hpp | 18 +- .../sdk/components/private/arm_server.cpp | 2 +- .../sdk/components/private/base_client.cpp | 20 +- .../sdk/components/private/base_client.hpp | 18 +- .../sdk/components/private/base_server.cpp | 4 +- .../sdk/components/private/board_client.cpp | 26 +-- .../sdk/components/private/board_client.hpp | 26 +-- .../sdk/components/private/board_server.cpp | 10 +- .../sdk/components/private/camera_client.cpp | 11 +- .../sdk/components/private/camera_client.hpp | 10 +- .../sdk/components/private/camera_server.cpp | 4 +- .../sdk/components/private/encoder_client.cpp | 12 +- .../sdk/components/private/encoder_client.hpp | 10 +- .../sdk/components/private/encoder_server.cpp | 4 +- .../sdk/components/private/gantry_client.cpp | 14 +- .../sdk/components/private/gantry_client.hpp | 14 +- .../sdk/components/private/gantry_server.cpp | 2 +- .../sdk/components/private/generic_client.cpp | 8 +- .../sdk/components/private/generic_client.hpp | 6 +- .../sdk/components/private/generic_server.cpp | 4 +- .../sdk/components/private/gripper_client.cpp | 12 +- .../sdk/components/private/gripper_client.hpp | 10 +- .../sdk/components/private/gripper_server.cpp | 2 +- .../sdk/components/private/motor_client.cpp | 24 +- .../sdk/components/private/motor_client.hpp | 22 +- .../sdk/components/private/motor_server.cpp | 6 +- .../private/movement_sensor_client.cpp | 23 +- .../private/movement_sensor_client.hpp | 20 +- .../private/movement_sensor_server.cpp | 4 +- .../private/pose_tracker_client.cpp | 6 +- .../private/pose_tracker_client.hpp | 6 +- .../private/pose_tracker_server.cpp | 2 +- .../private/power_sensor_client.cpp | 17 +- .../private/power_sensor_client.hpp | 10 +- .../private/power_sensor_server.cpp | 10 +- .../sdk/components/private/sensor_client.cpp | 13 +- .../sdk/components/private/sensor_client.hpp | 6 +- .../sdk/components/private/sensor_server.cpp | 10 +- .../sdk/components/private/servo_client.cpp | 12 +- .../sdk/components/private/servo_client.hpp | 10 +- .../sdk/components/private/servo_server.cpp | 4 +- src/viam/sdk/components/sensor.hpp | 12 +- src/viam/sdk/components/servo.hpp | 12 +- src/viam/sdk/config/resource.cpp | 7 +- src/viam/sdk/config/resource.hpp | 12 +- src/viam/sdk/resource/resource.cpp | 2 +- src/viam/sdk/resource/resource.hpp | 2 +- src/viam/sdk/resource/stoppable.cpp | 2 +- src/viam/sdk/resource/stoppable.hpp | 4 +- src/viam/sdk/robot/client.cpp | 13 +- src/viam/sdk/robot/client.hpp | 10 +- src/viam/sdk/robot/service.cpp | 4 +- src/viam/sdk/services/generic.hpp | 4 +- src/viam/sdk/services/mlmodel.hpp | 6 +- src/viam/sdk/services/motion.hpp | 26 +-- .../sdk/services/private/generic_client.cpp | 6 +- .../sdk/services/private/generic_client.hpp | 4 +- .../sdk/services/private/generic_server.cpp | 4 +- .../sdk/services/private/mlmodel_client.cpp | 4 +- .../sdk/services/private/mlmodel_client.hpp | 4 +- .../sdk/services/private/mlmodel_server.cpp | 4 +- .../sdk/services/private/motion_client.cpp | 33 ++- .../sdk/services/private/motion_client.hpp | 28 +-- .../sdk/services/private/motion_server.cpp | 6 +- src/viam/sdk/tests/CMakeLists.txt | 1 - src/viam/sdk/tests/mocks/camera_mocks.cpp | 10 +- src/viam/sdk/tests/mocks/camera_mocks.hpp | 12 +- src/viam/sdk/tests/mocks/generic_mocks.cpp | 9 +- src/viam/sdk/tests/mocks/generic_mocks.hpp | 16 +- src/viam/sdk/tests/mocks/mlmodel_mocks.cpp | 6 +- src/viam/sdk/tests/mocks/mlmodel_mocks.hpp | 6 +- src/viam/sdk/tests/mocks/mock_arm.cpp | 16 +- src/viam/sdk/tests/mocks/mock_arm.hpp | 18 +- src/viam/sdk/tests/mocks/mock_base.cpp | 18 +- src/viam/sdk/tests/mocks/mock_base.hpp | 22 +- src/viam/sdk/tests/mocks/mock_board.cpp | 30 +-- src/viam/sdk/tests/mocks/mock_board.hpp | 28 +-- src/viam/sdk/tests/mocks/mock_encoder.cpp | 12 +- src/viam/sdk/tests/mocks/mock_encoder.hpp | 14 +- src/viam/sdk/tests/mocks/mock_gantry.cpp | 14 +- src/viam/sdk/tests/mocks/mock_gantry.hpp | 16 +- src/viam/sdk/tests/mocks/mock_gripper.cpp | 10 +- src/viam/sdk/tests/mocks/mock_gripper.hpp | 12 +- src/viam/sdk/tests/mocks/mock_motion.cpp | 24 +- src/viam/sdk/tests/mocks/mock_motion.hpp | 28 +-- src/viam/sdk/tests/mocks/mock_motor.cpp | 24 +- src/viam/sdk/tests/mocks/mock_motor.hpp | 29 ++- .../sdk/tests/mocks/mock_movement_sensor.cpp | 20 +- .../sdk/tests/mocks/mock_movement_sensor.hpp | 27 ++- .../sdk/tests/mocks/mock_pose_tracker.cpp | 6 +- .../sdk/tests/mocks/mock_pose_tracker.hpp | 8 +- .../sdk/tests/mocks/mock_power_sensor.cpp | 10 +- .../sdk/tests/mocks/mock_power_sensor.hpp | 14 +- src/viam/sdk/tests/mocks/mock_robot.cpp | 39 +--- src/viam/sdk/tests/mocks/mock_sensor.cpp | 6 +- src/viam/sdk/tests/mocks/mock_sensor.hpp | 10 +- src/viam/sdk/tests/mocks/mock_servo.cpp | 12 +- src/viam/sdk/tests/mocks/mock_servo.hpp | 17 +- src/viam/sdk/tests/test_arm.cpp | 10 +- src/viam/sdk/tests/test_base.cpp | 12 +- src/viam/sdk/tests/test_board.cpp | 12 +- src/viam/sdk/tests/test_camera.cpp | 13 +- src/viam/sdk/tests/test_common.cpp | 17 +- src/viam/sdk/tests/test_encoder.cpp | 12 +- src/viam/sdk/tests/test_gantry.cpp | 10 +- src/viam/sdk/tests/test_generics.cpp | 22 +- src/viam/sdk/tests/test_gripper.cpp | 10 +- src/viam/sdk/tests/test_mlmodel.cpp | 34 +-- src/viam/sdk/tests/test_motion.cpp | 24 +- src/viam/sdk/tests/test_motor.cpp | 28 +-- src/viam/sdk/tests/test_movement_sensor.cpp | 12 +- src/viam/sdk/tests/test_pose_tracker.cpp | 10 +- src/viam/sdk/tests/test_power_sensor.cpp | 20 +- src/viam/sdk/tests/test_resource.cpp | 6 +- src/viam/sdk/tests/test_robot.cpp | 6 +- src/viam/sdk/tests/test_sensor.cpp | 20 +- src/viam/sdk/tests/test_servo.cpp | 24 +- src/viam/sdk/tests/test_types.cpp | 121 ---------- src/viam/sdk/tests/test_utils.cpp | 10 +- src/viam/sdk/tests/test_utils.hpp | 2 +- 152 files changed, 886 insertions(+), 1437 deletions(-) delete mode 100644 src/viam/sdk/common/proto_type.cpp delete mode 100644 src/viam/sdk/common/proto_type.hpp delete mode 100644 src/viam/sdk/tests/test_types.cpp diff --git a/src/viam/examples/modules/complex/base/impl.cpp b/src/viam/examples/modules/complex/base/impl.cpp index d18c45a7a..14ed4bb4d 100644 --- a/src/viam/examples/modules/complex/base/impl.cpp +++ b/src/viam/examples/modules/complex/base/impl.cpp @@ -16,22 +16,23 @@ using namespace viam::sdk; std::string find_motor(ResourceConfig cfg, std::string motor_name) { auto base_name = cfg.name(); - auto motor = cfg.attributes()->find(motor_name); - if (motor == cfg.attributes()->end()) { + auto motor = cfg.attributes().find(motor_name); + if (motor == cfg.attributes().end()) { std::ostringstream buffer; buffer << base_name << ": Required parameter `" << motor_name << "` not found in configuration"; throw std::invalid_argument(buffer.str()); } - const auto* const motor_string = motor->second->get(); - if (!motor_string || motor_string->empty()) { - std::ostringstream buffer; - buffer << base_name << ": Required non-empty string parameter `" << motor_name - << "` is either not a string " - "or is an empty string"; - throw std::invalid_argument(buffer.str()); + const ProtoValue& motor_val = motor->second; + if (motor_val.is_a() && !motor_val.get_unchecked().empty()) { + return motor_val.get_unchecked(); } - return *motor_string; + + std::ostringstream buffer; + buffer << base_name << ": Required non-empty string parameter `" << motor_name + << "` is either not a string " + "or is an empty string"; + throw std::invalid_argument(buffer.str()); } void MyBase::reconfigure(const Dependencies& deps, const ResourceConfig& cfg) { @@ -64,7 +65,7 @@ bool MyBase::is_moving() { return left_->is_moving() || right_->is_moving(); } -void MyBase::stop(const AttributeMap& extra) { +void MyBase::stop(const ProtoStruct& extra) { std::string err_message; bool throw_err = false; @@ -89,7 +90,7 @@ void MyBase::stop(const AttributeMap& extra) { } } -void MyBase::set_power(const Vector3& linear, const Vector3& angular, const AttributeMap& extra) { +void MyBase::set_power(const Vector3& linear, const Vector3& angular, const ProtoStruct& extra) { // Stop the base if absolute value of linear and angular velocity is less // than 0.01. if (abs(linear.y()) < 0.01 && abs(angular.z()) < 0.01) { @@ -104,12 +105,12 @@ void MyBase::set_power(const Vector3& linear, const Vector3& angular, const Attr right_->set_power(((linear.y() + angular.z()) / sum), extra); } -AttributeMap MyBase::do_command(const AttributeMap& command) { +ProtoStruct MyBase::do_command(const ProtoStruct& command) { std::cout << "Received DoCommand request for MyBase " << Resource::name() << std::endl; return command; } -std::vector MyBase::get_geometries(const AttributeMap& extra) { +std::vector MyBase::get_geometries(const ProtoStruct& extra) { auto left_geometries = left_->get_geometries(extra); auto right_geometries = right_->get_geometries(extra); std::vector geometries(left_geometries); @@ -117,7 +118,7 @@ std::vector MyBase::get_geometries(const AttributeMap& extra) { return geometries; } -Base::properties MyBase::get_properties(const AttributeMap& extra) { +Base::properties MyBase::get_properties(const ProtoStruct& extra) { // Return fake properties. return {2, 4, 8}; } diff --git a/src/viam/examples/modules/complex/base/impl.hpp b/src/viam/examples/modules/complex/base/impl.hpp index c4a60adcc..3eac32a02 100644 --- a/src/viam/examples/modules/complex/base/impl.hpp +++ b/src/viam/examples/modules/complex/base/impl.hpp @@ -21,24 +21,24 @@ class MyBase : public Base, public Reconfigurable { static std::vector validate(ResourceConfig cfg); bool is_moving() override; - void stop(const AttributeMap& extra) override; + void stop(const ProtoStruct& extra) override; void set_power(const Vector3& linear, const Vector3& angular, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; - AttributeMap do_command(const AttributeMap& command) override; - std::vector get_geometries(const AttributeMap& extra) override; - Base::properties get_properties(const AttributeMap& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; + Base::properties get_properties(const ProtoStruct& extra) override; - void move_straight(int64_t distance_mm, double mm_per_sec, const AttributeMap& extra) override { + void move_straight(int64_t distance_mm, double mm_per_sec, const ProtoStruct& extra) override { throw std::runtime_error("move_straight unimplemented"); } - void spin(double angle_deg, double degs_per_sec, const AttributeMap& extra) override { + void spin(double angle_deg, double degs_per_sec, const ProtoStruct& extra) override { throw std::runtime_error("spin unimplemented"); } void set_velocity(const Vector3& linear, const Vector3& angular, - const AttributeMap& extra) override { + const ProtoStruct& extra) override { throw std::runtime_error("set_velocity unimplemented"); } diff --git a/src/viam/examples/modules/complex/gizmo/impl.cpp b/src/viam/examples/modules/complex/gizmo/impl.cpp index 01a1e7522..7a9272d74 100644 --- a/src/viam/examples/modules/complex/gizmo/impl.cpp +++ b/src/viam/examples/modules/complex/gizmo/impl.cpp @@ -15,20 +15,21 @@ using namespace viam::sdk; std::string find_arg1(ResourceConfig cfg) { auto gizmo_name = cfg.name(); - auto arg1 = cfg.attributes()->find("arg1"); - if (arg1 == cfg.attributes()->end()) { + auto arg1 = cfg.attributes().find("arg1"); + if (arg1 == cfg.attributes().end()) { std::ostringstream buffer; buffer << gizmo_name << ": Required parameter `arg1` not found in configuration"; throw std::invalid_argument(buffer.str()); } - const auto* const arg1_string = arg1->second->get(); - if (!arg1_string || arg1_string->empty()) { - std::ostringstream buffer; - buffer << gizmo_name << ": Required non-empty string parameter `arg1`" - << "` is either not a string or is an empty string"; - throw std::invalid_argument(buffer.str()); + + const ProtoValue& arg1_val = arg1->second; + if (arg1_val.is_a() && !arg1_val.get_unchecked().empty()) { + return arg1_val.get_unchecked(); } - return *arg1_string; + std::ostringstream buffer; + buffer << gizmo_name << ": Required non-empty string parameter `arg1`" + << "` is either not a string or is an empty string"; + throw std::invalid_argument(buffer.str()); } void MyGizmo::reconfigure(const Dependencies& deps, const ResourceConfig& cfg) { diff --git a/src/viam/examples/modules/complex/gizmo/impl.hpp b/src/viam/examples/modules/complex/gizmo/impl.hpp index f05c0db14..48afc9142 100644 --- a/src/viam/examples/modules/complex/gizmo/impl.hpp +++ b/src/viam/examples/modules/complex/gizmo/impl.hpp @@ -2,7 +2,7 @@ #include -#include +#include #include #include "api.hpp" @@ -14,7 +14,7 @@ using namespace viam::sdk; // `validate` method that checks config validity. class MyGizmo : public Gizmo, public Reconfigurable { public: - MyGizmo(std::string name, std::string arg1) : Gizmo(std::move(name)), arg1_(std::move(arg1)){}; + MyGizmo(std::string name, std::string arg1) : Gizmo(std::move(name)), arg1_(std::move(arg1)) {}; MyGizmo(const Dependencies& deps, const ResourceConfig& cfg) : Gizmo(cfg.name()) { this->reconfigure(deps, cfg); }; diff --git a/src/viam/examples/modules/complex/summation/impl.cpp b/src/viam/examples/modules/complex/summation/impl.cpp index 534f4b074..05e499e29 100644 --- a/src/viam/examples/modules/complex/summation/impl.cpp +++ b/src/viam/examples/modules/complex/summation/impl.cpp @@ -13,15 +13,12 @@ using namespace viam::sdk; // Returns value of "subtract" in cfg.attributes() or `false` if subtract is not // in attributes or is not a boolean value. bool find_subtract(ResourceConfig cfg) { - auto subtract = cfg.attributes()->find("subtract"); - if (subtract == cfg.attributes()->end()) { + auto subtract = cfg.attributes().find("subtract"); + if (subtract == cfg.attributes().end()) { return false; } - const bool* const subtract_bool = subtract->second->get(); - if (!subtract_bool) { - return false; - } - return *subtract_bool; + + return subtract->second.is_a() && subtract->second.get_unchecked(); } void MySummation::reconfigure(const Dependencies& deps, const ResourceConfig& cfg) { diff --git a/src/viam/examples/modules/complex/test_complex_module.cpp b/src/viam/examples/modules/complex/test_complex_module.cpp index f09ff15de..9845ab5c0 100644 --- a/src/viam/examples/modules/complex/test_complex_module.cpp +++ b/src/viam/examples/modules/complex/test_complex_module.cpp @@ -9,7 +9,7 @@ #include -#include +#include #include #include "gizmo.grpc.pb.h" diff --git a/src/viam/examples/modules/simple/client.cpp b/src/viam/examples/modules/simple/client.cpp index f08ee798e..22c97a418 100644 --- a/src/viam/examples/modules/simple/client.cpp +++ b/src/viam/examples/modules/simple/client.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include #include #include #include @@ -39,22 +39,10 @@ int main() { return EXIT_FAILURE; } - auto proto_ptr = std::make_shared(std::string("world")); - AttributeMap command = - std::make_shared>>(); - command->insert({{std::string("hello"), proto_ptr}}); + ProtoStruct command{{"hello", "world"}}; + ProtoStruct resp = printer->do_command(command); - auto resp = printer->do_command(command); - - if (!resp) { - std::cerr << "Failed to get a response from 'printer1'\n"; - return EXIT_FAILURE; - } - - std::shared_ptr expected = command->at(std::string("hello")); - std::shared_ptr result = resp->at(std::string("hello")); - - if (!(*expected == *result)) { + if (command != resp) { std::cerr << "Got unexpected result from 'printer1'\n"; return EXIT_FAILURE; } diff --git a/src/viam/examples/modules/simple/main.cpp b/src/viam/examples/modules/simple/main.cpp index de214e42a..4e506d89b 100644 --- a/src/viam/examples/modules/simple/main.cpp +++ b/src/viam/examples/modules/simple/main.cpp @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -44,7 +45,7 @@ class Printer : public GenericService, public Reconfigurable { std::cout << "Printer " << Resource::name() << " will print " << to_print_ << std::endl; } - AttributeMap do_command(const AttributeMap& command) { + ProtoStruct do_command(const ProtoStruct& command) { std::cout << "Received DoCommand request for Printer " << Resource::name() << std::endl; std::cout << "Printer " << Resource::name() << " has printed " << to_print_ << std::endl; return command; @@ -52,21 +53,23 @@ class Printer : public GenericService, public Reconfigurable { static std::string find_to_print(ResourceConfig cfg) { auto& printer_name = cfg.name(); - auto to_print = cfg.attributes()->find("to_print"); - if (to_print == cfg.attributes()->end()) { + auto to_print = cfg.attributes().find("to_print"); + if (to_print == cfg.attributes().end()) { std::ostringstream buffer; buffer << printer_name << ": Required parameter `to_print` not found in configuration"; throw std::invalid_argument(buffer.str()); } - const auto* const to_print_string = to_print->second->get(); - if (!to_print_string || to_print_string->empty()) { - std::ostringstream buffer; - buffer << printer_name - << ": Required non-empty string parameter `to_print` is either not a string " - "or is an empty string"; - throw std::invalid_argument(buffer.str()); + const ProtoValue& to_print_val = to_print->second; + if (to_print_val.is_a() && + !to_print_val.get_unchecked().empty()) { + return to_print_val.get_unchecked(); } - return *to_print_string; + + std::ostringstream buffer; + buffer << printer_name + << ": Required non-empty string parameter `to_print` is either not a string " + "or is an empty string"; + throw std::invalid_argument(buffer.str()); } private: diff --git a/src/viam/examples/modules/tflite/main.cpp b/src/viam/examples/modules/tflite/main.cpp index 89aa2f848..1971065c7 100644 --- a/src/viam/examples/modules/tflite/main.cpp +++ b/src/viam/examples/modules/tflite/main.cpp @@ -76,7 +76,7 @@ class MLModelServiceTFLite : public vsdk::MLModelService, // drain. } - void stop(const vsdk::AttributeMap& extra) noexcept final { + void stop(const vsdk::ProtoStruct& extra) noexcept final { return stop(); } @@ -141,7 +141,7 @@ class MLModelServiceTFLite : public vsdk::MLModelService, } std::shared_ptr infer(const named_tensor_views& inputs, - const vsdk::AttributeMap& extra) final { + const vsdk::ProtoStruct& extra) final { auto state = lease_state_(); // We serialize access to the interpreter. We use a @@ -250,7 +250,7 @@ class MLModelServiceTFLite : public vsdk::MLModelService, return {std::move(inference_result), views}; } - struct metadata metadata(const vsdk::AttributeMap& extra) final { + struct metadata metadata(const vsdk::ProtoStruct& extra) final { // Just return a copy of our metadata from leased state. return lease_state_()->metadata; } @@ -309,7 +309,7 @@ class MLModelServiceTFLite : public vsdk::MLModelService, // Process any tensor name remappings provided in the config. auto remappings = attributes->find("tensor_name_remappings"); if (remappings != attributes->end()) { - const auto remappings_attributes = remappings->second->get(); + const auto remappings_attributes = remappings->second->get(); if (!remappings_attributes) { std::ostringstream buffer; buffer << service_name @@ -318,7 +318,7 @@ class MLModelServiceTFLite : public vsdk::MLModelService, } const auto populate_remappings = [](const vsdk::ProtoType& source, auto& target) { - const auto source_attributes = source.get(); + const auto source_attributes = source.get(); if (!source_attributes) { std::ostringstream buffer; buffer << service_name diff --git a/src/viam/examples/motor/example_motor.cpp b/src/viam/examples/motor/example_motor.cpp index d092acab0..832de887b 100644 --- a/src/viam/examples/motor/example_motor.cpp +++ b/src/viam/examples/motor/example_motor.cpp @@ -109,9 +109,7 @@ int main() { // Explicitly stop the motor cout << "Stopping motor" << endl; - vs::AttributeMap stop_map = - std::make_shared>>(); - motor->stop(stop_map); + motor->stop({}); } catch (const std::exception& ex) { cerr << "Program failed. Exception: " << std::string(ex.what()) << endl; diff --git a/src/viam/sdk/CMakeLists.txt b/src/viam/sdk/CMakeLists.txt index ce3cc05cf..04077c991 100644 --- a/src/viam/sdk/CMakeLists.txt +++ b/src/viam/sdk/CMakeLists.txt @@ -50,7 +50,7 @@ target_sources(viamsdk common/exception.cpp common/linear_algebra.cpp common/pose.cpp - common/proto_type.cpp + common/proto_value.cpp common/service_helper.cpp common/utils.cpp common/version_metadata.cpp @@ -138,7 +138,7 @@ target_sources(viamsdk ../../viam/sdk/common/exception.hpp ../../viam/sdk/common/linear_algebra.hpp ../../viam/sdk/common/pose.hpp - ../../viam/sdk/common/proto_type.hpp + ../../viam/sdk/common/proto_value.hpp ../../viam/sdk/common/service_helper.hpp ../../viam/sdk/common/utils.hpp ../../viam/sdk/common/version_metadata.hpp diff --git a/src/viam/sdk/common/client_helper.hpp b/src/viam/sdk/common/client_helper.hpp index 962648fd1..126b65e8f 100644 --- a/src/viam/sdk/common/client_helper.hpp +++ b/src/viam/sdk/common/client_helper.hpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include namespace viam { @@ -41,7 +41,7 @@ class ClientHelper { explicit ClientHelper(ClientType* client, StubType* stub, MethodType pfn) : client_(client), stub_(stub), pfn_(pfn) {} - ClientHelper& with(const AttributeMap& extra) { + ClientHelper& with(const ProtoStruct& extra) { return with(extra, default_rsc_); } @@ -52,7 +52,7 @@ class ClientHelper { } template - ClientHelper& with(const AttributeMap& extra, RequestSetupCallable&& rsc) { + ClientHelper& with(const ProtoStruct& extra, RequestSetupCallable&& rsc) { *request_.mutable_extra() = map_to_struct(extra); return with(std::forward(rsc)); } diff --git a/src/viam/sdk/common/proto_type.cpp b/src/viam/sdk/common/proto_type.cpp deleted file mode 100644 index c801e921c..000000000 --- a/src/viam/sdk/common/proto_type.cpp +++ /dev/null @@ -1,206 +0,0 @@ -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -namespace viam { -namespace sdk { - -using google::protobuf::Struct; -using google::protobuf::Value; - -// NOLINTNEXTLINE(misc-no-recursion) -Struct map_to_struct(const AttributeMap& dict) { - Struct s; - if (!dict) { - return s; - } - - for (const auto& key_and_value : *dict) { - const std::string key = key_and_value.first; - const Value value = key_and_value.second->proto_value(); - const google::protobuf::MapPair val(key, value); - s.mutable_fields()->insert(val); - } - - return s; -} - -// NOLINTNEXTLINE(misc-no-recursion) -AttributeMap struct_to_map(const Struct& struct_) { - AttributeMap map = - std::make_shared>>(); - - for (const auto& val : struct_.fields()) { - std::string key = val.first; - // NOLINTNEXTLINE(misc-no-recursion) - map->emplace(std::move(key), std::make_shared(val.second)); - } - return map; -} - -// NOLINTNEXTLINE(misc-no-recursion) -ProtoType::ProtoType(const Value& value) { - switch (value.kind_case()) { - case Value::KindCase::kBoolValue: { - proto_type_ = value.bool_value(); - break; - } - case Value::KindCase::kStringValue: { - proto_type_ = value.string_value(); - break; - } - case Value::KindCase::kNumberValue: { - proto_type_ = value.number_value(); - break; - } - case Value::KindCase::kListValue: { - std::vector> vec; - for (const auto& val : value.list_value().values()) { - // NOLINTNEXTLINE(misc-no-recursion) - auto p = std::make_shared(val); - vec.push_back(p); - } - proto_type_ = std::move(vec); - break; - } - case Value::KindCase::kStructValue: { - proto_type_ = struct_to_map(value.struct_value()); - break; - } - case Value::KindCase::KIND_NOT_SET: - case Value::KindCase::kNullValue: - default: { - proto_type_ = boost::blank(); - break; - } - } -} - -// NOLINTNEXTLINE(misc-no-recursion) -Value ProtoType::proto_value() { - Value v; - switch (proto_type_.which()) { - case 0: { - v.set_null_value(::google::protobuf::NULL_VALUE); - break; - } - case 1: { - const bool b = boost::get(proto_type_); - v.set_bool_value(b); - break; - } - case 2: { - const std::string s = boost::get(proto_type_); - *v.mutable_string_value() = s; - break; - } - case 3: { - const int i = boost::get(proto_type_); - v.set_number_value(i); - break; - } - case 4: { - const double i = boost::get(proto_type_); - v.set_number_value(i); - break; - } - case 5: { - const AttributeMap map = boost::get(proto_type_); - const Struct s = map_to_struct(map); - *v.mutable_struct_value() = s; - break; - } - case 6: { - ::google::protobuf::ListValue l; - const google::protobuf::RepeatedPtrField values; - auto vec = boost::get>>(proto_type_); - for (const auto& val : vec) { - *l.add_values() = val->proto_value(); - } - *v.mutable_list_value() = l; - break; - } - default: { - throw Exception( - "Invalid proto_value conversion type. This should never happen;\ - please file a bug report."); - } - } - - return v; -} - -// NOLINTNEXTLINE(misc-no-recursion) -bool operator==(const ProtoType& lhs, const ProtoType& rhs) { - if (lhs.proto_type_.which() != rhs.proto_type_.which()) { - return false; - } - switch (lhs.proto_type_.which()) { - case 0: { - // both null values - return true; - } - case 1: { - const bool lhs_b = boost::get(lhs.proto_type_); - const bool rhs_b = boost::get(rhs.proto_type_); - return lhs_b == rhs_b; - } - case 2: { - const std::string lhs_s = boost::get(lhs.proto_type_); - const std::string rhs_s = boost::get(rhs.proto_type_); - return lhs_s == rhs_s; - } - case 3: { - const int lhs_i = boost::get(lhs.proto_type_); - const int rhs_i = boost::get(rhs.proto_type_); - return lhs_i == rhs_i; - } - case 4: { - const double lhs_i = boost::get(lhs.proto_type_); - const double rhs_i = boost::get(rhs.proto_type_); - return lhs_i == rhs_i; - } - case 5: { - const AttributeMap& lhs_map = boost::get(lhs.proto_type_); - const AttributeMap& rhs_map = boost::get(rhs.proto_type_); - - if (lhs_map->size() != rhs_map->size()) { - return false; - } - // NOLINTNEXTLINE(misc-no-recursion) - return std::all_of(lhs_map->begin(), lhs_map->end(), [&rhs_map](const auto& lhs) { - return (rhs_map->find(lhs.first) != rhs_map->end() && - (*rhs_map->at(lhs.first) == *lhs.second)); - }); - } - case 6: { - // NOLINTNEXTLINE(misc-no-recursion) - auto pred = [](const auto& lhs, const auto& rhs) { return *lhs == *rhs; }; - - const auto& lhs_vec = - boost::get>>(lhs.proto_type_); - const auto& rhs_vec = - boost::get>>(rhs.proto_type_); - return std::equal(lhs_vec.begin(), lhs_vec.end(), rhs_vec.begin(), rhs_vec.end(), pred); - } - default: { - throw Exception( - "Invalid proto_value conversion type. This should never happen;\ - please file a bug report."); - } - } -} - -} // namespace sdk -} // namespace viam diff --git a/src/viam/sdk/common/proto_type.hpp b/src/viam/sdk/common/proto_type.hpp deleted file mode 100644 index 41872920a..000000000 --- a/src/viam/sdk/common/proto_type.hpp +++ /dev/null @@ -1,90 +0,0 @@ -#pragma once - -#include - -#include -#include -#include - -namespace viam { -namespace sdk { - -class ProtoType; -using AttributeMap = std::shared_ptr>>; - -namespace prototype_details { - -template -struct get_helper { - template - static T* get(V& v) { - return boost::get(&v); - } - - template - static const T* get(const V& v) { - return boost::get(&v); - } -}; - -template <> -struct get_helper { - template - static AttributeMap get(V& v) { - auto* const result = boost::get(&v); - return result ? *result : nullptr; - } - - template - static std::shared_ptr get(const V& v) { - auto* const result = boost::get(&v); - return result ? *result : nullptr; - } -}; - -} // namespace prototype_details - -class ProtoType { - public: - ProtoType() { - proto_type_ = boost::blank(); - } - - explicit ProtoType(bool b) : proto_type_(std::move(b)) {} - explicit ProtoType(std::string s) : proto_type_(std::move(s)) {} - explicit ProtoType(const char* c) : proto_type_(std::string(c)) {} - explicit ProtoType(int i) : proto_type_(std::move(i)) {} - explicit ProtoType(double d) : proto_type_(std::move(d)) {} - explicit ProtoType(AttributeMap m) : proto_type_(std::move(m)) {} - explicit ProtoType(std::vector> v) : proto_type_(std::move(v)) {} - explicit ProtoType(const google::protobuf::Value& value); - - google::protobuf::Value proto_value(); - friend bool operator==(const ProtoType& lhs, const ProtoType& rhs); - - template - auto get() { - return prototype_details::get_helper::get(proto_type_); - } - - template - auto get() const { - return prototype_details::get_helper::get(proto_type_); - } - - private: - boost::variant>> - proto_type_; -}; - -AttributeMap struct_to_map(const google::protobuf::Struct& struct_); -google::protobuf::Struct map_to_struct(const AttributeMap& dict); - -} // namespace sdk -} // namespace viam diff --git a/src/viam/sdk/common/proto_value.cpp b/src/viam/sdk/common/proto_value.cpp index e3b6849db..0650856de 100644 --- a/src/viam/sdk/common/proto_value.cpp +++ b/src/viam/sdk/common/proto_value.cpp @@ -289,13 +289,10 @@ void to_proto(const ProtoValue& t, Value* v) { t.vtable_.to_proto(t.self_.get(), v); } -ProtoStruct struct_to_map(Struct const* s) { // NOLINT(misc-no-recursion) - ProtoStruct map; +void struct_to_map(Struct const* s, ProtoStruct& map) { // NOLINT(misc-no-recursion) for (const auto& val : s->fields()) { map.emplace(val.first, ProtoValue::from_proto(val.second)); } - - return map; } void map_to_struct(const ProtoStruct& m, Struct* s) { diff --git a/src/viam/sdk/common/proto_value.hpp b/src/viam/sdk/common/proto_value.hpp index 755eda219..5f35a9d0b 100644 --- a/src/viam/sdk/common/proto_value.hpp +++ b/src/viam/sdk/common/proto_value.hpp @@ -328,17 +328,17 @@ void to_proto(const ProtoList& vec, google::protobuf::Value* v); void to_proto(const ProtoStruct& m, google::protobuf::Value* v); void to_proto(const ProtoValue& t, google::protobuf::Value* v); -ProtoStruct struct_to_map(google::protobuf::Struct const* s); +void struct_to_map(google::protobuf::Struct const* s, ProtoStruct& m); void map_to_struct(const ProtoStruct& m, google::protobuf::Struct* s); /// @brief Convert a type to a google::protobuf::Value. /// @note This method is trivially templated to insulate google::protobuf::Value from our /// API/ABI. It is meant to be called with no template parameters in a translation unit which /// includes -template -Value to_proto(T&& t) { +template +Value to_proto(const ProtoValue& pv) { Value v; - to_proto(std::forward(t), &v); + to_proto(pv, &v); return v; } @@ -349,7 +349,10 @@ Value to_proto(T&& t) { /// includes template ProtoStruct struct_to_map(const Struct& s) { - return struct_to_map(&s); + ProtoStruct result; + struct_to_map(&s, result); + + return result; } /// @brief Convert a ProtoStruct to a google::protobuf::Struct. diff --git a/src/viam/sdk/common/service_helper.hpp b/src/viam/sdk/common/service_helper.hpp index 0a21d6cd0..af65418c5 100644 --- a/src/viam/sdk/common/service_helper.hpp +++ b/src/viam/sdk/common/service_helper.hpp @@ -49,7 +49,7 @@ class ServiceHelper : public ServiceHelperBase { } auto getExtra() const { - return request_->has_extra() ? struct_to_map(request_->extra()) : AttributeMap{}; + return request_->has_extra() ? struct_to_map(request_->extra()) : ProtoStruct{}; } private: diff --git a/src/viam/sdk/common/utils.cpp b/src/viam/sdk/common/utils.cpp index 90ebd56a6..e53be2d92 100644 --- a/src/viam/sdk/common/utils.cpp +++ b/src/viam/sdk/common/utils.cpp @@ -125,17 +125,12 @@ ClientContext::operator grpc::ClientContext*() { return &wrapped_context_; } -bool from_dm_from_extra(const AttributeMap& extra) { - if (!extra) { - return false; - } - auto pos = extra->find("fromDataManagement"); - if (pos != extra->end()) { - ProtoType value = *(pos->second); - const bool* boolValue = value.get(); - if (boolValue) { - return *boolValue; - } +bool from_dm_from_extra(const ProtoStruct& extra) { + auto pos = extra.find("fromDataManagement"); + if (pos != extra.end()) { + const ProtoValue& value = pos->second; + + return (value.is_a() && value.get_unchecked()); } return false; } diff --git a/src/viam/sdk/common/utils.hpp b/src/viam/sdk/common/utils.hpp index 893fcacd1..8311949e4 100644 --- a/src/viam/sdk/common/utils.hpp +++ b/src/viam/sdk/common/utils.hpp @@ -10,7 +10,7 @@ #include -#include +#include #include #include @@ -76,9 +76,9 @@ class ClientContext { void set_logger_severity_from_args(int argc, char** argv); /// @brief Used in modular filter components to get the 'fromDataManagement' value from an extra -/// AttributeMap. -/// @param extra The extra AttributeMap. -bool from_dm_from_extra(const AttributeMap& extra); +/// ProtoStruct. +/// @param extra The extra ProtoStruct. +bool from_dm_from_extra(const ProtoStruct& extra); } // namespace sdk } // namespace viam diff --git a/src/viam/sdk/components/arm.hpp b/src/viam/sdk/components/arm.hpp index 03faf7183..79cca9f41 100644 --- a/src/viam/sdk/components/arm.hpp +++ b/src/viam/sdk/components/arm.hpp @@ -72,7 +72,7 @@ class Arm : public Component, public Stoppable { /// @brief Get the current position of the end of the arm. /// @param extra Any additional arguments to the method. /// @return The `pose` representing the end position of the arm. - virtual pose get_end_position(const AttributeMap& extra) = 0; + virtual pose get_end_position(const ProtoStruct& extra) = 0; /// @brief Move the end of the arm to @param pose. inline void move_to_position(const pose& pose) { @@ -82,7 +82,7 @@ class Arm : public Component, public Stoppable { /// @brief Move the end of the arm to @param pose. /// @param pose The destination pose for the arm. /// @param extra Any additional arguments to the method. - virtual void move_to_position(const pose& pose, const AttributeMap& extra) = 0; + virtual void move_to_position(const pose& pose, const ProtoStruct& extra) = 0; /// @brief Lists the joint positions in degrees of every joint on a robot arm inline std::vector get_joint_positions() { @@ -91,12 +91,12 @@ class Arm : public Component, public Stoppable { /// @brief Lists the joint positions in degrees of every joint on a robot arm /// @param extra Any additional arguments to the method. - virtual std::vector get_joint_positions(const AttributeMap& extra) = 0; + virtual std::vector get_joint_positions(const ProtoStruct& extra) = 0; /// @brief Move each joint on the arm to the corresponding angle specified in @param positions /// @param extra Any additional arguments to the method. virtual void move_to_joint_positions(const std::vector& positions, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Reports if the arm is in motion. virtual bool is_moving() = 0; @@ -104,13 +104,13 @@ class Arm : public Component, public Stoppable { /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Get the kinematics data associated with the arm. /// @param extra Any additional arguments to the method. /// @return A variant of kinematics data, with bytes field containing the raw bytes of the file /// and the object's type indicating the file format. - virtual KinematicsData get_kinematics(const AttributeMap& extra) = 0; + virtual KinematicsData get_kinematics(const ProtoStruct& extra) = 0; /// @brief Get the kinematics data associated with the arm. /// @return A variant of kinematics data, with bytes field containing the raw bytes of the file @@ -126,7 +126,7 @@ class Arm : public Component, public Stoppable { /// @brief Returns `GeometryConfig`s associated with the calling arm /// @param extra Any additional arguments to the method - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; API api() const override; diff --git a/src/viam/sdk/components/base.hpp b/src/viam/sdk/components/base.hpp index 569e8fbde..687f9e484 100644 --- a/src/viam/sdk/components/base.hpp +++ b/src/viam/sdk/components/base.hpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include @@ -53,7 +53,7 @@ class Base : public Component, public Stoppable { /// @param extra Any additional arguments to the method virtual void move_straight(int64_t distance_mm, double mm_per_sec, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Spins a robot's base by an given angle, expressed in degrees. This method blocks /// until completed or cancelled @@ -68,7 +68,7 @@ class Base : public Component, public Stoppable { /// @param angle_deg Desired angle /// @param degs_per_sec Desired angular velocity /// @param extra Any additional arguments to the method - virtual void spin(double angle_deg, double degs_per_sec, const AttributeMap& extra) = 0; + virtual void spin(double angle_deg, double degs_per_sec, const ProtoStruct& extra) = 0; /// @brief Sets the linear and angular power of a base -1 -> 1 in terms of power for /// each direction @@ -85,7 +85,7 @@ class Base : public Component, public Stoppable { /// @param extra Any additional arguments to the method virtual void set_power(const Vector3& linear, const Vector3& angular, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Set the linear and angular velocity of a base /// @param linear Desired linear velocity in mm per second for each direction @@ -100,7 +100,7 @@ class Base : public Component, public Stoppable { /// @param extra Any additional arguments to the method virtual void set_velocity(const Vector3& linear, const Vector3& angular, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Reports if the base is in motion virtual bool is_moving() = 0; @@ -112,12 +112,12 @@ class Base : public Component, public Stoppable { /// @brief Returns physical properties of the base (width, turning radius, wheel circumference) /// @param extra Any additional arguments to the method - virtual properties get_properties(const AttributeMap& extra) = 0; + virtual properties get_properties(const ProtoStruct& extra) = 0; /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling base. /// @return The requested `GeometryConfig`s associated with the component. @@ -128,7 +128,7 @@ class Base : public Component, public Stoppable { /// @brief Returns `GeometryConfig`s associated with the calling base. /// @param extra Any additional arguments to the method. /// @return The requested `GeometryConfig`s associated with the component. - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; API api() const override; diff --git a/src/viam/sdk/components/board.hpp b/src/viam/sdk/components/board.hpp index 1e198c9d3..b61a8208a 100644 --- a/src/viam/sdk/components/board.hpp +++ b/src/viam/sdk/components/board.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include #include @@ -99,7 +99,7 @@ class Board : public Component { /// @param pin board pin name /// @param extra Any additional arguments to the method /// @return high/low state of the given pin. High = on, low = off - virtual bool get_gpio(const std::string& pin, const AttributeMap& extra) = 0; + virtual bool get_gpio(const std::string& pin, const ProtoStruct& extra) = 0; /// @brief Set the gpio high/low state of the given pin on a board /// @param high true if the pin should be set to high (on) or false if it should be low (off) @@ -110,7 +110,7 @@ class Board : public Component { /// @brief Set the gpio high/low state of the given pin on a board /// @param high true if the pin should be set to high (on) or false if it should be low (off) /// @param extra Any additional arguments to the method - virtual void set_gpio(const std::string& pin, bool high, const AttributeMap& extra) = 0; + virtual void set_gpio(const std::string& pin, bool high, const ProtoStruct& extra) = 0; /// @brief Gets the duty cycle of the given pin on a board. /// @param pin board pin name @@ -123,7 +123,7 @@ class Board : public Component { /// @param pin board pin name /// @param extra Any additional arguments to the method /// @return duty cycle percentage (0 to 1) - virtual double get_pwm_duty_cycle(const std::string& pin, const AttributeMap& extra) = 0; + virtual double get_pwm_duty_cycle(const std::string& pin, const ProtoStruct& extra) = 0; /// @brief Sets the given pin of a board to the given duty cycle. /// @param pin board pin name @@ -138,7 +138,7 @@ class Board : public Component { /// @param extra Any additional arguments to the method virtual void set_pwm_duty_cycle(const std::string& pin, double duty_cycle_pct, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Gets the PWM frequency of the given pin on a board. /// @param pin board pin name @@ -149,7 +149,7 @@ class Board : public Component { /// @brief Gets the PWM frequency of the given pin on a board. /// @param pin board pin name /// @param extra Any additional arguments to the method - virtual uint64_t get_pwm_frequency(const std::string& pin, const AttributeMap& extra) = 0; + virtual uint64_t get_pwm_frequency(const std::string& pin, const ProtoStruct& extra) = 0; /// @brief Sets the given pin on a board to the given PWM frequency. 0 will use the board's /// default PWM frequency. @@ -166,7 +166,7 @@ class Board : public Component { /// @param extra Any additional arguments to the method virtual void set_pwm_frequency(const std::string& pin, uint64_t frequency_hz, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Reads off the current value of an analog reader on a board. Consult your ADC's docs /// or Viam's `Board` docs for more information. @@ -180,7 +180,7 @@ class Board : public Component { /// @param analog_reader_name analog reader to read from /// @param extra Any additional arguments to the method virtual analog_response read_analog(const std::string& analog_reader_name, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Writes the value to the analog writer of the board. /// @param pin the pin to write to @@ -193,7 +193,7 @@ class Board : public Component { /// @param pin the pin to write to /// @param value the value to set the pin to /// @param extra any additional arguments to the method - virtual void write_analog(const std::string& pin, int value, const AttributeMap& extra) = 0; + virtual void write_analog(const std::string& pin, int value, const ProtoStruct& extra) = 0; /// @brief Returns the current value of the interrupt which is based on the type of /// interrupt. Consult Viam's `Board` docs for more information. @@ -207,7 +207,7 @@ class Board : public Component { /// @param digital_interrupt_name digital interrupt to check /// @param extra Any additional arguments to the method virtual digital_value read_digital_interrupt(const std::string& digital_interrupt_name, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Returns a stream of digital interrupt ticks. /// @param digital_interrupt_names digital interrupts to stream @@ -225,7 +225,7 @@ class Board : public Component { /// @param extra Any additional arguments to the method virtual void stream_ticks(std::vector const& digital_interrupt_names, std::function const& tick_handler, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Sets the power consumption mode of the board to the requested setting for the given /// duration. @@ -243,13 +243,13 @@ class Board : public Component { /// @param duration Requested duration to stay in `power_mode` (in microseconds) virtual void set_power_mode( power_mode power_mode, - const AttributeMap& extra, + const ProtoStruct& extra, const boost::optional& duration = {}) = 0; /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling board. /// @return The requested `GeometryConfig`s associated with the component. @@ -260,7 +260,7 @@ class Board : public Component { /// @brief Returns `GeometryConfig`s associated with the calling board. /// @param extra Any additional arguments to the method. /// @return The requested `GeometryConfig`s associated with the component. - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; protected: explicit Board(std::string name); diff --git a/src/viam/sdk/components/camera.hpp b/src/viam/sdk/components/camera.hpp index 3e5a4e0fa..e47ff929a 100644 --- a/src/viam/sdk/components/camera.hpp +++ b/src/viam/sdk/components/camera.hpp @@ -14,7 +14,7 @@ #include #include -#include +#include #include #include #include @@ -173,7 +173,7 @@ class Camera : public Component { /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Get the next image from the camera as a raw image. /// @param mime_type the desired mime_type of the image (does not guarantee output type). @@ -186,7 +186,7 @@ class Camera : public Component { /// @param mime_type the desired mime_type of the image (does not guarantee output type). /// @param extra any additional arguments to the method. /// @return The frame as a `raw_image`. - virtual raw_image get_image(std::string mime_type, const AttributeMap& extra) = 0; + virtual raw_image get_image(std::string mime_type, const ProtoStruct& extra) = 0; /// @brief Get the next images from the camera as a vector of raw images with names and /// metadata. @@ -204,7 +204,7 @@ class Camera : public Component { /// @param mime_type the desired mime_type of the point_cloud (does not guarantee output type). /// @param extra any additional arguments to the method. /// @return The requested `point_cloud`. - virtual point_cloud get_point_cloud(std::string mime_type, const AttributeMap& extra) = 0; + virtual point_cloud get_point_cloud(std::string mime_type, const ProtoStruct& extra) = 0; /// @brief Returns `GeometryConfig`s associated with the calling camera. /// @return The requested `GeometryConfig`s associated with the component. @@ -215,7 +215,7 @@ class Camera : public Component { /// @brief Returns `GeometryConfig`s associated with the calling camera. /// @param extra Any additional arguments to the method. /// @return The requested `GeometryConfig`s associated with the component. - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; /// @brief Get the camera's properties. /// @return The camera properties. diff --git a/src/viam/sdk/components/encoder.hpp b/src/viam/sdk/components/encoder.hpp index 13586d276..760827081 100644 --- a/src/viam/sdk/components/encoder.hpp +++ b/src/viam/sdk/components/encoder.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -80,7 +80,7 @@ class Encoder : public Component { /// @param position_type The type of position you are requesting. If the driver does not /// implement the requested type, this call will return an error. If position type is /// `unspecified`, the response will return a default according to the driver. - virtual position get_position(const AttributeMap& extra, + virtual position get_position(const ProtoStruct& extra, position_type position_type = position_type::unspecified) = 0; /// @brief Reset the value of the position @@ -90,7 +90,7 @@ class Encoder : public Component { /// @brief Reset the value of the position /// @param extra Any additional arguments to the method. - virtual void reset_position(const AttributeMap& extra) = 0; + virtual void reset_position(const ProtoStruct& extra) = 0; /// @brief Returns a list of all the position_types that are supported by the encoder. inline properties get_properties() { @@ -99,12 +99,12 @@ class Encoder : public Component { /// @brief Returns a list of all the position_types that are supported by the encoder. /// @param extra Any additional arguments to the method. - virtual properties get_properties(const AttributeMap& extra) = 0; + virtual properties get_properties(const ProtoStruct& extra) = 0; /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling encoder. /// @return The requested `GeometryConfig`s associated with the component. @@ -115,7 +115,7 @@ class Encoder : public Component { /// @brief Returns `GeometryConfig`s associated with the calling encoder. /// @param extra Any additional arguments to the method. /// @return The requested `GeometryConfig`s associated with the component. - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; API api() const override; diff --git a/src/viam/sdk/components/gantry.hpp b/src/viam/sdk/components/gantry.hpp index 69a60356d..e955da5c4 100644 --- a/src/viam/sdk/components/gantry.hpp +++ b/src/viam/sdk/components/gantry.hpp @@ -41,7 +41,7 @@ class Gantry : public Component, public Stoppable { /// @brief Get the positions of the axes of the gantry in millimeters. /// @param extra Any additional arguments to the method - virtual std::vector get_position(const AttributeMap& extra) = 0; + virtual std::vector get_position(const ProtoStruct& extra) = 0; /// @brief Move the axes of the gantry to the desired positions (mm) at the requested speeds /// (mm/sec). @@ -57,7 +57,7 @@ class Gantry : public Component, public Stoppable { /// axis. /// @param extra Any additional arguments to the method virtual void move_to_position(const std::vector& coordinates, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Run the homing sequence of the gantry to re-calibrate the axes with respect to the /// limit switches. @@ -70,7 +70,7 @@ class Gantry : public Component, public Stoppable { /// limit switches. /// @param extra Any additional arguments to the method /// @return Whether the gantry has run the homing sequence successfully. - virtual bool home(const AttributeMap& extra) = 0; + virtual bool home(const ProtoStruct& extra) = 0; /// @brief Get the lengths of the axes of the gantry in millimeters. inline std::vector get_lengths() { @@ -79,7 +79,7 @@ class Gantry : public Component, public Stoppable { /// @brief Get the lengths of the axes of the gantry in millimeters. /// @param extra Any additional arguments to the method - virtual std::vector get_lengths(const AttributeMap& extra) = 0; + virtual std::vector get_lengths(const ProtoStruct& extra) = 0; /// @brief Reports if the gantry is in motion. virtual bool is_moving() = 0; @@ -87,7 +87,7 @@ class Gantry : public Component, public Stoppable { /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling gantry inline std::vector get_geometries() { @@ -96,7 +96,7 @@ class Gantry : public Component, public Stoppable { /// @brief Returns `GeometryConfig`s associated with the calling gantry /// @param extra Any additional arguments to the method - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; API api() const override; diff --git a/src/viam/sdk/components/generic.hpp b/src/viam/sdk/components/generic.hpp index 834c5d34f..af9d0ef6f 100644 --- a/src/viam/sdk/components/generic.hpp +++ b/src/viam/sdk/components/generic.hpp @@ -6,7 +6,7 @@ #include -#include +#include #include #include @@ -24,7 +24,7 @@ class GenericComponent : public Component { /// @brief Send/receive arbitrary commands to the resource. /// @param command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling camera. /// @return The requested `GeometryConfig`s associated with the component. @@ -32,7 +32,7 @@ class GenericComponent : public Component { return get_geometries({}); } - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; /// @brief Creates a `GenericComponent` `API`. API api() const override; diff --git a/src/viam/sdk/components/gripper.hpp b/src/viam/sdk/components/gripper.hpp index 7b8579e8d..40fee9882 100644 --- a/src/viam/sdk/components/gripper.hpp +++ b/src/viam/sdk/components/gripper.hpp @@ -30,7 +30,7 @@ class Gripper : public Component, public Stoppable { /// @brief Open the gripper. /// @param extra Any additional arguments to the method. - virtual void open(const AttributeMap& extra) = 0; + virtual void open(const ProtoStruct& extra) = 0; /// @brief Instruct the gripper to grab. /// @return bool indicating if the gripper grabbed something. @@ -41,7 +41,7 @@ class Gripper : public Component, public Stoppable { /// @brief Instruct the gripper to grab. /// @param extra Any additional arguments to the method. /// @return bool indicating if the gripper grabbed something. - virtual bool grab(const AttributeMap& extra) = 0; + virtual bool grab(const ProtoStruct& extra) = 0; /// @brief Reports if the gripper is in motion. virtual bool is_moving() = 0; @@ -49,7 +49,7 @@ class Gripper : public Component, public Stoppable { /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling arm inline std::vector get_geometries() { @@ -58,7 +58,7 @@ class Gripper : public Component, public Stoppable { /// @brief Returns `GeometryConfig`s associated with the calling arm /// @param extra Any additional arguments to the method - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; API api() const override; diff --git a/src/viam/sdk/components/motor.hpp b/src/viam/sdk/components/motor.hpp index 3643e8bec..6741d2426 100644 --- a/src/viam/sdk/components/motor.hpp +++ b/src/viam/sdk/components/motor.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include #include @@ -74,7 +74,7 @@ class Motor : public Component, public Stoppable { /// @param power_pct Percentage of motor's power, between -1 and 1, where negative values /// indicate a backwards direction and positive values, a forward direction. /// @param extra Any additional arguments to the method. - virtual void set_power(double power_pct, const AttributeMap& extra) = 0; + virtual void set_power(double power_pct, const ProtoStruct& extra) = 0; /// @brief Instructs the motor to turn at a specified speed, which is expressed in RPM, for a /// specified number of rotations relative to its starting position. @@ -97,7 +97,7 @@ class Motor : public Component, public Stoppable { /// comes in. /// @param extra Any additional arguments to the method. /// @throws `Exception` if position reporting is not supported - virtual void go_for(double rpm, double revolutions, const AttributeMap& extra) = 0; + virtual void go_for(double rpm, double revolutions, const ProtoStruct& extra) = 0; /// @brief Move the motor to a specific position that is relative to its /// home position at a specified speed which is expressed in RPM. @@ -114,7 +114,7 @@ class Motor : public Component, public Stoppable { /// @param position_revolutions Number of revolutions relative to motor's home home/zero /// @param extra Any additional arguments to the method. /// @throws `Exception` if position reporting is not supported - virtual void go_to(double rpm, double position_revolutions, const AttributeMap& extra) = 0; + virtual void go_to(double rpm, double position_revolutions, const ProtoStruct& extra) = 0; /// @brief Move the motor indefinitely at a specified speed which is expressed in RPM. /// @param rpm Speed of motor travel in rotations per minute @@ -127,7 +127,7 @@ class Motor : public Component, public Stoppable { /// @param rpm Speed of motor travel in rotations per minute /// @param extra Any additional arguments to the method. /// @throws `Exception` if position reporting is not supported - virtual void set_rpm(double rpm, const AttributeMap& extra) = 0; + virtual void set_rpm(double rpm, const ProtoStruct& extra) = 0; /// @brief Sets the current position of the motor as the new zero position. /// @param offset Motor position @@ -140,7 +140,7 @@ class Motor : public Component, public Stoppable { /// @param offset Motor position /// @param extra Any additional arguments to the method /// @throws `Exception` if position reporting is not supported - virtual void reset_zero_position(double offset, const AttributeMap& extra) = 0; + virtual void reset_zero_position(double offset, const ProtoStruct& extra) = 0; /// @brief Reports the position of the robot's motor relative to its zero position. /// @throws `Exception` if position reporting is not supported @@ -151,7 +151,7 @@ class Motor : public Component, public Stoppable { /// @brief Reports the position of the robot's motor relative to its zero position. /// @param extra Any additional arguments to the method /// @throws `Exception` if position reporting is not supported - virtual position get_position(const AttributeMap& extra) = 0; + virtual position get_position(const ProtoStruct& extra) = 0; /// @brief Returns the properties of the motor which comprises the booleans indicating /// which optional features the robot's motor supports @@ -162,7 +162,7 @@ class Motor : public Component, public Stoppable { /// @brief Returns the properties of the motor which comprises the booleans indicating /// @param extra Any additional arguments to the method /// which optional features the robot's motor supports - virtual properties get_properties(const AttributeMap& extra) = 0; + virtual properties get_properties(const ProtoStruct& extra) = 0; /// @return The motor's current power_status inline power_status get_power_status() { @@ -171,7 +171,7 @@ class Motor : public Component, public Stoppable { /// @return The motor's current power_status /// @param extra Any additional arguments to the method - virtual power_status get_power_status(const AttributeMap& extra) = 0; + virtual power_status get_power_status(const ProtoStruct& extra) = 0; /// @brief Reports if a component is in motion virtual bool is_moving() = 0; @@ -179,7 +179,7 @@ class Motor : public Component, public Stoppable { /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling motor. /// @return The requested `GeometryConfig`s associated with the component. @@ -190,7 +190,7 @@ class Motor : public Component, public Stoppable { /// @brief Returns `GeometryConfig`s associated with the calling motor. /// @param extra Any additional arguments to the method. /// @return The requested `GeometryConfig`s associated with the component. - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; API api() const override; diff --git a/src/viam/sdk/components/movement_sensor.hpp b/src/viam/sdk/components/movement_sensor.hpp index 731fe4b64..da545396d 100644 --- a/src/viam/sdk/components/movement_sensor.hpp +++ b/src/viam/sdk/components/movement_sensor.hpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include @@ -89,54 +89,54 @@ class MovementSensor : public Component { return get_linear_velocity({}); } - virtual Vector3 get_linear_velocity(const AttributeMap& extra) = 0; + virtual Vector3 get_linear_velocity(const ProtoStruct& extra) = 0; inline Vector3 get_angular_velocity() { return get_angular_velocity({}); } - virtual Vector3 get_angular_velocity(const AttributeMap& extra) = 0; + virtual Vector3 get_angular_velocity(const ProtoStruct& extra) = 0; inline compassheading get_compass_heading() { return get_compass_heading({}); } - virtual compassheading get_compass_heading(const AttributeMap& extra) = 0; + virtual compassheading get_compass_heading(const ProtoStruct& extra) = 0; inline orientation get_orientation() { return get_orientation({}); } - virtual orientation get_orientation(const AttributeMap& extra) = 0; + virtual orientation get_orientation(const ProtoStruct& extra) = 0; inline position get_position() { return get_position({}); } - virtual position get_position(const AttributeMap& extra) = 0; + virtual position get_position(const ProtoStruct& extra) = 0; inline properties get_properties() { return get_properties({}); } - virtual properties get_properties(const AttributeMap& extra) = 0; + virtual properties get_properties(const ProtoStruct& extra) = 0; inline std::unordered_map get_accuracy() { return get_accuracy({}); } - virtual std::unordered_map get_accuracy(const AttributeMap& extra) = 0; + virtual std::unordered_map get_accuracy(const ProtoStruct& extra) = 0; inline Vector3 get_linear_acceleration() { return get_linear_acceleration({}); } - virtual Vector3 get_linear_acceleration(const AttributeMap& extra) = 0; + virtual Vector3 get_linear_acceleration(const ProtoStruct& extra) = 0; /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling movementsensor. /// @return The requested `GeometryConfig`s associated with the component. @@ -147,10 +147,10 @@ class MovementSensor : public Component { /// @brief Returns `GeometryConfig`s associated with the calling movementsensor. /// @param extra Any additional arguments to the method. /// @return The requested `GeometryConfig`s associated with the component. - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; protected: - explicit MovementSensor(std::string name) : Component(std::move(name)){}; + explicit MovementSensor(std::string name) : Component(std::move(name)) {}; }; template <> diff --git a/src/viam/sdk/components/pose_tracker.hpp b/src/viam/sdk/components/pose_tracker.hpp index 563853081..b0d8980d0 100644 --- a/src/viam/sdk/components/pose_tracker.hpp +++ b/src/viam/sdk/components/pose_tracker.hpp @@ -46,12 +46,12 @@ class PoseTracker : public Component { /// @param extra Any additional arguments to the method. /// @return A mapping of each body to its pose. virtual pose_map get_poses(const std::vector& body_names, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling pose tracker inline std::vector get_geometries() { @@ -60,7 +60,7 @@ class PoseTracker : public Component { /// @brief Returns `GeometryConfig`s associated with the calling pose tracker /// @param extra Any additional arguments to the method - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; protected: using Component::Component; diff --git a/src/viam/sdk/components/power_sensor.hpp b/src/viam/sdk/components/power_sensor.hpp index 1149969bf..2730c5634 100644 --- a/src/viam/sdk/components/power_sensor.hpp +++ b/src/viam/sdk/components/power_sensor.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -64,7 +64,7 @@ class PowerSensor : public Component { /// @brief Returns the voltage reading of this sensor. /// @param extra Any additional arguments to this method. /// @return The voltage reading of this sensor. - virtual voltage get_voltage(const AttributeMap& extra) = 0; + virtual voltage get_voltage(const ProtoStruct& extra) = 0; /// @brief Returns the current reading of this sensor. /// @return The current reading of this sensor. @@ -75,7 +75,7 @@ class PowerSensor : public Component { /// @brief Returns the current reading of this sensor. /// @param extra Any additional arguments to this method. /// @return The current reading of this sensor. - virtual current get_current(const AttributeMap& extra) = 0; + virtual current get_current(const ProtoStruct& extra) = 0; /// @brief Returns the power reading of this sensor. /// @return The power reading of this sensor. @@ -86,26 +86,26 @@ class PowerSensor : public Component { /// @brief Returns the power reading of this sensor. /// @param extra Any additional arguments to this method. /// @return The power reading of this sensor. - virtual double get_power(const AttributeMap& extra) = 0; + virtual double get_power(const ProtoStruct& extra) = 0; /// @brief Returns the measurements/data specific to this sensor. /// @return The requested measurements/data specific to this sensor. - inline AttributeMap get_readings() { + inline ProtoStruct get_readings() { return get_readings({}); } /// @brief Returns the measurements/data specific to this sensor. /// @param extra Any additional arguments to the method. /// @return The requested measurements/data specific to this sensor. - virtual AttributeMap get_readings(const AttributeMap& extra) = 0; + virtual ProtoStruct get_readings(const ProtoStruct& extra) = 0; /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; protected: - explicit PowerSensor(std::string name) : Component(std::move(name)){}; + explicit PowerSensor(std::string name) : Component(std::move(name)) {}; }; template <> diff --git a/src/viam/sdk/components/private/arm_client.cpp b/src/viam/sdk/components/private/arm_client.cpp index 3e72ea541..8ec6b8a6b 100644 --- a/src/viam/sdk/components/private/arm_client.cpp +++ b/src/viam/sdk/components/private/arm_client.cpp @@ -14,19 +14,19 @@ ArmClient::ArmClient(std::string name, std::shared_ptr channel) stub_(viam::component::arm::v1::ArmService::NewStub(channel)), channel_(std::move(channel)) {} -pose ArmClient::get_end_position(const AttributeMap& extra) { +pose ArmClient::get_end_position(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetEndPosition) .with(extra) .invoke([&](auto& response) { return pose::from_proto(response.pose()); }); } -void ArmClient::move_to_position(const pose& pose, const AttributeMap& extra) { +void ArmClient::move_to_position(const pose& pose, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::MoveToPosition) .with(extra, [&](auto& request) { *request.mutable_to() = pose.to_proto(); }) .invoke(); } -std::vector ArmClient::get_joint_positions(const AttributeMap& extra) { +std::vector ArmClient::get_joint_positions(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetJointPositions) .with(extra) .invoke([](auto& response) { @@ -36,7 +36,7 @@ std::vector ArmClient::get_joint_positions(const AttributeMap& extra) { } void ArmClient::move_to_joint_positions(const std::vector& positions, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::MoveToJointPositions) .with(extra, [&](auto& request) { @@ -52,23 +52,23 @@ bool ArmClient::is_moving() { }); } -void ArmClient::stop(const AttributeMap& extra) { +void ArmClient::stop(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Stop).with(extra).invoke(); } -AttributeMap ArmClient::do_command(const AttributeMap& command) { +ProtoStruct ArmClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); } -Arm::KinematicsData ArmClient::get_kinematics(const AttributeMap& extra) { +Arm::KinematicsData ArmClient::get_kinematics(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetKinematics) .with(extra) .invoke([](auto& response) { return Arm::from_proto(response); }); } -std::vector ArmClient::get_geometries(const AttributeMap& extra) { +std::vector ArmClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); diff --git a/src/viam/sdk/components/private/arm_client.hpp b/src/viam/sdk/components/private/arm_client.hpp index 52f2679d6..57737a08a 100644 --- a/src/viam/sdk/components/private/arm_client.hpp +++ b/src/viam/sdk/components/private/arm_client.hpp @@ -21,19 +21,19 @@ class ArmClient : public Arm { using interface_type = Arm; ArmClient(std::string name, std::shared_ptr channel); - pose get_end_position(const AttributeMap& extra) override; - void move_to_position(const pose& pose, const AttributeMap& extra) override; - std::vector get_joint_positions(const AttributeMap& extra) override; + pose get_end_position(const ProtoStruct& extra) override; + void move_to_position(const pose& pose, const ProtoStruct& extra) override; + std::vector get_joint_positions(const ProtoStruct& extra) override; void move_to_joint_positions(const std::vector& positions, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; bool is_moving() override; - void stop(const AttributeMap& extra) override; - AttributeMap do_command(const AttributeMap& command) override; - Arm::KinematicsData get_kinematics(const AttributeMap& extra) override; - std::vector get_geometries(const AttributeMap& extra) override; + void stop(const ProtoStruct& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + Arm::KinematicsData get_kinematics(const ProtoStruct& extra) override; + std::vector get_geometries(const ProtoStruct& extra) override; // Using declarations to introduce convenience overloads of interface which do not need to be - // passed the AttributeMap parameter. + // passed the ProtoStruct parameter. using Arm::get_end_position; using Arm::get_geometries; using Arm::get_joint_positions; diff --git a/src/viam/sdk/components/private/arm_server.cpp b/src/viam/sdk/components/private/arm_server.cpp index b6c3e0f05..93a903b67 100644 --- a/src/viam/sdk/components/private/arm_server.cpp +++ b/src/viam/sdk/components/private/arm_server.cpp @@ -72,7 +72,7 @@ ::grpc::Status ArmServer::DoCommand(::grpc::ServerContext*, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper("ArmServer::DoCommand", this, request)([&](auto&, auto& arm) { - const AttributeMap result = arm->do_command(struct_to_map(request->command())); + const ProtoStruct result = arm->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/base_client.cpp b/src/viam/sdk/components/private/base_client.cpp index b725c4d25..851d1d246 100644 --- a/src/viam/sdk/components/private/base_client.cpp +++ b/src/viam/sdk/components/private/base_client.cpp @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include #include @@ -25,9 +25,9 @@ namespace impl { BaseClient::BaseClient(std::string name, std::shared_ptr channel) : Base(std::move(name)), stub_(viam::component::base::v1::BaseService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; -void BaseClient::move_straight(int64_t distance_mm, double mm_per_sec, const AttributeMap& extra) { +void BaseClient::move_straight(int64_t distance_mm, double mm_per_sec, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::MoveStraight) .with(extra, [&](auto& request) { @@ -37,7 +37,7 @@ void BaseClient::move_straight(int64_t distance_mm, double mm_per_sec, const Att .invoke(); } -void BaseClient::spin(double angle_deg, double degs_per_sec, const AttributeMap& extra) { +void BaseClient::spin(double angle_deg, double degs_per_sec, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Spin) .with(extra, [&](auto& request) { @@ -49,7 +49,7 @@ void BaseClient::spin(double angle_deg, double degs_per_sec, const AttributeMap& void BaseClient::set_power(const Vector3& linear, const Vector3& angular, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::SetPower) .with(extra, [&](auto& request) { @@ -61,7 +61,7 @@ void BaseClient::set_power(const Vector3& linear, void BaseClient::set_velocity(const Vector3& linear, const Vector3& angular, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::SetVelocity) .with(extra, [&](auto& request) { @@ -71,7 +71,7 @@ void BaseClient::set_velocity(const Vector3& linear, .invoke(); } -void BaseClient::stop(const AttributeMap& extra) { +void BaseClient::stop(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Stop).with(extra).invoke(); } @@ -81,19 +81,19 @@ bool BaseClient::is_moving() { }); } -std::vector BaseClient::get_geometries(const AttributeMap& extra) { +std::vector BaseClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); } -Base::properties BaseClient::get_properties(const AttributeMap& extra) { +Base::properties BaseClient::get_properties(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetProperties) .with(extra) .invoke([](auto& response) { return properties::from_proto(response); }); } -AttributeMap BaseClient::do_command(const AttributeMap& command) { +ProtoStruct BaseClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); diff --git a/src/viam/sdk/components/private/base_client.hpp b/src/viam/sdk/components/private/base_client.hpp index 166f6cdb7..7547e98fb 100644 --- a/src/viam/sdk/components/private/base_client.hpp +++ b/src/viam/sdk/components/private/base_client.hpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include @@ -25,19 +25,19 @@ class BaseClient : public Base { public: using interface_type = Base; BaseClient(std::string name, std::shared_ptr channel); - void move_straight(int64_t distance_mm, double mm_per_sec, const AttributeMap& extra) override; - void spin(double angle_deg, double degs_per_sec, const AttributeMap& extra) override; + void move_straight(int64_t distance_mm, double mm_per_sec, const ProtoStruct& extra) override; + void spin(double angle_deg, double degs_per_sec, const ProtoStruct& extra) override; void set_power(const Vector3& linear, const Vector3& angular, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; void set_velocity(const Vector3& linear, const Vector3& angular, - const AttributeMap& extra) override; - void stop(const AttributeMap& extra) override; - std::vector get_geometries(const AttributeMap& extra) override; - properties get_properties(const AttributeMap& extra) override; + const ProtoStruct& extra) override; + void stop(const ProtoStruct& extra) override; + std::vector get_geometries(const ProtoStruct& extra) override; + properties get_properties(const ProtoStruct& extra) override; bool is_moving() override; - AttributeMap do_command(const AttributeMap& command) override; + ProtoStruct do_command(const ProtoStruct& command) override; // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd // like to live in a world where implementers of derived classes don't need to go out of diff --git a/src/viam/sdk/components/private/base_server.cpp b/src/viam/sdk/components/private/base_server.cpp index d2041674d..6986068d8 100644 --- a/src/viam/sdk/components/private/base_server.cpp +++ b/src/viam/sdk/components/private/base_server.cpp @@ -14,7 +14,7 @@ namespace sdk { namespace impl { BaseServer::BaseServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status BaseServer::MoveStraight( ::grpc::ServerContext*, @@ -106,7 +106,7 @@ ::grpc::Status BaseServer::DoCommand(grpc::ServerContext*, viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "BaseServer::DoCommand", this, request)([&](auto&, auto& base) { - const AttributeMap result = base->do_command(struct_to_map(request->command())); + const ProtoStruct result = base->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/board_client.cpp b/src/viam/sdk/components/private/board_client.cpp index c2a6fc57f..3f41357df 100644 --- a/src/viam/sdk/components/private/board_client.cpp +++ b/src/viam/sdk/components/private/board_client.cpp @@ -25,7 +25,7 @@ BoardClient::BoardClient(std::string name, std::shared_ptr channe stub_(viam::component::board::v1::BoardService::NewStub(channel)), channel_(std::move(channel)) {} -void BoardClient::set_gpio(const std::string& pin, bool high, const AttributeMap& extra) { +void BoardClient::set_gpio(const std::string& pin, bool high, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::SetGPIO) .with(extra, [&](auto& request) { @@ -35,13 +35,13 @@ void BoardClient::set_gpio(const std::string& pin, bool high, const AttributeMap .invoke(); } -bool BoardClient::get_gpio(const std::string& pin, const AttributeMap& extra) { +bool BoardClient::get_gpio(const std::string& pin, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGPIO) .with(extra, [&](auto& request) { request.set_pin(pin); }) .invoke([](auto& response) { return response.high(); }); } -double BoardClient::get_pwm_duty_cycle(const std::string& pin, const AttributeMap& extra) { +double BoardClient::get_pwm_duty_cycle(const std::string& pin, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::PWM) .with(extra, [&](auto& request) { request.set_pin(pin); }) .invoke([](auto& response) { return response.duty_cycle_pct(); }); @@ -49,7 +49,7 @@ double BoardClient::get_pwm_duty_cycle(const std::string& pin, const AttributeMa void BoardClient::set_pwm_duty_cycle(const std::string& pin, double duty_cycle_pct, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::SetPWM) .with(extra, [&](auto& request) { @@ -59,7 +59,7 @@ void BoardClient::set_pwm_duty_cycle(const std::string& pin, .invoke(); } -uint64_t BoardClient::get_pwm_frequency(const std::string& pin, const AttributeMap& extra) { +uint64_t BoardClient::get_pwm_frequency(const std::string& pin, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::PWMFrequency) .with(extra, [&](auto& request) { request.set_pin(pin); }) .invoke([](auto& response) { return response.frequency_hz(); }); @@ -67,7 +67,7 @@ uint64_t BoardClient::get_pwm_frequency(const std::string& pin, const AttributeM void BoardClient::set_pwm_frequency(const std::string& pin, uint64_t frequency_hz, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::SetPWMFrequency) .with(extra, [&](auto& request) { @@ -77,7 +77,7 @@ void BoardClient::set_pwm_frequency(const std::string& pin, .invoke(); } -AttributeMap BoardClient::do_command(const AttributeMap& command) { +ProtoStruct BoardClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); @@ -86,7 +86,7 @@ AttributeMap BoardClient::do_command(const AttributeMap& command) { // TODO(RSDK-6048) update `client_wrapper` to allow for requests without a `mutable_name()` method, // then wrap here. Board::analog_response BoardClient::read_analog(const std::string& analog_reader_name, - const AttributeMap& extra) { + const ProtoStruct& extra) { viam::component::board::v1::ReadAnalogReaderRequest request; viam::component::board::v1::ReadAnalogReaderResponse response; ClientContext ctx; @@ -103,7 +103,7 @@ Board::analog_response BoardClient::read_analog(const std::string& analog_reader response.value(), response.min_range(), response.max_range(), response.step_size()}; } -void BoardClient::write_analog(const std::string& pin, int value, const AttributeMap& extra) { +void BoardClient::write_analog(const std::string& pin, int value, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::WriteAnalog) .with(extra, [&](auto& request) { @@ -116,7 +116,7 @@ void BoardClient::write_analog(const std::string& pin, int value, const Attribut // TODO(RSDK-6048) update `client_wrapper` to allow for requests without a `mutable_name()` method, // then wrap here. Board::digital_value BoardClient::read_digital_interrupt(const std::string& digital_interrupt_name, - const AttributeMap& extra) { + const ProtoStruct& extra) { viam::component::board::v1::GetDigitalInterruptValueRequest request; viam::component::board::v1::GetDigitalInterruptValueResponse response; ClientContext ctx; @@ -134,7 +134,7 @@ Board::digital_value BoardClient::read_digital_interrupt(const std::string& digi void BoardClient::stream_ticks(std::vector const& digital_interrupt_names, std::function const& tick_handler, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::StreamTicks) .with(extra, [&](auto& request) { @@ -149,7 +149,7 @@ void BoardClient::stream_ticks(std::vector const& digital_interrupt } void BoardClient::set_power_mode(power_mode power_mode, - const AttributeMap& extra, + const ProtoStruct& extra, const boost::optional& duration) { return make_client_helper(this, *stub_, &StubType::SetPowerMode) .with(extra, @@ -162,7 +162,7 @@ void BoardClient::set_power_mode(power_mode power_mode, .invoke(); } -std::vector BoardClient::get_geometries(const AttributeMap& extra) { +std::vector BoardClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); diff --git a/src/viam/sdk/components/private/board_client.hpp b/src/viam/sdk/components/private/board_client.hpp index e98807acc..c0c0a3161 100644 --- a/src/viam/sdk/components/private/board_client.hpp +++ b/src/viam/sdk/components/private/board_client.hpp @@ -23,30 +23,30 @@ class BoardClient : public Board { public: using interface_type = Board; BoardClient(std::string name, std::shared_ptr channel); - AttributeMap do_command(const AttributeMap& command) override; - void set_gpio(const std::string& pin, bool high, const AttributeMap& extra) override; - bool get_gpio(const std::string& pin, const AttributeMap& extra) override; - double get_pwm_duty_cycle(const std::string& pin, const AttributeMap& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + void set_gpio(const std::string& pin, bool high, const ProtoStruct& extra) override; + bool get_gpio(const std::string& pin, const ProtoStruct& extra) override; + double get_pwm_duty_cycle(const std::string& pin, const ProtoStruct& extra) override; void set_pwm_duty_cycle(const std::string& pin, double duty_cycle_pct, - const AttributeMap& extra) override; - uint64_t get_pwm_frequency(const std::string& pin, const AttributeMap& extra) override; + const ProtoStruct& extra) override; + uint64_t get_pwm_frequency(const std::string& pin, const ProtoStruct& extra) override; void set_pwm_frequency(const std::string& pin, uint64_t frequency_hz, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; analog_response read_analog(const std::string& analog_reader_name, - const AttributeMap& extra) override; - void write_analog(const std::string& pin, int value, const AttributeMap& extra) override; + const ProtoStruct& extra) override; + void write_analog(const std::string& pin, int value, const ProtoStruct& extra) override; digital_value read_digital_interrupt(const std::string& digital_interrupt_name, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; void set_power_mode(power_mode power_mode, - const AttributeMap& extra, + const ProtoStruct& extra, const boost::optional& duration) override; - std::vector get_geometries(const AttributeMap& extra) override; + std::vector get_geometries(const ProtoStruct& extra) override; void stream_ticks(std::vector const& digital_interrupt_names, std::function const& tick_handler, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd // like to live in a world where implementers of derived classes don't need to go out of diff --git a/src/viam/sdk/components/private/board_server.cpp b/src/viam/sdk/components/private/board_server.cpp index 418307cb2..9492f45bd 100644 --- a/src/viam/sdk/components/private/board_server.cpp +++ b/src/viam/sdk/components/private/board_server.cpp @@ -12,7 +12,7 @@ namespace sdk { namespace impl { BoardServer::BoardServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status BoardServer::SetGPIO(::grpc::ServerContext*, const ::viam::component::board::v1::SetGPIORequest* request, @@ -77,7 +77,7 @@ ::grpc::Status BoardServer::DoCommand(grpc::ServerContext*, viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "BoardServer::DoCommand", this, request)([&](auto&, auto& board) { - const AttributeMap result = board->do_command(struct_to_map(request->command())); + const ProtoStruct result = board->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } @@ -98,7 +98,7 @@ ::grpc::Status BoardServer::ReadAnalogReader( const std::shared_ptr board = std::dynamic_pointer_cast(rb); - AttributeMap extra; + ProtoStruct extra; if (request->has_extra()) { extra = struct_to_map(request->extra()); } @@ -128,7 +128,7 @@ ::grpc::Status BoardServer::WriteAnalog( const std::shared_ptr board = std::dynamic_pointer_cast(rb); - AttributeMap extra; + ProtoStruct extra; if (request->has_extra()) { extra = struct_to_map(request->extra()); } @@ -153,7 +153,7 @@ ::grpc::Status BoardServer::GetDigitalInterruptValue( const std::shared_ptr board = std::dynamic_pointer_cast(rb); - AttributeMap extra; + ProtoStruct extra; if (request->has_extra()) { extra = struct_to_map(request->extra()); } diff --git a/src/viam/sdk/components/private/camera_client.cpp b/src/viam/sdk/components/private/camera_client.cpp index bee8cb86a..c72f08a0a 100644 --- a/src/viam/sdk/components/private/camera_client.cpp +++ b/src/viam/sdk/components/private/camera_client.cpp @@ -21,15 +21,15 @@ namespace impl { CameraClient::CameraClient(std::string name, std::shared_ptr channel) : Camera(std::move(name)), stub_(viam::component::camera::v1::CameraService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; -AttributeMap CameraClient::do_command(const AttributeMap& command) { +ProtoStruct CameraClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); }; -Camera::raw_image CameraClient::get_image(std::string mime_type, const AttributeMap& extra) { +Camera::raw_image CameraClient::get_image(std::string mime_type, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetImage) .with(extra, [&](auto& request) { @@ -44,14 +44,13 @@ Camera::image_collection CameraClient::get_images() { }); }; -Camera::point_cloud CameraClient::get_point_cloud(std::string mime_type, - const AttributeMap& extra) { +Camera::point_cloud CameraClient::get_point_cloud(std::string mime_type, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetPointCloud) .with(extra, [&](auto& request) { *request.mutable_mime_type() = mime_type; }) .invoke([](auto& response) { return from_proto(response); }); }; -std::vector CameraClient::get_geometries(const AttributeMap& extra) { +std::vector CameraClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); diff --git a/src/viam/sdk/components/private/camera_client.hpp b/src/viam/sdk/components/private/camera_client.hpp index 2c40855f0..e8ed7df7d 100644 --- a/src/viam/sdk/components/private/camera_client.hpp +++ b/src/viam/sdk/components/private/camera_client.hpp @@ -24,12 +24,12 @@ class CameraClient : public Camera { public: using interface_type = Camera; CameraClient(std::string name, std::shared_ptr channel); - AttributeMap do_command(const AttributeMap& command) override; - raw_image get_image(std::string mime_type, const AttributeMap& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + raw_image get_image(std::string mime_type, const ProtoStruct& extra) override; image_collection get_images() override; - point_cloud get_point_cloud(std::string mime_type, const AttributeMap& extra) override; + point_cloud get_point_cloud(std::string mime_type, const ProtoStruct& extra) override; properties get_properties() override; - std::vector get_geometries(const AttributeMap& extra) override; + std::vector get_geometries(const ProtoStruct& extra) override; // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd // like to live in a world where implementers of derived classes don't need to go out of @@ -50,7 +50,7 @@ class CameraClient : public Camera { // avoid use of this constructor outside of tests. CameraClient(std::string name, std::unique_ptr stub) - : Camera(std::move(name)), stub_(std::move(stub)){}; + : Camera(std::move(name)), stub_(std::move(stub)) {}; private: using StubType = viam::component::camera::v1::CameraService::StubInterface; diff --git a/src/viam/sdk/components/private/camera_server.cpp b/src/viam/sdk/components/private/camera_server.cpp index 19fd286f8..3d28a47e2 100644 --- a/src/viam/sdk/components/private/camera_server.cpp +++ b/src/viam/sdk/components/private/camera_server.cpp @@ -15,14 +15,14 @@ namespace sdk { namespace impl { CameraServer::CameraServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status CameraServer::DoCommand(::grpc::ServerContext*, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "CameraServer::DoCommand", this, request)([&](auto&, auto& camera) { - const AttributeMap result = camera->do_command(struct_to_map(request->command())); + const ProtoStruct result = camera->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/encoder_client.cpp b/src/viam/sdk/components/private/encoder_client.cpp index 9da44785b..d65064fad 100644 --- a/src/viam/sdk/components/private/encoder_client.cpp +++ b/src/viam/sdk/components/private/encoder_client.cpp @@ -22,32 +22,32 @@ namespace impl { EncoderClient::EncoderClient(std::string name, std::shared_ptr channel) : Encoder(std::move(name)), stub_(viam::component::encoder::v1::EncoderService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; -Encoder::position EncoderClient::get_position(const AttributeMap& extra, +Encoder::position EncoderClient::get_position(const ProtoStruct& extra, position_type position_type) { return make_client_helper(this, *stub_, &StubType::GetPosition) .with(extra, [&](auto& request) { request.set_position_type(to_proto(position_type)); }) .invoke([](auto& response) { return from_proto(response); }); } -void EncoderClient::reset_position(const AttributeMap& extra) { +void EncoderClient::reset_position(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::ResetPosition).with(extra).invoke(); } -Encoder::properties EncoderClient::get_properties(const AttributeMap& extra) { +Encoder::properties EncoderClient::get_properties(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetProperties) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -std::vector EncoderClient::get_geometries(const AttributeMap& extra) { +std::vector EncoderClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); }; -AttributeMap EncoderClient::do_command(const AttributeMap& command) { +ProtoStruct EncoderClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); diff --git a/src/viam/sdk/components/private/encoder_client.hpp b/src/viam/sdk/components/private/encoder_client.hpp index dd40de3b3..a4c96a78c 100644 --- a/src/viam/sdk/components/private/encoder_client.hpp +++ b/src/viam/sdk/components/private/encoder_client.hpp @@ -23,11 +23,11 @@ class EncoderClient : public Encoder { public: using interface_type = Encoder; EncoderClient(std::string name, std::shared_ptr channel); - position get_position(const AttributeMap& extra, position_type position_type) override; - void reset_position(const AttributeMap& extra) override; - properties get_properties(const AttributeMap& extra) override; - std::vector get_geometries(const AttributeMap& extra) override; - AttributeMap do_command(const AttributeMap& command) override; + position get_position(const ProtoStruct& extra, position_type position_type) override; + void reset_position(const ProtoStruct& extra) override; + properties get_properties(const ProtoStruct& extra) override; + std::vector get_geometries(const ProtoStruct& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd // like to live in a world where implementers of derived classes don't need to go out of diff --git a/src/viam/sdk/components/private/encoder_server.cpp b/src/viam/sdk/components/private/encoder_server.cpp index b89327740..879b3323a 100644 --- a/src/viam/sdk/components/private/encoder_server.cpp +++ b/src/viam/sdk/components/private/encoder_server.cpp @@ -11,7 +11,7 @@ namespace sdk { namespace impl { EncoderServer::EncoderServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status EncoderServer::GetPosition( ::grpc::ServerContext*, @@ -64,7 +64,7 @@ ::grpc::Status EncoderServer::DoCommand(grpc::ServerContext*, viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "EncoderServer::DoCommand", this, request)([&](auto&, auto& encoder) { - const AttributeMap result = encoder->do_command(struct_to_map(request->command())); + const ProtoStruct result = encoder->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/gantry_client.cpp b/src/viam/sdk/components/private/gantry_client.cpp index 5d527cddb..18ac97b62 100644 --- a/src/viam/sdk/components/private/gantry_client.cpp +++ b/src/viam/sdk/components/private/gantry_client.cpp @@ -14,7 +14,7 @@ GantryClient::GantryClient(std::string name, std::shared_ptr chan stub_(viam::component::gantry::v1::GantryService::NewStub(channel)), channel_(std::move(channel)) {} -std::vector GantryClient::get_position(const AttributeMap& extra) { +std::vector GantryClient::get_position(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetPosition) .with(extra) .invoke([&](auto& response) { @@ -24,7 +24,7 @@ std::vector GantryClient::get_position(const AttributeMap& extra) { } void GantryClient::move_to_position(const std::vector& coordinates, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::MoveToPosition) .with(extra, [&](auto& request) { @@ -39,13 +39,13 @@ void GantryClient::move_to_position(const std::vector GantryClient::get_lengths(const AttributeMap& extra) { +std::vector GantryClient::get_lengths(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetLengths) .with(extra) .invoke([](auto& response) { @@ -59,17 +59,17 @@ bool GantryClient::is_moving() { }); } -void GantryClient::stop(const AttributeMap& extra) { +void GantryClient::stop(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Stop).with(extra).invoke(); } -AttributeMap GantryClient::do_command(const AttributeMap& command) { +ProtoStruct GantryClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); } -std::vector GantryClient::get_geometries(const AttributeMap& extra) { +std::vector GantryClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); diff --git a/src/viam/sdk/components/private/gantry_client.hpp b/src/viam/sdk/components/private/gantry_client.hpp index 4d5b2e267..b499baef4 100644 --- a/src/viam/sdk/components/private/gantry_client.hpp +++ b/src/viam/sdk/components/private/gantry_client.hpp @@ -21,15 +21,15 @@ class GantryClient : public Gantry { using interface_type = Gantry; GantryClient(std::string names, std::shared_ptr channel); - std::vector get_position(const AttributeMap& extra) override; + std::vector get_position(const ProtoStruct& extra) override; void move_to_position(const std::vector& coordinates, - const AttributeMap& extra) override; - bool home(const AttributeMap& extra) override; - std::vector get_lengths(const AttributeMap& extra) override; + const ProtoStruct& extra) override; + bool home(const ProtoStruct& extra) override; + std::vector get_lengths(const ProtoStruct& extra) override; bool is_moving() override; - void stop(const AttributeMap& extra) override; - AttributeMap do_command(const AttributeMap& command) override; - std::vector get_geometries(const AttributeMap& extra) override; + void stop(const ProtoStruct& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; using Gantry::get_geometries; using Gantry::get_lengths; diff --git a/src/viam/sdk/components/private/gantry_server.cpp b/src/viam/sdk/components/private/gantry_server.cpp index 61f7e1506..5819cd524 100644 --- a/src/viam/sdk/components/private/gantry_server.cpp +++ b/src/viam/sdk/components/private/gantry_server.cpp @@ -75,7 +75,7 @@ ::grpc::Status GantryServer::DoCommand(::grpc::ServerContext*, ::viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "GantryServer::DoCommand", this, request)([&](auto&, auto& gantry) { - const AttributeMap result = gantry->do_command(struct_to_map(request->command())); + const ProtoStruct result = gantry->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/generic_client.cpp b/src/viam/sdk/components/private/generic_client.cpp index dc8b870d9..650e7084b 100644 --- a/src/viam/sdk/components/private/generic_client.cpp +++ b/src/viam/sdk/components/private/generic_client.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include @@ -19,15 +19,15 @@ GenericComponentClient::GenericComponentClient(std::string name, std::shared_ptr channel) : GenericComponent(std::move(name)), stub_(viam::component::generic::v1::GenericService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; -AttributeMap GenericComponentClient::do_command(const AttributeMap& command) { +ProtoStruct GenericComponentClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); } -std::vector GenericComponentClient::get_geometries(const AttributeMap& extra) { +std::vector GenericComponentClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); diff --git a/src/viam/sdk/components/private/generic_client.hpp b/src/viam/sdk/components/private/generic_client.hpp index f30dcbf34..f998e3531 100644 --- a/src/viam/sdk/components/private/generic_client.hpp +++ b/src/viam/sdk/components/private/generic_client.hpp @@ -21,8 +21,8 @@ class GenericComponentClient : public GenericComponent { public: using interface_type = GenericComponent; GenericComponentClient(std::string name, std::shared_ptr channel); - AttributeMap do_command(const AttributeMap& command) override; - std::vector get_geometries(const AttributeMap& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; protected: // This constructor leaves the `channel_` as a nullptr. This is useful for testing @@ -31,7 +31,7 @@ class GenericComponentClient : public GenericComponent { GenericComponentClient( std::string name, std::unique_ptr stub) - : GenericComponent(std::move(name)), stub_(std::move(stub)){}; + : GenericComponent(std::move(name)), stub_(std::move(stub)) {}; private: using StubType = viam::component::generic::v1::GenericService::StubInterface; diff --git a/src/viam/sdk/components/private/generic_server.cpp b/src/viam/sdk/components/private/generic_server.cpp index e2fcf31ae..8b1905a52 100644 --- a/src/viam/sdk/components/private/generic_server.cpp +++ b/src/viam/sdk/components/private/generic_server.cpp @@ -9,7 +9,7 @@ namespace sdk { namespace impl { GenericComponentServer::GenericComponentServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status GenericComponentServer::DoCommand( ::grpc::ServerContext*, @@ -17,7 +17,7 @@ ::grpc::Status GenericComponentServer::DoCommand( ::viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "GenericComponentServer::DoCommand", this, request)([&](auto&, auto& generic) { - const AttributeMap result = generic->do_command(struct_to_map(request->command())); + const ProtoStruct result = generic->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/gripper_client.cpp b/src/viam/sdk/components/private/gripper_client.cpp index 2e5d4aec0..7da3cea58 100644 --- a/src/viam/sdk/components/private/gripper_client.cpp +++ b/src/viam/sdk/components/private/gripper_client.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include namespace viam { @@ -16,11 +16,11 @@ GripperClient::GripperClient(std::string name, std::shared_ptr ch stub_(viam::component::gripper::v1::GripperService::NewStub(channel)), channel_(std::move(channel)) {} -void GripperClient::open(const AttributeMap& extra) { +void GripperClient::open(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Open).with(extra).invoke(); } -bool GripperClient::grab(const AttributeMap& extra) { +bool GripperClient::grab(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Grab).with(extra).invoke([](auto& response) { return response.success(); }); @@ -32,17 +32,17 @@ bool GripperClient::is_moving() { }); } -void GripperClient::stop(const AttributeMap& extra) { +void GripperClient::stop(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Stop).with(extra).invoke(); } -AttributeMap GripperClient::do_command(const AttributeMap& command) { +ProtoStruct GripperClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); } -std::vector GripperClient::get_geometries(const AttributeMap& extra) { +std::vector GripperClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); diff --git a/src/viam/sdk/components/private/gripper_client.hpp b/src/viam/sdk/components/private/gripper_client.hpp index 0343d1ca5..1d118eda9 100644 --- a/src/viam/sdk/components/private/gripper_client.hpp +++ b/src/viam/sdk/components/private/gripper_client.hpp @@ -23,12 +23,12 @@ class GripperClient : public Gripper { using interface_type = Gripper; GripperClient(std::string names, std::shared_ptr channel); - void open(const AttributeMap& extra) override; - bool grab(const AttributeMap& extra) override; - void stop(const AttributeMap& extra) override; + void open(const ProtoStruct& extra) override; + bool grab(const ProtoStruct& extra) override; + void stop(const ProtoStruct& extra) override; bool is_moving() override; - AttributeMap do_command(const AttributeMap& command) override; - std::vector get_geometries(const AttributeMap& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; using Gripper::get_geometries; using Gripper::grab; diff --git a/src/viam/sdk/components/private/gripper_server.cpp b/src/viam/sdk/components/private/gripper_server.cpp index 49b07ef1b..33d3e07b3 100644 --- a/src/viam/sdk/components/private/gripper_server.cpp +++ b/src/viam/sdk/components/private/gripper_server.cpp @@ -46,7 +46,7 @@ ::grpc::Status GripperServer::DoCommand(::grpc::ServerContext*, ::viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "GripperServer::DoCommand", this, request)([&](auto&, auto& gripper) { - const AttributeMap result = gripper->do_command(struct_to_map(request->command())); + const ProtoStruct result = gripper->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/motor_client.cpp b/src/viam/sdk/components/private/motor_client.cpp index 8a1bb3fb6..0f57eb56c 100644 --- a/src/viam/sdk/components/private/motor_client.cpp +++ b/src/viam/sdk/components/private/motor_client.cpp @@ -21,15 +21,15 @@ namespace impl { MotorClient::MotorClient(std::string name, std::shared_ptr channel) : Motor(std::move(name)), stub_(viam::component::motor::v1::MotorService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; -void MotorClient::set_power(double power_pct, const AttributeMap& extra) { +void MotorClient::set_power(double power_pct, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::SetPower) .with(extra, [&](auto& request) { request.set_power_pct(power_pct); }) .invoke(); } -void MotorClient::go_for(double rpm, double revolutions, const AttributeMap& extra) { +void MotorClient::go_for(double rpm, double revolutions, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GoFor) .with(extra, [&](auto& request) { @@ -39,7 +39,7 @@ void MotorClient::go_for(double rpm, double revolutions, const AttributeMap& ext .invoke(); } -void MotorClient::go_to(double rpm, double position_revolutions, const AttributeMap& extra) { +void MotorClient::go_to(double rpm, double position_revolutions, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GoTo) .with(extra, [&](auto& request) { @@ -49,41 +49,41 @@ void MotorClient::go_to(double rpm, double position_revolutions, const Attribute .invoke(); } -void MotorClient::set_rpm(double rpm, const AttributeMap& extra) { +void MotorClient::set_rpm(double rpm, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::SetRPM) .with(extra, [&](auto& request) { request.set_rpm(rpm); }) .invoke(); } -void MotorClient::reset_zero_position(double offset, const AttributeMap& extra) { +void MotorClient::reset_zero_position(double offset, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::ResetZeroPosition) .with(extra, [&](auto& request) { request.set_offset(offset); }) .invoke(); } -Motor::position MotorClient::get_position(const AttributeMap& extra) { +Motor::position MotorClient::get_position(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetPosition) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -Motor::properties MotorClient::get_properties(const AttributeMap& extra) { +Motor::properties MotorClient::get_properties(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetProperties) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -void MotorClient::stop(const AttributeMap& extra) { +void MotorClient::stop(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Stop).with(extra).invoke(); } -Motor::power_status MotorClient::get_power_status(const AttributeMap& extra) { +Motor::power_status MotorClient::get_power_status(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::IsPowered) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -std::vector MotorClient::get_geometries(const AttributeMap& extra) { +std::vector MotorClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); @@ -95,7 +95,7 @@ bool MotorClient::is_moving() { }); } -AttributeMap MotorClient::do_command(const AttributeMap& command) { +ProtoStruct MotorClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); diff --git a/src/viam/sdk/components/private/motor_client.hpp b/src/viam/sdk/components/private/motor_client.hpp index ee566e96a..223b77190 100644 --- a/src/viam/sdk/components/private/motor_client.hpp +++ b/src/viam/sdk/components/private/motor_client.hpp @@ -22,18 +22,18 @@ class MotorClient : public Motor { public: using interface_type = Motor; MotorClient(std::string name, std::shared_ptr channel); - void set_power(double power_pct, const AttributeMap& extra) override; - void go_for(double rpm, double revolutions, const AttributeMap& extra) override; - void go_to(double rpm, double position_revolutions, const AttributeMap& extra) override; - void set_rpm(double rpm, const AttributeMap& extra) override; - void reset_zero_position(double offset, const AttributeMap& extra) override; - position get_position(const AttributeMap& extra) override; - properties get_properties(const AttributeMap& extra) override; - void stop(const AttributeMap& extra) override; - power_status get_power_status(const AttributeMap& extra) override; - std::vector get_geometries(const AttributeMap& extra) override; + void set_power(double power_pct, const ProtoStruct& extra) override; + void go_for(double rpm, double revolutions, const ProtoStruct& extra) override; + void go_to(double rpm, double position_revolutions, const ProtoStruct& extra) override; + void set_rpm(double rpm, const ProtoStruct& extra) override; + void reset_zero_position(double offset, const ProtoStruct& extra) override; + position get_position(const ProtoStruct& extra) override; + properties get_properties(const ProtoStruct& extra) override; + void stop(const ProtoStruct& extra) override; + power_status get_power_status(const ProtoStruct& extra) override; + std::vector get_geometries(const ProtoStruct& extra) override; bool is_moving() override; - AttributeMap do_command(const AttributeMap& command) override; + ProtoStruct do_command(const ProtoStruct& command) override; // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd // like to live in a world where implementers of derived classes don't need to go out of diff --git a/src/viam/sdk/components/private/motor_server.cpp b/src/viam/sdk/components/private/motor_server.cpp index 3cf491056..b6772f29b 100644 --- a/src/viam/sdk/components/private/motor_server.cpp +++ b/src/viam/sdk/components/private/motor_server.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include #include #include @@ -12,7 +12,7 @@ namespace sdk { namespace impl { MotorServer::MotorServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status MotorServer::SetPower(::grpc::ServerContext*, const ::viam::component::motor::v1::SetPowerRequest* request, @@ -128,7 +128,7 @@ ::grpc::Status MotorServer::DoCommand(grpc::ServerContext*, viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "MotorServer::GetGeometries", this, request)([&](auto&, auto& motor) { - const AttributeMap result = motor->do_command(struct_to_map(request->command())); + const ProtoStruct result = motor->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/movement_sensor_client.cpp b/src/viam/sdk/components/private/movement_sensor_client.cpp index b97ce59a3..b21db1051 100644 --- a/src/viam/sdk/components/private/movement_sensor_client.cpp +++ b/src/viam/sdk/components/private/movement_sensor_client.cpp @@ -23,49 +23,48 @@ namespace impl { MovementSensorClient::MovementSensorClient(std::string name, std::shared_ptr channel) : MovementSensor(std::move(name)), stub_(viam::component::movementsensor::v1::MovementSensorService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; using namespace viam::component::movementsensor::v1; -Vector3 MovementSensorClient::get_linear_velocity(const AttributeMap& extra) { +Vector3 MovementSensorClient::get_linear_velocity(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetLinearVelocity) .with(extra) .invoke([](auto& response) { return Vector3::from_proto(response.linear_velocity()); }); } -Vector3 MovementSensorClient::get_angular_velocity(const AttributeMap& extra) { +Vector3 MovementSensorClient::get_angular_velocity(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetAngularVelocity) .with(extra) .invoke([](auto& response) { return Vector3::from_proto(response.angular_velocity()); }); } -MovementSensor::compassheading MovementSensorClient::get_compass_heading( - const AttributeMap& extra) { +MovementSensor::compassheading MovementSensorClient::get_compass_heading(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetCompassHeading) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -MovementSensor::orientation MovementSensorClient::get_orientation(const AttributeMap& extra) { +MovementSensor::orientation MovementSensorClient::get_orientation(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetOrientation) .with(extra) .invoke([](auto& response) { return from_proto(response.orientation()); }); } -MovementSensor::position MovementSensorClient::get_position(const AttributeMap& extra) { +MovementSensor::position MovementSensorClient::get_position(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetPosition) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -MovementSensor::properties MovementSensorClient::get_properties(const AttributeMap& extra) { +MovementSensor::properties MovementSensorClient::get_properties(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetProperties) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } std::unordered_map MovementSensorClient::get_accuracy( - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetAccuracy) .with(extra) .invoke([](auto& response) { @@ -77,19 +76,19 @@ std::unordered_map MovementSensorClient::get_accuracy( }); } -Vector3 MovementSensorClient::get_linear_acceleration(const AttributeMap& extra) { +Vector3 MovementSensorClient::get_linear_acceleration(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetLinearAcceleration) .with(extra) .invoke([](auto& response) { return Vector3::from_proto(response.linear_acceleration()); }); } -AttributeMap MovementSensorClient::do_command(const AttributeMap& command) { +ProtoStruct MovementSensorClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); } -std::vector MovementSensorClient::get_geometries(const AttributeMap& extra) { +std::vector MovementSensorClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); diff --git a/src/viam/sdk/components/private/movement_sensor_client.hpp b/src/viam/sdk/components/private/movement_sensor_client.hpp index 379e13715..a64ae7c02 100644 --- a/src/viam/sdk/components/private/movement_sensor_client.hpp +++ b/src/viam/sdk/components/private/movement_sensor_client.hpp @@ -24,16 +24,16 @@ class MovementSensorClient : public MovementSensor { public: using interface_type = MovementSensor; MovementSensorClient(std::string name, std::shared_ptr channel); - Vector3 get_linear_velocity(const AttributeMap& extra) override; - Vector3 get_angular_velocity(const AttributeMap& extra) override; - compassheading get_compass_heading(const AttributeMap& extra) override; - orientation get_orientation(const AttributeMap& extra) override; - position get_position(const AttributeMap& extra) override; - properties get_properties(const AttributeMap& extra) override; - std::unordered_map get_accuracy(const AttributeMap& extra) override; - Vector3 get_linear_acceleration(const AttributeMap& extra) override; - AttributeMap do_command(const AttributeMap& command) override; - std::vector get_geometries(const AttributeMap& extra) override; + Vector3 get_linear_velocity(const ProtoStruct& extra) override; + Vector3 get_angular_velocity(const ProtoStruct& extra) override; + compassheading get_compass_heading(const ProtoStruct& extra) override; + orientation get_orientation(const ProtoStruct& extra) override; + position get_position(const ProtoStruct& extra) override; + properties get_properties(const ProtoStruct& extra) override; + std::unordered_map get_accuracy(const ProtoStruct& extra) override; + Vector3 get_linear_acceleration(const ProtoStruct& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; using MovementSensor::get_accuracy; using MovementSensor::get_angular_velocity; diff --git a/src/viam/sdk/components/private/movement_sensor_server.cpp b/src/viam/sdk/components/private/movement_sensor_server.cpp index 2da24b77a..929a9db40 100644 --- a/src/viam/sdk/components/private/movement_sensor_server.cpp +++ b/src/viam/sdk/components/private/movement_sensor_server.cpp @@ -14,7 +14,7 @@ namespace sdk { namespace impl { MovementSensorServer::MovementSensorServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status MovementSensorServer::GetLinearVelocity( ::grpc::ServerContext*, @@ -122,7 +122,7 @@ ::grpc::Status MovementSensorServer::DoCommand( viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "MovementSensorServer::DoCommand", this, request)([&](auto&, auto& movementsensor) { - const AttributeMap result = movementsensor->do_command(struct_to_map(request->command())); + const ProtoStruct result = movementsensor->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/pose_tracker_client.cpp b/src/viam/sdk/components/private/pose_tracker_client.cpp index ccbea7edf..6b2794540 100644 --- a/src/viam/sdk/components/private/pose_tracker_client.cpp +++ b/src/viam/sdk/components/private/pose_tracker_client.cpp @@ -16,7 +16,7 @@ PoseTrackerClient::PoseTrackerClient(std::string name, std::shared_ptr& body_names, - const AttributeMap&) { + const ProtoStruct&) { return make_client_helper(this, *stub_, &StubType::GetPoses) .with([&](viam::component::posetracker::v1::GetPosesRequest& request) { *request.mutable_body_names() = {body_names.begin(), body_names.end()}; @@ -32,13 +32,13 @@ PoseTracker::pose_map PoseTrackerClient::get_poses(const std::vector PoseTrackerClient::get_geometries(const AttributeMap& extra) { +std::vector PoseTrackerClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); } -AttributeMap PoseTrackerClient::do_command(const AttributeMap& command) { +ProtoStruct PoseTrackerClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); diff --git a/src/viam/sdk/components/private/pose_tracker_client.hpp b/src/viam/sdk/components/private/pose_tracker_client.hpp index f21854d71..5c947ca20 100644 --- a/src/viam/sdk/components/private/pose_tracker_client.hpp +++ b/src/viam/sdk/components/private/pose_tracker_client.hpp @@ -23,11 +23,11 @@ class PoseTrackerClient : public PoseTracker { PoseTrackerClient(std::string name, std::shared_ptr channel); PoseTracker::pose_map get_poses(const std::vector& body_names, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; - AttributeMap do_command(const AttributeMap& command) override; + ProtoStruct do_command(const ProtoStruct& command) override; - std::vector get_geometries(const AttributeMap& extra) override; + std::vector get_geometries(const ProtoStruct& extra) override; using PoseTracker::get_geometries; using PoseTracker::get_poses; diff --git a/src/viam/sdk/components/private/pose_tracker_server.cpp b/src/viam/sdk/components/private/pose_tracker_server.cpp index 9e0093ea4..ea26daaa3 100644 --- a/src/viam/sdk/components/private/pose_tracker_server.cpp +++ b/src/viam/sdk/components/private/pose_tracker_server.cpp @@ -36,7 +36,7 @@ ::grpc::Status PoseTrackerServer::DoCommand( viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "PoseTrackerServer::DoCommand", this, request)([&](auto&, auto& pose_tracker) { - const AttributeMap result = pose_tracker->do_command(struct_to_map(request->command())); + const ProtoStruct result = pose_tracker->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/power_sensor_client.cpp b/src/viam/sdk/components/private/power_sensor_client.cpp index a21b816a3..43a327917 100644 --- a/src/viam/sdk/components/private/power_sensor_client.cpp +++ b/src/viam/sdk/components/private/power_sensor_client.cpp @@ -24,40 +24,39 @@ namespace impl { PowerSensorClient::PowerSensorClient(std::string name, std::shared_ptr channel) : PowerSensor(std::move(name)), stub_(PowerSensorService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; -PowerSensor::voltage PowerSensorClient::get_voltage(const AttributeMap& extra) { +PowerSensor::voltage PowerSensorClient::get_voltage(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetVoltage) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -PowerSensor::current PowerSensorClient::get_current(const AttributeMap& extra) { +PowerSensor::current PowerSensorClient::get_current(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetCurrent) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -double PowerSensorClient::get_power(const AttributeMap& extra) { +double PowerSensorClient::get_power(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetPower) .with(extra) .invoke([](auto& response) { return response.watts(); }); } -AttributeMap PowerSensorClient::get_readings(const AttributeMap& extra) { +ProtoStruct PowerSensorClient::get_readings(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetReadings) .with(extra) .invoke([](auto& response) { - AttributeMap result = - std::make_shared>>(); + ProtoStruct result; for (const auto& r : response.readings()) { - result->emplace(r.first, std::make_shared(r.second)); + result.emplace(r.first, ProtoValue::from_proto(r.second)); } return result; }); } -AttributeMap PowerSensorClient::do_command(const AttributeMap& command) { +ProtoStruct PowerSensorClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); diff --git a/src/viam/sdk/components/private/power_sensor_client.hpp b/src/viam/sdk/components/private/power_sensor_client.hpp index f808a89e3..cf9927878 100644 --- a/src/viam/sdk/components/private/power_sensor_client.hpp +++ b/src/viam/sdk/components/private/power_sensor_client.hpp @@ -23,11 +23,11 @@ class PowerSensorClient : public PowerSensor { public: using interface_type = PowerSensor; PowerSensorClient(std::string name, std::shared_ptr channel); - voltage get_voltage(const AttributeMap& extra) override; - current get_current(const AttributeMap& extra) override; - double get_power(const AttributeMap& extra) override; - AttributeMap get_readings(const AttributeMap& extra) override; - AttributeMap do_command(const AttributeMap& command) override; + voltage get_voltage(const ProtoStruct& extra) override; + current get_current(const ProtoStruct& extra) override; + double get_power(const ProtoStruct& extra) override; + ProtoStruct get_readings(const ProtoStruct& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; using PowerSensor::get_current; using PowerSensor::get_power; diff --git a/src/viam/sdk/components/private/power_sensor_server.cpp b/src/viam/sdk/components/private/power_sensor_server.cpp index 3e74202f7..26e453acd 100644 --- a/src/viam/sdk/components/private/power_sensor_server.cpp +++ b/src/viam/sdk/components/private/power_sensor_server.cpp @@ -13,7 +13,7 @@ namespace sdk { namespace impl { PowerSensorServer::PowerSensorServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status PowerSensorServer::GetVoltage(::grpc::ServerContext*, const GetVoltageRequest* request, @@ -51,9 +51,9 @@ ::grpc::Status PowerSensorServer::GetReadings( viam::common::v1::GetReadingsResponse* response) noexcept { return make_service_helper( "PowerSensorServer::GetReadings", this, request)([&](auto& helper, auto& powersensor) { - const AttributeMap result = powersensor->get_readings(helper.getExtra()); - for (const auto& r : *result) { - response->mutable_readings()->insert({r.first, r.second->proto_value()}); + const ProtoStruct result = powersensor->get_readings(helper.getExtra()); + for (const auto& r : result) { + response->mutable_readings()->insert({r.first, to_proto(r.second)}); } }); } @@ -64,7 +64,7 @@ ::grpc::Status PowerSensorServer::DoCommand( viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "PowerSensorServer::DoCommand", this, request)([&](auto&, auto& powersensor) { - const AttributeMap result = powersensor->do_command(struct_to_map(request->command())); + const ProtoStruct result = powersensor->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/sensor_client.cpp b/src/viam/sdk/components/private/sensor_client.cpp index 449fcb201..8affe6d1b 100644 --- a/src/viam/sdk/components/private/sensor_client.cpp +++ b/src/viam/sdk/components/private/sensor_client.cpp @@ -21,30 +21,29 @@ namespace impl { SensorClient::SensorClient(std::string name, std::shared_ptr channel) : Sensor(std::move(name)), stub_(viam::component::sensor::v1::SensorService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; using namespace viam::common::v1; -AttributeMap SensorClient::get_readings(const AttributeMap& extra) { +ProtoStruct SensorClient::get_readings(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetReadings) .with(extra) .invoke([](auto& response) { - AttributeMap result = - std::make_shared>>(); + ProtoStruct result; for (const auto& r : response.readings()) { - result->emplace(std::move(r.first), std::make_shared(r.second)); + result.emplace(r.first, ProtoValue::from_proto(r.second)); } return result; }); } -AttributeMap SensorClient::do_command(const AttributeMap& command) { +ProtoStruct SensorClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); } -std::vector SensorClient::get_geometries(const AttributeMap& extra) { +std::vector SensorClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); diff --git a/src/viam/sdk/components/private/sensor_client.hpp b/src/viam/sdk/components/private/sensor_client.hpp index 54e762f0b..048b29bb3 100644 --- a/src/viam/sdk/components/private/sensor_client.hpp +++ b/src/viam/sdk/components/private/sensor_client.hpp @@ -22,9 +22,9 @@ class SensorClient : public Sensor { public: using interface_type = Sensor; SensorClient(std::string name, std::shared_ptr channel); - AttributeMap get_readings(const AttributeMap& extra) override; - AttributeMap do_command(const AttributeMap& command) override; - std::vector get_geometries(const AttributeMap& extra) override; + ProtoStruct get_readings(const ProtoStruct& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; using Sensor::get_geometries; using Sensor::get_readings; diff --git a/src/viam/sdk/components/private/sensor_server.cpp b/src/viam/sdk/components/private/sensor_server.cpp index 46073760a..fbd482ca9 100644 --- a/src/viam/sdk/components/private/sensor_server.cpp +++ b/src/viam/sdk/components/private/sensor_server.cpp @@ -13,16 +13,16 @@ namespace sdk { namespace impl { SensorServer::SensorServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status SensorServer::GetReadings(::grpc::ServerContext*, const GetReadingsRequest* request, GetReadingsResponse* response) noexcept { return make_service_helper( "SensorServer::GetReadings", this, request)([&](auto& helper, auto& sensor) { - const AttributeMap result = sensor->get_readings(helper.getExtra()); - for (const auto& r : *result) { - response->mutable_readings()->insert({r.first, r.second->proto_value()}); + const ProtoStruct result = sensor->get_readings(helper.getExtra()); + for (const auto& r : result) { + response->mutable_readings()->insert({r.first, to_proto(r.second)}); } }); } @@ -32,7 +32,7 @@ ::grpc::Status SensorServer::DoCommand(grpc::ServerContext*, DoCommandResponse* response) noexcept { return make_service_helper( "SensorServer::DoCommand", this, request)([&](auto&, auto& sensor) { - const AttributeMap result = sensor->do_command(struct_to_map(request->command())); + const ProtoStruct result = sensor->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/private/servo_client.cpp b/src/viam/sdk/components/private/servo_client.cpp index 351c2df14..f47670ff8 100644 --- a/src/viam/sdk/components/private/servo_client.cpp +++ b/src/viam/sdk/components/private/servo_client.cpp @@ -21,21 +21,21 @@ namespace impl { ServoClient::ServoClient(std::string name, std::shared_ptr channel) : Servo(std::move(name)), stub_(viam::component::servo::v1::ServoService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; -void ServoClient::move(uint32_t angle_deg, const AttributeMap& extra) { +void ServoClient::move(uint32_t angle_deg, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Move) .with(extra, [&](auto& request) { request.set_angle_deg(angle_deg); }) .invoke(); } -Servo::position ServoClient::get_position(const AttributeMap& extra) { +Servo::position ServoClient::get_position(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetPosition) .with(extra) .invoke([](auto& response) { return from_proto(response); }); } -void ServoClient::stop(const AttributeMap& extra) { +void ServoClient::stop(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Stop).with(extra).invoke(); } @@ -45,13 +45,13 @@ bool ServoClient::is_moving() { }); } -std::vector ServoClient::get_geometries(const AttributeMap& extra) { +std::vector ServoClient::get_geometries(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetGeometries) .with(extra) .invoke([](auto& response) { return GeometryConfig::from_proto(response); }); } -AttributeMap ServoClient::do_command(const AttributeMap& command) { +ProtoStruct ServoClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); diff --git a/src/viam/sdk/components/private/servo_client.hpp b/src/viam/sdk/components/private/servo_client.hpp index 1c77f7523..20e123612 100644 --- a/src/viam/sdk/components/private/servo_client.hpp +++ b/src/viam/sdk/components/private/servo_client.hpp @@ -23,12 +23,12 @@ class ServoClient : public Servo { public: using interface_type = Servo; ServoClient(std::string name, std::shared_ptr channel); - void move(uint32_t angle_deg, const AttributeMap& extra) override; - position get_position(const AttributeMap& extra) override; - void stop(const AttributeMap& extra) override; + void move(uint32_t angle_deg, const ProtoStruct& extra) override; + position get_position(const ProtoStruct& extra) override; + void stop(const ProtoStruct& extra) override; bool is_moving() override; - std::vector get_geometries(const AttributeMap& extra) override; - AttributeMap do_command(const AttributeMap& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; using Servo::get_geometries; using Servo::get_position; diff --git a/src/viam/sdk/components/private/servo_server.cpp b/src/viam/sdk/components/private/servo_server.cpp index 8bbe7d00a..fe5d7aac6 100644 --- a/src/viam/sdk/components/private/servo_server.cpp +++ b/src/viam/sdk/components/private/servo_server.cpp @@ -11,7 +11,7 @@ namespace sdk { namespace impl { ServoServer::ServoServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status ServoServer::Move(::grpc::ServerContext*, const ::viam::component::servo::v1::MoveRequest* request, @@ -67,7 +67,7 @@ ::grpc::Status ServoServer::DoCommand(grpc::ServerContext*, viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "ServoServer::GetGeometries", this, request)([&](auto&, auto& servo) { - const AttributeMap result = servo->do_command(struct_to_map(request->command())); + const ProtoStruct result = servo->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/components/sensor.hpp b/src/viam/sdk/components/sensor.hpp index 8f6ce2682..59510817b 100644 --- a/src/viam/sdk/components/sensor.hpp +++ b/src/viam/sdk/components/sensor.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include @@ -28,7 +28,7 @@ class Sensor : public Component { /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling sensor. /// @return The requested `GeometryConfig`s associated with the component. @@ -39,21 +39,21 @@ class Sensor : public Component { /// @brief Returns `GeometryConfig`s associated with the calling sensor. /// @param extra Any additional arguments to the method. /// @return The requested `GeometryConfig`s associated with the component. - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; /// @brief Returns the measurements/data specific to this sensor. /// @return The requested measurements/data specific to this sensor. - inline AttributeMap get_readings() { + inline ProtoStruct get_readings() { return get_readings({}); } /// @brief Returns the measurements/data specific to this sensor. /// @param extra Any additional arguments to the method. /// @return The requested measurements/data specific to this sensor. - virtual AttributeMap get_readings(const AttributeMap& extra) = 0; + virtual ProtoStruct get_readings(const ProtoStruct& extra) = 0; protected: - explicit Sensor(std::string name) : Component(std::move(name)){}; + explicit Sensor(std::string name) : Component(std::move(name)) {}; }; template <> diff --git a/src/viam/sdk/components/servo.hpp b/src/viam/sdk/components/servo.hpp index 277fc5715..6e4014209 100644 --- a/src/viam/sdk/components/servo.hpp +++ b/src/viam/sdk/components/servo.hpp @@ -5,7 +5,7 @@ #include -#include +#include #include #include #include @@ -40,7 +40,7 @@ class Servo : public Component, public Stoppable { /// @brief Move the servo to the provided angle /// @param angle_deg The desired angle of the servo in degrees. /// @param extra Any additional arguments to the method. - virtual void move(uint32_t angle_deg, const AttributeMap& extra) = 0; + virtual void move(uint32_t angle_deg, const ProtoStruct& extra) = 0; /// @brief Get the current angle (degrees) of the servo. /// @throws `Exception` if position reporting is not supported @@ -51,7 +51,7 @@ class Servo : public Component, public Stoppable { /// @brief Reports the position of the robot's servo relative to its zero position. /// @param extra Any additional arguments to the method /// @throws `Exception` if position reporting is not supported - virtual position get_position(const AttributeMap& extra) = 0; + virtual position get_position(const ProtoStruct& extra) = 0; /// @brief Reports if a component is in motion virtual bool is_moving() = 0; @@ -59,7 +59,7 @@ class Servo : public Component, public Stoppable { /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Returns `GeometryConfig`s associated with the calling servo. /// @return The requested `GeometryConfig`s associated with the component. @@ -70,10 +70,10 @@ class Servo : public Component, public Stoppable { /// @brief Returns `GeometryConfig`s associated with the calling servo. /// @param extra Any additional arguments to the method. /// @return The requested `GeometryConfig`s associated with the component. - virtual std::vector get_geometries(const AttributeMap& extra) = 0; + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; protected: - explicit Servo(std::string name) : Component(std::move(name)){}; + explicit Servo(std::string name) : Component(std::move(name)) {}; }; template <> diff --git a/src/viam/sdk/config/resource.cpp b/src/viam/sdk/config/resource.cpp index 5f82e8753..d07cebcf8 100644 --- a/src/viam/sdk/config/resource.cpp +++ b/src/viam/sdk/config/resource.cpp @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include #include @@ -57,7 +57,7 @@ const std::string& ResourceConfig::type() const { return type_; } -const AttributeMap& ResourceConfig::attributes() const { +const ProtoStruct& ResourceConfig::attributes() const { return attributes_; } @@ -138,7 +138,8 @@ viam::app::v1::ComponentConfig ResourceConfig::to_proto() const { return proto_cfg; } -ResourceConfig::ResourceConfig(std::string type) : api_({kRDK, type, ""}), type_(std::move(type)){}; +ResourceConfig::ResourceConfig(std::string type) + : api_({kRDK, type, ""}), type_(std::move(type)) {}; } // namespace sdk } // namespace viam diff --git a/src/viam/sdk/config/resource.hpp b/src/viam/sdk/config/resource.hpp index 7730f2ca0..a89ff0f9e 100644 --- a/src/viam/sdk/config/resource.hpp +++ b/src/viam/sdk/config/resource.hpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include @@ -16,8 +16,8 @@ namespace sdk { class ResourceLevelServiceConfig { public: std::string type; - AttributeMap attributes; - ProtoType converted_attributes; + ProtoStruct attributes; + ProtoValue converted_attributes; }; class ResourceConfig { @@ -32,7 +32,7 @@ class ResourceConfig { const std::string& name() const; const std::string& namespace_() const; const std::string& type() const; - const AttributeMap& attributes() const; + const ProtoStruct& attributes() const; private: API api_; @@ -43,8 +43,8 @@ class ResourceConfig { std::string type_; std::vector depends_on_; std::vector service_config_; - AttributeMap attributes_; - ProtoType converted_attributes_; + ProtoStruct attributes_; + ProtoValue converted_attributes_; std::vector implicit_depends_on_; void fix_api(); }; diff --git a/src/viam/sdk/resource/resource.cpp b/src/viam/sdk/resource/resource.cpp index 65f84d63b..04b304679 100644 --- a/src/viam/sdk/resource/resource.cpp +++ b/src/viam/sdk/resource/resource.cpp @@ -2,7 +2,7 @@ #include -#include +#include #include #include #include diff --git a/src/viam/sdk/resource/resource.hpp b/src/viam/sdk/resource/resource.hpp index fbb194029..0d1d55eb7 100644 --- a/src/viam/sdk/resource/resource.hpp +++ b/src/viam/sdk/resource/resource.hpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include diff --git a/src/viam/sdk/resource/stoppable.cpp b/src/viam/sdk/resource/stoppable.cpp index cf9c3bda2..4e4c7165e 100644 --- a/src/viam/sdk/resource/stoppable.cpp +++ b/src/viam/sdk/resource/stoppable.cpp @@ -7,7 +7,7 @@ Stoppable::~Stoppable() = default; Stoppable::Stoppable() = default; void Stoppable::stop_if_stoppable(const std::shared_ptr& resource, - const AttributeMap& extra) { + const ProtoStruct& extra) { auto stoppable_res = std::dynamic_pointer_cast(resource); if (stoppable_res) { stoppable_res->stop(extra); diff --git a/src/viam/sdk/resource/stoppable.hpp b/src/viam/sdk/resource/stoppable.hpp index 43d436eb2..58d29f70a 100644 --- a/src/viam/sdk/resource/stoppable.hpp +++ b/src/viam/sdk/resource/stoppable.hpp @@ -10,7 +10,7 @@ class Stoppable { virtual ~Stoppable(); /// @brief Stops a resource from running. /// @param extra Extra arguments to pass to the resource's `stop` method. - virtual void stop(const AttributeMap& extra) = 0; + virtual void stop(const ProtoStruct& extra) = 0; /// @brief Stops a resource from running. inline void stop() { @@ -21,7 +21,7 @@ class Stoppable { /// @param resource The Resource to stop. /// @param extra Extra arguments to pass to the resource's `stop` method. static void stop_if_stoppable(const std::shared_ptr& resource, - const AttributeMap& extra); + const ProtoStruct& extra); /// @brief Stops a Resource if it is Stoppable. /// @param resource The Resource to stop. diff --git a/src/viam/sdk/robot/client.cpp b/src/viam/sdk/robot/client.cpp index 00f094453..15cac8e17 100644 --- a/src/viam/sdk/robot/client.cpp +++ b/src/viam/sdk/robot/client.cpp @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include @@ -445,17 +445,14 @@ std::shared_ptr RobotClient::resource_by_name(const Name& name) { } void RobotClient::stop_all() { - std::unordered_map map; + std::unordered_map map; for (const Name& name : resource_names()) { - const std::unordered_map> val; - const AttributeMap v = - std::make_shared>>(val); - map.emplace(name, v); + map.emplace(name, ProtoStruct{}); } stop_all(map); } -void RobotClient::stop_all(const std::unordered_map& extra) { +void RobotClient::stop_all(const std::unordered_map& extra) { viam::robot::v1::StopAllRequest req; viam::robot::v1::StopAllResponse resp; ClientContext ctx; @@ -463,7 +460,7 @@ void RobotClient::stop_all(const std::unordered_map& extra) RepeatedPtrField* ep = req.mutable_extra(); for (const auto& xtra : extra) { const Name& name = xtra.first; - const AttributeMap& params = xtra.second; + const ProtoStruct& params = xtra.second; const google::protobuf::Struct s = map_to_struct(params); viam::robot::v1::StopExtraParameters stop; *stop.mutable_name() = name.to_proto(); diff --git a/src/viam/sdk/robot/client.hpp b/src/viam/sdk/robot/client.hpp index 55088db5c..948f2c9cd 100644 --- a/src/viam/sdk/robot/client.hpp +++ b/src/viam/sdk/robot/client.hpp @@ -44,19 +44,19 @@ class RobotClient { struct discovery { discovery_query query; - AttributeMap results; + ProtoStruct results; friend bool operator==(const discovery& lhs, const discovery& rhs); }; struct frame_system_config { WorldState::transform frame; - AttributeMap kinematics; + ProtoStruct kinematics; friend bool operator==(const frame_system_config& lhs, const frame_system_config& rhs); }; struct status { boost::optional name; - AttributeMap status_map; + ProtoStruct status_map; // TODO: RSDK-6574: revisit time_point boost::optional> last_reconfigured; @@ -67,7 +67,7 @@ class RobotClient { std::string id; std::string method; boost::optional session_id; - AttributeMap arguments; + ProtoStruct arguments; // TODO: RSDK-6574: revisit time_point boost::optional> started; friend bool operator==(const operation& lhs, const operation& rhs); @@ -161,7 +161,7 @@ class RobotClient { /// @brief Cancel all operations for the robot and stop all actuators and movement. /// @param extra Any extra params to pass to resources' `stop` methods, keyed by `Name`. - void stop_all(const std::unordered_map& extra); + void stop_all(const std::unordered_map& extra); /// @brief Cancel a specified operation on the robot. /// @param id The ID of the operation to cancel. diff --git a/src/viam/sdk/robot/service.cpp b/src/viam/sdk/robot/service.cpp index c3ed8808d..26004a939 100644 --- a/src/viam/sdk/robot/service.cpp +++ b/src/viam/sdk/robot/service.cpp @@ -182,10 +182,10 @@ ::grpc::Status RobotService_::StopAll(::grpc::ServerContext*, const ::viam::robot::v1::StopAllRequest* request, ::viam::robot::v1::StopAllResponse*) { const ResourceName r; - std::unordered_map extra; + std::unordered_map extra; for (const auto& ex : request->extra()) { const google::protobuf::Struct& struct_ = ex.params(); - const AttributeMap value_map = struct_to_map(struct_); + const ProtoStruct value_map = struct_to_map(struct_); const std::string name = ex.name().SerializeAsString(); extra.emplace(name, value_map); } diff --git a/src/viam/sdk/services/generic.hpp b/src/viam/sdk/services/generic.hpp index f129eeea5..b004b2cde 100644 --- a/src/viam/sdk/services/generic.hpp +++ b/src/viam/sdk/services/generic.hpp @@ -6,7 +6,7 @@ #include -#include +#include #include #include #include @@ -25,7 +25,7 @@ class GenericService : public Service { /// @brief Send/receive arbitrary commands to the resource. /// @param command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; /// @brief Creates a `GenericService` `API`. API api() const override; diff --git a/src/viam/sdk/services/mlmodel.hpp b/src/viam/sdk/services/mlmodel.hpp index 6d24eda1b..3f9058965 100644 --- a/src/viam/sdk/services/mlmodel.hpp +++ b/src/viam/sdk/services/mlmodel.hpp @@ -107,7 +107,7 @@ class MLModelService : public Service { /// @returns The results of the inference as a shared pointer to `named_tensor_views`. The data /// viewed by the views is only valid for the lifetime of the returned shared_ptr. virtual std::shared_ptr infer(const named_tensor_views& inputs, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; struct tensor_info { struct file { @@ -139,7 +139,7 @@ class MLModelService : public Service { std::vector shape; std::vector associated_files; - AttributeMap extra; + ProtoStruct extra; static boost::optional string_to_data_type(const std::string& str); static const char* data_type_to_string(data_types data_type); @@ -163,7 +163,7 @@ class MLModelService : public Service { /// @brief Returns metadata describing the inputs and outputs of the model /// /// @param `extra`: Any additional arguments to the method. - virtual struct metadata metadata(const AttributeMap& extra) = 0; + virtual struct metadata metadata(const ProtoStruct& extra) = 0; protected: explicit MLModelService(std::string name); diff --git a/src/viam/sdk/services/motion.hpp b/src/viam/sdk/services/motion.hpp index 3d8bfa61f..61bb718bb 100644 --- a/src/viam/sdk/services/motion.hpp +++ b/src/viam/sdk/services/motion.hpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include @@ -253,7 +253,7 @@ class Motion : public Service { const Name& name, const std::shared_ptr& world_state, const std::shared_ptr& constraints, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Moves any component on the robot to a specific destination on a SLAM map. /// @param destination The destination to move to. @@ -284,7 +284,7 @@ class Motion : public Service { const Name& slam_name, const std::shared_ptr& motion_configuration, const std::vector& obstacles, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Moves any component on the robot to a specific destination on a globe. /// @param destination The destination to move to. @@ -333,7 +333,7 @@ class Motion : public Service { const std::vector& obstacles, const std::shared_ptr& motion_configuration, const std::vector& bounding_regions, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Get the pose of any component on the robot. /// @param component_name The component whose pose is being requested. @@ -361,7 +361,7 @@ class Motion : public Service { const Name& component_name, const std::string& destination_frame, const std::vector& supplemental_transforms, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Stop a currently executing motion plan. /// @param component_name the component of the currently executing plan to stop. @@ -372,7 +372,7 @@ class Motion : public Service { /// @brief Stop a currently executing motion plan. /// @param component_name the component of the currently executing plan to stop. /// @param extra Any additional arguments to the method. - virtual void stop_plan(const Name& component_name, const AttributeMap& extra) = 0; + virtual void stop_plan(const Name& component_name, const ProtoStruct& extra) = 0; /// @brief Returns the plan and state history of the most recent execution to move a component. /// Returns a result if the last execution is still executing, or changed state within the last @@ -390,7 +390,7 @@ class Motion : public Service { /// @param extra Any additional arguments to the method. /// @return the plan and status of the most recent execution to move the requested component virtual plan_with_status get_latest_plan(const Name& component_name, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Returns the plan, state history, and replan history of the most recent execution to /// move a component. Returns a result if the last execution is still executing, or changed @@ -411,7 +411,7 @@ class Motion : public Service { /// @return a pair of (1) the plan and status and (2) the replan history of the most recent /// execution to move the requested component virtual std::pair> - get_latest_plan_with_replan_history(const Name& component_name, const AttributeMap& extra) = 0; + get_latest_plan_with_replan_history(const Name& component_name, const ProtoStruct& extra) = 0; /// @brief Returns the plan and state history of the requested plan. Returns a result /// if the last execution is still executing, or changed state within the last 24 hours @@ -432,7 +432,7 @@ class Motion : public Service { /// @return the plan and status of the requested execution's move the requested component virtual plan_with_status get_plan(const Name& component_name, const std::string& execution_id, - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Returns the plan, state history, and replan history of the requested plan. Returns a /// result if the last execution is still executing, or changed state within the last 24 hours @@ -455,7 +455,7 @@ class Motion : public Service { /// @return a pair of (1) the plan and status and (2) the replan history of the most recent /// execution to move the requested component virtual std::pair> get_plan_with_replan_history( - const Name& component_name, const std::string& execution_id, const AttributeMap& extra) = 0; + const Name& component_name, const std::string& execution_id, const ProtoStruct& extra) = 0; /// @brief Returns the status of plans created by MoveOnGlobe requests. /// Includes statuses of plans that are executing, or are part of an executing that changed @@ -470,7 +470,7 @@ class Motion : public Service { /// its state within the last 24 hours. /// @param extra Any additional arguments to the method. /// @return a vector of plan statuses. - virtual std::vector list_plan_statuses(const AttributeMap& extra) = 0; + virtual std::vector list_plan_statuses(const ProtoStruct& extra) = 0; /// @brief Returns the status of currently active plans created by MoveOnGlobe requests. /// Includes statuses of plans that are executing, or are part of an execution that changed @@ -486,12 +486,12 @@ class Motion : public Service { /// @param extra Any additional arguments to the method. /// @return a vector of plan statuses. virtual std::vector list_active_plan_statuses( - const AttributeMap& extra) = 0; + const ProtoStruct& extra) = 0; /// @brief Send/receive arbitrary commands to the resource. /// @param Command the command to execute. /// @return The result of the executed command. - virtual AttributeMap do_command(const AttributeMap& command) = 0; + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; protected: explicit Motion(std::string name); diff --git a/src/viam/sdk/services/private/generic_client.cpp b/src/viam/sdk/services/private/generic_client.cpp index d45e7c0db..2c7144b2f 100644 --- a/src/viam/sdk/services/private/generic_client.cpp +++ b/src/viam/sdk/services/private/generic_client.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include #include @@ -18,9 +18,9 @@ namespace impl { GenericServiceClient::GenericServiceClient(std::string name, std::shared_ptr channel) : GenericService(std::move(name)), stub_(viam::service::generic::v1::GenericService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; -AttributeMap GenericServiceClient::do_command(const AttributeMap& command) { +ProtoStruct GenericServiceClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); diff --git a/src/viam/sdk/services/private/generic_client.hpp b/src/viam/sdk/services/private/generic_client.hpp index 5ba6cc29c..4f59028ac 100644 --- a/src/viam/sdk/services/private/generic_client.hpp +++ b/src/viam/sdk/services/private/generic_client.hpp @@ -21,7 +21,7 @@ class GenericServiceClient : public GenericService { public: using interface_type = GenericService; GenericServiceClient(std::string name, std::shared_ptr channel); - AttributeMap do_command(const AttributeMap& command) override; + ProtoStruct do_command(const ProtoStruct& command) override; protected: // This constructor leaves the `channel_` as a nullptr. This is useful for testing @@ -30,7 +30,7 @@ class GenericServiceClient : public GenericService { GenericServiceClient( std::string name, std::unique_ptr stub) - : GenericService(std::move(name)), stub_(std::move(stub)){}; + : GenericService(std::move(name)), stub_(std::move(stub)) {}; private: using StubType = viam::service::generic::v1::GenericService::StubInterface; diff --git a/src/viam/sdk/services/private/generic_server.cpp b/src/viam/sdk/services/private/generic_server.cpp index a987d89b7..4bdc2dc3b 100644 --- a/src/viam/sdk/services/private/generic_server.cpp +++ b/src/viam/sdk/services/private/generic_server.cpp @@ -9,7 +9,7 @@ namespace sdk { namespace impl { GenericServiceServer::GenericServiceServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status GenericServiceServer::DoCommand( ::grpc::ServerContext*, @@ -17,7 +17,7 @@ ::grpc::Status GenericServiceServer::DoCommand( ::viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "GenericServiceServer::DoCommand", this, request)([&](auto&, auto& generic) { - const AttributeMap result = generic->do_command(struct_to_map(request->command())); + const ProtoStruct result = generic->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); } diff --git a/src/viam/sdk/services/private/mlmodel_client.cpp b/src/viam/sdk/services/private/mlmodel_client.cpp index 18bade31c..d02405980 100644 --- a/src/viam/sdk/services/private/mlmodel_client.cpp +++ b/src/viam/sdk/services/private/mlmodel_client.cpp @@ -41,7 +41,7 @@ MLModelServiceClient::MLModelServiceClient(std::string name, std::shared_ptr MLModelServiceClient::infer( - const named_tensor_views& inputs, const AttributeMap& extra) { + const named_tensor_views& inputs, const ProtoStruct& extra) { namespace pb = ::google::protobuf; namespace mlpb = ::viam::service::mlmodel::v1; @@ -89,7 +89,7 @@ std::shared_ptr MLModelServiceClient::infer( return {std::move(aav), tsav_views}; } -struct MLModelService::metadata MLModelServiceClient::metadata(const AttributeMap& extra) { +struct MLModelService::metadata MLModelServiceClient::metadata(const ProtoStruct& extra) { // Encode metadata args into a `MetadataRequest` viam::service::mlmodel::v1::MetadataRequest req; *req.mutable_name() = name(); diff --git a/src/viam/sdk/services/private/mlmodel_client.hpp b/src/viam/sdk/services/private/mlmodel_client.hpp index 38693d018..4cab6aa5d 100644 --- a/src/viam/sdk/services/private/mlmodel_client.hpp +++ b/src/viam/sdk/services/private/mlmodel_client.hpp @@ -37,8 +37,8 @@ class MLModelServiceClient : public MLModelService { MLModelServiceClient(std::string name, std::shared_ptr channel); std::shared_ptr infer(const named_tensor_views& inputs, - const AttributeMap& extra) override; - struct metadata metadata(const AttributeMap& extra) override; + const ProtoStruct& extra) override; + struct metadata metadata(const ProtoStruct& extra) override; // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd // like to live in a world where implementers of derived classes don't need to go out of diff --git a/src/viam/sdk/services/private/mlmodel_server.cpp b/src/viam/sdk/services/private/mlmodel_server.cpp index 97d2150af..da0ac4b91 100644 --- a/src/viam/sdk/services/private/mlmodel_server.cpp +++ b/src/viam/sdk/services/private/mlmodel_server.cpp @@ -142,9 +142,7 @@ ::grpc::Status MLModelServiceServer::Metadata( break; } } - if (s.extra) { - *new_entry.mutable_extra() = map_to_struct(s.extra); - } + *new_entry.mutable_extra() = map_to_struct(s.extra); } return ::grpc::Status(); }; diff --git a/src/viam/sdk/services/private/motion_client.cpp b/src/viam/sdk/services/private/motion_client.cpp index ad1e3186b..592496b8a 100644 --- a/src/viam/sdk/services/private/motion_client.cpp +++ b/src/viam/sdk/services/private/motion_client.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -19,13 +19,13 @@ namespace impl { MotionClient::MotionClient(std::string name, std::shared_ptr channel) : Motion(std::move(name)), stub_(service::motion::v1::MotionService::NewStub(channel)), - channel_(std::move(channel)){}; + channel_(std::move(channel)) {}; bool MotionClient::move(const pose_in_frame& destination, const Name& component_name, const std::shared_ptr& world_state, const std::shared_ptr& constraints, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Move) .with(extra, [&](auto& request) { @@ -47,7 +47,7 @@ std::string MotionClient::move_on_map( const Name& slam_name, const std::shared_ptr& motion_configuration, const std::vector& obstacles, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::MoveOnMap) .with(extra, [&](auto& request) { @@ -74,7 +74,7 @@ std::string MotionClient::move_on_globe( const std::vector& obstacles, const std::shared_ptr& motion_configuration, const std::vector& bounding_regions, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::MoveOnGlobe) .with(extra, [&](auto& request) { @@ -105,7 +105,7 @@ pose_in_frame MotionClient::get_pose( const Name& component_name, const std::string& destination_frame, const std::vector& supplemental_transforms, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetPose) .with(extra, [&](auto& request) { @@ -118,7 +118,7 @@ pose_in_frame MotionClient::get_pose( .invoke([](auto& response) { return pose_in_frame::from_proto(response.pose()); }); } -void MotionClient::stop_plan(const Name& name, const AttributeMap& extra) { +void MotionClient::stop_plan(const Name& name, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::StopPlan) .with(extra, [&](auto& request) { *request.mutable_component_name() = name.to_proto(); }) .invoke(); @@ -128,7 +128,7 @@ std::pair> Motio const Name& component_name, boost::optional execution_id, bool last_plan_only, - const AttributeMap& extra) { + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetPlan) .with(extra, [&](auto& request) { @@ -147,29 +147,28 @@ std::pair> Motio Motion::plan_with_status MotionClient::get_plan(const Name& name, const std::string& execution_id, - const AttributeMap& extra) { + const ProtoStruct& extra) { return get_plan_(name, execution_id, true, extra).first; } -Motion::plan_with_status MotionClient::get_latest_plan(const Name& name, - const AttributeMap& extra) { +Motion::plan_with_status MotionClient::get_latest_plan(const Name& name, const ProtoStruct& extra) { return get_plan_(name, {}, true, extra).first; } std::pair> MotionClient::get_plan_with_replan_history(const Name& name, const std::string& execution_id, - const AttributeMap& extra) { + const ProtoStruct& extra) { return get_plan_(name, execution_id, false, extra); } std::pair> -MotionClient::get_latest_plan_with_replan_history(const Name& name, const AttributeMap& extra) { +MotionClient::get_latest_plan_with_replan_history(const Name& name, const ProtoStruct& extra) { return get_plan_(name, {}, false, extra); } std::vector MotionClient::list_plan_statuses_( - bool only_active_plans, const AttributeMap& extra) { + bool only_active_plans, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::ListPlanStatuses) .with(extra, [&](auto& request) { request.set_only_active_plans(only_active_plans); }) .invoke([](auto& response) { @@ -183,16 +182,16 @@ std::vector MotionClient::list_plan_statuses_( } std::vector MotionClient::list_plan_statuses( - const AttributeMap& extra) { + const ProtoStruct& extra) { return list_plan_statuses_(false, extra); } std::vector MotionClient::list_active_plan_statuses( - const AttributeMap& extra) { + const ProtoStruct& extra) { return list_plan_statuses_(true, extra); } -AttributeMap MotionClient::do_command(const AttributeMap& command) { +ProtoStruct MotionClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) .with([&](auto& request) { *request.mutable_command() = map_to_struct(command); }) .invoke([](auto& response) { return struct_to_map(response.result()); }); diff --git a/src/viam/sdk/services/private/motion_client.hpp b/src/viam/sdk/services/private/motion_client.hpp index 20a44ed1e..1fc57141c 100644 --- a/src/viam/sdk/services/private/motion_client.hpp +++ b/src/viam/sdk/services/private/motion_client.hpp @@ -24,14 +24,14 @@ class MotionClient : public Motion { const Name& component_name, const std::shared_ptr& world_state, const std::shared_ptr& constraints, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; std::string move_on_map(const pose& destination, const Name& component_name, const Name& slam_name, const std::shared_ptr& motion_configuration, const std::vector& obstacles, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; std::string move_on_globe(const geo_point& destination, const boost::optional& heading, @@ -40,38 +40,38 @@ class MotionClient : public Motion { const std::vector& obstacles, const std::shared_ptr& motion_configuration, const std::vector& bounding_regions, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; pose_in_frame get_pose(const Name& component_name, const std::string& destination_frame, const std::vector& supplemental_transforms, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; - void stop_plan(const Name& component_name, const AttributeMap& extra) override; + void stop_plan(const Name& component_name, const ProtoStruct& extra) override; Motion::plan_with_status get_latest_plan(const Name& component_name, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; std::pair> get_latest_plan_with_replan_history(const Name& component_name, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; Motion::plan_with_status get_plan(const Name& component_name, const std::string& execution_id, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; std::pair> get_plan_with_replan_history(const Name& component_name, const std::string& execution_id, - const AttributeMap& extra) override; + const ProtoStruct& extra) override; std::vector list_active_plan_statuses( - const AttributeMap& extra) override; + const ProtoStruct& extra) override; - std::vector list_plan_statuses(const AttributeMap& extra) override; + std::vector list_plan_statuses(const ProtoStruct& extra) override; - AttributeMap do_command(const AttributeMap& command) override; + ProtoStruct do_command(const ProtoStruct& command) override; // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd // like to live in a world where implementers of derived classes don't need to go out of @@ -97,12 +97,12 @@ class MotionClient : public Motion { private: using StubType = service::motion::v1::MotionService::StubInterface; std::vector list_plan_statuses_(bool only_active_plans, - const AttributeMap& extra); + const ProtoStruct& extra); std::pair> get_plan_( const Name& component_name, boost::optional execution_id, bool last_plan_only, - const AttributeMap& extra); + const ProtoStruct& extra); std::unique_ptr stub_; std::shared_ptr channel_; }; diff --git a/src/viam/sdk/services/private/motion_server.cpp b/src/viam/sdk/services/private/motion_server.cpp index 8466309d8..04939df24 100644 --- a/src/viam/sdk/services/private/motion_server.cpp +++ b/src/viam/sdk/services/private/motion_server.cpp @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include #include @@ -15,7 +15,7 @@ namespace sdk { namespace impl { MotionServer::MotionServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)){}; + : ResourceServer(std::move(manager)) {}; ::grpc::Status MotionServer::Move(::grpc::ServerContext*, const ::viam::service::motion::v1::MoveRequest* request, @@ -202,7 +202,7 @@ ::grpc::Status MotionServer::DoCommand(::grpc::ServerContext*, ::viam::common::v1::DoCommandResponse* response) noexcept { return make_service_helper( "MotionServer::DoCommand", this, request)([&](auto&, auto& motion) { - const AttributeMap result = motion->do_command(struct_to_map(request->command())); + const ProtoStruct result = motion->do_command(struct_to_map(request->command())); *response->mutable_result() = map_to_struct(result); }); }; diff --git a/src/viam/sdk/tests/CMakeLists.txt b/src/viam/sdk/tests/CMakeLists.txt index 7012849cc..23d84abe9 100644 --- a/src/viam/sdk/tests/CMakeLists.txt +++ b/src/viam/sdk/tests/CMakeLists.txt @@ -64,4 +64,3 @@ viamcppsdk_add_boost_test(test_resource.cpp) viamcppsdk_add_boost_test(test_sensor.cpp) viamcppsdk_add_boost_test(test_servo.cpp) viamcppsdk_add_boost_test(test_robot.cpp) -viamcppsdk_add_boost_test(test_types.cpp) diff --git a/src/viam/sdk/tests/mocks/camera_mocks.cpp b/src/viam/sdk/tests/mocks/camera_mocks.cpp index 028cf6ad0..6af908a6e 100644 --- a/src/viam/sdk/tests/mocks/camera_mocks.cpp +++ b/src/viam/sdk/tests/mocks/camera_mocks.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include #include @@ -10,19 +10,19 @@ namespace camera { using namespace viam::sdk; -AttributeMap MockCamera::do_command(const AttributeMap&) { +ProtoStruct MockCamera::do_command(const ProtoStruct&) { return map_; } -Camera::raw_image MockCamera::get_image(std::string, const AttributeMap&) { +Camera::raw_image MockCamera::get_image(std::string, const ProtoStruct&) { return image_; } Camera::image_collection MockCamera::get_images() { return images_; } -Camera::point_cloud MockCamera::get_point_cloud(std::string, const AttributeMap&) { +Camera::point_cloud MockCamera::get_point_cloud(std::string, const ProtoStruct&) { return pc_; } -std::vector MockCamera::get_geometries(const AttributeMap&) { +std::vector MockCamera::get_geometries(const ProtoStruct&) { return geometries_; } Camera::properties MockCamera::get_properties() { diff --git a/src/viam/sdk/tests/mocks/camera_mocks.hpp b/src/viam/sdk/tests/mocks/camera_mocks.hpp index 0e181518e..1534f7968 100644 --- a/src/viam/sdk/tests/mocks/camera_mocks.hpp +++ b/src/viam/sdk/tests/mocks/camera_mocks.hpp @@ -10,14 +10,14 @@ using namespace viam::sdk; class MockCamera : public Camera { public: - AttributeMap do_command(const AttributeMap& command) override; - raw_image get_image(std::string mime_type, const sdk::AttributeMap& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + raw_image get_image(std::string mime_type, const sdk::ProtoStruct& extra) override; image_collection get_images() override; - point_cloud get_point_cloud(std::string mime_type, const sdk::AttributeMap& extra) override; - std::vector get_geometries(const sdk::AttributeMap& extra) override; + point_cloud get_point_cloud(std::string mime_type, const sdk::ProtoStruct& extra) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; properties get_properties() override; static std::shared_ptr get_mock_camera(); - MockCamera(std::string name) : Camera(std::move(name)){}; + MockCamera(std::string name) : Camera(std::move(name)) {}; private: Camera::intrinsic_parameters intrinsic_parameters_; @@ -26,7 +26,7 @@ class MockCamera : public Camera { Camera::raw_image image_; Camera::image_collection images_; Camera::point_cloud pc_; - std::shared_ptr>> map_; + ProtoStruct map_; std::vector geometries_; }; diff --git a/src/viam/sdk/tests/mocks/generic_mocks.cpp b/src/viam/sdk/tests/mocks/generic_mocks.cpp index 979877d85..5c27559c5 100644 --- a/src/viam/sdk/tests/mocks/generic_mocks.cpp +++ b/src/viam/sdk/tests/mocks/generic_mocks.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include #include @@ -10,10 +10,10 @@ namespace generic { using namespace viam::sdk; -AttributeMap MockGenericComponent::do_command(const AttributeMap&) { +ProtoStruct MockGenericComponent::do_command(const ProtoStruct&) { return map_; } -std::vector MockGenericComponent::get_geometries(const AttributeMap&) { +std::vector MockGenericComponent::get_geometries(const ProtoStruct&) { return geometries_; } std::shared_ptr MockGenericComponent::get_mock_generic() { @@ -24,8 +24,7 @@ std::shared_ptr MockGenericComponent::get_mock_generic() { return generic; } -std::shared_ptr>> -MockGenericService::do_command(const AttributeMap&) { +ProtoStruct MockGenericService::do_command(const ProtoStruct&) { return map_; } std::shared_ptr MockGenericService::get_mock_generic() { diff --git a/src/viam/sdk/tests/mocks/generic_mocks.hpp b/src/viam/sdk/tests/mocks/generic_mocks.hpp index 182e0428c..07c45ccc1 100644 --- a/src/viam/sdk/tests/mocks/generic_mocks.hpp +++ b/src/viam/sdk/tests/mocks/generic_mocks.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include @@ -13,26 +13,26 @@ using namespace viam::sdk; class MockGenericComponent : public GenericComponent { public: - MockGenericComponent(std::string name) : GenericComponent(std::move(name)){}; - AttributeMap do_command(const AttributeMap& command) override; + MockGenericComponent(std::string name) : GenericComponent(std::move(name)) {}; + ProtoStruct do_command(const ProtoStruct& command) override; static std::shared_ptr get_mock_generic(); - std::vector get_geometries(const AttributeMap& extra) override; + std::vector get_geometries(const ProtoStruct& extra) override; private: - std::shared_ptr>> map_; + ProtoStruct map_; std::vector geometries_; }; class MockGenericService : public GenericService { public: - MockGenericService(std::string name) : GenericService(std::move(name)){}; - AttributeMap do_command(const AttributeMap& command) override; + MockGenericService(std::string name) : GenericService(std::move(name)) {}; + ProtoStruct do_command(const ProtoStruct& command) override; static std::shared_ptr get_mock_generic(); private: - std::shared_ptr>> map_; + ProtoStruct map_; }; } // namespace generic diff --git a/src/viam/sdk/tests/mocks/mlmodel_mocks.cpp b/src/viam/sdk/tests/mocks/mlmodel_mocks.cpp index 9ba070eff..8e75dad86 100644 --- a/src/viam/sdk/tests/mocks/mlmodel_mocks.cpp +++ b/src/viam/sdk/tests/mocks/mlmodel_mocks.cpp @@ -14,7 +14,7 @@ #include -#include +#include namespace viam { namespace sdktests { @@ -25,7 +25,7 @@ MockMLModelService& MockMLModelService::set_infer_handler(infer_handler handler) } std::shared_ptr MockMLModelService::infer( - const named_tensor_views& inputs, const sdk::AttributeMap&) { + const named_tensor_views& inputs, const sdk::ProtoStruct&) { return infer_handler_(inputs); } @@ -34,7 +34,7 @@ MockMLModelService& MockMLModelService::set_metadata(struct metadata metadata) { return *this; } -struct sdk::MLModelService::metadata MockMLModelService::metadata(const sdk::AttributeMap&) { +struct sdk::MLModelService::metadata MockMLModelService::metadata(const sdk::ProtoStruct&) { return metadata_; } diff --git a/src/viam/sdk/tests/mocks/mlmodel_mocks.hpp b/src/viam/sdk/tests/mocks/mlmodel_mocks.hpp index 9e3c7384f..17eabe4b3 100644 --- a/src/viam/sdk/tests/mocks/mlmodel_mocks.hpp +++ b/src/viam/sdk/tests/mocks/mlmodel_mocks.hpp @@ -16,7 +16,7 @@ #include -#include +#include #include namespace viam { @@ -31,10 +31,10 @@ class MockMLModelService : public sdk::MLModelService { std::function(const named_tensor_views&)>; MockMLModelService& set_infer_handler(infer_handler handler); std::shared_ptr infer(const named_tensor_views& inputs, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; MockMLModelService& set_metadata(struct metadata metadata); - struct metadata metadata(const sdk::AttributeMap& extra) override; + struct metadata metadata(const sdk::ProtoStruct& extra) override; private: infer_handler infer_handler_; diff --git a/src/viam/sdk/tests/mocks/mock_arm.cpp b/src/viam/sdk/tests/mocks/mock_arm.cpp index f1882dc8a..06c54ed0f 100644 --- a/src/viam/sdk/tests/mocks/mock_arm.cpp +++ b/src/viam/sdk/tests/mocks/mock_arm.cpp @@ -10,7 +10,7 @@ sdk::Arm::KinematicsData fake_kinematics() { return sdk::Arm::KinematicsDataSVA{{std::vector{1, 2, 3, 4}}}; } -sdk::pose MockArm::get_end_position(const sdk::AttributeMap& extra) { +sdk::pose MockArm::get_end_position(const sdk::ProtoStruct& extra) { return current_location; } @@ -18,20 +18,20 @@ std::shared_ptr MockArm::get_mock_arm() { return std::make_shared("mock_arm"); } -void MockArm::move_to_position(const sdk::pose& pose, const sdk::AttributeMap&) { +void MockArm::move_to_position(const sdk::pose& pose, const sdk::ProtoStruct&) { current_location = pose; } -std::vector MockArm::get_joint_positions(const sdk::AttributeMap&) { +std::vector MockArm::get_joint_positions(const sdk::ProtoStruct&) { return joint_positions; } void MockArm::move_to_joint_positions(const std::vector& positions, - const sdk::AttributeMap&) { + const sdk::ProtoStruct&) { joint_positions = positions; } -void MockArm::stop(const sdk::AttributeMap&) { +void MockArm::stop(const sdk::ProtoStruct&) { peek_stop_called = true; } @@ -39,15 +39,15 @@ bool MockArm::is_moving() { return false; } -sdk::AttributeMap MockArm::do_command(const sdk::AttributeMap& command) { +sdk::ProtoStruct MockArm::do_command(const sdk::ProtoStruct& command) { return (peek_command = command); } -sdk::Arm::KinematicsData MockArm::get_kinematics(const sdk::AttributeMap&) { +sdk::Arm::KinematicsData MockArm::get_kinematics(const sdk::ProtoStruct&) { return fake_kinematics(); } -std::vector MockArm::get_geometries(const sdk::AttributeMap&) { +std::vector MockArm::get_geometries(const sdk::ProtoStruct&) { return fake_geometries(); } diff --git a/src/viam/sdk/tests/mocks/mock_arm.hpp b/src/viam/sdk/tests/mocks/mock_arm.hpp index 84d5ba3f1..cb0139e55 100644 --- a/src/viam/sdk/tests/mocks/mock_arm.hpp +++ b/src/viam/sdk/tests/mocks/mock_arm.hpp @@ -14,21 +14,21 @@ class MockArm : public sdk::Arm { static std::shared_ptr get_mock_arm(); - sdk::pose get_end_position(const sdk::AttributeMap&) override; - void move_to_position(const sdk::pose& pose, const sdk::AttributeMap&) override; - std::vector get_joint_positions(const sdk::AttributeMap&) override; + sdk::pose get_end_position(const sdk::ProtoStruct&) override; + void move_to_position(const sdk::pose& pose, const sdk::ProtoStruct&) override; + std::vector get_joint_positions(const sdk::ProtoStruct&) override; void move_to_joint_positions(const std::vector& positions, - const sdk::AttributeMap&) override; - void stop(const sdk::AttributeMap&) override; + const sdk::ProtoStruct&) override; + void stop(const sdk::ProtoStruct&) override; bool is_moving() override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; - sdk::Arm::KinematicsData get_kinematics(const sdk::AttributeMap&) override; - std::vector get_geometries(const sdk::AttributeMap&) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; + sdk::Arm::KinematicsData get_kinematics(const sdk::ProtoStruct&) override; + std::vector get_geometries(const sdk::ProtoStruct&) override; sdk::pose current_location; std::vector joint_positions; bool peek_stop_called; - sdk::AttributeMap peek_command; + sdk::ProtoStruct peek_command; }; } // namespace arm diff --git a/src/viam/sdk/tests/mocks/mock_base.cpp b/src/viam/sdk/tests/mocks/mock_base.cpp index 5c0b11830..21c37d596 100644 --- a/src/viam/sdk/tests/mocks/mock_base.cpp +++ b/src/viam/sdk/tests/mocks/mock_base.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include #include #include @@ -15,39 +15,39 @@ Base::properties fake_properties() { return {2, 4, 8}; } -void MockBase::move_straight(int64_t distance_mm, double mm_per_sec, const AttributeMap&) { +void MockBase::move_straight(int64_t distance_mm, double mm_per_sec, const ProtoStruct&) { this->peek_move_straight_distance_mm = distance_mm; this->peek_move_straight_mm_per_sec = mm_per_sec; } -void MockBase::spin(double angle_deg, double degs_per_sec, const AttributeMap&) { +void MockBase::spin(double angle_deg, double degs_per_sec, const ProtoStruct&) { this->peek_spin_angle_deg = angle_deg; this->peek_spin_degs_per_sec = degs_per_sec; } -void MockBase::set_power(const Vector3& linear, const Vector3& angular, const AttributeMap&) { +void MockBase::set_power(const Vector3& linear, const Vector3& angular, const ProtoStruct&) { this->peek_set_power_linear = linear; this->peek_set_power_angular = angular; } -void MockBase::set_velocity(const Vector3& linear, const Vector3& angular, const AttributeMap&) { +void MockBase::set_velocity(const Vector3& linear, const Vector3& angular, const ProtoStruct&) { this->peek_set_velocity_linear = linear; this->peek_set_velocity_angular = angular; } -void MockBase::stop(const AttributeMap&) { +void MockBase::stop(const ProtoStruct&) { this->peek_stop_called = true; } bool MockBase::is_moving() { return false; } -Base::properties MockBase::get_properties(const sdk::AttributeMap&) { +Base::properties MockBase::get_properties(const sdk::ProtoStruct&) { return fake_properties(); } -std::vector MockBase::get_geometries(const sdk::AttributeMap&) { +std::vector MockBase::get_geometries(const sdk::ProtoStruct&) { return fake_geometries(); } std::shared_ptr MockBase::get_mock_base() { return std::make_shared("mock_base"); } -AttributeMap MockBase::do_command(const AttributeMap& command) { +ProtoStruct MockBase::do_command(const ProtoStruct& command) { this->peek_do_command_command = command; return command; } diff --git a/src/viam/sdk/tests/mocks/mock_base.hpp b/src/viam/sdk/tests/mocks/mock_base.hpp index cb2027cc0..f5e9d2f7f 100644 --- a/src/viam/sdk/tests/mocks/mock_base.hpp +++ b/src/viam/sdk/tests/mocks/mock_base.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include #include @@ -14,19 +14,19 @@ class MockBase : public sdk::Base { public: void move_straight(int64_t distance_mm, double mm_per_sec, - const sdk::AttributeMap& extra) override; - void spin(double angle_deg, double degs_per_sec, const sdk::AttributeMap& extra) override; - properties get_properties(const sdk::AttributeMap& extra) override; - std::vector get_geometries(const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; + void spin(double angle_deg, double degs_per_sec, const sdk::ProtoStruct& extra) override; + properties get_properties(const sdk::ProtoStruct& extra) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; void set_power(const sdk::Vector3& linear, const sdk::Vector3& angular, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; void set_velocity(const sdk::Vector3& linear, const sdk::Vector3& angular, - const sdk::AttributeMap& extra) override; - void stop(const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; + void stop(const sdk::ProtoStruct& extra) override; bool is_moving() override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_base(); // These variables allow the testing infra to `peek` into the mock @@ -37,9 +37,9 @@ class MockBase : public sdk::Base { sdk::Vector3 peek_set_power_linear, peek_set_power_angular; sdk::Vector3 peek_set_velocity_linear, peek_set_velocity_angular; bool peek_stop_called; - sdk::AttributeMap peek_do_command_command; + sdk::ProtoStruct peek_do_command_command; - MockBase(std::string name) : Base(std::move(name)){}; + MockBase(std::string name) : Base(std::move(name)) {}; }; } // namespace base diff --git a/src/viam/sdk/tests/mocks/mock_board.cpp b/src/viam/sdk/tests/mocks/mock_board.cpp index 15b5e5d11..5f40af252 100644 --- a/src/viam/sdk/tests/mocks/mock_board.cpp +++ b/src/viam/sdk/tests/mocks/mock_board.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include #include @@ -10,79 +10,79 @@ namespace board { using namespace viam::sdk; -MockBoard::MockBoard(std::string name) : Board(std::move(name)){}; +MockBoard::MockBoard(std::string name) : Board(std::move(name)) {}; -void MockBoard::set_gpio(const std::string& pin, bool high, const AttributeMap&) { +void MockBoard::set_gpio(const std::string& pin, bool high, const ProtoStruct&) { this->peek_pin = pin; this->peek_set_gpio_high = high; } -bool MockBoard::get_gpio(const std::string& pin, const AttributeMap&) { +bool MockBoard::get_gpio(const std::string& pin, const ProtoStruct&) { this->peek_pin = pin; return this->peek_get_gpio_ret; } -double MockBoard::get_pwm_duty_cycle(const std::string& pin, const AttributeMap&) { +double MockBoard::get_pwm_duty_cycle(const std::string& pin, const ProtoStruct&) { this->peek_pin = pin; return this->peek_get_pwm_duty_cycle_ret; } void MockBoard::set_pwm_duty_cycle(const std::string& pin, double duty_cycle_pct, - const AttributeMap&) { + const ProtoStruct&) { this->peek_pin = pin; this->peek_set_pwm_duty_cycle_pct = duty_cycle_pct; } -uint64_t MockBoard::get_pwm_frequency(const std::string& pin, const AttributeMap&) { +uint64_t MockBoard::get_pwm_frequency(const std::string& pin, const ProtoStruct&) { this->peek_pin = pin; return this->peek_get_pwm_frequency_ret; } void MockBoard::set_pwm_frequency(const std::string& pin, uint64_t frequency_hz, - const AttributeMap&) { + const ProtoStruct&) { this->peek_pin = pin; this->peek_set_pwm_frequency_hz = frequency_hz; } -AttributeMap MockBoard::do_command(const AttributeMap& command) { +ProtoStruct MockBoard::do_command(const ProtoStruct& command) { return command; } Board::analog_response MockBoard::read_analog(const std::string& analog_reader_name, - const AttributeMap&) { + const ProtoStruct&) { this->peek_analog_reader_name = analog_reader_name; return this->peek_read_analog_ret; } -void MockBoard::write_analog(const std::string& pin, int value, const AttributeMap&) { +void MockBoard::write_analog(const std::string& pin, int value, const ProtoStruct&) { this->peek_pin = pin; this->peek_pin_value = value; } Board::digital_value MockBoard::read_digital_interrupt(const std::string& digital_interrupt_name, - const AttributeMap&) { + const ProtoStruct&) { this->peek_digital_interrupt_name = digital_interrupt_name; return this->peek_read_digital_interrupt_ret; } void MockBoard::stream_ticks(std::vector const& digital_interrupt_names, std::function const& tick_handler, - const AttributeMap& extra) { + const ProtoStruct& extra) { for (const auto& name : digital_interrupt_names) { peek_callbacks[name] = tick_handler; } } void MockBoard::set_power_mode(power_mode power_mode, - const AttributeMap&, + const ProtoStruct&, const boost::optional& duration) { this->peek_set_power_mode_power_mode = power_mode; this->peek_set_power_mode_duration = duration; } -std::vector MockBoard::get_geometries(const sdk::AttributeMap&) { +std::vector MockBoard::get_geometries(const sdk::ProtoStruct&) { return fake_geometries(); } diff --git a/src/viam/sdk/tests/mocks/mock_board.hpp b/src/viam/sdk/tests/mocks/mock_board.hpp index 1a8b4171a..3c9f364d9 100644 --- a/src/viam/sdk/tests/mocks/mock_board.hpp +++ b/src/viam/sdk/tests/mocks/mock_board.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include namespace viam { @@ -11,29 +11,29 @@ namespace board { class MockBoard : public viam::sdk::Board { public: MockBoard(std::string name); - void set_gpio(const std::string& pin, bool high, const sdk::AttributeMap& extra) override; - bool get_gpio(const std::string& pin, const sdk::AttributeMap& extra) override; - double get_pwm_duty_cycle(const std::string& pin, const sdk::AttributeMap& extra) override; + void set_gpio(const std::string& pin, bool high, const sdk::ProtoStruct& extra) override; + bool get_gpio(const std::string& pin, const sdk::ProtoStruct& extra) override; + double get_pwm_duty_cycle(const std::string& pin, const sdk::ProtoStruct& extra) override; void set_pwm_duty_cycle(const std::string& pin, double duty_cycle_pct, - const sdk::AttributeMap& extra) override; - uint64_t get_pwm_frequency(const std::string& pin, const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; + uint64_t get_pwm_frequency(const std::string& pin, const sdk::ProtoStruct& extra) override; void set_pwm_frequency(const std::string& pin, uint64_t frequency_hz, - const sdk::AttributeMap& extra) override; - viam::sdk::AttributeMap do_command(const viam::sdk::AttributeMap& command) override; + const sdk::ProtoStruct& extra) override; + viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; Board::analog_response read_analog(const std::string& analog_reader_name, - const sdk::AttributeMap& extra) override; - void write_analog(const std::string& pin, int value, const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; + void write_analog(const std::string& pin, int value, const sdk::ProtoStruct& extra) override; Board::digital_value read_digital_interrupt(const std::string& digital_interrupt_name, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; void stream_ticks(std::vector const& digital_interrupt_names, std::function const& tick_handler, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; void set_power_mode(power_mode power_mode, - const sdk::AttributeMap& extra, + const sdk::ProtoStruct& extra, const boost::optional& duration) override; - std::vector get_geometries(const sdk::AttributeMap& extra) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; std::string peek_pin, peek_analog_reader_name, peek_digital_interrupt_name; int peek_pin_value; diff --git a/src/viam/sdk/tests/mocks/mock_encoder.cpp b/src/viam/sdk/tests/mocks/mock_encoder.cpp index d2c654647..9225ec6ea 100644 --- a/src/viam/sdk/tests/mocks/mock_encoder.cpp +++ b/src/viam/sdk/tests/mocks/mock_encoder.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include #include @@ -10,24 +10,24 @@ namespace encoder { using namespace viam::sdk; -Encoder::position MockEncoder::get_position(const AttributeMap&, position_type position_type) { +Encoder::position MockEncoder::get_position(const ProtoStruct&, position_type position_type) { this->peek_get_position_position_type = position_type; return this->peek_get_position_ret; }; -void MockEncoder::reset_position(const AttributeMap&) { +void MockEncoder::reset_position(const ProtoStruct&) { this->peek_reset_position_called = true; }; -Encoder::properties MockEncoder::get_properties(const AttributeMap&) { +Encoder::properties MockEncoder::get_properties(const ProtoStruct&) { return this->peek_get_properties_ret; }; -std::vector MockEncoder::get_geometries(const sdk::AttributeMap&) { +std::vector MockEncoder::get_geometries(const sdk::ProtoStruct&) { return fake_geometries(); } -AttributeMap MockEncoder::do_command(const AttributeMap& command) { +ProtoStruct MockEncoder::do_command(const ProtoStruct& command) { return command; }; diff --git a/src/viam/sdk/tests/mocks/mock_encoder.hpp b/src/viam/sdk/tests/mocks/mock_encoder.hpp index 88ab7ad1c..ef117b823 100644 --- a/src/viam/sdk/tests/mocks/mock_encoder.hpp +++ b/src/viam/sdk/tests/mocks/mock_encoder.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include namespace viam { @@ -9,15 +9,15 @@ namespace encoder { class MockEncoder : public viam::sdk::Encoder { public: - Encoder::position get_position(const sdk::AttributeMap& extra, + Encoder::position get_position(const sdk::ProtoStruct& extra, Encoder::position_type position_type) override; - void reset_position(const sdk::AttributeMap& extra) override; - Encoder::properties get_properties(const sdk::AttributeMap& extra) override; - std::vector get_geometries(const sdk::AttributeMap& extra) override; - viam::sdk::AttributeMap do_command(const viam::sdk::AttributeMap& command) override; + void reset_position(const sdk::ProtoStruct& extra) override; + Encoder::properties get_properties(const sdk::ProtoStruct& extra) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; + viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_encoder(); - MockEncoder(std::string name) : Encoder(std::move(name)){}; + MockEncoder(std::string name) : Encoder(std::move(name)) {}; // For testing purposes only. bool peek_reset_position_called; diff --git a/src/viam/sdk/tests/mocks/mock_gantry.cpp b/src/viam/sdk/tests/mocks/mock_gantry.cpp index 20ab8415f..3d8075e47 100644 --- a/src/viam/sdk/tests/mocks/mock_gantry.cpp +++ b/src/viam/sdk/tests/mocks/mock_gantry.cpp @@ -14,22 +14,22 @@ std::shared_ptr MockGantry::get_mock_gantry() { return std::make_shared("mock_gantry"); } -std::vector MockGantry::get_position(const sdk::AttributeMap&) { +std::vector MockGantry::get_position(const sdk::ProtoStruct&) { return peek_positions; } void MockGantry::move_to_position(const std::vector& coordinates, - const sdk::AttributeMap&) { + const sdk::ProtoStruct&) { peek_positions = {}; for (const auto& coord : coordinates) peek_positions.push_back(coord.position_mm); } -bool MockGantry::home(const sdk::AttributeMap&) { +bool MockGantry::home(const sdk::ProtoStruct&) { return (peek_home_called = true); } -std::vector MockGantry::get_lengths(const sdk::AttributeMap&) { +std::vector MockGantry::get_lengths(const sdk::ProtoStruct&) { return fake_lengths(); } @@ -37,15 +37,15 @@ bool MockGantry::is_moving() { return false; } -void MockGantry::stop(const sdk::AttributeMap&) { +void MockGantry::stop(const sdk::ProtoStruct&) { peek_stop_called = true; } -sdk::AttributeMap MockGantry::do_command(const sdk::AttributeMap& command) { +sdk::ProtoStruct MockGantry::do_command(const sdk::ProtoStruct& command) { return (peek_command = command); } -std::vector MockGantry::get_geometries(const sdk::AttributeMap&) { +std::vector MockGantry::get_geometries(const sdk::ProtoStruct&) { return fake_geometries(); } diff --git a/src/viam/sdk/tests/mocks/mock_gantry.hpp b/src/viam/sdk/tests/mocks/mock_gantry.hpp index 2c4ff5875..f68c724fa 100644 --- a/src/viam/sdk/tests/mocks/mock_gantry.hpp +++ b/src/viam/sdk/tests/mocks/mock_gantry.hpp @@ -14,20 +14,20 @@ class MockGantry : public sdk::Gantry { static std::shared_ptr get_mock_gantry(); - std::vector get_position(const sdk::AttributeMap& extra) override; + std::vector get_position(const sdk::ProtoStruct& extra) override; void move_to_position(const std::vector& coordinates, - const sdk::AttributeMap& extra) override; - bool home(const sdk::AttributeMap& extra) override; - std::vector get_lengths(const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; + bool home(const sdk::ProtoStruct& extra) override; + std::vector get_lengths(const sdk::ProtoStruct& extra) override; bool is_moving() override; - void stop(const sdk::AttributeMap& extra) override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; - std::vector get_geometries(const sdk::AttributeMap& extra) override; + void stop(const sdk::ProtoStruct& extra) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; std::vector peek_positions; bool peek_stop_called{false}; bool peek_home_called{false}; - sdk::AttributeMap peek_command; + sdk::ProtoStruct peek_command; }; } // namespace gantry } // namespace sdktests diff --git a/src/viam/sdk/tests/mocks/mock_gripper.cpp b/src/viam/sdk/tests/mocks/mock_gripper.cpp index 1ae122c34..2df4a685b 100644 --- a/src/viam/sdk/tests/mocks/mock_gripper.cpp +++ b/src/viam/sdk/tests/mocks/mock_gripper.cpp @@ -12,15 +12,15 @@ std::shared_ptr MockGripper::get_mock_gripper() { return std::make_shared("mock_gripper"); } -void MockGripper::open(const AttributeMap&) { +void MockGripper::open(const ProtoStruct&) { peek_open_called = true; } -bool MockGripper::grab(const AttributeMap&) { +bool MockGripper::grab(const ProtoStruct&) { return true; } -void MockGripper::stop(const AttributeMap&) { +void MockGripper::stop(const ProtoStruct&) { peek_stop_called = true; } @@ -28,11 +28,11 @@ bool MockGripper::is_moving() { return false; } -AttributeMap MockGripper::do_command(const AttributeMap& command) { +ProtoStruct MockGripper::do_command(const ProtoStruct& command) { return (peek_command = command); } -std::vector MockGripper::get_geometries(const AttributeMap&) { +std::vector MockGripper::get_geometries(const ProtoStruct&) { return fake_geometries(); } diff --git a/src/viam/sdk/tests/mocks/mock_gripper.hpp b/src/viam/sdk/tests/mocks/mock_gripper.hpp index a5a93c2fc..95662862e 100644 --- a/src/viam/sdk/tests/mocks/mock_gripper.hpp +++ b/src/viam/sdk/tests/mocks/mock_gripper.hpp @@ -15,16 +15,16 @@ class MockGripper : public sdk::Gripper { static std::shared_ptr get_mock_gripper(); - void open(const sdk::AttributeMap& extra) override; - bool grab(const sdk::AttributeMap& extra) override; - void stop(const sdk::AttributeMap& extra) override; + void open(const sdk::ProtoStruct& extra) override; + bool grab(const sdk::ProtoStruct& extra) override; + void stop(const sdk::ProtoStruct& extra) override; bool is_moving() override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; - std::vector get_geometries(const sdk::AttributeMap& extra) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; bool peek_open_called{false}; bool peek_stop_called{false}; - sdk::AttributeMap peek_command; + sdk::ProtoStruct peek_command; }; } // namespace gripper diff --git a/src/viam/sdk/tests/mocks/mock_motion.cpp b/src/viam/sdk/tests/mocks/mock_motion.cpp index ca66056ac..8a47bf655 100644 --- a/src/viam/sdk/tests/mocks/mock_motion.cpp +++ b/src/viam/sdk/tests/mocks/mock_motion.cpp @@ -18,7 +18,7 @@ bool MockMotion::move(const pose_in_frame& destination, const Name& component_name, const std::shared_ptr& world_state, const std::shared_ptr& constraints, - const AttributeMap&) { + const ProtoStruct&) { this->current_location = destination; this->peek_component_name = component_name; this->peek_world_state = world_state; @@ -32,7 +32,7 @@ std::string MockMotion::move_on_map( const Name& slam_name, const std::shared_ptr& motion_configuration, const std::vector& obstacles, - const AttributeMap&) { + const ProtoStruct&) { this->peek_current_pose = destination; this->peek_component_name = component_name; this->peek_slam_name = slam_name; @@ -51,7 +51,7 @@ std::string MockMotion::move_on_globe( const std::vector& obstacles, const std::shared_ptr& motion_configuration, const std::vector& bounding_regions, - const AttributeMap&) { + const ProtoStruct&) { this->peek_heading = *heading; this->peek_component_name = component_name; this->peek_movement_sensor_name = movement_sensor_name; @@ -65,46 +65,46 @@ std::string MockMotion::move_on_globe( pose_in_frame MockMotion::get_pose(const Name&, const std::string&, const std::vector&, - const AttributeMap&) { + const ProtoStruct&) { return current_location; } Motion::plan_with_status MockMotion::get_plan(const sdk::Name&, const std::string&, - const sdk::AttributeMap&) { + const sdk::ProtoStruct&) { return fake_plan_with_status(); } std::pair> MockMotion::get_plan_with_replan_history(const sdk::Name&, const std::string&, - const sdk::AttributeMap&) { + const sdk::ProtoStruct&) { return {fake_plan_with_status(), {fake_plan_with_status()}}; } -Motion::plan_with_status MockMotion::get_latest_plan(const sdk::Name&, const sdk::AttributeMap&) { +Motion::plan_with_status MockMotion::get_latest_plan(const sdk::Name&, const sdk::ProtoStruct&) { return fake_plan_with_status(); } std::pair> -MockMotion::get_latest_plan_with_replan_history(const sdk::Name&, const sdk::AttributeMap&) { +MockMotion::get_latest_plan_with_replan_history(const sdk::Name&, const sdk::ProtoStruct&) { return {fake_plan_with_status(), {fake_plan_with_status()}}; } std::vector MockMotion::list_active_plan_statuses( - const sdk::AttributeMap&) { + const sdk::ProtoStruct&) { return {fake_plan_status_with_id()}; } -std::vector MockMotion::list_plan_statuses(const sdk::AttributeMap&) { +std::vector MockMotion::list_plan_statuses(const sdk::ProtoStruct&) { return {fake_plan_status_with_id()}; } -void MockMotion::stop_plan(const sdk::Name&, const sdk::AttributeMap&) { +void MockMotion::stop_plan(const sdk::Name&, const sdk::ProtoStruct&) { this->peek_stop_plan_called = true; } -AttributeMap MockMotion::do_command(const AttributeMap& command) { +ProtoStruct MockMotion::do_command(const ProtoStruct& command) { return command; }; diff --git a/src/viam/sdk/tests/mocks/mock_motion.hpp b/src/viam/sdk/tests/mocks/mock_motion.hpp index df88d47a3..dc0c8e5c5 100644 --- a/src/viam/sdk/tests/mocks/mock_motion.hpp +++ b/src/viam/sdk/tests/mocks/mock_motion.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include #include #include @@ -27,14 +27,14 @@ class MockMotion : public sdk::Motion { const sdk::Name& component_name, const std::shared_ptr& world_state, const std::shared_ptr& constraints, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; std::string move_on_map(const sdk::pose& destination, const sdk::Name& component_name, const sdk::Name& slam_name, const std::shared_ptr& motion_configuration, const std::vector& obstacles, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; std::string move_on_globe( const sdk::geo_point& destination, @@ -44,37 +44,37 @@ class MockMotion : public sdk::Motion { const std::vector& obstacles, const std::shared_ptr& motion_configuration, const std::vector& bounding_regions, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; sdk::pose_in_frame get_pose( const sdk::Name& component_name, const std::string& destination_frame, const std::vector& supplemental_transforms, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; plan_with_status get_plan(const sdk::Name& component_name, const std::string& execution_id, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; std::pair> get_plan_with_replan_history( const sdk::Name& component_name, const std::string& execution_id, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; plan_with_status get_latest_plan(const sdk::Name& component_name, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; std::pair> get_latest_plan_with_replan_history( - const sdk::Name& component_name, const sdk::AttributeMap& extra) override; + const sdk::Name& component_name, const sdk::ProtoStruct& extra) override; - std::vector list_plan_statuses(const sdk::AttributeMap& extra) override; + std::vector list_plan_statuses(const sdk::ProtoStruct& extra) override; std::vector list_active_plan_statuses( - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; - void stop_plan(const sdk::Name& name, const sdk::AttributeMap& extra) override; + void stop_plan(const sdk::Name& name, const sdk::ProtoStruct& extra) override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_motion(); static plan_status fake_plan_status(); static plan_with_status fake_plan_with_status(); @@ -99,7 +99,7 @@ class MockMotion : public sdk::Motion { std::shared_ptr peek_world_state; MockMotion(std::string name) - : sdk::Motion(std::move(name)), current_location(init_fake_pose()){}; + : sdk::Motion(std::move(name)), current_location(init_fake_pose()) {}; }; } // namespace motion diff --git a/src/viam/sdk/tests/mocks/mock_motor.cpp b/src/viam/sdk/tests/mocks/mock_motor.cpp index 2a873d91c..e96191797 100644 --- a/src/viam/sdk/tests/mocks/mock_motor.cpp +++ b/src/viam/sdk/tests/mocks/mock_motor.cpp @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include #include @@ -14,12 +14,12 @@ namespace motor { using namespace viam::sdk; -void MockMotor::set_power(double power_pct, const AttributeMap&) { +void MockMotor::set_power(double power_pct, const ProtoStruct&) { power_status_.is_on = power_pct != 0.0; power_status_.power_pct = power_pct; } -void MockMotor::go_for(double rpm, double revolutions, const AttributeMap&) { +void MockMotor::go_for(double rpm, double revolutions, const ProtoStruct&) { // This is the actual behavior from rdk:builtin:fake_motor if (rpm == 0.0) { throw Exception("Cannot move motor at 0 RPM"); @@ -27,39 +27,39 @@ void MockMotor::go_for(double rpm, double revolutions, const AttributeMap&) { position_ += revolutions; } -void MockMotor::go_to(double rpm, double position_revolutions, const AttributeMap&) { +void MockMotor::go_to(double rpm, double position_revolutions, const ProtoStruct&) { position_ = position_revolutions; } -void MockMotor::set_rpm(double rpm, const AttributeMap&) { +void MockMotor::set_rpm(double rpm, const ProtoStruct&) { power_status_.is_on = rpm != 0.0; position_ += 1; } -void MockMotor::reset_zero_position(double offset, const AttributeMap&) { +void MockMotor::reset_zero_position(double offset, const ProtoStruct&) { position_ -= offset; } -Motor::position MockMotor::get_position(const AttributeMap&) { +Motor::position MockMotor::get_position(const ProtoStruct&) { return position_; } -Motor::properties MockMotor::get_properties(const AttributeMap&) { +Motor::properties MockMotor::get_properties(const ProtoStruct&) { return properties_; } -void MockMotor::stop(const AttributeMap&) { +void MockMotor::stop(const ProtoStruct&) { // None of these functions are async and this mock is not // thread-safe (Send, not Sync). The mock motor should never be // moving when this is called set_power(0.0); } -Motor::power_status MockMotor::get_power_status(const AttributeMap&) { +Motor::power_status MockMotor::get_power_status(const ProtoStruct&) { return power_status_; } -std::vector MockMotor::get_geometries(const sdk::AttributeMap&) { +std::vector MockMotor::get_geometries(const sdk::ProtoStruct&) { return fake_geometries(); } @@ -69,7 +69,7 @@ bool MockMotor::is_moving() { return false; } -AttributeMap MockMotor::do_command(const AttributeMap&) { +ProtoStruct MockMotor::do_command(const ProtoStruct&) { return map_; } diff --git a/src/viam/sdk/tests/mocks/mock_motor.hpp b/src/viam/sdk/tests/mocks/mock_motor.hpp index 72d2948a6..2c3a7be16 100644 --- a/src/viam/sdk/tests/mocks/mock_motor.hpp +++ b/src/viam/sdk/tests/mocks/mock_motor.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include @@ -12,22 +12,21 @@ using viam::sdk::Motor; class MockMotor : public Motor { public: - void set_power(double power_pct, const sdk::AttributeMap& extra) override; - void go_for(double rpm, double revolutions, const sdk::AttributeMap& extra) override; - void go_to(double rpm, double position_revolutions, const sdk::AttributeMap& extra) override; - void set_rpm(double rpm, const sdk::AttributeMap& extra) override; - void reset_zero_position(double offset, const sdk::AttributeMap& extra) override; - Motor::position get_position(const sdk::AttributeMap& extra) override; - Motor::properties get_properties(const sdk::AttributeMap& extra) override; - void stop(const viam::sdk::AttributeMap& extra) override; - Motor::power_status get_power_status(const viam::sdk::AttributeMap& extra) override; + void set_power(double power_pct, const sdk::ProtoStruct& extra) override; + void go_for(double rpm, double revolutions, const sdk::ProtoStruct& extra) override; + void go_to(double rpm, double position_revolutions, const sdk::ProtoStruct& extra) override; + void set_rpm(double rpm, const sdk::ProtoStruct& extra) override; + void reset_zero_position(double offset, const sdk::ProtoStruct& extra) override; + Motor::position get_position(const sdk::ProtoStruct& extra) override; + Motor::properties get_properties(const sdk::ProtoStruct& extra) override; + void stop(const viam::sdk::ProtoStruct& extra) override; + Motor::power_status get_power_status(const viam::sdk::ProtoStruct& extra) override; bool is_moving() override; - viam::sdk::AttributeMap do_command(const viam::sdk::AttributeMap& command) override; + viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_motor(); - virtual std::vector get_geometries( - const sdk::AttributeMap& extra) override; + virtual std::vector get_geometries(const sdk::ProtoStruct& extra) override; - MockMotor(std::string name) : Motor(std::move(name)){}; + MockMotor(std::string name) : Motor(std::move(name)) {}; using Motor::get_geometries; using Motor::get_position; @@ -44,7 +43,7 @@ class MockMotor : public Motor { Motor::position position_; Motor::power_status power_status_; Motor::properties properties_; - viam::sdk::AttributeMap map_; + viam::sdk::ProtoStruct map_; }; Motor::position fake_position(); diff --git a/src/viam/sdk/tests/mocks/mock_movement_sensor.cpp b/src/viam/sdk/tests/mocks/mock_movement_sensor.cpp index 3a3715758..ef9db911c 100644 --- a/src/viam/sdk/tests/mocks/mock_movement_sensor.cpp +++ b/src/viam/sdk/tests/mocks/mock_movement_sensor.cpp @@ -9,35 +9,35 @@ namespace movementsensor { using namespace viam::sdk; -Vector3 MockMovementSensor::get_linear_velocity(const AttributeMap&) { +Vector3 MockMovementSensor::get_linear_velocity(const ProtoStruct&) { return this->peek_return_vec; }; -Vector3 MockMovementSensor::get_angular_velocity(const AttributeMap&) { +Vector3 MockMovementSensor::get_angular_velocity(const ProtoStruct&) { return this->peek_return_vec; }; -MovementSensor::compassheading MockMovementSensor::get_compass_heading(const AttributeMap&) { +MovementSensor::compassheading MockMovementSensor::get_compass_heading(const ProtoStruct&) { return this->peek_compass_heading; }; -MovementSensor::orientation MockMovementSensor::get_orientation(const AttributeMap&) { +MovementSensor::orientation MockMovementSensor::get_orientation(const ProtoStruct&) { return this->peek_orientation; }; -MovementSensor::position MockMovementSensor::get_position(const AttributeMap&) { +MovementSensor::position MockMovementSensor::get_position(const ProtoStruct&) { return this->peek_position; }; -MovementSensor::properties MockMovementSensor::get_properties(const AttributeMap&) { +MovementSensor::properties MockMovementSensor::get_properties(const ProtoStruct&) { return this->peek_properties; }; -std::unordered_map MockMovementSensor::get_accuracy(const AttributeMap&) { +std::unordered_map MockMovementSensor::get_accuracy(const ProtoStruct&) { return this->peek_accuracy; }; -Vector3 MockMovementSensor::get_linear_acceleration(const AttributeMap&) { +Vector3 MockMovementSensor::get_linear_acceleration(const ProtoStruct&) { return this->peek_return_vec; }; -AttributeMap MockMovementSensor::do_command(const AttributeMap& command) { +ProtoStruct MockMovementSensor::do_command(const ProtoStruct& command) { this->peek_do_command_command = command; return command; }; -std::vector MockMovementSensor::get_geometries(const AttributeMap&) { +std::vector MockMovementSensor::get_geometries(const ProtoStruct&) { return fake_geometries(); }; diff --git a/src/viam/sdk/tests/mocks/mock_movement_sensor.hpp b/src/viam/sdk/tests/mocks/mock_movement_sensor.hpp index 21001ca6d..f1e359ead 100644 --- a/src/viam/sdk/tests/mocks/mock_movement_sensor.hpp +++ b/src/viam/sdk/tests/mocks/mock_movement_sensor.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include namespace viam { @@ -9,18 +9,17 @@ namespace movementsensor { class MockMovementSensor : public sdk::MovementSensor { public: - sdk::Vector3 get_linear_velocity(const sdk::AttributeMap& extra) override; - sdk::Vector3 get_angular_velocity(const sdk::AttributeMap& extra) override; - sdk::MovementSensor::compassheading get_compass_heading( - const sdk::AttributeMap& extra) override; - sdk::MovementSensor::orientation get_orientation(const sdk::AttributeMap& extra) override; - sdk::MovementSensor::position get_position(const sdk::AttributeMap& extra) override; - sdk::MovementSensor::properties get_properties(const sdk::AttributeMap& extra) override; - std::unordered_map get_accuracy(const sdk::AttributeMap& extra) override; - sdk::Vector3 get_linear_acceleration(const sdk::AttributeMap& extra) override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; + sdk::Vector3 get_linear_velocity(const sdk::ProtoStruct& extra) override; + sdk::Vector3 get_angular_velocity(const sdk::ProtoStruct& extra) override; + sdk::MovementSensor::compassheading get_compass_heading(const sdk::ProtoStruct& extra) override; + sdk::MovementSensor::orientation get_orientation(const sdk::ProtoStruct& extra) override; + sdk::MovementSensor::position get_position(const sdk::ProtoStruct& extra) override; + sdk::MovementSensor::properties get_properties(const sdk::ProtoStruct& extra) override; + std::unordered_map get_accuracy(const sdk::ProtoStruct& extra) override; + sdk::Vector3 get_linear_acceleration(const sdk::ProtoStruct& extra) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_movementsensor(); - std::vector get_geometries(const sdk::AttributeMap& extra) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; // These variables allow the testing infra to `peek` into the mock // and ensure that the correct values were passed @@ -30,9 +29,9 @@ class MockMovementSensor : public sdk::MovementSensor { sdk::MovementSensor::position peek_position; sdk::MovementSensor::properties peek_properties; std::unordered_map peek_accuracy; - sdk::AttributeMap peek_do_command_command; + sdk::ProtoStruct peek_do_command_command; - MockMovementSensor(std::string name) : MovementSensor(std::move(name)){}; + MockMovementSensor(std::string name) : MovementSensor(std::move(name)) {}; }; } // namespace movementsensor diff --git a/src/viam/sdk/tests/mocks/mock_pose_tracker.cpp b/src/viam/sdk/tests/mocks/mock_pose_tracker.cpp index 560c60f44..5b871c7e0 100644 --- a/src/viam/sdk/tests/mocks/mock_pose_tracker.cpp +++ b/src/viam/sdk/tests/mocks/mock_pose_tracker.cpp @@ -20,7 +20,7 @@ std::shared_ptr MockPoseTracker::get_mock_pose_tracker() { } PoseTracker::pose_map MockPoseTracker::get_poses(const std::vector& body_names, - const sdk::AttributeMap&) { + const sdk::ProtoStruct&) { auto full_map = fake_poses(); if (body_names.empty()) @@ -36,12 +36,12 @@ PoseTracker::pose_map MockPoseTracker::get_poses(const std::vector& return result; } -AttributeMap MockPoseTracker::do_command(const AttributeMap& command) { +ProtoStruct MockPoseTracker::do_command(const ProtoStruct& command) { this->peek_do_command_command = command; return command; } -std::vector MockPoseTracker::get_geometries(const sdk::AttributeMap&) { +std::vector MockPoseTracker::get_geometries(const sdk::ProtoStruct&) { return fake_geometries(); } diff --git a/src/viam/sdk/tests/mocks/mock_pose_tracker.hpp b/src/viam/sdk/tests/mocks/mock_pose_tracker.hpp index 903f31b7f..a76d2d0f1 100644 --- a/src/viam/sdk/tests/mocks/mock_pose_tracker.hpp +++ b/src/viam/sdk/tests/mocks/mock_pose_tracker.hpp @@ -19,13 +19,13 @@ class MockPoseTracker : public sdk::PoseTracker { MockPoseTracker(std::string name) : sdk::PoseTracker(std::move(name)) {} sdk::PoseTracker::pose_map get_poses(const std::vector& body_names, - const sdk::AttributeMap& extra) override; + const sdk::ProtoStruct& extra) override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; - std::vector get_geometries(const sdk::AttributeMap& extra) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; - sdk::AttributeMap peek_do_command_command; + sdk::ProtoStruct peek_do_command_command; }; } // namespace pose_tracker diff --git a/src/viam/sdk/tests/mocks/mock_power_sensor.cpp b/src/viam/sdk/tests/mocks/mock_power_sensor.cpp index 322d03411..6ba11aacf 100644 --- a/src/viam/sdk/tests/mocks/mock_power_sensor.cpp +++ b/src/viam/sdk/tests/mocks/mock_power_sensor.cpp @@ -9,19 +9,19 @@ namespace powersensor { using namespace viam::sdk; -PowerSensor::voltage MockPowerSensor::get_voltage(const AttributeMap&) { +PowerSensor::voltage MockPowerSensor::get_voltage(const ProtoStruct&) { return this->peek_voltage; }; -PowerSensor::current MockPowerSensor::get_current(const AttributeMap&) { +PowerSensor::current MockPowerSensor::get_current(const ProtoStruct&) { return this->peek_current; }; -double MockPowerSensor::get_power(const AttributeMap&) { +double MockPowerSensor::get_power(const ProtoStruct&) { return this->peek_power; }; -AttributeMap MockPowerSensor::get_readings(const AttributeMap&) { +ProtoStruct MockPowerSensor::get_readings(const ProtoStruct&) { return fake_map(); }; -AttributeMap MockPowerSensor::do_command(const AttributeMap& command) { +ProtoStruct MockPowerSensor::do_command(const ProtoStruct& command) { return command; }; diff --git a/src/viam/sdk/tests/mocks/mock_power_sensor.hpp b/src/viam/sdk/tests/mocks/mock_power_sensor.hpp index 3d0b45d74..94b081b01 100644 --- a/src/viam/sdk/tests/mocks/mock_power_sensor.hpp +++ b/src/viam/sdk/tests/mocks/mock_power_sensor.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include namespace viam { @@ -9,11 +9,11 @@ namespace powersensor { class MockPowerSensor : public sdk::PowerSensor { public: - sdk::PowerSensor::voltage get_voltage(const sdk::AttributeMap& extra) override; - sdk::PowerSensor::current get_current(const sdk::AttributeMap& extra) override; - double get_power(const sdk::AttributeMap& extra) override; - sdk::AttributeMap get_readings(const sdk::AttributeMap& extra) override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; + sdk::PowerSensor::voltage get_voltage(const sdk::ProtoStruct& extra) override; + sdk::PowerSensor::current get_current(const sdk::ProtoStruct& extra) override; + double get_power(const sdk::ProtoStruct& extra) override; + sdk::ProtoStruct get_readings(const sdk::ProtoStruct& extra) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_powersensor(); // These variables allow the testing infra to `peek` into the mock @@ -22,7 +22,7 @@ class MockPowerSensor : public sdk::PowerSensor { sdk::PowerSensor::current peek_current; double peek_power; - MockPowerSensor(std::string name) : PowerSensor(std::move(name)){}; + MockPowerSensor(std::string name) : PowerSensor(std::move(name)) {}; }; } // namespace powersensor diff --git a/src/viam/sdk/tests/mocks/mock_robot.cpp b/src/viam/sdk/tests/mocks/mock_robot.cpp index 67e750e58..11eae813b 100644 --- a/src/viam/sdk/tests/mocks/mock_robot.cpp +++ b/src/viam/sdk/tests/mocks/mock_robot.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include namespace viam { @@ -72,20 +72,13 @@ std::vector mock_discovery_response() { RobotClient::discovery_query query; query.subtype = "camera"; query.model = "webcam"; - auto s = std::make_shared("bar"); - auto map_pt = std::make_shared(fake_map()); - std::vector> inner{map_pt}; - std::vector> l_{s, - std::make_shared(false), - std::make_shared(3), - std::make_shared(4.2), - map_pt, - std::make_shared(inner)}; - auto l = std::make_shared(l_); - - AttributeMap results = - std::make_shared>>(); - results->emplace("foo", l); + ProtoValue s("bar"); + ProtoValue map(fake_map()); + + ProtoList inner{{map}}; + ProtoList l{{s, ProtoValue{false}, ProtoValue{3.0}, ProtoValue{4.2}, map, std::move(inner)}}; + + ProtoStruct results{{"foo", l}}; RobotClient::discovery discovery; discovery.query = std::move(query); @@ -115,18 +108,12 @@ std::vector mock_status_response() { RobotClient::status camera_status; camera_status.name = rns[0]; - camera_status.status_map = - std::make_shared>>(); RobotClient::status motor_status; motor_status.name = rns[1]; - motor_status.status_map = - std::make_shared>>(); RobotClient::status generic_status; generic_status.name = rns[2]; - generic_status.status_map = - std::make_shared>>(); return {std::move(camera_status), std::move(motor_status), std::move(generic_status)}; } @@ -206,10 +193,7 @@ std::vector mock_config_response() { pose_in_frame pif("reference0", default_pose()); t.pose_in_observer_frame = pif; config.frame = t; - AttributeMap kinematics = - std::make_shared>>(); - kinematics->emplace(std::move("fake-key"), std::make_shared(1)); - config.kinematics = kinematics; + config.kinematics = {{"fake-key", 1.0}}; RobotClient::frame_system_config config1; WorldState::transform t1; @@ -217,10 +201,7 @@ std::vector mock_config_response() { pose_in_frame pif1("reference1", default_pose(1)); t1.pose_in_observer_frame = pif1; config1.frame = t1; - AttributeMap kinematics1 = - std::make_shared>>(); - kinematics1->emplace(std::move("new-fake-key"), std::make_shared(2)); - config1.kinematics = kinematics1; + config1.kinematics = {{"new-fake-key", 2.0}}; std::vector response; response.push_back(config); diff --git a/src/viam/sdk/tests/mocks/mock_sensor.cpp b/src/viam/sdk/tests/mocks/mock_sensor.cpp index e61ded5af..46c220ea8 100644 --- a/src/viam/sdk/tests/mocks/mock_sensor.cpp +++ b/src/viam/sdk/tests/mocks/mock_sensor.cpp @@ -9,13 +9,13 @@ namespace sensor { using namespace viam::sdk; -AttributeMap MockSensor::get_readings(const AttributeMap&) { +ProtoStruct MockSensor::get_readings(const ProtoStruct&) { return fake_map(); }; -AttributeMap MockSensor::do_command(const AttributeMap& command) { +ProtoStruct MockSensor::do_command(const ProtoStruct& command) { return command; }; -std::vector MockSensor::get_geometries(const AttributeMap&) { +std::vector MockSensor::get_geometries(const ProtoStruct&) { return fake_geometries(); }; diff --git a/src/viam/sdk/tests/mocks/mock_sensor.hpp b/src/viam/sdk/tests/mocks/mock_sensor.hpp index 5c39940e9..55a1e86e1 100644 --- a/src/viam/sdk/tests/mocks/mock_sensor.hpp +++ b/src/viam/sdk/tests/mocks/mock_sensor.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include namespace viam { @@ -9,12 +9,12 @@ namespace sensor { class MockSensor : public sdk::Sensor { public: - sdk::AttributeMap get_readings(const sdk::AttributeMap& extra) override; - sdk::AttributeMap do_command(const sdk::AttributeMap& command) override; + sdk::ProtoStruct get_readings(const sdk::ProtoStruct& extra) override; + sdk::ProtoStruct do_command(const sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_sensor(); - std::vector get_geometries(const sdk::AttributeMap& extra) override; + std::vector get_geometries(const sdk::ProtoStruct& extra) override; - MockSensor(std::string name) : Sensor(std::move(name)){}; + MockSensor(std::string name) : Sensor(std::move(name)) {}; }; } // namespace sensor diff --git a/src/viam/sdk/tests/mocks/mock_servo.cpp b/src/viam/sdk/tests/mocks/mock_servo.cpp index 5b569fd2f..af458c99c 100644 --- a/src/viam/sdk/tests/mocks/mock_servo.cpp +++ b/src/viam/sdk/tests/mocks/mock_servo.cpp @@ -2,7 +2,7 @@ #include -#include +#include #include #include #include @@ -13,20 +13,20 @@ namespace servo { using namespace viam::sdk; -void MockServo::move(uint32_t angle_deg, const AttributeMap&) { +void MockServo::move(uint32_t angle_deg, const ProtoStruct&) { is_moving_ = true; position_ = angle_deg; } -Servo::position MockServo::get_position(const AttributeMap&) { +Servo::position MockServo::get_position(const ProtoStruct&) { return position_; } -void MockServo::stop(const AttributeMap&) { +void MockServo::stop(const ProtoStruct&) { is_moving_ = false; } -std::vector MockServo::get_geometries(const sdk::AttributeMap&) { +std::vector MockServo::get_geometries(const sdk::ProtoStruct&) { return fake_geometries(); } @@ -34,7 +34,7 @@ bool MockServo::is_moving() { return is_moving_; } -AttributeMap MockServo::do_command(const AttributeMap&) { +ProtoStruct MockServo::do_command(const ProtoStruct&) { return map_; } diff --git a/src/viam/sdk/tests/mocks/mock_servo.hpp b/src/viam/sdk/tests/mocks/mock_servo.hpp index f1c5ac726..7253a8b7d 100644 --- a/src/viam/sdk/tests/mocks/mock_servo.hpp +++ b/src/viam/sdk/tests/mocks/mock_servo.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include namespace viam { @@ -11,16 +11,15 @@ using viam::sdk::Servo; class MockServo : public Servo { public: - void move(uint32_t angle_deg, const viam::sdk::AttributeMap& extra) override; - Servo::position get_position(const sdk::AttributeMap& extra) override; - void stop(const viam::sdk::AttributeMap& extra) override; + void move(uint32_t angle_deg, const viam::sdk::ProtoStruct& extra) override; + Servo::position get_position(const sdk::ProtoStruct& extra) override; + void stop(const viam::sdk::ProtoStruct& extra) override; bool is_moving() override; - viam::sdk::AttributeMap do_command(const viam::sdk::AttributeMap& command) override; + viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_servo(); - virtual std::vector get_geometries( - const sdk::AttributeMap& extra) override; + virtual std::vector get_geometries(const sdk::ProtoStruct& extra) override; - MockServo(std::string name) : Servo(std::move(name)){}; + MockServo(std::string name) : Servo(std::move(name)) {}; using Servo::get_geometries; using Servo::get_position; @@ -29,7 +28,7 @@ class MockServo : public Servo { private: Servo::position position_; - viam::sdk::AttributeMap map_; + viam::sdk::ProtoStruct map_; bool is_moving_; }; diff --git a/src/viam/sdk/tests/test_arm.cpp b/src/viam/sdk/tests/test_arm.cpp index 2a8be8864..2a60488cf 100644 --- a/src/viam/sdk/tests/test_arm.cpp +++ b/src/viam/sdk/tests/test_arm.cpp @@ -82,14 +82,12 @@ BOOST_AUTO_TEST_CASE(test_is_moving) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockArm::get_mock_arm(); client_to_mock_pipeline(mock, [](Arm& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_base.cpp b/src/viam/sdk/tests/test_base.cpp index 67513e7fc..f5362c344 100644 --- a/src/viam/sdk/tests/test_base.cpp +++ b/src/viam/sdk/tests/test_base.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include @@ -111,14 +111,12 @@ BOOST_AUTO_TEST_CASE(test_is_moving) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockBase::get_mock_base(); client_to_mock_pipeline(mock, [](Base& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_board.cpp b/src/viam/sdk/tests/test_board.cpp index b2dba1a03..97f5efa18 100644 --- a/src/viam/sdk/tests/test_board.cpp +++ b/src/viam/sdk/tests/test_board.cpp @@ -8,7 +8,7 @@ #include -#include +#include #include #include #include @@ -93,14 +93,12 @@ BOOST_AUTO_TEST_CASE(test_set_pwm_frequency) { BOOST_AUTO_TEST_CASE(test_do_command) { const auto mock = std::make_shared("mock_board"); client_to_mock_pipeline(mock, [](Board& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_camera.cpp b/src/viam/sdk/tests/test_camera.cpp index 84fb593be..2f1e1531e 100644 --- a/src/viam/sdk/tests/test_camera.cpp +++ b/src/viam/sdk/tests/test_camera.cpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include #include @@ -84,14 +84,11 @@ BOOST_AUTO_TEST_CASE(test_get_geometries) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockCamera::get_mock_camera(); client_to_mock_pipeline(mock, [](Camera& client) { - AttributeMap command = fake_map(); - AttributeMap expected_map = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct expected_map = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected_map->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - - BOOST_CHECK(expected_pt == result_pt); + BOOST_CHECK(expected_map.at("test") == result_map.at("test")); }); } diff --git a/src/viam/sdk/tests/test_common.cpp b/src/viam/sdk/tests/test_common.cpp index 82d357fc3..0d27d468c 100644 --- a/src/viam/sdk/tests/test_common.cpp +++ b/src/viam/sdk/tests/test_common.cpp @@ -93,26 +93,19 @@ BOOST_AUTO_TEST_CASE(test_large_positive) { } BOOST_AUTO_TEST_CASE(test_from_dm_from_extra) { - BOOST_CHECK_EQUAL(from_dm_from_extra(nullptr), false); - - AttributeMap map = fake_map(); + ProtoStruct map = fake_map(); BOOST_CHECK_EQUAL(from_dm_from_extra(map), false); - map = std::make_shared>>(); - map->insert({{std::string("fromDataManagement"), std::make_shared(true)}}); + map = ProtoStruct{{"fromDataManagement", true}}; BOOST_CHECK_EQUAL(from_dm_from_extra(map), true); - map = std::make_shared>>(); - map->insert({{std::string("fromDataManagement"), std::make_shared(false)}}); + map = ProtoStruct{{"fromDataManagement", false}}; BOOST_CHECK_EQUAL(from_dm_from_extra(map), false); - map = std::make_shared>>(); - map->insert( - {{std::string("fromDataManagement"), std::make_shared(std::string("hello"))}}); + map = ProtoStruct{{"fromDataManagement", "hello"}}; BOOST_CHECK_EQUAL(from_dm_from_extra(map), false); - map = std::make_shared>>(); - map->insert({{std::string("fromDataManagement"), std::make_shared(3.5)}}); + map = ProtoStruct{{"fromDataManagement", 3.5}}; BOOST_CHECK_EQUAL(from_dm_from_extra(map), false); } diff --git a/src/viam/sdk/tests/test_encoder.cpp b/src/viam/sdk/tests/test_encoder.cpp index b8aafc4bd..49e28b6da 100644 --- a/src/viam/sdk/tests/test_encoder.cpp +++ b/src/viam/sdk/tests/test_encoder.cpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include #include @@ -75,14 +75,12 @@ BOOST_AUTO_TEST_CASE(test_get_geometries) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockEncoder::get_mock_encoder(); client_to_mock_pipeline(mock, [](Encoder& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_gantry.cpp b/src/viam/sdk/tests/test_gantry.cpp index 01727e73c..8ba834d71 100644 --- a/src/viam/sdk/tests/test_gantry.cpp +++ b/src/viam/sdk/tests/test_gantry.cpp @@ -74,14 +74,12 @@ BOOST_AUTO_TEST_CASE(test_get_geometries) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockGantry::get_mock_gantry(); client_to_mock_pipeline(mock, [](Gantry& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_generics.cpp b/src/viam/sdk/tests/test_generics.cpp index 9cf1fe236..d4368c301 100644 --- a/src/viam/sdk/tests/test_generics.cpp +++ b/src/viam/sdk/tests/test_generics.cpp @@ -33,14 +33,11 @@ BOOST_AUTO_TEST_CASE(mock_get_component_api) { BOOST_AUTO_TEST_CASE(test_component_do_command) { std::shared_ptr mock = MockGenericComponent::get_mock_generic(); client_to_mock_pipeline(mock, [](GenericComponent& client) { - AttributeMap expected = fake_map(); - AttributeMap command; - AttributeMap result_map = client.do_command(command); + ProtoStruct expected = fake_map(); + ProtoStruct command; + ProtoStruct result_map = client.do_command(command); - std::shared_ptr expected_pt = expected->at(std::string("test")); - std::shared_ptr result_pt = result_map->at(std::string("test")); - - BOOST_CHECK(*expected_pt == *result_pt); + BOOST_CHECK(expected.at("test") == result_map.at("test")); }); } @@ -66,14 +63,11 @@ BOOST_AUTO_TEST_CASE(mock_get_service_api) { BOOST_AUTO_TEST_CASE(test_service_do_command) { std::shared_ptr mock = MockGenericService::get_mock_generic(); client_to_mock_pipeline(mock, [](GenericService& client) { - AttributeMap expected = fake_map(); - AttributeMap command; - AttributeMap result_map = client.do_command(command); - - std::shared_ptr expected_pt = expected->at(std::string("test")); - std::shared_ptr result_pt = result_map->at(std::string("test")); + ProtoStruct expected = fake_map(); + ProtoStruct command; + ProtoStruct result_map = client.do_command(command); - BOOST_CHECK(*expected_pt == *result_pt); + BOOST_CHECK(expected.at("test") == result_map.at("test")); }); } diff --git a/src/viam/sdk/tests/test_gripper.cpp b/src/viam/sdk/tests/test_gripper.cpp index ba9741893..ad7910e9a 100644 --- a/src/viam/sdk/tests/test_gripper.cpp +++ b/src/viam/sdk/tests/test_gripper.cpp @@ -56,14 +56,12 @@ BOOST_AUTO_TEST_CASE(test_is_moving) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockGripper::get_mock_gripper(); client_to_mock_pipeline(mock, [](Gripper& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_mlmodel.cpp b/src/viam/sdk/tests/test_mlmodel.cpp index 70f75338a..ff2501da1 100644 --- a/src/viam/sdk/tests/test_mlmodel.cpp +++ b/src/viam/sdk/tests/test_mlmodel.cpp @@ -18,8 +18,6 @@ #include #include -#include - #include #include @@ -37,20 +35,8 @@ bool operator==(const MLModelService::tensor_info::file& l, bool operator==(const struct MLModelService::tensor_info& l, const struct MLModelService::tensor_info& r) { - if (std::tie(l.name, l.description, l.data_type, l.shape, l.associated_files) != - std::tie(r.name, r.description, r.data_type, r.shape, r.associated_files)) { - return false; - } - - if (!l.extra != !r.extra) { - return false; - } - - if (l.extra && r.extra) { - return ProtoType(l.extra) == ProtoType(r.extra); - } - - return true; + return std::tie(l.name, l.description, l.data_type, l.extra, l.shape, l.associated_files) == + std::tie(r.name, r.description, r.data_type, r.extra, r.shape, r.associated_files); } bool operator==(const struct MLModelService::metadata& l, @@ -108,9 +94,7 @@ const struct MLModelService::metadata test_metadata { MLModelService::tensor_info::file::k_label_type_tensor_axis}}, // `extra` - std::make_shared( - std::initializer_list{ - {"foo", std::make_shared("bar")}})}, + ProtoStruct{{"foo", ProtoValue{"bar"}}}}, {"input2", "the second input", @@ -120,9 +104,7 @@ const struct MLModelService::metadata test_metadata { {"path/to/file2.2", "i2f2", MLModelService::tensor_info::file::k_label_type_tensor_value}}, - std::make_shared( - std::initializer_list{ - {"bar", std::make_shared(false)}})}}, + ProtoStruct{{"bar", ProtoValue{false}}}}}, // `outputs` {{ @@ -153,9 +135,7 @@ const struct MLModelService::metadata test_metadata { MLModelService::tensor_info::file::k_label_type_tensor_value}}, // `extra` - std::make_shared( - std::initializer_list{ - {"baz", std::make_shared()}})}, + ProtoStruct{{"baz", ProtoValue{}}}}, {"output2", "the second output", @@ -167,9 +147,7 @@ const struct MLModelService::metadata test_metadata { {"path/to/output_file2.2", "o2f2", MLModelService::tensor_info::file::k_label_type_tensor_value}}, - std::make_shared( - std::initializer_list{ - {"quux", std::make_shared(3.14)}})}}, + ProtoStruct{{"quux", ProtoValue{3.14}}}}}, }; BOOST_AUTO_TEST_SUITE(test_mock_mlmodel) diff --git a/src/viam/sdk/tests/test_motion.cpp b/src/viam/sdk/tests/test_motion.cpp index 49fddc105..a3ece12da 100644 --- a/src/viam/sdk/tests/test_motion.cpp +++ b/src/viam/sdk/tests/test_motion.cpp @@ -150,15 +150,12 @@ BOOST_AUTO_TEST_CASE(mock_list_plan_statuses) { BOOST_AUTO_TEST_CASE(mock_do_command) { std::shared_ptr motion = MockMotion::get_mock_motion(); - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = motion->do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = motion->do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); } BOOST_AUTO_TEST_SUITE_END() @@ -170,7 +167,7 @@ BOOST_AUTO_TEST_CASE(test_move_and_get_pose) { client_to_mock_pipeline(mock, [](Motion& client) { std::string destination_frame("destination"); std::vector transforms; - AttributeMap extra = fake_map(); + ProtoStruct extra = fake_map(); pose_in_frame pose = client.get_pose(fake_component_name(), destination_frame, {}, extra); BOOST_CHECK_EQUAL(pose, init_fake_pose()); @@ -268,15 +265,12 @@ BOOST_AUTO_TEST_CASE(test_stop_plan) { BOOST_AUTO_TEST_CASE(test_do_command) { auto mock = std::make_shared("mock_motion"); client_to_mock_pipeline(mock, [](Motion& client) { - AttributeMap expected = fake_map(); - - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct expected = fake_map(); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_motor.cpp b/src/viam/sdk/tests/test_motor.cpp index d76355e27..bf48f47a6 100644 --- a/src/viam/sdk/tests/test_motor.cpp +++ b/src/viam/sdk/tests/test_motor.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include @@ -76,7 +76,7 @@ BOOST_AUTO_TEST_CASE(mock_get_properties) { BOOST_AUTO_TEST_CASE(mock_stop) { std::shared_ptr motor = MockMotor::get_mock_motor(); - AttributeMap extra_map = fake_map(); + ProtoStruct extra_map = fake_map(); motor->stop(std::move(extra_map)); BOOST_CHECK(motor->get_power_status().power_pct == 0.0); BOOST_CHECK(!motor->is_moving()); @@ -92,15 +92,12 @@ BOOST_AUTO_TEST_CASE(mock_get_geometries) { BOOST_AUTO_TEST_CASE(mock_do_command) { std::shared_ptr motor = MockMotor::get_mock_motor(); - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = motor->do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = motor->do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); } BOOST_AUTO_TEST_CASE(mock_exception_creation) { @@ -178,7 +175,7 @@ BOOST_AUTO_TEST_CASE(test_stop) { client.set_power(1.0); BOOST_CHECK(client.get_power_status().power_pct == 1.0); BOOST_CHECK(client.get_power_status().is_on); - client.stop(AttributeMap()); + client.stop(ProtoStruct()); BOOST_CHECK(client.get_power_status().power_pct == 0.0); BOOST_CHECK(!client.get_power_status().is_on); // This test is a no-op for now because is_moving will always @@ -198,15 +195,12 @@ BOOST_AUTO_TEST_CASE(test_get_geometries) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockMotor::get_mock_motor(); client_to_mock_pipeline(mock, [](Motor& client) { - AttributeMap expected = fake_map(); - - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct expected = fake_map(); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_movement_sensor.cpp b/src/viam/sdk/tests/test_movement_sensor.cpp index e4ed2bbbd..3de2a83dc 100644 --- a/src/viam/sdk/tests/test_movement_sensor.cpp +++ b/src/viam/sdk/tests/test_movement_sensor.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include @@ -125,14 +125,12 @@ BOOST_AUTO_TEST_CASE(test_linear_accel) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockMovementSensor::get_mock_movementsensor(); client_to_mock_pipeline(mock, [](MovementSensor& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_pose_tracker.cpp b/src/viam/sdk/tests/test_pose_tracker.cpp index cfaef7aec..36b44dce5 100644 --- a/src/viam/sdk/tests/test_pose_tracker.cpp +++ b/src/viam/sdk/tests/test_pose_tracker.cpp @@ -42,14 +42,12 @@ BOOST_AUTO_TEST_CASE(mock_get_poses) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockPoseTracker::get_mock_pose_tracker(); client_to_mock_pipeline(mock, [](PoseTracker& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_power_sensor.cpp b/src/viam/sdk/tests/test_power_sensor.cpp index 6b5df45ac..cbcb086d0 100644 --- a/src/viam/sdk/tests/test_power_sensor.cpp +++ b/src/viam/sdk/tests/test_power_sensor.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include @@ -59,27 +59,23 @@ BOOST_AUTO_TEST_CASE(test_get_power) { BOOST_AUTO_TEST_CASE(test_get_readings) { std::shared_ptr mock = MockPowerSensor::get_mock_powersensor(); client_to_mock_pipeline(mock, [](PowerSensor& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap readings = client.get_readings(); + ProtoStruct readings = client.get_readings(); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(readings->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(readings.at("test") == expected.at("test")); }); } BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockPowerSensor::get_mock_powersensor(); client_to_mock_pipeline(mock, [](PowerSensor& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_resource.cpp b/src/viam/sdk/tests/test_resource.cpp index c3af1fe78..39cdedb5e 100644 --- a/src/viam/sdk/tests/test_resource.cpp +++ b/src/viam/sdk/tests/test_resource.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include @@ -239,9 +239,9 @@ BOOST_AUTO_TEST_CASE(test_resource) { BOOST_CHECK_EQUAL(resource2.frame().get_parent(), "parent"); std::string key; Value value; - for (const auto& key_and_value : *resource2.attributes()) { + for (const auto& key_and_value : resource2.attributes()) { key = key_and_value.first; - value = key_and_value.second->proto_value(); + value = to_proto(key_and_value.second); } BOOST_CHECK_EQUAL(key, "a"); BOOST_CHECK_EQUAL(value.number_value(), 1); diff --git a/src/viam/sdk/tests/test_robot.cpp b/src/viam/sdk/tests/test_robot.cpp index f454389d6..a7658b3f5 100644 --- a/src/viam/sdk/tests/test_robot.cpp +++ b/src/viam/sdk/tests/test_robot.cpp @@ -215,7 +215,7 @@ BOOST_AUTO_TEST_CASE(test_discovery) { [](std::shared_ptr client, MockRobotService& service) -> void { auto components = mock_discovery_response(); auto component = components[0]; - auto results = component.results->begin(); + auto results = component.results.begin(); auto protos = mock_proto_discovery_response(); auto proto = protos[0]; auto proto_results = proto.results().fields().begin(); @@ -224,10 +224,10 @@ BOOST_AUTO_TEST_CASE(test_discovery) { BOOST_CHECK_EQUAL(component.query.model, proto.query().model()); BOOST_CHECK_EQUAL(results->first, proto_results->first); // the `Value` type in our mock responses is a `list` type so we can comprehensively - // test `ProtoType` conversions. Unfortunately the protobuf `ListValue` type doesn't + // test `ProtoValue` conversions. Unfortunately the protobuf `ListValue` type doesn't // seem to have `==` defined, so we convert to a `DebugString` here to verify // comparison and to provide helpful printing of differences in case of an error. - BOOST_CHECK_EQUAL(results->second->proto_value().DebugString(), + BOOST_CHECK_EQUAL(to_proto(results->second).DebugString(), proto_results->second.DebugString()); }); } diff --git a/src/viam/sdk/tests/test_sensor.cpp b/src/viam/sdk/tests/test_sensor.cpp index 787d24394..d2b95abc7 100644 --- a/src/viam/sdk/tests/test_sensor.cpp +++ b/src/viam/sdk/tests/test_sensor.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include @@ -36,27 +36,23 @@ BOOST_AUTO_TEST_CASE(mock_get_api) { BOOST_AUTO_TEST_CASE(test_get_readings) { std::shared_ptr mock = MockSensor::get_mock_sensor(); client_to_mock_pipeline(mock, [](Sensor& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap readings = client.get_readings(); + ProtoStruct readings = client.get_readings(); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(readings->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(readings.at("test") == expected.at("test")); }); } BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockSensor::get_mock_sensor(); client_to_mock_pipeline(mock, [](Sensor& client) { - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_servo.cpp b/src/viam/sdk/tests/test_servo.cpp index 9c5048648..27998147e 100644 --- a/src/viam/sdk/tests/test_servo.cpp +++ b/src/viam/sdk/tests/test_servo.cpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include #include @@ -62,15 +62,12 @@ BOOST_AUTO_TEST_CASE(mock_get_geometries) { BOOST_AUTO_TEST_CASE(mock_do_command) { std::shared_ptr servo = MockServo::get_mock_servo(); - AttributeMap expected = fake_map(); + ProtoStruct expected = fake_map(); - AttributeMap command = fake_map(); - AttributeMap result_map = servo->do_command(command); + ProtoStruct command = fake_map(); + ProtoStruct result_map = servo->do_command(command); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); - - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); } BOOST_AUTO_TEST_SUITE_END() @@ -112,15 +109,12 @@ BOOST_AUTO_TEST_CASE(test_get_geometries) { BOOST_AUTO_TEST_CASE(test_do_command) { std::shared_ptr mock = MockServo::get_mock_servo(); client_to_mock_pipeline(mock, [](Servo& client) { - AttributeMap expected = fake_map(); - - AttributeMap command = fake_map(); - AttributeMap result_map = client.do_command(command); + ProtoStruct expected = fake_map(); - ProtoType expected_pt = *(expected->at(std::string("test"))); - ProtoType result_pt = *(result_map->at(std::string("test"))); + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); - BOOST_CHECK(result_pt == expected_pt); + BOOST_CHECK(result_map.at("test") == expected.at("test")); }); } diff --git a/src/viam/sdk/tests/test_types.cpp b/src/viam/sdk/tests/test_types.cpp deleted file mode 100644 index fbfba50d8..000000000 --- a/src/viam/sdk/tests/test_types.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include -#define BOOST_TEST_MODULE test module test_types - -#include - -#include - -#include - -#include -#include -#include - -namespace viam { -namespace sdktests { - -using namespace viam::sdk; - -using google::protobuf::Value; - -BOOST_AUTO_TEST_SUITE(test_prototype) - -BOOST_AUTO_TEST_CASE(test_prototype_equality) { - AttributeMap expected_map = fake_map(); - - ProtoType type1 = ProtoType(expected_map); - - AttributeMap expected_map2 = fake_map(); - - ProtoType type2 = ProtoType(expected_map2); - - BOOST_CHECK(type1 == type2); - - auto proto_ptr = std::make_shared(std::move(std::string("not hello"))); - AttributeMap unequal_map = - std::make_shared>>(); - unequal_map->insert({{std::string("test"), proto_ptr}}); - - ProtoType type3 = ProtoType(unequal_map); - - BOOST_CHECK(!(type1 == type3)); -} - -BOOST_AUTO_TEST_CASE(test_prototype_list_conversion) { - std::string s("string"); - double d(3); - bool b(false); - std::vector> proto_vec{std::make_shared(d), - std::make_shared(s), - std::make_shared(b)}; - - ProtoType proto(proto_vec); - - google::protobuf::Value double_value; - double_value.set_number_value(d); - google::protobuf::Value string_value; - string_value.set_string_value(s); - google::protobuf::Value bool_value; - bool_value.set_bool_value(b); - google::protobuf::ListValue lv; - - *lv.add_values() = double_value; - *lv.add_values() = string_value; - *lv.add_values() = bool_value; - - google::protobuf::Value v; - *v.mutable_list_value() = lv; - - ProtoType proto_from_value(v); - - BOOST_CHECK_EQUAL(proto.proto_value().list_value().values_size(), 3); - BOOST_CHECK(proto == proto_from_value); - - auto round_trip1 = proto.proto_value(); - auto round_trip2 = ProtoType(round_trip1); - - BOOST_CHECK(round_trip2 == proto); -} - -BOOST_AUTO_TEST_CASE(test_prototype_map_conversion) { - std::string s("string"); - double d(3); - bool b(false); - - auto m = std::make_shared>>(); - - m->insert({{std::string("double"), std::make_shared(d)}}); - m->insert({{std::string("bool"), std::make_shared(b)}}); - m->insert({{std::string("string"), std::make_shared(s)}}); - - google::protobuf::Value double_value; - double_value.set_number_value(d); - google::protobuf::Value string_value; - string_value.set_string_value(s); - google::protobuf::Value bool_value; - bool_value.set_bool_value(b); - google::protobuf::Map proto_map; - proto_map.insert({{std::string("string"), string_value}}); - proto_map.insert({{std::string("double"), double_value}}); - proto_map.insert({{std::string("bool"), bool_value}}); - - google::protobuf::Struct proto_struct; - *proto_struct.mutable_fields() = proto_map; - AttributeMap from_proto = struct_to_map(proto_struct); - BOOST_CHECK_EQUAL(from_proto->size(), m->size()); - - ProtoType proto(from_proto); - ProtoType map(m); - BOOST_CHECK(map == proto); - - auto round_trip1 = map_to_struct(m); - auto round_trip2 = struct_to_map(round_trip1); - - ProtoType round_trip_proto(round_trip2); - BOOST_CHECK(round_trip_proto == map); -} - -BOOST_AUTO_TEST_SUITE_END() - -} // namespace sdktests -} // namespace viam diff --git a/src/viam/sdk/tests/test_utils.cpp b/src/viam/sdk/tests/test_utils.cpp index a49f60eea..4ffb969c3 100644 --- a/src/viam/sdk/tests/test_utils.cpp +++ b/src/viam/sdk/tests/test_utils.cpp @@ -2,7 +2,7 @@ #include -#include +#include #include #include #include @@ -14,12 +14,8 @@ namespace sdktests { using namespace viam::sdk; -AttributeMap fake_map() { - auto proto_ptr = std::make_shared(std::string("hello")); - AttributeMap map = - std::make_shared>>(); - map->insert({{std::string("test"), proto_ptr}}); - return map; +ProtoStruct fake_map() { + return {{"test", "hello"}}; } std::vector fake_geometries() { diff --git a/src/viam/sdk/tests/test_utils.hpp b/src/viam/sdk/tests/test_utils.hpp index 0b0e31b7a..400bc54a2 100644 --- a/src/viam/sdk/tests/test_utils.hpp +++ b/src/viam/sdk/tests/test_utils.hpp @@ -12,7 +12,7 @@ namespace sdktests { using namespace viam::sdk; -AttributeMap fake_map(); +ProtoStruct fake_map(); std::vector fake_geometries(); // TestServer is a wrapper around viam::sdk::Server that is a friend of the From bd23b2d89da2ee51b1dd431d564da88ce5075ceb Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:48:13 -0400 Subject: [PATCH 07/12] no longer compile proto_value into the tests --- src/viam/sdk/tests/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/viam/sdk/tests/CMakeLists.txt b/src/viam/sdk/tests/CMakeLists.txt index 23d84abe9..92122150c 100644 --- a/src/viam/sdk/tests/CMakeLists.txt +++ b/src/viam/sdk/tests/CMakeLists.txt @@ -36,7 +36,6 @@ target_sources(viamsdk_test mocks/mock_servo.cpp mocks/mock_robot.cpp test_utils.cpp - ../common/proto_value.cpp # Only compile this into the tests for now since SDK doesn't yet use it ) target_link_libraries(viamsdk_test From 91e80704434cfe8fa2237c651fc958dfb603b0e8 Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Wed, 2 Oct 2024 12:08:25 -0400 Subject: [PATCH 08/12] remove unused boost/variant includes --- src/viam/sdk/common/utils.cpp | 2 -- src/viam/sdk/common/utils.hpp | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/viam/sdk/common/utils.cpp b/src/viam/sdk/common/utils.cpp index e53be2d92..cdd9689d9 100644 --- a/src/viam/sdk/common/utils.cpp +++ b/src/viam/sdk/common/utils.cpp @@ -8,8 +8,6 @@ #include #include #include -#include -#include #include #include diff --git a/src/viam/sdk/common/utils.hpp b/src/viam/sdk/common/utils.hpp index 8311949e4..61ac5d595 100644 --- a/src/viam/sdk/common/utils.hpp +++ b/src/viam/sdk/common/utils.hpp @@ -4,8 +4,6 @@ #include #include -#include -#include #include #include From 328bb294978e7f192fe11bae4c33b22890905466 Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Wed, 2 Oct 2024 14:56:14 -0400 Subject: [PATCH 09/12] fix examples and tests --- .../example_audio_classification_client.cpp | 1 + src/viam/examples/modules/tflite/main.cpp | 86 +++++++++++-------- src/viam/sdk/tests/test_mlmodel.cpp | 2 + 3 files changed, 51 insertions(+), 38 deletions(-) diff --git a/src/viam/examples/mlmodel/example_audio_classification_client.cpp b/src/viam/examples/mlmodel/example_audio_classification_client.cpp index 51d1e46c0..95e26f57c 100644 --- a/src/viam/examples/mlmodel/example_audio_classification_client.cpp +++ b/src/viam/examples/mlmodel/example_audio_classification_client.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include diff --git a/src/viam/examples/modules/tflite/main.cpp b/src/viam/examples/modules/tflite/main.cpp index 1971065c7..3dd17621f 100644 --- a/src/viam/examples/modules/tflite/main.cpp +++ b/src/viam/examples/modules/tflite/main.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -290,64 +291,67 @@ class MLModelServiceTFLite : public vsdk::MLModelService, // Now we can begin parsing and validating the provided `configuration`. // Pull the model path out of the configuration. const auto& attributes = state->configuration.attributes(); - auto model_path = attributes->find("model_path"); - if (model_path == attributes->end()) { + auto model_path = attributes.find("model_path"); + if (model_path == attributes.end()) { std::ostringstream buffer; buffer << service_name << ": Required parameter `model_path` not found in configuration"; throw std::invalid_argument(buffer.str()); } - const auto* const model_path_string = model_path->second->get(); - if (!model_path_string || model_path_string->empty()) { + + const vsdk::ProtoValue& model_path_val = model_path->second; + if (!model_path_val.is_a() || + model_path_val.get_unchecked().empty()) { std::ostringstream buffer; buffer << service_name << ": Required non-empty string parameter `model_path` is either not a string " "or is an empty string"; throw std::invalid_argument(buffer.str()); } + const std::string& model_path_string = model_path_val.get_unchecked(); // Process any tensor name remappings provided in the config. - auto remappings = attributes->find("tensor_name_remappings"); - if (remappings != attributes->end()) { - const auto remappings_attributes = remappings->second->get(); - if (!remappings_attributes) { + auto remappings = attributes.find("tensor_name_remappings"); + if (remappings != attributes.end()) { + if (!remappings->second.is_a()) { std::ostringstream buffer; buffer << service_name << ": Optional parameter `tensor_name_remappings` must be a dictionary"; throw std::invalid_argument(buffer.str()); } + const auto remappings_attributes = + remappings->second.get_unchecked(); - const auto populate_remappings = [](const vsdk::ProtoType& source, auto& target) { - const auto source_attributes = source.get(); - if (!source_attributes) { + const auto populate_remappings = [](const vsdk::ProtoValue& source, auto& target) { + if (!source.is_a()) { std::ostringstream buffer; buffer << service_name - << ": Fields `inputs` and `outputs` of `tensor_name_remappings` must be " + << ": Fields `inputs` and `outputs` of `tensor_name_remappings` " + "must be " "dictionaries"; throw std::invalid_argument(buffer.str()); } - for (const auto& kv : *source_attributes) { + for (const auto& kv : source.get_unchecked()) { const auto& k = kv.first; - const auto* const kv_string = kv.second->get(); - if (!kv_string) { + if (!kv.second.is_a()) { std::ostringstream buffer; - buffer - << service_name - << ": Fields `inputs` and `outputs` of `tensor_name_remappings` must " - "be dictionaries with string values"; + buffer << service_name + << ": Fields `inputs` and `outputs` of `tensor_name_remappings` " + "must " + "be dictionaries with string values"; throw std::invalid_argument(buffer.str()); } - target[kv.first] = *kv_string; + target[kv.first] = kv.second.get_unchecked(); } }; - const auto inputs_where = remappings_attributes->find("inputs"); - if (inputs_where != remappings_attributes->end()) { - populate_remappings(*inputs_where->second, state->input_name_remappings); + const auto inputs_where = remappings_attributes.find("inputs"); + if (inputs_where != remappings_attributes.end()) { + populate_remappings(inputs_where->second, state->input_name_remappings); } - const auto outputs_where = remappings_attributes->find("outputs"); - if (outputs_where != remappings_attributes->end()) { - populate_remappings(*outputs_where->second, state->output_name_remappings); + const auto outputs_where = remappings_attributes.find("outputs"); + if (outputs_where != remappings_attributes.end()) { + populate_remappings(outputs_where->second, state->output_name_remappings); } } @@ -362,11 +366,11 @@ class MLModelServiceTFLite : public vsdk::MLModelService, // buffer which we can use with `TfLiteModelCreate`. That // still requires that the buffer be kept valid, but that's // more easily done. - const std::ifstream in(*model_path_string, std::ios::in | std::ios::binary); + const std::ifstream in(model_path_string, std::ios::in | std::ios::binary); if (!in) { std::ostringstream buffer; buffer << service_name << ": Failed to open file for `model_path` " - << *model_path_string; + << model_path_string; throw std::invalid_argument(buffer.str()); } std::ostringstream model_path_contents_stream; @@ -399,23 +403,29 @@ class MLModelServiceTFLite : public vsdk::MLModelService, // If present, extract and validate the number of threads to // use in the interpreter and create an interpreter options // object to carry that information. - auto num_threads = attributes->find("num_threads"); - if (num_threads != attributes->end()) { - const auto* num_threads_double = num_threads->second->get(); - if (!num_threads_double || !std::isnormal(*num_threads_double) || - (*num_threads_double < 0) || - (*num_threads_double >= std::numeric_limits::max()) || - (std::trunc(*num_threads_double) != *num_threads_double)) { + auto num_threads = attributes.find("num_threads"); + if (num_threads != attributes.end()) { + auto throwError = [&] { std::ostringstream buffer; buffer << service_name - << ": Value for field `num_threads` is not a positive integer: " - << *num_threads_double; + << ": Value for field `num_threads` is not a positive integer"; throw std::invalid_argument(buffer.str()); + }; + + if (!num_threads->second.is_a()) { + throwError(); + } + + double num_threads_double = num_threads->second.get_unchecked(); + if (!std::isnormal(num_threads_double) || (num_threads_double < 0) || + (num_threads_double >= std::numeric_limits::max()) || + (std::trunc(num_threads_double) != num_threads_double)) { + throwError(); } state->interpreter_options.reset(TfLiteInterpreterOptionsCreate()); TfLiteInterpreterOptionsSetNumThreads(state->interpreter_options.get(), - static_cast(*num_threads_double)); + static_cast(num_threads_double)); } // Build the single interpreter. diff --git a/src/viam/sdk/tests/test_mlmodel.cpp b/src/viam/sdk/tests/test_mlmodel.cpp index ff2501da1..5d2db8010 100644 --- a/src/viam/sdk/tests/test_mlmodel.cpp +++ b/src/viam/sdk/tests/test_mlmodel.cpp @@ -18,6 +18,8 @@ #include #include +#include + #include #include From 9bb3c9b4d7608bc31834fb4c0c3f5bc9f5e9a8b3 Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:11:44 -0400 Subject: [PATCH 10/12] try to revert clang-format disagreement --- src/viam/sdk/components/movement_sensor.hpp | 2 +- src/viam/sdk/components/power_sensor.hpp | 2 +- src/viam/sdk/components/private/base_client.cpp | 2 +- src/viam/sdk/components/private/base_server.cpp | 2 +- src/viam/sdk/components/private/board_server.cpp | 2 +- src/viam/sdk/components/private/camera_client.cpp | 2 +- src/viam/sdk/components/private/camera_client.hpp | 2 +- src/viam/sdk/components/private/camera_server.cpp | 2 +- src/viam/sdk/components/private/encoder_client.cpp | 2 +- src/viam/sdk/components/private/encoder_server.cpp | 2 +- src/viam/sdk/components/private/generic_client.cpp | 2 +- src/viam/sdk/components/private/generic_client.hpp | 2 +- src/viam/sdk/components/private/generic_server.cpp | 2 +- src/viam/sdk/components/private/motor_client.cpp | 2 +- src/viam/sdk/components/private/motor_server.cpp | 2 +- src/viam/sdk/components/private/movement_sensor_client.cpp | 2 +- src/viam/sdk/components/private/movement_sensor_server.cpp | 2 +- src/viam/sdk/components/private/power_sensor_client.cpp | 2 +- src/viam/sdk/components/private/power_sensor_server.cpp | 2 +- src/viam/sdk/components/private/sensor_client.cpp | 2 +- src/viam/sdk/components/private/sensor_server.cpp | 2 +- src/viam/sdk/components/private/servo_client.cpp | 2 +- src/viam/sdk/components/private/servo_server.cpp | 2 +- src/viam/sdk/components/sensor.hpp | 2 +- src/viam/sdk/components/servo.hpp | 2 +- src/viam/sdk/tests/mocks/camera_mocks.hpp | 2 +- src/viam/sdk/tests/mocks/generic_mocks.hpp | 4 ++-- src/viam/sdk/tests/mocks/mock_base.hpp | 2 +- src/viam/sdk/tests/mocks/mock_board.cpp | 2 +- src/viam/sdk/tests/mocks/mock_encoder.hpp | 2 +- src/viam/sdk/tests/mocks/mock_gantry.cpp | 2 +- src/viam/sdk/tests/mocks/mock_motion.hpp | 2 +- src/viam/sdk/tests/mocks/mock_motor.hpp | 2 +- src/viam/sdk/tests/mocks/mock_movement_sensor.hpp | 2 +- src/viam/sdk/tests/mocks/mock_power_sensor.hpp | 2 +- src/viam/sdk/tests/mocks/mock_sensor.hpp | 2 +- src/viam/sdk/tests/mocks/mock_servo.hpp | 2 +- 37 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/viam/sdk/components/movement_sensor.hpp b/src/viam/sdk/components/movement_sensor.hpp index da545396d..5e6ede7cb 100644 --- a/src/viam/sdk/components/movement_sensor.hpp +++ b/src/viam/sdk/components/movement_sensor.hpp @@ -150,7 +150,7 @@ class MovementSensor : public Component { virtual std::vector get_geometries(const ProtoStruct& extra) = 0; protected: - explicit MovementSensor(std::string name) : Component(std::move(name)) {}; + explicit MovementSensor(std::string name) : Component(std::move(name)){}; }; template <> diff --git a/src/viam/sdk/components/power_sensor.hpp b/src/viam/sdk/components/power_sensor.hpp index 2730c5634..e50010db9 100644 --- a/src/viam/sdk/components/power_sensor.hpp +++ b/src/viam/sdk/components/power_sensor.hpp @@ -105,7 +105,7 @@ class PowerSensor : public Component { virtual ProtoStruct do_command(const ProtoStruct& command) = 0; protected: - explicit PowerSensor(std::string name) : Component(std::move(name)) {}; + explicit PowerSensor(std::string name) : Component(std::move(name)){}; }; template <> diff --git a/src/viam/sdk/components/private/base_client.cpp b/src/viam/sdk/components/private/base_client.cpp index 851d1d246..05ab39bcc 100644 --- a/src/viam/sdk/components/private/base_client.cpp +++ b/src/viam/sdk/components/private/base_client.cpp @@ -25,7 +25,7 @@ namespace impl { BaseClient::BaseClient(std::string name, std::shared_ptr channel) : Base(std::move(name)), stub_(viam::component::base::v1::BaseService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; void BaseClient::move_straight(int64_t distance_mm, double mm_per_sec, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::MoveStraight) diff --git a/src/viam/sdk/components/private/base_server.cpp b/src/viam/sdk/components/private/base_server.cpp index 6986068d8..a76a2024f 100644 --- a/src/viam/sdk/components/private/base_server.cpp +++ b/src/viam/sdk/components/private/base_server.cpp @@ -14,7 +14,7 @@ namespace sdk { namespace impl { BaseServer::BaseServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status BaseServer::MoveStraight( ::grpc::ServerContext*, diff --git a/src/viam/sdk/components/private/board_server.cpp b/src/viam/sdk/components/private/board_server.cpp index 9492f45bd..ba4780ac2 100644 --- a/src/viam/sdk/components/private/board_server.cpp +++ b/src/viam/sdk/components/private/board_server.cpp @@ -12,7 +12,7 @@ namespace sdk { namespace impl { BoardServer::BoardServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status BoardServer::SetGPIO(::grpc::ServerContext*, const ::viam::component::board::v1::SetGPIORequest* request, diff --git a/src/viam/sdk/components/private/camera_client.cpp b/src/viam/sdk/components/private/camera_client.cpp index c72f08a0a..e0d9cf18c 100644 --- a/src/viam/sdk/components/private/camera_client.cpp +++ b/src/viam/sdk/components/private/camera_client.cpp @@ -21,7 +21,7 @@ namespace impl { CameraClient::CameraClient(std::string name, std::shared_ptr channel) : Camera(std::move(name)), stub_(viam::component::camera::v1::CameraService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; ProtoStruct CameraClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) diff --git a/src/viam/sdk/components/private/camera_client.hpp b/src/viam/sdk/components/private/camera_client.hpp index e8ed7df7d..b61b593fb 100644 --- a/src/viam/sdk/components/private/camera_client.hpp +++ b/src/viam/sdk/components/private/camera_client.hpp @@ -50,7 +50,7 @@ class CameraClient : public Camera { // avoid use of this constructor outside of tests. CameraClient(std::string name, std::unique_ptr stub) - : Camera(std::move(name)), stub_(std::move(stub)) {}; + : Camera(std::move(name)), stub_(std::move(stub)){}; private: using StubType = viam::component::camera::v1::CameraService::StubInterface; diff --git a/src/viam/sdk/components/private/camera_server.cpp b/src/viam/sdk/components/private/camera_server.cpp index 3d28a47e2..372252ecc 100644 --- a/src/viam/sdk/components/private/camera_server.cpp +++ b/src/viam/sdk/components/private/camera_server.cpp @@ -15,7 +15,7 @@ namespace sdk { namespace impl { CameraServer::CameraServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status CameraServer::DoCommand(::grpc::ServerContext*, const ::viam::common::v1::DoCommandRequest* request, diff --git a/src/viam/sdk/components/private/encoder_client.cpp b/src/viam/sdk/components/private/encoder_client.cpp index d65064fad..13da808ba 100644 --- a/src/viam/sdk/components/private/encoder_client.cpp +++ b/src/viam/sdk/components/private/encoder_client.cpp @@ -22,7 +22,7 @@ namespace impl { EncoderClient::EncoderClient(std::string name, std::shared_ptr channel) : Encoder(std::move(name)), stub_(viam::component::encoder::v1::EncoderService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; Encoder::position EncoderClient::get_position(const ProtoStruct& extra, position_type position_type) { diff --git a/src/viam/sdk/components/private/encoder_server.cpp b/src/viam/sdk/components/private/encoder_server.cpp index 879b3323a..2bd48a73a 100644 --- a/src/viam/sdk/components/private/encoder_server.cpp +++ b/src/viam/sdk/components/private/encoder_server.cpp @@ -11,7 +11,7 @@ namespace sdk { namespace impl { EncoderServer::EncoderServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status EncoderServer::GetPosition( ::grpc::ServerContext*, diff --git a/src/viam/sdk/components/private/generic_client.cpp b/src/viam/sdk/components/private/generic_client.cpp index 650e7084b..21087109a 100644 --- a/src/viam/sdk/components/private/generic_client.cpp +++ b/src/viam/sdk/components/private/generic_client.cpp @@ -19,7 +19,7 @@ GenericComponentClient::GenericComponentClient(std::string name, std::shared_ptr channel) : GenericComponent(std::move(name)), stub_(viam::component::generic::v1::GenericService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; ProtoStruct GenericComponentClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) diff --git a/src/viam/sdk/components/private/generic_client.hpp b/src/viam/sdk/components/private/generic_client.hpp index f998e3531..1e76be23e 100644 --- a/src/viam/sdk/components/private/generic_client.hpp +++ b/src/viam/sdk/components/private/generic_client.hpp @@ -31,7 +31,7 @@ class GenericComponentClient : public GenericComponent { GenericComponentClient( std::string name, std::unique_ptr stub) - : GenericComponent(std::move(name)), stub_(std::move(stub)) {}; + : GenericComponent(std::move(name)), stub_(std::move(stub)){}; private: using StubType = viam::component::generic::v1::GenericService::StubInterface; diff --git a/src/viam/sdk/components/private/generic_server.cpp b/src/viam/sdk/components/private/generic_server.cpp index 8b1905a52..0a151a1c8 100644 --- a/src/viam/sdk/components/private/generic_server.cpp +++ b/src/viam/sdk/components/private/generic_server.cpp @@ -9,7 +9,7 @@ namespace sdk { namespace impl { GenericComponentServer::GenericComponentServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status GenericComponentServer::DoCommand( ::grpc::ServerContext*, diff --git a/src/viam/sdk/components/private/motor_client.cpp b/src/viam/sdk/components/private/motor_client.cpp index 0f57eb56c..429c51445 100644 --- a/src/viam/sdk/components/private/motor_client.cpp +++ b/src/viam/sdk/components/private/motor_client.cpp @@ -21,7 +21,7 @@ namespace impl { MotorClient::MotorClient(std::string name, std::shared_ptr channel) : Motor(std::move(name)), stub_(viam::component::motor::v1::MotorService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; void MotorClient::set_power(double power_pct, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::SetPower) diff --git a/src/viam/sdk/components/private/motor_server.cpp b/src/viam/sdk/components/private/motor_server.cpp index b6772f29b..70b7c4559 100644 --- a/src/viam/sdk/components/private/motor_server.cpp +++ b/src/viam/sdk/components/private/motor_server.cpp @@ -12,7 +12,7 @@ namespace sdk { namespace impl { MotorServer::MotorServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status MotorServer::SetPower(::grpc::ServerContext*, const ::viam::component::motor::v1::SetPowerRequest* request, diff --git a/src/viam/sdk/components/private/movement_sensor_client.cpp b/src/viam/sdk/components/private/movement_sensor_client.cpp index b21db1051..e9be9228f 100644 --- a/src/viam/sdk/components/private/movement_sensor_client.cpp +++ b/src/viam/sdk/components/private/movement_sensor_client.cpp @@ -23,7 +23,7 @@ namespace impl { MovementSensorClient::MovementSensorClient(std::string name, std::shared_ptr channel) : MovementSensor(std::move(name)), stub_(viam::component::movementsensor::v1::MovementSensorService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; using namespace viam::component::movementsensor::v1; diff --git a/src/viam/sdk/components/private/movement_sensor_server.cpp b/src/viam/sdk/components/private/movement_sensor_server.cpp index 929a9db40..eb44c409a 100644 --- a/src/viam/sdk/components/private/movement_sensor_server.cpp +++ b/src/viam/sdk/components/private/movement_sensor_server.cpp @@ -14,7 +14,7 @@ namespace sdk { namespace impl { MovementSensorServer::MovementSensorServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status MovementSensorServer::GetLinearVelocity( ::grpc::ServerContext*, diff --git a/src/viam/sdk/components/private/power_sensor_client.cpp b/src/viam/sdk/components/private/power_sensor_client.cpp index 43a327917..be337537e 100644 --- a/src/viam/sdk/components/private/power_sensor_client.cpp +++ b/src/viam/sdk/components/private/power_sensor_client.cpp @@ -24,7 +24,7 @@ namespace impl { PowerSensorClient::PowerSensorClient(std::string name, std::shared_ptr channel) : PowerSensor(std::move(name)), stub_(PowerSensorService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; PowerSensor::voltage PowerSensorClient::get_voltage(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetVoltage) diff --git a/src/viam/sdk/components/private/power_sensor_server.cpp b/src/viam/sdk/components/private/power_sensor_server.cpp index 26e453acd..b15589623 100644 --- a/src/viam/sdk/components/private/power_sensor_server.cpp +++ b/src/viam/sdk/components/private/power_sensor_server.cpp @@ -13,7 +13,7 @@ namespace sdk { namespace impl { PowerSensorServer::PowerSensorServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status PowerSensorServer::GetVoltage(::grpc::ServerContext*, const GetVoltageRequest* request, diff --git a/src/viam/sdk/components/private/sensor_client.cpp b/src/viam/sdk/components/private/sensor_client.cpp index 8affe6d1b..3780e256a 100644 --- a/src/viam/sdk/components/private/sensor_client.cpp +++ b/src/viam/sdk/components/private/sensor_client.cpp @@ -21,7 +21,7 @@ namespace impl { SensorClient::SensorClient(std::string name, std::shared_ptr channel) : Sensor(std::move(name)), stub_(viam::component::sensor::v1::SensorService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; using namespace viam::common::v1; diff --git a/src/viam/sdk/components/private/sensor_server.cpp b/src/viam/sdk/components/private/sensor_server.cpp index fbd482ca9..f763ab0b7 100644 --- a/src/viam/sdk/components/private/sensor_server.cpp +++ b/src/viam/sdk/components/private/sensor_server.cpp @@ -13,7 +13,7 @@ namespace sdk { namespace impl { SensorServer::SensorServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status SensorServer::GetReadings(::grpc::ServerContext*, const GetReadingsRequest* request, diff --git a/src/viam/sdk/components/private/servo_client.cpp b/src/viam/sdk/components/private/servo_client.cpp index f47670ff8..46ed8a070 100644 --- a/src/viam/sdk/components/private/servo_client.cpp +++ b/src/viam/sdk/components/private/servo_client.cpp @@ -21,7 +21,7 @@ namespace impl { ServoClient::ServoClient(std::string name, std::shared_ptr channel) : Servo(std::move(name)), stub_(viam::component::servo::v1::ServoService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; void ServoClient::move(uint32_t angle_deg, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Move) diff --git a/src/viam/sdk/components/private/servo_server.cpp b/src/viam/sdk/components/private/servo_server.cpp index fe5d7aac6..7b3b937e1 100644 --- a/src/viam/sdk/components/private/servo_server.cpp +++ b/src/viam/sdk/components/private/servo_server.cpp @@ -11,7 +11,7 @@ namespace sdk { namespace impl { ServoServer::ServoServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status ServoServer::Move(::grpc::ServerContext*, const ::viam::component::servo::v1::MoveRequest* request, diff --git a/src/viam/sdk/components/sensor.hpp b/src/viam/sdk/components/sensor.hpp index 59510817b..04f86b9a0 100644 --- a/src/viam/sdk/components/sensor.hpp +++ b/src/viam/sdk/components/sensor.hpp @@ -53,7 +53,7 @@ class Sensor : public Component { virtual ProtoStruct get_readings(const ProtoStruct& extra) = 0; protected: - explicit Sensor(std::string name) : Component(std::move(name)) {}; + explicit Sensor(std::string name) : Component(std::move(name)){}; }; template <> diff --git a/src/viam/sdk/components/servo.hpp b/src/viam/sdk/components/servo.hpp index 6e4014209..b3601f3c6 100644 --- a/src/viam/sdk/components/servo.hpp +++ b/src/viam/sdk/components/servo.hpp @@ -73,7 +73,7 @@ class Servo : public Component, public Stoppable { virtual std::vector get_geometries(const ProtoStruct& extra) = 0; protected: - explicit Servo(std::string name) : Component(std::move(name)) {}; + explicit Servo(std::string name) : Component(std::move(name)){}; }; template <> diff --git a/src/viam/sdk/tests/mocks/camera_mocks.hpp b/src/viam/sdk/tests/mocks/camera_mocks.hpp index 1534f7968..8ee364128 100644 --- a/src/viam/sdk/tests/mocks/camera_mocks.hpp +++ b/src/viam/sdk/tests/mocks/camera_mocks.hpp @@ -17,7 +17,7 @@ class MockCamera : public Camera { std::vector get_geometries(const sdk::ProtoStruct& extra) override; properties get_properties() override; static std::shared_ptr get_mock_camera(); - MockCamera(std::string name) : Camera(std::move(name)) {}; + MockCamera(std::string name) : Camera(std::move(name)){}; private: Camera::intrinsic_parameters intrinsic_parameters_; diff --git a/src/viam/sdk/tests/mocks/generic_mocks.hpp b/src/viam/sdk/tests/mocks/generic_mocks.hpp index 07c45ccc1..54da9f1cb 100644 --- a/src/viam/sdk/tests/mocks/generic_mocks.hpp +++ b/src/viam/sdk/tests/mocks/generic_mocks.hpp @@ -13,7 +13,7 @@ using namespace viam::sdk; class MockGenericComponent : public GenericComponent { public: - MockGenericComponent(std::string name) : GenericComponent(std::move(name)) {}; + MockGenericComponent(std::string name) : GenericComponent(std::move(name)){}; ProtoStruct do_command(const ProtoStruct& command) override; static std::shared_ptr get_mock_generic(); @@ -26,7 +26,7 @@ class MockGenericComponent : public GenericComponent { class MockGenericService : public GenericService { public: - MockGenericService(std::string name) : GenericService(std::move(name)) {}; + MockGenericService(std::string name) : GenericService(std::move(name)){}; ProtoStruct do_command(const ProtoStruct& command) override; static std::shared_ptr get_mock_generic(); diff --git a/src/viam/sdk/tests/mocks/mock_base.hpp b/src/viam/sdk/tests/mocks/mock_base.hpp index f5e9d2f7f..38bab24c9 100644 --- a/src/viam/sdk/tests/mocks/mock_base.hpp +++ b/src/viam/sdk/tests/mocks/mock_base.hpp @@ -39,7 +39,7 @@ class MockBase : public sdk::Base { bool peek_stop_called; sdk::ProtoStruct peek_do_command_command; - MockBase(std::string name) : Base(std::move(name)) {}; + MockBase(std::string name) : Base(std::move(name)){}; }; } // namespace base diff --git a/src/viam/sdk/tests/mocks/mock_board.cpp b/src/viam/sdk/tests/mocks/mock_board.cpp index 5f40af252..bbfdf767a 100644 --- a/src/viam/sdk/tests/mocks/mock_board.cpp +++ b/src/viam/sdk/tests/mocks/mock_board.cpp @@ -10,7 +10,7 @@ namespace board { using namespace viam::sdk; -MockBoard::MockBoard(std::string name) : Board(std::move(name)) {}; +MockBoard::MockBoard(std::string name) : Board(std::move(name)){}; void MockBoard::set_gpio(const std::string& pin, bool high, const ProtoStruct&) { this->peek_pin = pin; diff --git a/src/viam/sdk/tests/mocks/mock_encoder.hpp b/src/viam/sdk/tests/mocks/mock_encoder.hpp index ef117b823..9a015a6ff 100644 --- a/src/viam/sdk/tests/mocks/mock_encoder.hpp +++ b/src/viam/sdk/tests/mocks/mock_encoder.hpp @@ -17,7 +17,7 @@ class MockEncoder : public viam::sdk::Encoder { viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; static std::shared_ptr get_mock_encoder(); - MockEncoder(std::string name) : Encoder(std::move(name)) {}; + MockEncoder(std::string name) : Encoder(std::move(name)){}; // For testing purposes only. bool peek_reset_position_called; diff --git a/src/viam/sdk/tests/mocks/mock_gantry.cpp b/src/viam/sdk/tests/mocks/mock_gantry.cpp index 3d8075e47..892719c3e 100644 --- a/src/viam/sdk/tests/mocks/mock_gantry.cpp +++ b/src/viam/sdk/tests/mocks/mock_gantry.cpp @@ -20,7 +20,7 @@ std::vector MockGantry::get_position(const sdk::ProtoStruct&) { void MockGantry::move_to_position(const std::vector& coordinates, const sdk::ProtoStruct&) { - peek_positions = {}; + peek_positions ={}; for (const auto& coord : coordinates) peek_positions.push_back(coord.position_mm); } diff --git a/src/viam/sdk/tests/mocks/mock_motion.hpp b/src/viam/sdk/tests/mocks/mock_motion.hpp index dc0c8e5c5..813929f82 100644 --- a/src/viam/sdk/tests/mocks/mock_motion.hpp +++ b/src/viam/sdk/tests/mocks/mock_motion.hpp @@ -99,7 +99,7 @@ class MockMotion : public sdk::Motion { std::shared_ptr peek_world_state; MockMotion(std::string name) - : sdk::Motion(std::move(name)), current_location(init_fake_pose()) {}; + : sdk::Motion(std::move(name)), current_location(init_fake_pose()){}; }; } // namespace motion diff --git a/src/viam/sdk/tests/mocks/mock_motor.hpp b/src/viam/sdk/tests/mocks/mock_motor.hpp index 2c3a7be16..4e6aa8fd4 100644 --- a/src/viam/sdk/tests/mocks/mock_motor.hpp +++ b/src/viam/sdk/tests/mocks/mock_motor.hpp @@ -26,7 +26,7 @@ class MockMotor : public Motor { static std::shared_ptr get_mock_motor(); virtual std::vector get_geometries(const sdk::ProtoStruct& extra) override; - MockMotor(std::string name) : Motor(std::move(name)) {}; + MockMotor(std::string name) : Motor(std::move(name)){}; using Motor::get_geometries; using Motor::get_position; diff --git a/src/viam/sdk/tests/mocks/mock_movement_sensor.hpp b/src/viam/sdk/tests/mocks/mock_movement_sensor.hpp index f1e359ead..e14c6ca7d 100644 --- a/src/viam/sdk/tests/mocks/mock_movement_sensor.hpp +++ b/src/viam/sdk/tests/mocks/mock_movement_sensor.hpp @@ -31,7 +31,7 @@ class MockMovementSensor : public sdk::MovementSensor { std::unordered_map peek_accuracy; sdk::ProtoStruct peek_do_command_command; - MockMovementSensor(std::string name) : MovementSensor(std::move(name)) {}; + MockMovementSensor(std::string name) : MovementSensor(std::move(name)){}; }; } // namespace movementsensor diff --git a/src/viam/sdk/tests/mocks/mock_power_sensor.hpp b/src/viam/sdk/tests/mocks/mock_power_sensor.hpp index 94b081b01..900a96d7d 100644 --- a/src/viam/sdk/tests/mocks/mock_power_sensor.hpp +++ b/src/viam/sdk/tests/mocks/mock_power_sensor.hpp @@ -22,7 +22,7 @@ class MockPowerSensor : public sdk::PowerSensor { sdk::PowerSensor::current peek_current; double peek_power; - MockPowerSensor(std::string name) : PowerSensor(std::move(name)) {}; + MockPowerSensor(std::string name) : PowerSensor(std::move(name)){}; }; } // namespace powersensor diff --git a/src/viam/sdk/tests/mocks/mock_sensor.hpp b/src/viam/sdk/tests/mocks/mock_sensor.hpp index 55a1e86e1..8b8a1d7b9 100644 --- a/src/viam/sdk/tests/mocks/mock_sensor.hpp +++ b/src/viam/sdk/tests/mocks/mock_sensor.hpp @@ -14,7 +14,7 @@ class MockSensor : public sdk::Sensor { static std::shared_ptr get_mock_sensor(); std::vector get_geometries(const sdk::ProtoStruct& extra) override; - MockSensor(std::string name) : Sensor(std::move(name)) {}; + MockSensor(std::string name) : Sensor(std::move(name)){}; }; } // namespace sensor diff --git a/src/viam/sdk/tests/mocks/mock_servo.hpp b/src/viam/sdk/tests/mocks/mock_servo.hpp index 7253a8b7d..2e34712f9 100644 --- a/src/viam/sdk/tests/mocks/mock_servo.hpp +++ b/src/viam/sdk/tests/mocks/mock_servo.hpp @@ -19,7 +19,7 @@ class MockServo : public Servo { static std::shared_ptr get_mock_servo(); virtual std::vector get_geometries(const sdk::ProtoStruct& extra) override; - MockServo(std::string name) : Servo(std::move(name)) {}; + MockServo(std::string name) : Servo(std::move(name)){}; using Servo::get_geometries; using Servo::get_position; From 8b998d336c78a90a72b5fdd92b0e2fbbe1005d1f Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:19:37 -0400 Subject: [PATCH 11/12] more format reverts --- src/viam/examples/modules/complex/gizmo/impl.hpp | 2 +- src/viam/sdk/config/resource.cpp | 3 +-- src/viam/sdk/services/private/generic_client.cpp | 2 +- src/viam/sdk/services/private/generic_client.hpp | 2 +- src/viam/sdk/services/private/generic_server.cpp | 2 +- src/viam/sdk/services/private/motion_client.cpp | 2 +- src/viam/sdk/services/private/motion_server.cpp | 2 +- src/viam/sdk/tests/mocks/mock_gantry.cpp | 2 +- 8 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/viam/examples/modules/complex/gizmo/impl.hpp b/src/viam/examples/modules/complex/gizmo/impl.hpp index 48afc9142..1ca83a470 100644 --- a/src/viam/examples/modules/complex/gizmo/impl.hpp +++ b/src/viam/examples/modules/complex/gizmo/impl.hpp @@ -14,7 +14,7 @@ using namespace viam::sdk; // `validate` method that checks config validity. class MyGizmo : public Gizmo, public Reconfigurable { public: - MyGizmo(std::string name, std::string arg1) : Gizmo(std::move(name)), arg1_(std::move(arg1)) {}; + MyGizmo(std::string name, std::string arg1) : Gizmo(std::move(name)), arg1_(std::move(arg1)){}; MyGizmo(const Dependencies& deps, const ResourceConfig& cfg) : Gizmo(cfg.name()) { this->reconfigure(deps, cfg); }; diff --git a/src/viam/sdk/config/resource.cpp b/src/viam/sdk/config/resource.cpp index d07cebcf8..758a52637 100644 --- a/src/viam/sdk/config/resource.cpp +++ b/src/viam/sdk/config/resource.cpp @@ -138,8 +138,7 @@ viam::app::v1::ComponentConfig ResourceConfig::to_proto() const { return proto_cfg; } -ResourceConfig::ResourceConfig(std::string type) - : api_({kRDK, type, ""}), type_(std::move(type)) {}; +ResourceConfig::ResourceConfig(std::string type) : api_({kRDK, type, ""}), type_(std::move(type)){}; } // namespace sdk } // namespace viam diff --git a/src/viam/sdk/services/private/generic_client.cpp b/src/viam/sdk/services/private/generic_client.cpp index 2c7144b2f..44e56b9d5 100644 --- a/src/viam/sdk/services/private/generic_client.cpp +++ b/src/viam/sdk/services/private/generic_client.cpp @@ -18,7 +18,7 @@ namespace impl { GenericServiceClient::GenericServiceClient(std::string name, std::shared_ptr channel) : GenericService(std::move(name)), stub_(viam::service::generic::v1::GenericService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; ProtoStruct GenericServiceClient::do_command(const ProtoStruct& command) { return make_client_helper(this, *stub_, &StubType::DoCommand) diff --git a/src/viam/sdk/services/private/generic_client.hpp b/src/viam/sdk/services/private/generic_client.hpp index 4f59028ac..e5e72cd99 100644 --- a/src/viam/sdk/services/private/generic_client.hpp +++ b/src/viam/sdk/services/private/generic_client.hpp @@ -30,7 +30,7 @@ class GenericServiceClient : public GenericService { GenericServiceClient( std::string name, std::unique_ptr stub) - : GenericService(std::move(name)), stub_(std::move(stub)) {}; + : GenericService(std::move(name)), stub_(std::move(stub)){}; private: using StubType = viam::service::generic::v1::GenericService::StubInterface; diff --git a/src/viam/sdk/services/private/generic_server.cpp b/src/viam/sdk/services/private/generic_server.cpp index 4bdc2dc3b..0e5a2586a 100644 --- a/src/viam/sdk/services/private/generic_server.cpp +++ b/src/viam/sdk/services/private/generic_server.cpp @@ -9,7 +9,7 @@ namespace sdk { namespace impl { GenericServiceServer::GenericServiceServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status GenericServiceServer::DoCommand( ::grpc::ServerContext*, diff --git a/src/viam/sdk/services/private/motion_client.cpp b/src/viam/sdk/services/private/motion_client.cpp index 592496b8a..db082de7f 100644 --- a/src/viam/sdk/services/private/motion_client.cpp +++ b/src/viam/sdk/services/private/motion_client.cpp @@ -19,7 +19,7 @@ namespace impl { MotionClient::MotionClient(std::string name, std::shared_ptr channel) : Motion(std::move(name)), stub_(service::motion::v1::MotionService::NewStub(channel)), - channel_(std::move(channel)) {}; + channel_(std::move(channel)){}; bool MotionClient::move(const pose_in_frame& destination, const Name& component_name, diff --git a/src/viam/sdk/services/private/motion_server.cpp b/src/viam/sdk/services/private/motion_server.cpp index 04939df24..87e7bd41b 100644 --- a/src/viam/sdk/services/private/motion_server.cpp +++ b/src/viam/sdk/services/private/motion_server.cpp @@ -15,7 +15,7 @@ namespace sdk { namespace impl { MotionServer::MotionServer(std::shared_ptr manager) - : ResourceServer(std::move(manager)) {}; + : ResourceServer(std::move(manager)){}; ::grpc::Status MotionServer::Move(::grpc::ServerContext*, const ::viam::service::motion::v1::MoveRequest* request, diff --git a/src/viam/sdk/tests/mocks/mock_gantry.cpp b/src/viam/sdk/tests/mocks/mock_gantry.cpp index 892719c3e..3d8075e47 100644 --- a/src/viam/sdk/tests/mocks/mock_gantry.cpp +++ b/src/viam/sdk/tests/mocks/mock_gantry.cpp @@ -20,7 +20,7 @@ std::vector MockGantry::get_position(const sdk::ProtoStruct&) { void MockGantry::move_to_position(const std::vector& coordinates, const sdk::ProtoStruct&) { - peek_positions ={}; + peek_positions = {}; for (const auto& coord : coordinates) peek_positions.push_back(coord.position_mm); } From 71951727f05fb747e1eed2624d7ef823b5ac81d7 Mon Sep 17 00:00:00 2001 From: Lia Stratopoulos <167905060+lia-viam@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:32:12 -0400 Subject: [PATCH 12/12] more explicit param name --- src/viam/sdk/common/proto_value.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/viam/sdk/common/proto_value.hpp b/src/viam/sdk/common/proto_value.hpp index 5f35a9d0b..61bd43ea1 100644 --- a/src/viam/sdk/common/proto_value.hpp +++ b/src/viam/sdk/common/proto_value.hpp @@ -336,9 +336,9 @@ void map_to_struct(const ProtoStruct& m, google::protobuf::Struct* s); /// API/ABI. It is meant to be called with no template parameters in a translation unit which /// includes template -Value to_proto(const ProtoValue& pv) { +Value to_proto(const ProtoValue& proto_value) { Value v; - to_proto(pv, &v); + to_proto(proto_value, &v); return v; }