...
アプリ画面を開いて、下記の画面が表示されていれば成功です。
...
Pythonモジュールを改変する
SQLiteのコンパイルを実施できました。
次のチュートリアルとして、任意の外部ライブラリを利用する方法を説明します。
ここでは例として、前項で作成したサンプルアプリ「sqlite_app」にPycurlの外部ライブラリを読み込んでみます。
ソースコードをダウンロードする
PyCurlとOpenSSLのソースコードを以下URLからダウンロードしてください。
このチュートリアルでは、pycurl 7.45.2、OpenSSL 1.1.1 を使用します。
ダウンロードするバージョンは、使用する機能に合わせて選択してください。
pycurl 7.45.2
OpenSSL 1.1.1
https://github.com/openssl/openssl/archive/OpenSSL_1_1_1i.tar.gz
ダウンロードしたファイルは、${SDK_DIR}/external/build/sample/docker/docker_volumeディレクトリに配置してください。
コンパイル手順ファイルを更新する
${SDK_DIR}/external/build/sample/docker/docker_volume/module_compile.shファイルに、コンパイル手順を記載します。
下記の内容をコピーしてください。
Code Block |
---|
#!/bin/sh -x
HOME_PATH=/home/docker
OPENSSL_ARCHIVES=openssl-OpenSSL_1_1_1i.tar.gz
OPENSSL_DIR=openssl-OpenSSL_1_1_1i
PYCURL_ARCHIVES=pycurl-7.45.2.tar.gz
PYCURL_DIR=pycurl-7.45.2
apt update
apt install libcurl4-openssl-dev libssl-dev
cd ${HOME_PATH}
tar zxf ${OPENSSL_ARCHIVES}
cd ${OPENSSL_DIR}
./Configure linux-aarch64
make
export PYCURL_SSL_LIBRARY=openssl
export CPPFLAGS=-I${HOME_PATH}/${OPENSSL_DIR}/include/openssl
export LDFLAGS=-L${HOME_PATH}/${OPENSSL_DIR}
## for pycurl
cd ${HOME_PATH}
tar zxf ${PYCURL_ARCHIVES}
cd ${PYCURL_DIR}
python3.7 setup.py --with-openssl --openssl-dir=${HOME_PATH}/${OPENSSL_DIR} build |
コンパイルする
Dockerを用いてsqliteモジュールとPythonモジュールをコンパイルします。
${SDK_DIR}/external/build/sample/docker ディレクトリでDockerを実行してください。
Code Block |
---|
$ docker run --rm -it --name aarch64-ubuntu -v `pwd`/docker_volume:/home/docker compile/ubuntu-rel:0.1 |
${SDK_DIR}/external/build/sample/docker/docker_volumeにコンパイル済みモジュールが作成されます。
AdamAppに配置する
作成されたモジュールを、AdamAppで使用できるように配置します。
チュートリアルではsrc/adamapp-py/sqlite_appを例とします。
PyCurlを配置する
PyCurlライブラリは以下のディレクトリにインストールされています。
${SDK_DIR}/external/build/sample/docker/docker_volume/pycurl-7.45.2/build/lib.linux-aarch64-3.7
pycurl.cpython-37m-aarch64-linux-gnu.so
上記ファイルを、AdamAppソースディレクトリにコピーしてください。
${SDK_DIR}/src/adamapp-py/sqlite_app/python/site-packages
Code Block |
---|
$ cp -R ${SDK_DIR}/external/build/sample/docker/docker_volume/pycurl-7.45.2/build/lib.linux-aarch64-3.7/pycurl.cpython-37m-aarch64-linux-gnu.so ${SDK_DIR}/src/adamapp-py/sqlite_app/python/site-packages |
コピー後のディレクトリ構成は以下のようになります。
${SDK_DIR}/src/adamapp-py/sqlite_app/python/site-packages/pycurl.cpython-37m-aarch64-linux-gnu.so
サンプルアプリをビルドする
サンプルアプリ「sqlite_app」をビルドして、カメラにインストールします。
ビルド方法はSDK同梱のドキュメント「AdamAppDevelopmentManualForIpro_Vx_xx.pdf」の「How to develop AdamApp」を参照してください。
アプリ画面を開いて、下記の画面が表示されていれば成功です。
...
失敗した場合はアプリ画面にアプリ起動失敗を示すメッセージが表示されます。
今後はメッセージ内容やデバッグツールなどを用いて問題を解決し、アプリを作成してください。
チュートリアルは以上となります。