******************************************************************************
SentechSDK Linux version 1.0.5
(C) 2018 OMRON SENTECH CO., LTD.

クイックスタート
目次：
* 概要
* インストール手順とビューワーアプリケーションの実行
* インストール結果
* アンインストール手順
* サンプルコードビルドや実行
* 注意項目

詳細情報はSDKのドキュメントを参照ください：
	/インストールパス/share/doc/manual-ja/main.html

******************************************************************************


******************************************************************************
* 概要
******************************************************************************
ファイル：
- SentechSDK-1.0.5-CentOS7-x86_64.tgz: 
  動作確認済みOS：CentOS 7.3, Fedora 26, Fedora 28 (x86_64)
- SentechSDK-1.0.5-Debian9-x86_64.tgz: 
  動作確認済みOS：Debian 9.4 (x86_64)
- SentechSDK-1.0.5-Ubuntu1604-x86_64.tgz: 
  動作確認済みOS：Ubuntu 16.04 (x86_64)
- SentechSDK-1.0.5-Ubuntu1804-x86_64.tgz:
  動作確認済みOS：Ubuntu 18.04 (x86_64)
- SentechSDK-1.0.5-Raspbian9-armv7l.tgz:
  動作確認済みOS：Raspbian 9 (Raspberry PI3)
- SentechSDK-1.0.5-Ubuntu1604-aarch64.tgz:
  動作確認済みOS：Ubuntu 16.04 (NVidia Jetson TX1 Tegra Aarch64)


******************************************************************************
* インストール手順とビューワーアプリケーションの実行 （事例はUbuntu1604-x86_64場合）
******************************************************************************
注意：旧バージョンのSentechSDKがインストールされている場合、必ずその旧バージョンの
　　　アンインストールスクリプトを実行ください。
      $ sudo bash -c /opt/sentech/bin/stuninstall.sh

1. tgzファイルを解凍します：
$ tar xf SentechSDK-1.0.5-Ubuntu1604-x86_64.tgz

2. インストーラを実行します（スーパーユーザーのパスワードが必要）。デフォルトのインストールパスは/opt/sentechです。
$ ./SentechSDK-1.0.5-Ubuntu1604-x86_64-install.run <Parameters>
<Parameters>はオプショナルです。 
  --accept :ソフトウェア利用許諾契約を自動で同意します。
  -- "-y -p /install/path" : -y や-p 両方でも利用可能：
      "-y"                 : インストール中の全質問の解答は自動的に「はい」にします。
      "-p /install/path"   : インストールパスは/install/pathに設定します。
デフォールトインストールコマンド例：
$ ./SentechSDK-1.0.5-Ubuntu1604-x86_64-install.run
自動で全質問の回答は「はい」、又インストールパスは/opt/sentechに設定する場合：
$ ./SentechSDK-1.0.5-Ubuntu1604-x86_64-install.run --accept -- "-y -p /opt/my-install-path"

3. 環境変数の設定（STAPI_ROOT_PATH, GENICAM_GENTL64_PATHなど):
$ source /opt/sentech/.stprofile
※上記コマンドはログインスクリプト(例：$HOME/.bashrcなど)に追加することを推奨します。
※グローバルで全てのユーザーに適用したい場合はスーパーユーザーで/etc/profile.d/stprofile.sh へ/opt/sentech/.stprofileをコピーください：
　$ sudo cp /opt/sentech/.stprofile /etc/profile.d/stprofile.sh
※サンプルコードコンパイルや実行時(ビューワー含む)、STAPI_ROOT_PATHやGENICAM_GENTL64_PATHの環境変数が
　必要となります。
	STAPI_ROOT_PATHはインストールパス。デフォルトは/opt/sentech
	GENICAM_GENTL64_PATHはGenTLのctiファイルのディレクトリ：$STAPI_ROOT_PATH/lib:$GENICAM_GENTL64_PATH

