デバイス情報へのアクセスと表示
このチュートリアルでは、Aravis APIを使用してデバイス情報を取得する方法について学びます。
チュートリアル
必要なモジュールをロード
上記の依存ライブラリが正しくインストールされている場合、以下の方法でAravisのモジュールが読み込み可能です。
from aravis import Aravis
デバイスへのアクセス
これでAravis APIを使用する準備が整いました。まず、ホストマシンに接続されているU3Vデバイスのリス トを更新します。
Aravis.update_device_list()
リストを更新することで、以下のAPIがデバイスの数を返すはずです。
num_device = Aravis.get_n_devices()
num_devices
が 0
の場合、デバイスには以下の問題がある可能性があります。
- デバイスが適切にホストマシンに接続されていない。
- デバイスにWinUSBがインストールされていない(Windows)。スタートアップガイド(Windows)を参照。
- Udevルールファイルが
/etc/udev
に配置されていない(Linux)。スタートアップガイド(Linux)を参照。
デバイス情報へのアクセス
num_device
のデバイスのうち、 i
番目のデバイスにアクセスしてカメラオブジェクトを作成します
。
get_*_feature_value
のAPIを使用してデバイス情報の文字列/整数/浮動小数点数の値を取得できます。
for i in range(num_device):
device = Aravis.Camera.new(Aravis.get_device_id(i)).get_device()
devicemodelname = device.get_string_feature_value("DeviceModelName")
width = device.get_integer_feature_value("Width")
...
del device
一般的なU3Vデバイスで定義された一部のキーの例は、以下の表にリストされています。
フィーチャ名 | 説明 | タイプ |
---|---|---|
DeviceModelName | デバイスの名前 | 文字列 |
Width | センサイメージの幅 | 整数 |
Height | センサイメージの高さ | 整数 |
PayloadSize | センサから転送されるデータのサイズ | 整数 |
PixelFormat | センサイメージデータのピクセルフォーマット | 文字列 |
これらのフィーチャキーとタイプはemvaによるSFNC(Standard Features Naming Convention)で定義
されていますが、一部のデバイスは独自のフィーチャやキーを持っている場合があります。すべてのアクセス可能なフィーチャを知るには、arv-tool-0.8
を使用します。詳細は利用可能なGenICam機能のリストを参照してください。
arv-device-error-quark
がエラーを返す場合:
- デバイスにキーがない(
Not found (1)
):フィーチャキーが正しいか確認してください。詳細は利用可能なGenICam機能の一覧表示を参照。 - タイプが間違っていた(
Not a ArvGcString (0)
またはNot a ArvGcFlaot (0)
):フィーチャタイプが正しいか確認してください。詳細は利用可能なGenICam機能の一覧表示を参照。
値の表示
print("=== device {} information ===========================".format(i))
print("{0:20s} : {1}".format("Device Model Name", devicemodelname))
print("{0:20s} : {1}".format("Width", width))
すべてのget_*_feature_value
の戻り値は文字列です。
クローズ
Aravisの以下の関数を使用すると、メモリリークを防ぐためにリソースが解放されます。
Aravis.shutdown()
Aravis Python APIの代わりに、arv-toolを使用することもできます。詳細はAravisのツールを参照してください。
完全なコード
このチュートリアルで使用される完全なコードはこちらです。