Files
handleaiuinew/env/LMI/include/GoSdk/Tools/GoTool.h
T
2024-05-18 23:53:26 +08:00

222 lines
7.3 KiB
C

/**
* @file GoTool.h
* @brief Declares the base GoTool class.
*
* @internal
* Copyright (C) 2016-2021 by LMI Technologies Inc.
* Licensed under the MIT License.
* Redistributed files must retain the above copyright notice.
*/
#ifndef GO_TOOL_H
#define GO_TOOL_H
#include <GoSdk/GoSdkDef.h>
#include <GoSdk/Tools/GoMeasurements.h>
#include <GoSdk/Tools/GoMeasurement.h>
#include <GoSdk/Tools/GoFeatures.h>
#include <GoSdk/Tools/GoFeature.h>
#include <kApi/Data/kXml.h>
/**
* @class GoTool
* @extends kObject
* @ingroup GoSdk-Tools
* @brief Represents the base tool class.
*/
typedef kObject GoTool;
/**
* Returns the measurement count.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.0.10.27
* @param tool GoTool object.
* @return The measurement count.
*/
GoFx(kSize) GoTool_MeasurementCount(GoTool tool);
/**
* Retrieves the measurement at the given index.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.0.10.27
* @param tool GoTool object.
* @param index The index of the measurement.
* @return The measurement at the given index or kNULL if an invalid index is provided.
*/
GoFx(GoMeasurement) GoTool_MeasurementAt(GoTool tool, kSize index);
/**
* Returns the feature output count.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.6.3.27
* @param tool GoTool object.
* @return The feature output count.
*/
GoFx(kSize) GoTool_FeatureOutputCount(GoTool tool);
/**
* Retrieves the feature output at the given index.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.6.3.27
* @param tool GoTool object.
* @param index The index of the feature output.
* @return The feature output at the given index or kNULL if an invalid index is provided.
*/
GoFx(GoFeature) GoTool_FeatureOutputAt(GoTool tool, kSize index);
/**
* Sets the name of the tool.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.0.10.27
* @param tool GoTool object.
* @param name The name to be set for the tool.
* @return Operation status.
*/
GoFx(kStatus) GoTool_SetName(GoTool tool, const kChar* name);
/**
* Retrieves the name of the tool.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.0.10.27
* @param tool GoTool object.
* @param name Receives the name of the tool.
* @param capacity The maximum capacity of the name array.
* @return Operation status.
*/
GoFx(kStatus) GoTool_Name(GoTool tool, kChar* name, kSize capacity);
/**
* Retrieves the id of the instance of the tool.
*
* @public @memberof GoTool
* @version Introduced in firmware 5.1.1.28
* @param tool GoTool object.
* @return The instance id of the tool.
*/
GoFx(k32s) GoTool_Id(GoTool tool);
/**
* Retrieves the tool type enumeration value of the tool.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.0.10.27
* @param tool GoTool object.
* @return The tool type enumeration value.
*/
GoFx(GoToolType) GoTool_Type(GoTool tool);
/**
* Retrieves the first found instance of a measurement for a given enumeration type.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.0.10.27
* @param tool GoTool object.
* @param type A GoMeasurementType representing the measurement type to find in the given tool.
* @return A measurement object if one is found, otherwise kNULL.
*/
GoFx(GoMeasurement) GoTool_FindMeasurementByType(GoTool tool, GoMeasurementType type);
/**
* Retrieves the instance of a feature output for a given enumeration type.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.6.3.27
* @param tool GoTool object.
* @param type A GoFeatureType representing the feature output type to find in the given tool.
* @return A feature object if one is found, otherwise kNULL. Returns the first found.
*/
GoFx(GoFeature) GoTool_FindFeatureOutputByType(GoTool tool, GoFeatureType type);
/**
* Adds the given measurement to the tool set.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.8.2.76
* @param tool GoTool object.
* @param type The type of the measurement.
* @param isFilterable Indicates whether the measurement can be toggled and filtered;
* @param measurement A pointer to hold a reference to the created measurement (can be null).
* @return Operation status.
*/
GoFx(kStatus) GoTool_AddMeasurement(GoTool tool, kType type, kBool isFilterable, GoMeasurement* measurement);
/**
* [Deprecated]
*
* Adds the given custom measurement to the tool set.
*
* @deprecated
* @public @memberof GoTool
* @version Introduced in firmware 4.8.2.76
* @param tool GoTool object.
* @param type The type of the measurement.
* @param isFilterable Indicates whether the measurement can be toggled and filtered;
* @param measurement A pointer to hold a reference to the created measurement (can be null).
* @return Operation status.
*/
GoFx(kStatus) GoTool_AddExtMeasurement(GoTool tool, kType type, kBool isFilterable, GoExtMeasurement* measurement);
/**
* Removes a measurement at a given index.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.8.2.76
* @param tool GoTool object.
* @param index The index of the measurement to remove.
* @return Operation status.
*/
GoFx(kStatus) GoTool_RemoveMeasurement(GoTool tool, kSize index);
/**
* Removes all measurements for the given tool.
*
* @public @memberof GoTool
* @version Introduced in firmware 4.8.2.76
* @param tool GoTool object.
* @return Operation status.
*/
GoFx(kStatus) GoTool_ClearMeasurements(GoTool tool);
/**
* Adds the given feature output to the tool set.
*
* @public @memberof GoTool
* @version Introduced in firmware 5.1.4.38
* @param tool GoTool object.
* @param type The type of the feature.
* @param featureOutput A pointer to hold a reference to the created feature output (can be null).
* @return Operation status.
*/
GoFx(kStatus) GoTool_AddFeatureOutput(GoTool tool, kType type, GoFeature* featureOutput);
/**
* Removes a feature output at a given index.
*
* @public @memberof GoTool
* @version Introduced in firmware 5.1.4.38
* @param tool GoTool object.
* @param index The index of the feature output to remove.
* @return Operation status.
*/
GoFx(kStatus) GoTool_RemoveFeatureOutput(GoTool tool, kSize index);
/**
* Removes all feature outputs for the given tool.
*
* @public @memberof GoTool
* @version Introduced in firmware 5.1.4.38
* @param tool GoTool object.
* @return Operation status.
*/
GoFx(kStatus) GoTool_ClearFeatureOutputs(GoTool tool);
#include <GoSdk/Tools/GoTool.x.h>
#endif