diff --git a/SettingsDeserializer.cpp b/SettingsDeserializer.cpp
index 30eeb81..25f41b8 100644
--- a/SettingsDeserializer.cpp
+++ b/SettingsDeserializer.cpp
@@ -1913,7 +1913,7 @@ bool SettingsDeserializer::DeserializeSkeletonSettings(bool skeletonGlobalData,
{
segmentHierarchical.name = segmentElem.ReadAttributeString("Name");
- segmentElem.TryReadElementUnsignedInt32("ID", segmentHierarchical.id);
+ segmentHierarchical.id = segmentElem.ReadAttributeInt("ID");
segmentIdIndexMap[segmentHierarchical.id] = segmentIndex++;
segmentElem.TryReadElementString("Solver", segmentHierarchical.solver);
diff --git a/Tests/Data/Skeleton.h b/Tests/Data/Skeleton.h
index 6c51d5b..d8985a6 100644
--- a/Tests/Data/Skeleton.h
+++ b/Tests/Data/Skeleton.h
@@ -1,6 +1,134 @@
#pragma once
namespace qualisys_cpp_sdk::tests::data
{
+ inline const char* SkeletonSettingsGet = R"XMLDATA(
+
+
+
+ 1.100000
+
+
+ Global Optimization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3.000000
+
+
+
+ 7.000000
+
+
+
+
+
+
+
+
+ 3.000000
+
+
+
+
+
+
+ 7.000000
+
+
+
+ Global Optimization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3.000000
+
+
+
+ 7.000000
+
+
+
+
+
+
+
+
+ 1.000000
+
+
+ Global Optimization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3.000000
+
+
+
+ 7.000000
+
+
+
+
+
+
+
+
+)XMLDATA";
+
inline const char* SkeletonSettingsSet = R"XMLDATA(
diff --git a/Tests/SkeletonParametersTests.cpp b/Tests/SkeletonParametersTests.cpp
index 2f64ef0..e725281 100644
--- a/Tests/SkeletonParametersTests.cpp
+++ b/Tests/SkeletonParametersTests.cpp
@@ -86,11 +86,11 @@ namespace
std::vector CreateDummySkeletonsNonHierarchical()
{
auto segmentsSkeleton1 = std::vector({
- { { 0, 0.0f, 1.0f, 2.0f, 0.707000017f, -0.707000017f, 0.0f, 0.0f }, "segment1", -1, -1 },
- { { 0, 3.0f, 4.0f, 5.0f, 0.707000017f, 0.707000017f, 0.0f, 0.0f }, "segment3", 0, 1 }
+ { { 1, 0.0f, 1.0f, 2.0f, 0.707000017f, -0.707000017f, 0.0f, 0.0f }, "segment1", -1, -1 },
+ { { 3, 3.0f, 4.0f, 5.0f, 0.707000017f, 0.707000017f, 0.0f, 0.0f }, "segment3", 0, 1 }
});
auto segmentsSkeleton2 = std::vector({
- { { 0, 0.0f, 1.0f, 2.0f, 0.707000017f, 0.0f, 0.707000017f, 0.0f }, "segment2", -1, -1 }
+ { { 2, 0.0f, 1.0f, 2.0f, 0.707000017f, 0.0f, 0.707000017f, 0.0f }, "segment2", -1, -1 }
});
CRTProtocol::SSettingsSkeleton skeleton1 = { "skeleton1", segmentsSkeleton1 };
@@ -144,7 +144,7 @@ TEST_CASE("GetSkeletonSettings")
{
auto [protocol, network] = utils::CreateTestContext();
- network->PrepareResponse("GetParameters Skeleton", data::SkeletonSettingsSet,
+ network->PrepareResponse("GetParameters Skeleton", data::SkeletonSettingsGet,
CRTPacket::PacketXML);
using namespace qualisys_cpp_sdk::tests;
@@ -166,6 +166,7 @@ TEST_CASE("GetSkeletonSettings")
const CRTProtocol::SSettingsSkeletonSegmentHierarchical& actualSegment)
{
CHECK_EQ(expectedSegment.name, actualSegment.name);
+ CHECK_EQ(expectedSegment.id, actualSegment.id);
CHECK_EQ(expectedSegment.segments.size(), actualSegment.segments.size());
@@ -256,7 +257,7 @@ TEST_CASE("GetSkeletonSettingsNonHierarchical")
{
auto [protocol, network] = utils::CreateTestContext();
- network->PrepareResponse("GetParameters Skeleton", data::SkeletonSettingsSet,
+ network->PrepareResponse("GetParameters Skeleton", data::SkeletonSettingsGet,
CRTPacket::PacketXML);
using namespace qualisys_cpp_sdk::tests;