3. f3.js コマンドラインツール

3. f3.js コマンドラインツール

この記事を読み終えると、f3.jsの開発に便利なコマンドラインツールを使ってスムーズにIoTコンテンツを開発できるようになります。f3.jsのダウンロードページに書いてある内容を、さらに詳しく説明したページです。

3-1. f3.js コマンドラインツールの概要

f3.jsを使ったIoTコンテンツの開発に際しては、次のような繰り返し操作が発生する。

  1. Web上のインタフェースで筐体設計のプレビューを行い、
  2. それから実行ファイルをダウンロードしてIntel Edisonに転送し、
  3. 実行してみてバグがあったらWeb上のインタフェースに戻る…

実際には、1.の筐体設計が落ち着いたら2.以降でソフトウェアを作り込みたいというケースがほとんどで、そのような場合にはわざわざ3.でWeb上のインタフェースに戻るのではなく、ソースコードをローカルもしくは実機上で編集するニーズが生じる。

これに対応できるのがf3.js コマンドラインツールで、ローカルで編集した実行ファイルをWebインタフェースを使わずf3js.org上にすぐ保存(f3-projects save)したり、実行ファイルをIntel Edisonに転送(f3-projects install)したり、Intel EdisonにSSHログイン(f3-projects exec)したり、といった便利な機能が実装されている。

3-2. f3.js コマンドラインツールのインストール

もしNode.jsがインストールされていない場合は、次の記事などを参照してnodeコマンドやnpmコマンドを有効にする。

そのうえで、次のコマンドを実行することでf3.jsの一部の機能にコマンドラインでアクセスできるようになる。

npm install f3js-cli -g

3-3. 共通オプション

これから紹介するすべてのコマンドには共通オプションがある。

-h, --help
ヘルプを表示する
-V, --version
バージョン番号を表示する
-t, --token [access token]
f3js.orgにアクセスする際に利用するアクセストークンを指定する
-p, --platform [platform path]
使っているマイコンや小型コンピュータの情報を指定する
-j, --json
出力をすべてJSON形式に統一する
-C, --clear
保存されているアクセストークンとマイコンや小型コンピュータの情報を削除する

とくに -t, --token-p, --platform で指定した内容は自動的に ~/.f3js-cli に保存され、次回以降はこれらのオプションを指定しなくてもその値が自動的に使われる。

3-4. f3-users コマンド

ユーザ情報を取得できる。アクセストークンを指定しないと null が返る。

f3-users get -t あなたのアクセストークン

3-5. f3-projects コマンド

IoTコンテンツのダウンロードや保存、Intel Edisonへの転送、Intel Edison上でのコマンド実行などができる。

# IoTコンテンツのダウンロード
f3-projects download 182

# IoTコンテンツのダウンロードとフォルダへの展開
f3-projects download 182 -e

# IoTコンテンツの保存
cd f3js-node-300
f3-projects save -t あなたのアクセストークン

# IoTコンテンツの筐体レイアウトをPDFでダウンロード
f3-projects render -t あなたのアクセストークン

# IoTコンテンツのIntel Edisonへのインストール
# (デフォルトでは自動起動する ~/.node_app_slot へインストールされる)
f3-projects install . -p edison://root:password@192.168.10.100

# IoTコンテンツの、Intel Edison上の指定したパスへのインストール
f3-projects install . -p edison://root:password@192.168.10.100:/home/root/test

# Intel Edisonでのコマンド実行
# (以前 -p 付きで何らかのコマンドを実行したことがあれば -p は指定不要)
f3-projects exec -c uptime

# Intel EdisonへのSSHログイン
# (シェルとしては不完全; タブでの補完ができない、viは実行できない、などの制限あり)
f3-projects exec