186 lines
6.6 KiB
C
186 lines
6.6 KiB
C
/**
|
|
* @file GoProfileToolUtils.x.h
|
|
*
|
|
* @internal
|
|
* Copyright (C) 2016-2021 by LMI Technologies Inc.
|
|
* Licensed under the MIT License.
|
|
* Redistributed files must retain the above copyright notice.
|
|
*/
|
|
#ifndef GO_PROFILE_TOOL_UTILS_X_H
|
|
#define GO_PROFILE_TOOL_UTILS_X_H
|
|
|
|
#include <kApi/Data/kXml.h>
|
|
|
|
typedef struct GoProfileRegionClass
|
|
{
|
|
kObjectClass base;
|
|
kObject sensor;
|
|
|
|
kXml xml;
|
|
kXmlItem xmlItem;
|
|
|
|
k64f x;
|
|
k64f z;
|
|
k64f width;
|
|
k64f height;
|
|
} GoProfileRegionClass;
|
|
|
|
kDeclareClassEx(Go, GoProfileRegion, kObject)
|
|
|
|
GoFx(kStatus) GoProfileRegion_Construct(GoProfileRegion* region, kObject sensor, kAlloc allocator);
|
|
GoFx(kStatus) GoProfileRegion_Init(GoProfileRegion region, kType type, kObject sensor, kAlloc alloc);
|
|
GoFx(kStatus) GoProfileRegion_VRelease(GoProfileRegion region);
|
|
|
|
GoFx(kStatus) GoProfileRegion_Read(GoProfileRegion region, kXml xml, kXmlItem item);
|
|
GoFx(kStatus) GoProfileRegion_Write(GoProfileRegion region, kXml xml, kXmlItem item);
|
|
|
|
typedef struct GoProfileFeatureClass
|
|
{
|
|
kObjectClass base;
|
|
kObject sensor;
|
|
|
|
kXml xml;
|
|
kXmlItem xmlItem;
|
|
|
|
GoProfileFeatureType type;
|
|
kBool regionEnabled;
|
|
GoProfileRegion region;
|
|
} GoProfileFeatureClass;
|
|
|
|
kDeclareClassEx(Go, GoProfileFeature, kObject)
|
|
|
|
GoFx(kStatus) GoProfileFeature_Construct(GoProfileFeature* feature, kObject sensor, kAlloc allocator);
|
|
GoFx(kStatus) GoProfileFeature_Init(GoProfileFeature feature, kType type, kObject sensor, kAlloc alloc);
|
|
GoFx(kStatus) GoProfileFeature_VRelease(GoProfileFeature feature);
|
|
|
|
GoFx(kStatus) GoProfileFeature_Read(GoProfileFeature feature, kXml xml, kXmlItem item);
|
|
GoFx(kStatus) GoProfileFeature_Write(GoProfileFeature feature, kXml xml, kXmlItem item);
|
|
|
|
#define GO_PROFILE_LINE_REGION_MAX_FITTING_REGIONS (2) ///< The maximum number of line regions permitted for a profile tool.
|
|
|
|
typedef struct GoProfileLineFittingRegionClass
|
|
{
|
|
kObjectClass base;
|
|
kObject sensor;
|
|
|
|
kXml xml;
|
|
kXmlItem xmlItem;
|
|
|
|
k32u regionCount;
|
|
kBool regionEnabled[GO_PROFILE_LINE_REGION_MAX_FITTING_REGIONS];
|
|
GoProfileRegion regions[GO_PROFILE_LINE_REGION_MAX_FITTING_REGIONS];
|
|
} GoProfileLineFittingRegionClass;
|
|
|
|
kDeclareClassEx(Go, GoProfileLineFittingRegion, kObject)
|
|
GoFx(kStatus) GoProfileLineFittingRegion_Construct(GoProfileLineFittingRegion* lineRegion, kObject sensor, kAlloc allocator);
|
|
GoFx(kStatus) GoProfileLineFittingRegion_Init(GoProfileLineFittingRegion lineRegion, kType type, kObject sensor, kAlloc alloc);
|
|
GoFx(kStatus) GoProfileLineFittingRegion_VRelease(GoProfileLineFittingRegion lineRegion);
|
|
|
|
GoFx(kStatus) GoProfileLineFittingRegion_Read(GoProfileLineFittingRegion lineRegion, kXml xml, kXmlItem item);
|
|
GoFx(kStatus) GoProfileLineFittingRegion_Write(GoProfileLineFittingRegion lineRegion, kXml xml, kXmlItem item);
|
|
|
|
|
|
typedef struct GoProfileEdgeClass
|
|
{
|
|
kObjectClass base;
|
|
kObject sensor;
|
|
|
|
kXml xml;
|
|
kXmlItem xmlItem;
|
|
|
|
GoProfileEdgeType edgeType;
|
|
kBool regionEnabled;
|
|
GoProfileRegion region;
|
|
k64f maxVoidWidth;
|
|
k64f minDepth;
|
|
k64f surfaceWidth;
|
|
k64f surfaceOffset;
|
|
k64f nominalRadius;
|
|
k64f edgeAngle;
|
|
} GoProfileEdgeClass;
|
|
|
|
kDeclareClassEx(Go, GoProfileEdge, kObject)
|
|
|
|
GoFx(kStatus) GoProfileEdge_Construct(GoProfileEdge* profileEdge, kObject sensor, kAlloc allocator);
|
|
GoFx(kStatus) GoProfileEdge_Init(GoProfileEdge profileEdge, kType type, kObject sensor, kAlloc alloc);
|
|
GoFx(kStatus) GoProfileEdge_VRelease(GoProfileEdge profileEdge);
|
|
|
|
GoFx(kStatus) GoProfileEdge_Read(GoProfileEdge edge, kXml xml, kXmlItem item);
|
|
GoFx(kStatus) GoProfileEdge_Write(GoProfileEdge edge, kXml xml, kXmlItem item);
|
|
|
|
/**
|
|
* @deprecated Use GoProfileLineFittingRegion instead
|
|
* @brief Represents a profile line region used in various profile tools.
|
|
*/
|
|
#define GoProfileLineRegion GoProfileLineFittingRegion
|
|
|
|
GoFx(kStatus) GoProfileLineRegion_Construct(GoProfileLineRegion* lineRegion, kObject sensor, kAlloc allocator);
|
|
GoFx(kStatus) GoProfileLineRegion_Init(GoProfileLineRegion lineRegion, kType type, kObject sensor, kAlloc alloc);
|
|
GoFx(kStatus) GoProfileLineRegion_VRelease(GoProfileLineRegion lineRegion);
|
|
|
|
GoFx(kStatus) GoProfileLineRegion_Read(GoProfileLineRegion lineRegion, kXml xml, kXmlItem item);
|
|
GoFx(kStatus) GoProfileLineRegion_Write(GoProfileLineRegion lineRegion, kXml xml, kXmlItem item);
|
|
|
|
/**
|
|
* @deprecated Use GoProfileLineFittingRegion instead
|
|
* Returns the number of regions.
|
|
*
|
|
* @public @memberof GoProfileLine
|
|
* @version Introduced in firmware 4.0.10.27
|
|
* @param lineRegion GoProfileLineRegion object.
|
|
* @return The region count.
|
|
*/
|
|
GoFx(k32u) GoProfileLineRegion_RegionCount(GoProfileLineRegion lineRegion);
|
|
|
|
/**
|
|
* @deprecated Use GoProfileLineFittingRegion instead
|
|
* Sets the number of regions in use.
|
|
*
|
|
* @public @memberof GoProfileLine
|
|
* @version Introduced in firmware 4.7.11.65
|
|
* @param lineRegion GoProfileLineRegion object.
|
|
* @param count number of regions configured
|
|
* @return Operation status.
|
|
*/
|
|
GoFx(kStatus) GoProfileLineRegion_SetRegionCount(GoProfileLineRegion lineRegion, kSize count);
|
|
|
|
/**
|
|
* @deprecated Use GoProfileLineFittingRegion instead
|
|
* Gets the profile region based on the given index.
|
|
*
|
|
* @public @memberof GoProfileLine
|
|
* @version Introduced in firmware 4.0.10.27
|
|
* @param lineRegion GoProfileLineRegion object.
|
|
* @param index The index of the profile region to return.
|
|
* @return The profile region.
|
|
* @see GoProfileLineRegion_RegionCount
|
|
*/
|
|
GoFx(GoProfileRegion) GoProfileLineRegion_RegionAt(GoProfileLineRegion lineRegion, kSize index);
|
|
|
|
/**
|
|
* @deprecated Use GoProfileLineFittingRegion instead
|
|
* Enables the region.
|
|
*
|
|
* @public @memberof GoProfileRegion
|
|
* @version Introduced in firmware 4.4.4.14
|
|
* @param lineRegion GoProfileLineRegion object.
|
|
* @param index The region index of which to modify.
|
|
* @param enable kTRUE to use the region, kFALSE otherwise.
|
|
* @return Operation status.
|
|
*/
|
|
GoFx(kStatus) GoProfileLineRegion_EnableRegionAt(GoProfileLineRegion lineRegion, kSize index, kBool enable);
|
|
|
|
/**
|
|
* @deprecated Use GoProfileLineFittingRegion instead
|
|
* Indicates whether the region is enabled.
|
|
*
|
|
* @public @memberof GoProfileLineRegion
|
|
* @version Introduced in firmware 4.4.4.14
|
|
* @param lineRegion GoProfileLineRegion object.
|
|
* @param index The region index to retrieve the enabled state from.
|
|
* @return kTRUE if the region is enabled and kFALSE otherwise.
|
|
*/
|
|
GoFx(kBool) GoProfileLineRegion_RegionEnabledAt(GoProfileLineRegion lineRegion, kSize index);
|
|
|
|
#endif
|