JAISDK上ではGigE,USB3,CXP等々、色々なIFのカメラを接続出来ます。
GigEとUSB3のカメラを同時に接続すると、こんな感じ。
カメラがどのIFで接続されているかは、TransportLayer名で 判断出来ます、
ということで、今回はTransportLayer名を取得する方法について調べました。
今回もSimpleImageDisplayのサンプルを使用します、画面にtextBoxを追加し、
TransportLayer名を取得して表示させます。
TransportLayer名の取得
いきなりソースコードですが、はじめの一歩の4.で出てきたSearchButton_Clickで
最後の部分に下記を追加します。
// Get the Transport Layer Name uint iSize = 512; StringBuilder sbTransportLayerName = new StringBuilder(512); Jai_FactoryWrapper.EFactoryError error = Jai_FactoryWrapper.EFactoryError.Success; error = Jai_FactoryWrapper.J_Camera_GetTransportLayerName(myCamera.ItemHandle, sbTransportLayerName, ref iSize); if (Jai_FactoryWrapper.EFactoryError.Success != error) { MessageBox.Show(this, "Error getting transport layer name for " + myCamera.CameraID, "Camera Transport Name Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else textBox1.Text = sbTransportLayerName.ToString();
要はJ_Camera_GetTransportLayerNameでTransportLayer名を取得するだけです、
エラー無く取得出来れば、それを文字列に変換してtextBox1に表示します。
GigEカメラだと、”GEV”と表示されます。
USB3カメラでは、"U3V”と表示されます。
2017/8/1 追記
GitHubGistというのに登録してみました、上記の全ソースを貼ってみるテスト
行番号が付くのは便利ですね、今回追加したのは179~192行目になります。