OPC-UAの続き。python-opcuaは簡単なアプリでもPythonをインストールする必要があることに問題を感じてopen62541を使ってみようかと思った。
準備としてはCMakeとPythonとVisual Studioをインストール。出来ればgitもあるとよいが必須ではない。この時,Visual StudioはExpressでよい。
また,CMakeはインストーラでインストールしてもよいし,zipファイルを解凍したものでもよい。そして,PythonもWinPythonで構わない。それから,open62541をGitHubからダウンロードしてくる。
CMakeなどをzipファイルから展開していた場合には,コマンドプロンプトを開き以下を実行する。Pathは適宜調整してください。(事前にWinPythonプロンプトからpip install sixを実行しておく必要があるかもしれない)
set "PATH=C:\WinPython-64bit-2.7.13.1Zero\python-2.7.13.amd64;C:\cmake-3.12.0-win32-x86\bin;%PATH%" "C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\VC\Auxiliary\Build\vcvars32.bat"
そのダウンロードしたファイルのフォルダ(zipファイルをダウンロードしたらその展開したフォルダ)へ移動して以下を実行しておく
mkdir build cd build cmake .. -G "Visual Studio 15 2017"
これでソリューションファイルが完成する。なお,出来上がったソリューションファイルを開いてソリューションのビルドを実行すればDebug用のビルドが完了するはず。
Release用のビルドは日本語環境では警告が表示される。標準では,警告をエラーにしてしまうように設定されているのでビルドに失敗する。open62541-objectプロジェクトのプロパティで「C/C++」「警告をエラーとして扱う」を「いいえ(/WX-)」とすれば一応ビルドはできるようになる。
出来上がったopen62541.libファイルはws2_32.libにも依存しているので使用時には注意。
基本的には参考を確認しながら使っていくが,標準のポート番号4840を気にする場合には,例えば以下のようにすれば,4841にポートが切り替わる。
//UA_ServerConfig *config = UA_ServerConfig_new_default(); UA_ServerConfig *config = UA_ServerConfig_new_minimal(4841, NULL);;