/** * @file KglDeviceEventSink.h * * Copyright (c) 2019 Keyence Corporation. * All rights reserved. * */ #pragma once #include #include #include namespace Keyence { class KglDevice; class KglGenParameter; //------------------------------------------------------------ /** * \~English @brief KglDevice Observer Interface. * \~Japanese @brief KglDeviceオブジェクトのオブザーバ用インターフェースです。 */ class KGLLIB_API KglDeviceEventSink { public: //------------------------------------------------------------ /** * \~English @brief Default constructor. * \~Japanese @brief デフォルトコンストラクタ。 */ KglDeviceEventSink(); //------------------------------------------------------------ /** * \~English @brief Destructor. * \~Japanese @brief デストラクタ。 */ virtual ~KglDeviceEventSink(); //------------------------------------------------------------ /** * \~English @brief Receives the notification of GenICam events. * This is an advanced function for developers familiar with event IDs sent from the camera. * * \~Japanese @brief GenICamイベントの通知を受け取ります。 * この関数はカメラから送信されるイベントIDを認識している開発者向けの高度な機能です。 * * \~English @param [in] pDevice Camera from which notification is sent. * \~Japanese @param [in] pDevice 通知元のカメラ。 * \~English @param [in] eventID Event ID. (Typically camera-specific except when defined as a standard event ID.) * \~Japanese @param [in] eventID イベントID。(一部の標準イベントIDが定義されていますが、通常はカメラに依存します) * \~English @param [in] channel Streaming channel linked with an event. (0xFFFF is used when the event is not linked with any streaming channel.) * \~Japanese @param [in] channel イベントに関連付けられたストリーミングチャネル。(0xFFFFは、イベントがストリーミングチャネルに関連付けられていない場合に使用されます) * \~English @param [in] blockID Streaming block ID linked with an event. (Can be used to link one or more events with blocks received from the camera. 0 is used when the event is not linked with any block.) * \~Japanese @param [in] blockID イベントに関連付けられたストリーミングブロックID。(1つまたは複数のイベントをカメラから受信したブロックとペアリングするために使用できます。イベントがブロックに関連付けられていない場合は0が使用されます) * \~English @param [in] timestamp Timestamp at the time when the event is issued. (0 is used when the camera does not support timestamps.) * \~Japanese @param [in] timestamp イベント発行時点のタイムスタンプ。(カメラがタイムスタンプをサポートしていない場合は0が使用されます) * \~English @param [in] nodenum Number of nodes. * \~Japanese @param [in] nodenum ノード数。 * \~English @param [in] pNode Feature node disabled due to this event. * \~Japanese @param [in] pNode このイベントにより無効になったFeatureノード。 */ virtual void onEventGenICam( const KglDevice* pDevice, const uint16_t eventID, const uint16_t channel, const uint64_t blockID, const uint64_t timestamp, const uint32_t nodenum, const KglGenParameter** pNode); //------------------------------------------------------------ /** * \~English @brief Receives notification that the camera was unexpectedly disconnected. * * \~Japanese @brief カメラが予期せず切断されたという通知を受け取ります。 * * \~English @param [in] pDevice Camera from which notification is sent. * \~Japanese @param [in] pDevice 通知元のカメラ。 */ virtual void onLinkDisconnected( const KglDevice* pDevice); }; }; //end of namespace Keyence