Skip to content
Snippets Groups Projects

Feature/object provider skills

Merged Fabian Reister requested to merge feature/object-provider-skills into master
2 files
+ 37
47
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -2,43 +2,48 @@
#include <ArmarXCore/core/Component.h>
namespace armarx::plugins
{
void ObjectPoseProviderPlugin::postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties)
void
ObjectPoseProviderPlugin::postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties)
{
if (!properties->hasDefinition(makePropertyName(PROPERTY_NAME)))
{
properties->defineOptionalProperty<std::string>(
makePropertyName(PROPERTY_NAME),
"ObjectPoseTopic",
"Name of the object pose topic.");
makePropertyName(PROPERTY_NAME), "ObjectMemory", "Name of the object memory.");
}
}
void ObjectPoseProviderPlugin::preOnInitComponent()
void
ObjectPoseProviderPlugin::preOnInitComponent()
{
parent<Component>().offeringTopicFromProperty(makePropertyName(PROPERTY_NAME));
parent<Component>().usingProxyFromProperty(makePropertyName(PROPERTY_NAME));
}
void ObjectPoseProviderPlugin::preOnConnectComponent()
void
ObjectPoseProviderPlugin::preOnConnectComponent()
{
parent<ObjectPoseProviderPluginUser>().objectPoseTopic = createObjectPoseTopic();
parent<ObjectPoseProviderPluginUser>().objectPoseTopic =
parent<Component>().getProxyFromProperty<objpose::ObjectPoseStorageInterfacePrx>(
makePropertyName(PROPERTY_NAME));
}
void ObjectPoseProviderPlugin::postOnConnectComponent()
void
ObjectPoseProviderPlugin::postOnConnectComponent()
{
ObjectPoseProviderPluginUser& parent = this->parent<ObjectPoseProviderPluginUser>();
objpose::ObjectPoseTopicPrx& topic = parent.objectPoseTopic;
if (topic)
auto& parent = this->parent<ObjectPoseProviderPluginUser>();
if (parent.objectPoseTopic)
{
objpose::ProviderInfo info = parent.getProviderInfo();
if (!info.proxy)
{
info.proxy = ::armarx::objpose::ObjectPoseProviderPrx::checkedCast(parent.getProxy());
info.proxy =
::armarx::objpose::ObjectPoseProviderPrx::checkedCast(parent.getProxy());
}
topic->reportProviderAvailable(parent.getName(), info);
ARMARX_INFO << "Reporting provider `" << parent.getName() << "` availability.";
parent.objectPoseTopic->reportProviderAvailable(parent.getName(), info);
}
else
{
@@ -46,13 +51,7 @@ namespace armarx::plugins
}
}
objpose::ObjectPoseTopicPrx ObjectPoseProviderPlugin::createObjectPoseTopic()
{
return parent<Component>().getTopicFromProperty<objpose::ObjectPoseTopicPrx>(makePropertyName(PROPERTY_NAME));
}
}
} // namespace armarx::plugins
namespace armarx
{
@@ -62,7 +61,10 @@ namespace armarx
addPlugin(plugin);
}
objpose::provider::RequestObjectsOutput ObjectPoseProviderPluginUser::requestObjects(const objpose::provider::RequestObjectsInput& input, const Ice::Current&)
objpose::provider::RequestObjectsOutput
ObjectPoseProviderPluginUser::requestObjects(
const objpose::provider::RequestObjectsInput& input,
const Ice::Current&)
{
// ARMARX_INFO << "Requested " << input.objectIDs.size() << " objects for " << input.relativeTimeoutMS << " ms.";
objpose::provider::RequestObjectsOutput output;
@@ -73,9 +75,5 @@ namespace armarx
return output;
}
objpose::ObjectPoseTopicPrx ObjectPoseProviderPluginUser::createObjectPoseTopic()
{
return plugin->createObjectPoseTopic();
}
}
} // namespace armarx
Loading