|
Observer monitoring platform-related sensor values. More...
#include <RobotAPI/components/units/PlatformUnitObserver.h>
Public Member Functions | |
PropertyDefinitionsPtr | createPropertyDefinitions () override |
std::string | getDefaultName () const override |
Retrieve default name of component. More... | |
void | onConnectObserver () override |
Framework hook. More... | |
void | onInitObserver () override |
Framework hook. More... | |
void | reportGlobalRobotPose (const ::armarx::TransformStamped &, const ::Ice::Current &=::Ice::emptyCurrent) override |
void | reportPlatformOdometryPose (Ice::Float x, Ice::Float y, Ice::Float angle, const Ice::Current &) override |
void | reportPlatformVelocity (::Ice::Float currentPlatformVelocityX, ::Ice::Float currentPlatformVelocityY, ::Ice::Float currentPlatformVelocityRotation, const Ice::Current &c=Ice::emptyCurrent) override |
Public Member Functions inherited from Observer | |
DatafieldRefBasePtr | createFilteredDatafield (const DatafieldFilterBasePtr &filter, const DatafieldRefBasePtr &datafieldRef) |
This function creates a new datafield with new filter on the given datafield. More... | |
void | createFilteredDatafield_async (const AMD_ObserverInterface_createFilteredDatafieldPtr &amd, const DatafieldFilterBasePtr &filter, const DatafieldRefBasePtr &datafieldRef, const Ice::Current &) override |
DatafieldRefBasePtr | createNamedFilteredDatafield (const std::string &filterDatafieldName, const DatafieldFilterBasePtr &filter, const DatafieldRefBasePtr &datafieldRef) |
void | createNamedFilteredDatafield_async (const AMD_ObserverInterface_createNamedFilteredDatafieldPtr &amd, const std::string &filterDatafieldName, const DatafieldFilterBasePtr &filter, const DatafieldRefBasePtr &datafieldRef, const Ice::Current &) override |
bool | existsChannel (const std::string &channelName) const |
void | existsChannel_async (const AMD_ObserverInterface_existsChannelPtr &amd, const std::string &channelName, const Ice::Current &) const override |
bool | existsDataField (const std::string &channelName, const std::string &datafieldName) const |
void | existsDataField_async (const AMD_ObserverInterface_existsDataFieldPtr &amd, const std::string &channelName, const std::string &datafieldName, const Ice::Current &) const override |
ChannelRegistry | getAvailableChannels (bool includeMetaChannels) |
Retrieve information on all sensory data channels available from the observer. More... | |
void | getAvailableChannels_async (const AMD_ObserverInterface_getAvailableChannelsPtr &amd, bool includeMetaChannels, const Ice::Current &) override |
StringConditionCheckMap | getAvailableChecks () |
Retrieve list of available condition checks. More... | |
void | getAvailableChecks_async (const AMD_ObserverInterface_getAvailableChecksPtr &amd, const Ice::Current &) override |
ChannelRegistryEntry | getChannel (const std::string &channelName) const |
Retrieve information on all sensory data channels available from the observer. More... | |
void | getChannel_async (const AMD_ObserverInterface_getChannelPtr &amd, const std::string &channelName, const Ice::Current &) const override |
ChannelHistory | getChannelHistory (const std::string &channelName, Ice::Float timestepMs, const Ice::Current &c) const |
void | getChannelHistory_async (const AMD_ObserverInterface_getChannelHistoryPtr &amd, const std::string &channelName, Ice::Float timestepMs, const Ice::Current &c) const override |
TimedVariantBasePtr | getDataField (const DataFieldIdentifierBasePtr &identifier, const Ice::Current &c=Ice::emptyCurrent) const |
Retrieve data field from observer. More... | |
void | getDataField_async (const AMD_ObserverInterface_getDataFieldPtr &amd, const DataFieldIdentifierBasePtr &identifier, const Ice::Current &c) const override |
TimedVariantBasePtr | getDatafieldByName (const std::string &channelName, const std::string &datafieldName) const |
void | getDatafieldByName_async (const AMD_ObserverInterface_getDatafieldByNamePtr &amd, const std::string &channelName, const std::string &datafieldName, const Ice::Current &) const override |
TimedVariantBaseList | getDatafieldHistory (const std::string &channelName, const std::string &datafieldName, Ice::Float timestepMs, const Ice::Current &c) const |
void | getDatafieldHistory_async (const AMD_ObserverInterface_getDatafieldHistoryPtr &amd, const std::string &channelName, const std::string &datafieldName, Ice::Float timestepMs, const Ice::Current &c) const override |
DatafieldRefBasePtr | getDataFieldRef (const DataFieldIdentifierBasePtr &identifier) const |
void | getDataFieldRef_async (const AMD_ObserverInterface_getDataFieldRefPtr &amd, const DataFieldIdentifierBasePtr &identifier, const Ice::Current &) const override |
DatafieldRefBasePtr | getDatafieldRefByName (const std::string &channelName, const std::string &datafieldName) const |
void | getDatafieldRefByName_async (const AMD_ObserverInterface_getDatafieldRefByNamePtr &amd, const std::string &channelName, const std::string &datafieldName, const Ice::Current &) const override |
TimedVariantBaseList | getDataFields (const DataFieldIdentifierBaseList &identifiers, const Ice::Current &c) |
Retrieve list of data field from observer. More... | |
void | getDataFields_async (const AMD_ObserverInterface_getDataFieldsPtr &amd, const DataFieldIdentifierBaseList &identifiers, const Ice::Current &c) override |
StringTimedVariantBaseMap | getDatafieldsOfChannel (const std::string &channelName) const |
void | getDatafieldsOfChannel_async (const AMD_ObserverInterface_getDatafieldsOfChannelPtr &amd, const std::string &channelName, const Ice::Current &) const override |
std::string | getObserverName () const |
void | getObserverName_async (const AMD_ObserverInterface_getObserverNamePtr &amd, const Ice::Current &) const override |
ChannelHistory | getPartialChannelHistory (const std::string &channelName, Ice::Long startTimestamp, Ice::Long endTimestamp, Ice::Float timestepMs, const Ice::Current &c) const |
void | getPartialChannelHistory_async (const AMD_ObserverInterface_getPartialChannelHistoryPtr &amd, const std::string &channelName, Ice::Long startTimestamp, Ice::Long endTimestamp, Ice::Float timestepMs, const Ice::Current &c) const override |
TimedVariantBaseList | getPartialDatafieldHistory (const std::string &channelName, const std::string &datafieldName, Ice::Long startTimestamp, Ice::Long endTimestamp, Ice::Float timestepMs, const Ice::Current &c) const |
void | getPartialDatafieldHistory_async (const AMD_ObserverInterface_getPartialDatafieldHistoryPtr &amd, const std::string &channelName, const std::string &datafieldName, Ice::Long startTimestamp, Ice::Long endTimestamp, Ice::Float timestepMs, const Ice::Current &c) const override |
CheckIdentifier | installCheck (const CheckConfiguration &configuration) |
Installs a condition check with the observer. More... | |
void | installCheck_async (const AMD_ObserverInterface_installCheckPtr &amd, const CheckConfiguration &configuration, const Ice::Current &) override |
Observer () | |
void | removeCheck (const CheckIdentifier &id) |
Removes a condition check from the observer. More... | |
void | removeCheck_async (const AMD_ObserverInterface_removeCheckPtr &amd, const CheckIdentifier &id, const Ice::Current &) override |
void | removeFilteredDatafield (const DatafieldRefBasePtr &datafieldRef) |
Removes a previously installed filter. More... | |
void | removeFilteredDatafield_async (const AMD_ObserverInterface_removeFilteredDatafieldPtr &amd, const DatafieldRefBasePtr &datafieldRef, const Ice::Current &) override |
~Observer () | |
Public Member Functions inherited from Component | |
virtual void | componentPropertiesUpdated (const std::set< std::string > &changedProperties) |
Implement this function if you would like to react to changes in the properties. More... | |
void | forceComponentCreatedByComponentCreateFunc () |
forces the flag to be set to true that the object instance was created by the Component::create function More... | |
std::vector< PropertyUserPtr > | getAdditionalPropertyUsers () const |
template<typename PropertyType > | |
Property< PropertyType > | getProperty (const std::string &name) |
template<typename PropertyType > | |
Property< PropertyType > | getProperty (const std::string &name) const |
template<class T > | |
void | getProperty (std::atomic< T > &val, const std::string &name) const |
template<class T > | |
void | getProperty (T &val, const std::string &name) const |
template<class ProxyType > | |
ProxyType | getProxyFromProperty (const std::string &propertyName, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true) |
Get a proxy whose name is specified by the given property. More... | |
template<class ProxyType > | |
void | getProxyFromProperty (ProxyType &proxy, const std::string &propertyName, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true) |
template<class TopicProxyType > | |
TopicProxyType | getTopicFromProperty (const std::string &propertyName) |
Get a topic proxy whose name is specified by the given property. More... | |
template<class TopicProxyType > | |
void | getTopicFromProperty (TopicProxyType &top, const std::string &propertyName) |
void | initializeProperties (const std::string &configName, Ice::PropertiesPtr const &properties, const std::string &configDomain) |
initializes the properties of this component. More... | |
void | injectPropertyDefinitions (PropertyDefinitionsPtr &props) override |
void | offeringTopicFromProperty (const std::string &propertyName) |
Offer a topic whose name is specified by the given property. More... | |
virtual void | preOnConnectComponent () override |
virtual void | preOnInitComponent () override |
bool | usingProxyFromProperty (const std::string &propertyName, const std::string &endpoints="") |
Use a proxy whose name is specified by the given property. More... | |
void | usingTopicFromProperty (const std::string &propertyName, bool orderedPublishing=false) |
Use a topic whose name is specified by the given property. More... | |
Public Member Functions inherited from ManagedIceObject | |
void | enableProfiler (bool enable) |
setProfiler allows setting ManagedIceObject::profiler to a new instance (if the new instance is actually not a null pointer) More... | |
std::string | generateSubObjectName (const std::string &subObjectName) |
Generates a unique name for a sub object from a general name. More... | |
ArmarXManagerPtr | getArmarXManager () const |
Returns the ArmarX manager used to add and remove components. More... | |
ManagedIceObjectConnectivity | getConnectivity () const |
Retrieve connectivity of the object (topcis as well as proxies) More... | |
IceManagerPtr | getIceManager () const |
Returns the IceManager. More... | |
VariantBasePtr | getMetaInfo (const std::string &id) |
StringVariantBaseMap | getMetaInfoMap () const |
std::string | getName () const |
Retrieve name of object. More... | |
Ice::ObjectAdapterPtr | getObjectAdapter () const |
Returns object's Ice adapter. More... | |
ArmarXObjectSchedulerPtr | getObjectScheduler () const |
PeriodicTaskPtr | getPeriodicTask (const std::string &name) |
Profiler::ProfilerPtr | getProfiler () const |
getProfiler returns an instance of armarx::Profiler More... | |
template<class ProxyTarg , class... Args> | |
void | getProxy (const char *name, IceInternal::ProxyHandle< ProxyTarg > &proxy, Args &&...args) |
template<class ProxyType > | |
ProxyType | getProxy (const std::string &name, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true) |
Retrieves a proxy object. More... | |
template<class ProxyTarg , class... Args> | |
void | getProxy (const std::string &name, IceInternal::ProxyHandle< ProxyTarg > &proxy, Args &&...args) |
template<class ProxyTarg , class... Args> | |
void | getProxy (IceInternal::ProxyHandle< ProxyTarg > &proxy, const char *name, Args &&...args) |
template<class ProxyTarg , class... Args> | |
void | getProxy (IceInternal::ProxyHandle< ProxyTarg > &proxy, const std::string &name, Args &&...args) |
Assigns a proxy to proxy . More... | |
Ice::ObjectPrx | getProxy (long timeoutMs=0, bool waitForScheduler=true) const |
Returns the proxy of this object (optionally it waits for the proxy) More... | |
template<class Prx > | |
Prx | getProxy (long timeoutMs=0, bool waitForScheduler=true) const |
template<class ProxyType > | |
void | getProxy (ProxyType &proxy, const char *name, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true) |
Overload to allow using string literals as name (solve ambiguous overload). More... | |
template<class Prx > | |
void | getProxy (Prx &prx, long timeoutMs=0, bool waitForScheduler=true) const |
int | getState () const |
Retrieve current state of the ManagedIceObject. More... | |
template<class TopicProxyType > | |
TopicProxyType | getTopic (const std::string &name) |
Returns a proxy of the specified topic. More... | |
template<class TopicProxyType > | |
void | getTopic (TopicProxyType &topicProxy, const std::string &name) |
Assigns a proxy of the specified topic to topicProxy . More... | |
std::vector< std::string > | getUnresolvedDependencies () const |
returns the names of all unresolved dependencies More... | |
ManagedIceObject (ManagedIceObject const &other) | |
void | offeringTopic (const std::string &name) |
Registers a topic for retrival after initialization. More... | |
void | preambleGetTopic (std::string const &name) |
void | setMetaInfo (const std::string &id, const VariantBasePtr &value) |
Allows to set meta information that can be queried live via Ice interface on the ArmarXManager. More... | |
void | startPeriodicTask (const std::string &uniqueName, std::function< void(void)> f, int periodMs, bool assureMeanInterval=false, bool forceSystemTime=true) |
bool | stopPeriodicTask (const std::string &name) |
bool | unsubscribeFromTopic (const std::string &name) |
Unsubscribe from a topic. More... | |
bool | usingProxy (const std::string &name, const std::string &endpoints="") |
Registers a proxy for retrieval after initialization and adds it to the dependency list. More... | |
void | usingTopic (const std::string &name, bool orderedPublishing=false) |
Registers a proxy for subscription after initialization. More... | |
void | waitForObjectScheduler () |
Waits until the ObjectScheduler could resolve all dependencies. More... | |
void | waitForProxy (std::string const &name, bool addToDependencies) |
Public Member Functions inherited from Logging | |
SpamFilterDataPtr | deactivateSpam (float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const |
disables the logging for the current line for the given amount of seconds. More... | |
MessageTypeT | getEffectiveLoggingLevel () const |
Logging () | |
void | setLocalMinimumLoggingLevel (MessageTypeT level) |
With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set. More... | |
void | setTag (const LogTag &tag) |
void | setTag (const std::string &tagName) |
virtual | ~Logging () |
Public Member Functions inherited from PropertyUser | |
std::vector< std::string > | getComponentProxyNames () |
Ice::PropertiesPtr | getIceProperties () const |
Returns the set of Ice properties. More... | |
template<typename PropertyType > | |
Property< PropertyType > | getProperty (const std::string &name) |
Property creation and retrieval. More... | |
template<typename PropertyType > | |
Property< PropertyType > | getProperty (const std::string &name) const |
Hack to allow using getProperty in const -modified methods. More... | |
template<class T > | |
void | getProperty (std::atomic< T > &val, const std::string &name) const |
template<class T > | |
void | getProperty (T &val, const std::string &name) const |
template<class T > | |
std::vector< T > | getPropertyAsCSV (const std::string &name, const std::string &splitBy=",;", bool trimElements=true, bool removeEmptyElements=true) |
template<class ContainerT > | |
void | getPropertyAsCSV (ContainerT &val, const std::string &name, const std::string &splitBy=",;", bool trimElements=true, bool removeEmptyElements=true) |
PropertyDefinitionsPtr | getPropertyDefinitions () |
Returns the component's property definition container. More... | |
std::vector< std::string > | getSubscribedTopicNames () |
std::vector< std::string > | getTopicProxyNames () |
bool | hasProperty (const std::string &name) |
PropertyUser () | |
virtual void | setIceProperties (Ice::PropertiesPtr properties) |
Sets the Ice properties. More... | |
bool | tryAddProperty (const std::string &propertyName, const std::string &value) |
virtual void | updateIceProperties (const std::map< std::string, std::string > &changes) |
void | updateProperties () |
void | updateProxies (IceManagerPtr) |
~PropertyUser () override | |
Protected Member Functions | |
void | nameValueMapToDataFields (std::string channelName, ::Ice::Float platformPositionX, ::Ice::Float platformPositionY, ::Ice::Float platformRotation) |
Protected Member Functions inherited from Observer | |
template<class AMDPtr , class FReturn , class FOwner , class... FParams, class... Params> | |
void | addWorkerJob (const std::string &name, const AMDPtr &amd, FReturn(FOwner::*fnc)(FParams...) const, const Params &...ps) const |
template<class AMDPtr , class FReturn , class FOwner , class... FParams, class... Params> | |
void | addWorkerJob (const std::string &name, const AMDPtr &amd, FReturn(FOwner::*fnc)(FParams...), const Params &...ps) |
void | addWorkerJob (const std::string &name, std::function< void(void)> &&f) |
void | addWorkerJob (const std::string &name, std::function< void(void)> &&f) const |
void | callAndPassExceptionToAMD (auto &amd, auto f) const |
int | generateId () |
void | maybeOfferChannelAndSetDataFieldsFlatCopy (const std::string &channelName, const std::string &description, const StringVariantBaseMap &datafieldValues, bool triggerFilterUpdate=true) |
void | metaUpdateTask () |
void | offerChannel (std::string channelName, std::string description) |
Offer a channel. More... | |
void | offerConditionCheck (std::string checkName, ConditionCheck *conditionCheck) |
Offer a condition check. More... | |
void | offerDataField (std::string channelName, std::string datafieldName, VariantTypeId type, std::string description) |
Offer a datafield without default value. More... | |
void | offerDataFieldWithDefault (std::string channelName, std::string datafieldName, const Variant &defaultValue, std::string description) |
Offer a datafield with default value. More... | |
bool | offerOrUpdateDataField (std::string channelName, std::string datafieldName, const Variant &value, const std::string &description) |
void | offerOrUpdateDataFieldsFlatCopy (const std::string &channelName, const StringVariantBaseMap &valueMap) |
virtual void | onExitObserver () |
Framework hook. More... | |
virtual void | postWorkerJobs () |
virtual void | preWorkerJobs () |
void | removeChannel (std::string channelName) |
Remove a channel. More... | |
void | removeDatafield (DataFieldIdentifierBasePtr id) |
void | runWorker () |
void | scheduleDatafieldFilterUpdate (const std::string &channelName, const std::string &datafieldName, const VariantBasePtr &value) |
void | setDataField (const std::string &channelName, const std::string &datafieldName, const Variant &value, bool triggerFilterUpdate=true) |
set datafield with datafieldName and in channel channelName More... | |
void | setDataFieldFlatCopy (const std::string &channelName, const std::string &datafieldName, const VariantPtr &value, bool triggerFilterUpdate=true) |
void | setDataFieldsFlatCopy (const std::string &channelName, const std::unordered_map< ::std::string, ::armarx::VariantBasePtr > &datafieldValues, bool triggerFilterUpdate=true) |
void | setDataFieldsFlatCopy (const std::string &channelName, const StringVariantBaseMap &datafieldValues, bool triggerFilterUpdate=true) |
void | updateChannel (const std::string &channelName, const std::set< std::string > &updatedDatafields=std::set< std::string >()) |
Update all conditions for a channel. More... | |
std::set< std::string > | updateDatafieldFilter (const std::string &channelName, const std::string &datafieldName, const VariantBasePtr &value) |
void | updateDatafieldTimestamps (const std::string &channelName, const std::unordered_map< std::string, Ice::Long > &datafieldValues) |
void | updateDatafieldTimestamps (const std::string &channelName, Ice::Long timestamp) |
Protected Member Functions inherited from Component | |
void | addPropertyUser (const PropertyUserPtr &subPropertyUser) |
Add additional property users here that should show up in the application help text. More... | |
Component () | |
Protected default constructor. Used for virtual inheritance. Use createManagedIceObject() instead. More... | |
std::string | getConfigDomain () |
Retrieve config domain for this component as set in constructor. More... | |
std::string | getConfigIdentifier () |
Retrieve config identifier for this component as set in constructor. More... | |
std::string | getConfigName () |
Retrieve config name for this component as set in constructor. More... | |
virtual void | icePropertiesInitialized () |
Protected Member Functions inherited from ManagedIceObject | |
template<class PluginT , class... ParamsT> | |
PluginT * | addPlugin (const std::string prefix="", ParamsT &&...params) |
template<class PluginT , class... ParamsT> | |
void | addPlugin (PluginT *&targ, const std::string prefix="", ParamsT &&...params) |
template<class PluginT , class... ParamsT> | |
void | addPlugin (std::experimental::observer_ptr< PluginT > &targ, const std::string prefix="", ParamsT &&...params) |
Ice::CommunicatorPtr | getCommunicator () const |
std::unique_ptr< ManagedIceObjectPlugin > & | getPluginPointer (std::type_info const &type, std::string const &prefix) |
ManagedIceObject () | |
Protected default constructor. More... | |
virtual void | onDisconnectComponent () |
Hook for subclass. More... | |
virtual void | postOnDisconnectComponent () |
virtual void | postOnExitComponent () |
virtual void | postOnInitComponent () |
virtual void | preOnExitComponent () |
bool | removeProxyDependency (const std::string &name) |
This function removes the dependency of this object on the in parameter name specified object. More... | |
void | setName (std::string name) |
Override name of well-known object. More... | |
void | terminate () |
Initiates termination of this IceManagedObject. More... | |
~ManagedIceObject () override | |
Protected Member Functions inherited from Logging | |
bool | checkLogLevel (MessageTypeT level) const |
const LogSenderPtr & | getLogSender () const |
Retrieve log sender. More... | |
LogSenderPtr | loghelper (const char *file, int line, const char *function) const |
Additional Inherited Members | |
Public Types inherited from ManagedIceObject | |
using | PeriodicTaskPtr = IceUtil::Handle< SimplePeriodicTask< std::function< void(void)> >> |
Static Public Member Functions inherited from Component | |
template<class T , class TPtr = IceInternal::Handle<T>> | |
static TPtr | create (Ice::PropertiesPtr properties=Ice::createProperties(), const std::string &configName="", const std::string &configDomain="ArmarX") |
Factory method for a component. More... | |
Static Public Member Functions inherited from ManagedIceObject | |
static std::string | generateSubObjectName (const std::string &superObjectName, const std::string &subObjectName) |
Generates a unique name for a sub object from a general name and unique name. More... | |
static std::string | GetObjectStateAsString (int state) |
Static Public Attributes inherited from ManagedIceObject | |
static const ManagedIceObjectPtr | NullPtr |
A nullptr to be used when a const ref to a nullptr is required. More... | |
Protected Types inherited from Observer | |
using | ClockT = std::chrono::high_resolution_clock |
using | TimepointT = typename ClockT::time_point |
Static Protected Member Functions inherited from Observer | |
static TimepointT | Now () |
static float | TimeDeltaInMs (TimepointT t0) |
Protected Attributes inherited from Observer | |
std::recursive_mutex | channelsMutex |
std::unique_ptr< Impl > | impl |
Protected Attributes inherited from Logging | |
MessageTypeT | minimumLoggingLevel |
SpamFilterDataPtr | spamFilter |
LogTag | tag |
Observer monitoring platform-related sensor values.
The PlatformUnitObserver allows the installation of conditions on all channel reported by the PlatformUnit. These include current and target position.
The PlatformUnitObserver retrieves its platform configuration via properties. The name must exist in the used Simox robot model file.
Available condition checks are: valid, updated, equals, inrange, approx, larger and smaller.
Definition at line 72 of file PlatformUnitObserver.h.
|
overridevirtual |
Reimplemented from Observer.
Definition at line 116 of file PlatformUnitObserver.cpp.
|
inlineoverridevirtual |
Retrieve default name of component.
Implement this method in each IceManagedObject. The default name of a is used if no name is specified in the factory method.
Reimplemented from Observer.
Definition at line 89 of file PlatformUnitObserver.h.
|
protected |
Definition at line 109 of file PlatformUnitObserver.cpp.
|
overridevirtual |
Framework hook.
Called on first run, after ice setup.
Implements Observer.
Definition at line 61 of file PlatformUnitObserver.cpp.
|
overridevirtual |
Framework hook.
Called once on initialization of the Observer.
Implements Observer.
Definition at line 42 of file PlatformUnitObserver.cpp.
|
override |
|
override |
Definition at line 123 of file PlatformUnitObserver.cpp.
|
override |