Releases: viamrobotics/viam-cpp-sdk
releases/v0.0.12
Breaking change
Details and migration guide
Removes ProtoType
and AttributeMap
, replacing them with ProtoValue
and ProtoStruct
. This affects the parameter used in component doCommand
calls, as well as the extra parameter included in all component methods.
For most use cases, the change will look like this:
90246f0#diff-becf92545c215777e3fe43c17c0f4196f96bb623d3aa8feee82d1357e7c1738fL11
Namely,
- include path is now
#include <viam/sdk/common/proto_value.hpp>
- parameter is now
const ProtoStruct&
The majority of code changes will be able to just do a Replace-In-Files for the two changes above
If your component or module code actually used these types directly, the changes will look something like this:
90246f0#diff-e07f0fbd2e62063a2446d7ab99d80d9a5c50e9a94649f64b9d5caf5c67b3a345
Namely, ProtoValue
is now has value semantics rather than pointer semantics and std::shared_ptr
, and ProtoStruct
is a map of std::string
to ProtoType
. You can construct a ProtoValue
like a normal C++ class as you would, eg, a variant or JSON type:
ProtoValue num_val{5.6};
ProtoValue str_val{"meow"};
// ProtoList is a vector of ProtoValue:
ProtoList my_list{{ProtoValue{true}, ProtoValue{"meow"}, ProtoValue{6.0}}};
// ProtoStruct is a map:
ProtoStruct my_map{
{"cat", "meow"},
{"dog", "woof"},
{"number", 1.234},
{"list", my_list}, //copies my_list
};
ProtoValue
and related types now have value semantics rather than smart pointer semantics. This means, eg
map lookup operations will now use a .
rather than ->
, and types will behave like arithmetic types or standard library containers with respect to copying, moving, etc
Please see the proto_value.hpp
header for detailed documentation and API of other methods, including
to_proto
to convert togoogle::protobuf
classes, andProtoValue::from_proto
to construct fromgoogle::protobuf
classesis_a<T>
andget<T>
/get_unchecked<T>
for stored element inpection- ...or generate the doxygen documentation if you like!
To find affected code, you can grep
or ag
or GitHub code search for ProtoType
and AttributeMap
.
Additional changes
- RSDK-8828 Remove integer type from ProtoValue by @lia-viam in #292
- RSDK-8826: Conan builds in CI by @lia-viam in #296
- Fix debian builds in CI by @lia-viam in #297
- Automated Protos Update by @github-actions in #298
- Automated Protos Update by @github-actions in #300
- Use proto value get in example code by @lia-viam in #303
- RSDK-6170 - add debug log support by @stuqdog in #299
- Automated Protos Update by @github-actions in #302
- Version bump by @lia-viam in #304
Full Changelog: releases/v0.0.11...releases/v0.0.12
releases/v0.0.11
What's Changed
- RSDK-6636: Refactored AttributeMap with type-erased ProtoType by @lia-viam in #272
- Automated Protos Update by @github-actions in #277
- Version bump by @lia-viam in #281
- Fix aarch build by @lia-viam in #282
- Automated Protos Update by @github-actions in #280
- RSDK-7861 Conan dependencies by @lia-viam in #283
- RSDK-4735 Add options to disable building tests and examples (merged in the Conan deps PR)
- RSDK-8541: ProtoValue get_unchecked and visit API by @lia-viam in #279
- Update actions/download-artifact and actions/upload-artifact to v4 by @lia-viam in #291
- use boost program_options in example by @abe-winter in #288
- RSDK-8343 - create public version_metadata file by @stuqdog in #290
- Automated Protos Update by @github-actions in #286
- Automated Protos Update by @github-actions in #293
- RSDK-8829: Add frame_rate to cpp sdk by @jckras in #294
- Revert find_package logic by @lia-viam in #295
Full Changelog: releases/v0.0.10...releases/v0.0.11
releases/v0.0.10
What's Changed
- Streamable client helper by @lia-viam in #265
- Automated Protos Update by @github-actions in #263
- Automated Protos Update by @github-actions in #267
- Automated Protos Update by @github-actions in #269
- Automated Protos Update by @github-actions in #270
- RSDK-8306 - set version in metadata by @stuqdog in #271
- Automated Protos Update by @github-actions in #274
- Automated Protos Update by @github-actions in #275
- RSDK-7924: Fix building of example projects by @lia-viam in #273
- RSDK-7440: Build example projects in CI by @lia-viam in #276
- bump version by @stuqdog in #278
Full Changelog: releases/v0.0.9...releases/v0.0.10
releases/v0.0.9
What's Changed
Full Changelog: releases/v0.0.8...releases/v0.0.9
releases/v0.0.8
What's Changed
- RSDK-7644 - update example module client for integration test consistency by @stuqdog in #246
- RSDK-7939: Add arm component by @lia-viam in #249
- RSDK-7980: Gripper component by @lia-viam in #252
- RSDK-7880 - add orientation config getters by @stuqdog in #251
- Automated Protos Update by @github-actions in #253
- RSDK-6025 - match viam-server's max message size by @stuqdog in #254
- RSDK-7988 Gantry component by @lia-viam in #255
- Automated Protos Update by @github-actions in #256
- RSDK-7642 - add simple module client for module integration testing by @stuqdog in #250
- Automated Protos Update by @github-actions in #257
- RSDK-8031 Pose tracker component by @lia-viam in #258
- Automated Protos Update by @github-actions in #259
- bumping release version by @lia-viam in #260
- GitHub actions yaml changes by @lia-viam in #261
- typo fix by @lia-viam in #262
Full Changelog: releases/v0.0.7...releases/v0.0.8
releases/v0.0.7
What's Changed
- RSDK-5378 - allow setting of cpp standard by @stuqdog in #234
- try update googleapis commit by @stuqdog in #239
- [RSDK-7151] Update analog reader responses to include accuracy data by @penguinland in #237
- Automated Protos Update by @github-actions in #236
- [RSDK-7775] Update Camera.Properties Response in C++ SDK to match API by @hexbabe in #242
- Automated Protos Update by @github-actions in #240
- Automated Protos Update by @github-actions in #243
- RSDK-7858 - lock in doxygen version by @stuqdog in #244
- Automated Protos Update by @github-actions in #245
- Bump version by @njooma in #247
- replace deprecated CreateMessage with Create by @lia-viam in #248
New Contributors
Full Changelog: releases/v0.0.6...releases/v0.0.7
releases/v0.0.6
What's Changed
- Automated Protos Update by @github-actions in #230
- Automated Protos Update by @github-actions in #233
- Bumping release version by @cheukt in #235
Full Changelog: releases/v0.0.5...releases/v0.0.6
releases/v0.0.5
What's Changed
- RSDK-7410 - remove self-hosted runners by @stuqdog in #228
- RSDK-7132 Stream Ticks by @oliviamiller in #226
- bump version to 0.0.5 by @stuqdog in #229
Full Changelog: releases/v0.0.4...releases/v0.0.5
releases/v0.0.4
What's Changed
- RSDK-2113 Align buf remote plugin proto version with local by @acmorrow in #224
- Automated Protos Update by @github-actions in #220
- Bumping release version by @benjirewis in #227
Full Changelog: releases/v0.0.3...releases/v0.0.4
releases/v0.0.3
What's Changed
- RSDK-6726 - update client types in c++ code samples by @stuqdog in #219
- RSDK-6530: Add depth map encode decode methods to C++ SDK by @hexbabe in #213
- RSDK-6763 - remove pure virtual overrides by @stuqdog in #223
- RSDK-6627 - move resource-names-for-resource to be a method on resource by @stuqdog in #222
- bump release version by @stuqdog in #225
New Contributors
Full Changelog: releases/v0.0.2...releases/v0.0.3