/** * @file KglGenParameterArray.h * * Copyright (c) 2019 Keyence Corporation. * All rights reserved. * */ #pragma once #include #include #include namespace Keyence { class KglString; //------------------------------------------------------------ /** * \~English @brief Provides the function to set/get the feature value. For a command-type feature, provides the function to execute the feature. * \~Japanese @brief Feature値のset/get、もしコマンドFeatureであれば、Featureを実行する関数を提供します。 */ class KGLLIB_API KglGenParameterArray { public: //------------------------------------------------------------ /** * \~English @brief Default constructor. * \~Japanese @brief デフォルトコンストラクタ。 */ KglGenParameterArray(); //------------------------------------------------------------ /** * \~English @brief Destructor. * \~Japanese @brief デストラクタ。 */ virtual ~KglGenParameterArray(); //------------------------------------------------------------ /** * \~English @brief Retrieves whether KglGenParameterArray is empty. * \~Japanese @brief KglGenParameterArrayが空か否かを取得します。 * \~English @retval true Empty. * \~Japanese @retval true 空です。 * \~English @retval false Not empty. * \~Japanese @retval false 空ではありません。 */ virtual bool empty() const = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the number of elements of a feature. * \~Japanese @brief Featureの要素数を取得します。 * \~English @return Number of elements of the feature. * \~Japanese @return Featureの要素数。 */ virtual uint32_t size() const = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the feature that corresponds to the specified index. * \~Japanese @brief 指定したインデックスに対応するFeatureを取得します。 * \~English @param [in] idx idx is the position of the element to be retrieved (0 =< idx < size() ) * \~Japanese @param [in] idx 取得する要素の位置(0 =< idx < size() ) * \~English @return Element in the idx-th position (NULL for failure) * \~Japanese @return idx番目の要素(失敗時はNULL) */ virtual KglGenParameter* getAt(uint32_t idx) = 0; //------------------------------------------------------------------------- //FeatureNodeのヘルパー関数 //------------------------------------------------------------ /** * \~English @brief Retrieves KglGenParameter. * \~Japanese @brief KglGenParameterを取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @return KglGenParameter. * \~Japanese @return KglGenParameter。 */ virtual KglGenParameter* getParameter(const KglString& featureName) = 0; //------------------------------------------------------------------------- /** * \~English @brief Retrieves FeatureType. * \~Japanese @brief FeatureTypeを取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @return KglFeatureType. * \~Japanese @return KglFeatureType。 */ virtual KglFeatureType getFeatureType(const KglString& featureName) = 0; //------------------------------------------------------------------------- /** * \~English @brief Retrieves category count. * \~Japanese @brief Categotyの件数を取得します。 * \~English @return Categoty count. * \~Japanese @return Categotyの件数。 */ virtual uint32_t getCategoryCount() const = 0; //------------------------------------------------------------------------- /** * \~English @brief Retrieves KglGenCategory. * \~Japanese @brief KglGenCategoryを取得します。 * \~English @param [in] idx idx is the position of the element to be retrieved (0 =< idx < getCategoryCount() ) * \~Japanese @param [in] idx 取得する要素の位置(0 =< idx < getCategoryCount() ) * \~English @return KglGenCategory. * \~Japanese @return KglGenCategory。 */ virtual KglGenCategory* getCategory(uint32_t idx) = 0; //------------------------------------------------------------------------- /** * \~English @brief Retrieves KglGenCategory. * \~Japanese @brief KglGenCategoryを取得します。 * \~English @param [in] categoryName Category name. * \~Japanese @param [in] categoryName カテゴリ名称 * \~English @return KglGenCategory. * \~Japanese @return KglGenCategory。 */ virtual KglGenCategory* getCategory(const KglString & categoryName) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the value of a feature (Integer). * \~Japanese @brief Feature(Integer)の値を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] val Feature value. * \~Japanese @param [out] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getIntegerValue(const KglString& featureName, int64_t& val) = 0; //------------------------------------------------------------ /** * \~English @brief Sets the value of a feature (Integer). * \~Japanese @brief Feature(Integer)の値を設定します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] val Feature value. * \~Japanese @param [in] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult setIntegerValue(const KglString& featureName, const int64_t val) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the value of a feature (Float). * \~Japanese @brief Feature(Float)の値を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] val Feature value. * \~Japanese @param [out] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getFloatValue(const KglString& featureName, double& val) = 0; //------------------------------------------------------------ /** * \~English @brief Sets the value of a feature (Float). * \~Japanese @brief Feature(Float)の値を設定します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] val Feature value. * \~Japanese @param [in] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult setFloatValue(const KglString& featureName, const double val) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the value of a feature (Enum). * \~Japanese @brief Feature(Enum)の値を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] val Feature value. * \~Japanese @param [out] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getEnumValue(const KglString& featureName, KglString& val) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the value of a feature (Enum). * \~Japanese @brief Feature(Enum)の値を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] val Feature value. * \~Japanese @param [out] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getEnumValue(const KglString& featureName, int64_t& val) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the number of features (EnumEntries). * \~Japanese @brief Feature(EnumEntries)の数を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] entryCount Number of EnumEntries. * \~Japanese @param [out] entryCount EnumEntriesの数。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getEnumEntriesCount(const KglString& featureName, int64_t& entryCount) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the feature (EnumEntries). * \~Japanese @brief Feature(EnumEntries)を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] idx Index (0 <= idx < KglGenParameterArray::getEnumEntriesCount() ) * \~Japanese @param [in] idx インデックス(0 <= idx < KglGenParameterArray::getEnumEntriesCount() ) * \~English @param [out] entry EnumEntries. * \~Japanese @param [out] entry EnumEntries。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getEnumEntry(const KglString& featureName, int64_t idx, const KglGenEnumEntry** entry) = 0; //------------------------------------------------------------ /** * \~English @brief Sets the value of a feature (Enum). * \~Japanese @brief Feature(Enum)の値を設定します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] val Feature value. * \~Japanese @param [in] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult setEnumValue(const KglString& featureName, const KglString& val) = 0; //------------------------------------------------------------ /** * \~English @brief Sets the value of a feature (Enum). * \~Japanese @brief Feature(Enum)の値を設定します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] val Feature value. * \~Japanese @param [in] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult setEnumValue(const KglString& featureName, const int64_t val) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the value of a feature (bool). * \~Japanese @brief Feature(bool)の値を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] val Feature value. * \~Japanese @param [out] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getBooleanValue(const KglString& featureName, bool& val) = 0; //------------------------------------------------------------ /** * \~English @brief Sets the value of a feature (bool). * \~Japanese @brief Feature(bool)の値を設定します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] val Feature value. * \~Japanese @param [in] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult setBooleanValue(const KglString& featureName, const bool val) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the value of a feature (String). * \~Japanese @brief Feature(String)の値を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] val Feature value. * \~Japanese @param [out] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getStringValue(const KglString& featureName, KglString& val) = 0; //------------------------------------------------------------ /** * \~English @brief Sets the value of a feature (String). * \~Japanese @brief Feature(String)の値を設定します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] val Feature value. * \~Japanese @param [in] val Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult setStringValue(const KglString& featureName, const KglString& val) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the value of a feature (Register). * \~Japanese @brief Feature(Register)の値を取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] length Register size. * \~Japanese @param [in] length レジスターサイズ。 * \~English @param [out] pBuffer Feature value. * \~Japanese @param [out] pBuffer Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getRegisterValue(const KglString& featureName, int64_t length, uint8_t* pBuffer) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves the size of a feature (Register). * \~Japanese @brief Feature(Register)のサイズを取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] length Register size. * \~Japanese @param [out] length レジスターサイズ。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult getRegisterLength(const KglString& featureName, int64_t& length) = 0; //------------------------------------------------------------ /** * \~English @brief Sets the value of a feature (Register). * \~Japanese @brief Feature(Register)の値を設定します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [in] length Register size. * \~Japanese @param [in] length レジスターサイズ。 * \~English @param [in] pBuffer Feature value. * \~Japanese @param [in] pBuffer Feature値。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult setRegisterValue(const KglString& featureName, int64_t length, const uint8_t* pBuffer) = 0; //------------------------------------------------------------ /** * \~English @brief Executes a feature (Command). To query whether the execution was successful, use isDoneCommand. * \~Japanese @brief Feature(Command)を実行します。実行が完了したか否かはisDoneCommandを利用して問い合わせてください。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult executeCommand(const KglString& featureName) = 0; //------------------------------------------------------------ /** * \~English @brief Retrieves whether the execution of a feature (Command) is complete. * \~Japanese @brief Feature(Command)の実行が完了したか否かを取得します。 * \~English @param [in] featureName Feature name. * \~Japanese @param [in] featureName Feature名称。 * \~English @param [out] isDone True is set when the execution is complete. * \~Japanese @param [out] isDone 実行完了している場合はtrueが設定されます。 * \~English @retval KGL_ERR_INVALID_PARAMETER The argument is invalid. (Example: Empty feature name) * \~Japanese @retval KGL_ERR_INVALID_PARAMETER 引数が不正です。(例:空のFeature名称) * \~English @retval KGL_DEVICE_NOT_CONNECT Not connected to the camera. * \~Japanese @retval KGL_DEVICE_NOT_CONNECT カメラと接続されていません。 * \~English @retval KGL_TYPE_COMPATIBILITY_ERROR The types do not match. * \~Japanese @retval KGL_TYPE_COMPATIBILITY_ERROR 型が合いません。 * \~English @retval KGL_NOT_FOUND The specified feature cannot be found. * \~Japanese @retval KGL_NOT_FOUND 指定されたFeatureが見つかりません。 * \~English @retval KGL_GENERIC_ERROR An unexpected error has occurred. * \~Japanese @retval KGL_GENERIC_ERROR 予期しないエラーが発生しました。 * \~English @retval KGL_SUCCESS Success. * \~Japanese @retval KGL_SUCCESS 成功。 */ virtual KglResult isDoneCommand(const KglString& featureName, bool& isDone) = 0; private: KglGenParameterArray(const KglGenParameterArray& rhs); KglGenParameterArray& operator=(const KglGenParameterArray& rhs); }; }; //end of namespace Keyence