Sometimes an application enumerates for a specific node, and gets zero results. Aside for the obvious reason where no module implementing this node type is installed, other reasons may occur - a module might be installed but have no license, or a needed hardware device is currently disconnected.
OpenNI enables the application to get a full list of modules that failed to enumerate, and why each one failed. The list of 'failed' modules is obtained by using the xn::EnumerationErrors object.
For example, the following code tries to create a xn::HandsGenerator node, and if enumeration failed, checks all errors:
if (nRetVal == XN_STATUS_NO_NODE_PRESENT)
{
{
XnChar strDesc[512];
}
return (nRetVal);
}
{
return (nRetVal);
}
XN_C_API const XnChar *XN_C_DECL xnGetStatusString(const XnStatus Status)
#define XN_STATUS_OK
Definition: XnStatus.h:36
@ XN_NODE_TYPE_HANDS
Definition: XnTypes.h:135
Definition: XnCppWrapper.h:8459
Definition: XnCppWrapper.h:8434
Iterator Begin() const
Gets an iterator to the first item in an enumeration errors list.
Definition: XnCppWrapper.h:8532
Iterator End() const
Returns an iterator referring to the past-the-end element in an enumeration errors list....
Definition: XnCppWrapper.h:8542
Definition: XnCppWrapper.h:6090
XN_C_API XnStatus XN_C_DECL xnProductionNodeDescriptionToString(const XnProductionNodeDescription *pDescription, XnChar *csResult, XnUInt32 nSize)