ActDKのコマンド
help
actdk help は actdk のヘルプを表示します。
$ actdk help他のサブコマンドのヘルプの表示もできます。
$ actdk help <subcommand>setup
actdk setup は ActDK の初期設定を行います。
$ actdk setup <TOKEN>Web UI 上で発行したデベロッパトークンを <TOKEN> 引数に指定します。
これにより、ホームディレクトリ配下に.actdkディレクトリが作成されます。
.actdk ディレクトリについて詳細は.actdk ディレクトリのドキュメントを参照下さい。
もし外部サイトへのアクセスにプロキシが必要であれば、http_proxy/https_proxy環境変数を設定した上で actdk コマンドを実行して下さい。
init
actdk init は Actcast アプリケーション用プロジェクトを初期化します。
$ actdk init -i <APP_ID> <APP_NAME>開発 PC にて、以下の手順でプロジェクトを作成します。
$ mkdir <APP_DIR>
$ cd <APP_DIR>
$ actdk init -i <APP_ID> -s <SHORT_DESCRIPTION> <APP_NAME><APP_NAME>- 任意のユニークな名称
- Docker イメージ名の一部として使われるため、小文字、数字、区切り(
.、1 つまたは 2 つの_、1 つ以上の-)のみ使えます。区切りは連続してはならず、先頭または末尾にも使えません。
<APP_ID>- Actcast で発行されたアプリケーション ID
<APP_DIR>- 任意のディレクトリ名
<SHORT_DESCRIPTION>- アプリケーションを表す任意の 1 行説明
- Actcast サービス上ではアプリケーション一覧に表示されます
これにより以下のディレクトリが作成されます。
appmodelincludemanifesto.actdk
各ディレクトリについては プロジェクトディレクトリの構成を参照下さい。
プロジェクトの再初期化
以前作成したプロジェクトを元に始める場合は --derive オプションをつけて初期化することもできます。
$ cp -a <OLD_APP_DIR> <NEW_APP_DIR>
$ cd <NEW_APP_DIR>
$ actdk init --derive -i <APP_ID> -s <SHORT_DESCRIPTION> <APP_NAME>--derive オプションをつけるとスキーマなどのいくつかのファイルは再初期化されないのであるアプリケーションから派生して別のアプリケーションを作るときに使えます。
compile
model ディレクトリ下にある .nnoir をオフラインでコンパイルし、 .so ファイルを作ります。また、 .so ファイルを利用するための C 向けのヘッダファイルと Python 向けのバインディングを生成します。
$ actdk compileこのコマンドで app/libmodel.so 、 app/model.py 、 include/model.h が生成されます。
コンパイルに関しては コンパイラの仕様を参照下さい。
build
actdk build は Actcast アプリケーションをビルドします。
$ actdk build <IDENTIFIER_YOU_LIKE><IDENTIFIER_YOU_LIKE>- リモートデバイス名
このコマンドでは確認用リモートデバイス上でアプリケーションをビルドします。
別途、リリース用にアプリケーションをビルドする際に利用するオプション --release が存在し、
このオプションを付けた時は actdk を動かしている開発環境上でビルドします。
$ actdk build --release通常ビルドとリリースビルドの違い
リモートデバイス上でビルドするかローカルマシン上でビルドするかが異なります。それ以外の違いはありません。 リモートデバイスへのビルド済みイメージの転送は時間がかかるため、リモートデバイス上でビルドする通常ビルドの方が手早く動作確認に至れます。 リリースビルドで作成されたイメージのキャッシュがオンラインビルド時に再利用されるため、リリース用のイメージのテストをしたい場合に有用です。
clean
actdk clean はローカルマシンやリモートデバイス上にある不要なビルド成果物を削除します。
$ actdk clean--all をつけた場合はその他のイメージも削除します。
remote
actdk remote はリモートデバイスの管理をするコマンドグループです。
add
actdk remote add は新しいリモートデバイスを管理下に追加します。
$ actdk remote add <IDENTIFIER_YOU_LIKE>@<REMOTE><IDENTIFIER_YOU_LIKE>- リモートデバイスを区別する任意の名称
<REMOTE>- 作業用に用いるマシンからアクセス可能なホスト名あるいは IP アドレス
list
actdk remote list は管理下にあるリモートデバイスの一覧を表示します。
$ actdk remote listdel
actdk remote del はリモートデバイスを管理から外します。
$ actdk remote del <IDENTIFIER_YOU_LIKE><IDENTIFIER_YOU_LIKE>- リモートデバイスを区別する名称
deploy
actdk deploy は --release オプション付きでビルドしたアプリケーションをリモートデバイスに転送します。
$ actdk deploy <IDENTIFIER_YOU_LIKE><IDENTIFIER_YOU_LIKE>- リモートデバイスを区別する名称
--release オプション付きでビルドしたアプリケーションを動作確認する場合、
actdk deploy により作成したアプリケーションをリモートデバイス上に転送する必要があります。
run
actdk run は作成したアプリケーションをリモートデバイス上で動作させます。
$ actdk run -a <IDENTIFIER_YOU_LIKE>actdk build 時と同様にリリース版を動作確認する場合は --release オプションを付与します。
$ actdk run -a --release <IDENTIFIER_YOU_LIKE><IDENTIFIER_YOU_LIKE>- リモートデバイスを区別する名称
-aにより作成した Actcast アプリケーションの標準出力が作業用 PC の端末に表示されます。
-aを付けない場合、アプリケーションの標準出力を受け取らずコマンドの処理を終了しますが、リモートデバイス上では処理が継続されます。
-aを付けていた場合、C-c で中断するとリモートデバイス上でのアプリケーションは終了します。
アプリが設定に応じて動作を変更できることを確認するため、カレントディレクトリにact_settings.jsonが存在する場合は、actdk runの際にリモートデバイスに転送します。
act_settings.jsonは JSON スキーマファイルsetting_schema.jsonに従う必要があり、actdk run実行時に検査されます。
検査をパスしないとリモートデバイスでの実行は行えません。
-a オプションの下ではアプリの出力が data_schema.json に適合しているか検査をし、適合していなければエラーメッセージを表示します。
この挙動は --no-check-act-log オプションで抑制できます。
validate-json
actdk validate-json は act_settings.json 、 マニフェスト及び各スキーマファイルの検査を行います。
$ actdk validate-jsonactdk run 時に走るバリデーションを単体で動作させます。
photo
actdk photo はデバイスに Take Photo コマンドを送ります。
$ actdk photo
data:image/png;base64,iVBORw0KGgoAAAANS.....QLQ+IAAAAASUVORK5CYII=Take Photo コマンドについて詳細は アプリケーション - Actcast エージェント間通信についてを参照下さい。
stats
actdk stats はリモートデバイス上でのメモリ利用に関する情報を取得します。
$ actdk stats <IDENTIFIER_YOU_LIKE>
CPU 108.84% MEM 33.266MiB / 494.262MiB 6.730%<IDENTIFIER_YOU_LIKE>- リモートデバイスを区別する名称
stop
actdk stop はリモートデバイス上で動作するアプリケーションを終了させます。
$ actdk stop <IDENTIFIER_YOU_LIKE><IDENTIFIER_YOU_LIKE>- リモートデバイスを区別する名称
upload
acdk upload は作成したアプリケーションのビルドイメージと学習済みモデルを Actcast にアップロードしてビルドします。
$ actdk uploadこのときアップロードされるビルドイメージはリリース用のものとなります。
アプリの説明文も同時にアップロードする場合はプロジェクトディレクトリ内に.actdk/long_description.mdというファイルを作成してください。
このファイルにはアプリケーションの詳細説明を Markdown フォーマットで記述します。
コマンド実行後しばらくして、次のような表示が出ればアップロードは成功です。
start uploading
Build ID for Raspberry Pi: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXBuild IDに表示されるのは Actcast から発行されたビルド ID です。
なおアップロード時、-dオプションをつけることで、詳細説明用の Markdown ファイルを明示的に指定することもできます。
$ actdk upload -d <DESCRIPTION_FILE><DESCRIPTION_FILE>- Markdown ファイルのパス
同様に --long-descriptions-dir を指定することで英語以外の言語での説明用の Markdown ファイル群を置いたディレクトリを指定できます。
$ actdk upload -d <DESCRIPTION_FILE> --long-descriptions-dir <DESCRIPTIONS_DIR><DESCRIPTIONS_DIR>- Markdown ファイル群を置いたディレクトリのパス
詳細は プロジェクトディレクトリの構成を参照下さい。
check
actdk check はオンラインビルドのビルド状況を表示します。
$ actdk check statusこれにより、直前のアップロードのビルドステータスを確認できます。 このコマンドが正常に実行されると、次のような表示が出力されます。
Succeeded at 2019-06-07 10:27:26.682066134 UTC先頭のSucceededが現在のビルドステータスで、その後ろにそのステータスになった日時が表示されます。
ビルドステータスには以下の 4 種類が存在します。
- Submitted (ビルド開始待ち)
- Running (ビルド実行中)
- Succeeded (ビルド成功)
- Failed (ビルド失敗)
なお、次のようなコマンドを実行することで、<POS>回前のアップロードのステータスを確認することもできます。
回数として指定できるのは 0〜4 です。
$ actdk check status <POS>あるいはビルド ID を直接指定することで、そのビルドのステータスを確認することもできます。
$ actdk check status <BUILD_ID>generate
act_settings
actdk generate act-settings は setting_schema.json の記述に基き、 actdk run 時に必要になる act_settings.json を生成します。
次のコマンドを実行すると setting_schema.json に記述された各プロパティについて値入力を求められます。そしてそれらの値に基いて act_settings.json が生成されます。
$ actdk generate act-settings--auto-fill オプションを付与した場合は入力を求められず、自動で act_settings.json が生成されます。このときの値は setting_schema.json に設定された default の値か default がなければ type ごとに決められた値( 0 、 "" など)が充てられます。
shell-completion
actdk generate shell-completion は高機能シェルのための補完スクリプトを生成します。
次のコマンドを実行すると現在使用しているシェルに補完のための設定を読み込み、以後のセッションで補完を有効にします。
$ source <(actdk generate shell-completion)シェル起動時に有効にする場合はこのコマンドを .bashrc や .zshrc などのシェルの起動時設定ファイルに記述します。
生成する際に SHELL 環境変数からシェルが推定されますが、 --shell オプションでシェルを指定することも可能です。これはシェルから別のシェルを立ち上げている場合などにで有用です。現在有効なオプションは以下です。
- bash
- elvish
- fish
- powershell
- zsh