4. OSパラメータチューニング(ネットワーク：MTU、戻り経路フィルタ、パケットバッファ。USB: USBバッファ）：
ネットワーク：
$ /opt/sentech/bin/setnetwork.sh 
又はネットワークインタフェース名が既知の場合：
$ /opt/sentech/bin/setnetwork.sh　＜インタフェース名＞
USB:
$ /opt/sentech/bin/setusb.h

※OSパラメータチューニングは再起動後無効になります。
※OSパラメータチューニングの詳細はトラブルシュート(troubleshoot-ja.txt)を参照ください。

5. ビューワーアプリケーションを実行します
$ /opt/sentech/bin/StViewer
※環境変数を必ず設定してください。


******************************************************************************
* インストール結果
******************************************************************************
以下の構成で必要なファイルがインストールされます。
/etc/
    |-./udev/rules.d/30-stcam.rules                                 udevの設定

${STAPI_ROOT_PATH}/
                  |-./.stprofile                                    環境変数の設定
                  |-./bin/
                  |      |-./setnetwork.sh                          ネットワークパラメーターチューニング
                  |      |-./setusb.sh                              USBパラメーターチューニング
                  |      |-./stuninstall.sh                         アンインストールスクリプト
                  |      |-./StViewer                               ビューワーアプリケーション
                  | 
                  |-./lib/
                  |      |-./GenICam/*.so                           GenICamライブラリ
                  |      |-./libStApi_TL.*                          StApiのTLライブラリ
                  |      |-./libStApi_IP.*                          StApiの画像処理ライブラリ
                  |      |-./libStApi_GUI_qt.*                      StApiのQtベースのGUIライブラリ
                  |      |-./libstgentl.cti                         OMRON SENTECH GenTLのctiファイル
                  |      |-./libusb*                                usbライブラリ
                  |
                  |-./include/
                  |          |-./GenICam/*                          開発用GenICamのインクルードファイル
                  |          |-./StApi/*                            開発用StApiのインクルードファイル
                  |
                  |-./share/
                           |-./doc/*                                クイックガイド、トラブルシュート、SDKのドキュメント
                           |-./sample/C++/*                         サンプルコード
                           |-./thirdparties/*                       サードパティー関連ライセンス
                  

******************************************************************************
* アンインストール手順
******************************************************************************
- .stprofileの環境変数は手動でログインスクリプトなどに追加した場合は、手動で編集、削除してください。
- アンインストールスクリプトを実行すると全てのインストールパスの中のファイルやディレクトリを削除します。
  /etc/udev/rules.d/30-stcam.rulesも削除します。
  アンインストールスクリプトの実行：
   $ sudo bash -c /opt/sentech/bin/stuninstall.sh
   
******************************************************************************
* サンプルコードビルドや実行
******************************************************************************
サンプルコードをビルドする際に必ず環境変数を設定してください。設定方法は上記のインストール手順3を参照ください。
サンプルコードをビルドするために、GNU gcc-c++やmakeなどの開発ツールが必要となります。Linux OSをインストールする際に
標準的なパケージを設定していれば、別途インストールする必要はありません。別途インストールする場合は以下を実行してください：
- CentOS/Fedora: $ sudo yum install gcc gcc-c++ make 
- Ubuntu/Debian: $ sudo apt-get install build-essential

※OpenCVが必要なサンプルコードが含まれています。OpenCVがない場合、該当サンプルコードのビルドをスキップします。
  OpenCVのインストール：
   - CentOS/Fedora: $ sudo yum install libopencv-dev
   - Ubuntu/Debian：$ sudo apt-get install libopencv-dev
   また、OpenCVに関してはhttp://www.opencv.orgを参照ください

サンプルコードのビルド仕方:
・Make経由
・CMake経由(CMake 3.2以降)
・qmake (QtのSDKを必要とするサンプルコードのみ)
※ビルド中にトラブルなどが発生した場合はtroubleshoot-ja.txtを参照ください。

---------------------------------------------------------
・Make経由：
---------------------------------------------------------
1. 結果フォルダを作成します：
$ mkdir ~/samplebuild
$ cd ~/samplebuild

2. Makeを実行します（QtのSDKを必要としないサンプルコードを全てビルドする）：
$ make --file=$STAPI_ROOT_PATH/share/sample/C++/Makefile
※1サンプルコードのみビルドする例： 
   $ make Grab --file=$STAPI_ROOT_PATH/share/sample/C++/Makefile
   又は：
   ソースコードをコピーして、Makeを実行します：
   $ cp -R $STAPI_ROOT_PATH/share/sample/C++/Grab ~/
   $ cd ~/Grab
   $ make

3. 実行：
ビルド結果（実行できるファイル）は結果フォルダにあります。実行の例：
$ ./Grab

---------------------------------------------------------
・CMake 3.2以降経由：
---------------------------------------------------------
1. 結果フォルダを作成します：
$ mkdir ~/samplebuild
$ cd ~/samplebuild

2. CMakeを実行します（QtのSDKを必要としないサンプルコードを全てビルドする）：
$ cmake $STAPI_ROOT_PATH/share/sample/C++
又はLinux OSにより
$ cmake3 $STAPI_ROOT_PATH/share/sample/C++
※1サンプルコードのみビルドする例： $ cmake $STAPI_ROOT_PATH/share/sample/C++/Grab

3. Makeを実行します：
$ make

4. 実行：
ビルド結果（実行できるファイル）は結果フォルダに各サンプルのフォルダの中です。実行の例：
$ cd Grab
$ ./Grab
※1サンプルコードのみビルドするときは、ビルド結果(実行できるファイル)は結果フォルダにあります。

---------------------------------------------------------
・qmake (QtのSDKを必要とするサンプルコードのみ)
---------------------------------------------------------
QtのSDKのインストールはQtウェブサイトでインストーラをダウンロードする(推奨)かLinuxのパッケージレポジトリでダウンロードすることが出来ます。Linuxのパッケージレポジトリの場合は下記の通りです。
- CentOS/Fedora: $ sudo yum install qt5-qtbase-devel.x86_64
- Ubuntu/Debian: $ sudo apt-get install qt5-default qtcreator
また、Qtに関してはhttp://doc.qt.io/qt-5/linux.htmlを参照ください。

Qt Creatorで*.proファイルを開き、ビルドしてください。
コンソールでビルドする場合は、qmakeを利用します。例：
$ mkdir ~/StViewer
$ cd ~/StViewer
ディストリビューションにより
$ qmake $STAPI_ROOT_PATH/share/sample/C++/StViewerQt/StViewer
或いは
$ qmake-qt5 $STAPI_ROOT_PATH/share/sample/C++/StViewerQt/StViewer
そして：
$ make
実行：
$ ./StViewer

******************************************************************************
* 注意項目
******************************************************************************
・USB3Visionカメラ：
　- 弊社のV4L2のドライバをインストールされた場合は、V4L2をアンインストールするか、
    そのモジュールをアンロードすることが必要となります。
    V4L2のモジュールがロードされた場合、画像を取得することができません。
  - NVIDIA Jetson TX1上で、データ取得中でカメラが取り外されると、USBホストコントローラーが
    エラーになる可能性があります。
    カメラの再接続ではUSBデバイスの認識が出来なくなります。OSの再起動が必要です。
