More Related Content
Similar to 02 cloocaチュートリアル(gr-sakura)
Similar to 02 cloocaチュートリアル(gr-sakura) (20)
02 cloocaチュートリアル(gr-sakura)
- 12. インスタンスの生成 / 初期化
Controller controller;
void setup_classes(void) {
pinMode(PIN_LED0, OUTPUT);
}
12
1) Model ExplorerからClassDiagramを選択
2) Propertyのbodyhookに記述
bodyhookの中身
インスタンス群を
生成
setup_classes関数が起動時に一回
だけ呼び出されるので
初期化を行う
- 15. ビルド(1) : ランタイムライブラリの
設定
• clooca / MEXU ランタイムライブラリをダウンロード
• https://dl.dropboxusercontent.com/u/6138936/mexu/sakura.zip
• stm.h / stm.cppを動作させる他に必要なランタイムライブラリ
• MEXU.cpp, MEXU.h, main.cpp, main.h
• +α : grsakura.sh, grsakura-inspection.sh
• クラウドコンパイラに上記zipファイルをインポート
• Project_Rootを右クリック→zipファイルインポート
• (モデルによって変化しない)固定部分なので1度のみ実行でOK
15
- 16. ビルド(2) : 生成コードのアップロー
ド
• cloocaでソースコードをダウンロード
• zipファイルがダウンロード出来る
• zipファイル中の stm.h / stm.cpp が生成されたコード
• クラウドコンパイラに上記zipファイルをインポート
• Project_Rootを右クリック→zipファイルインポート
• あとは通常と同様
16
- 18. loop関数のカスタマイズ: SW2の読み出
し
setup関数にpinMode(PIN_SW, INPUT);を追加.
void sw2_polling(void) {
static int button_pushed = 0;
int sw = digitalRead(PIN_SW);
if (sw != button_pushed) {
button_pushed = sw;
if (sw == HIGH) {
extern Controller controller;
controller.sendEvent(Controller_EVENT_pushed);
}
}
}
void loop(void) {
eventManager.execute();
sw2_polling();
}
18
ボタンが押された時にcontrollerに
pushedイベントを送信
- 20. 参考: grsakura.sh (1)
• cloocaで記述したソフトウェアをGR-SAKURAにダウン
ロードするまでを自動化するスクリプト
• Mac OS X上でのみ動作確認済み
• スクリプト中の以下の変数を定義する必要あり
• CLOOCAUSERPASS
• cloocaのユーザ名とパスワードを「:」で区切ったもの
• CLOOCAPROJECTID
• cloocaのプロジェクトID URLから取得
• (次ページに続く)
20
- 21. 参考: grsakura.sh (2)
• スクリプト中の以下の変数を定義する必要あり(続き)
• WEBCOMAPIKEY
• ウェブコンパイラのキー ヘルプから取得
• WEBCOMPROJECTID
• ウェブコンパイラ上のプロジェクトIDgrsakura-inspect.sh を実行して取得
• 例: sh grsakura-inspect.sh Ab7IatdwWUn8wgJV
• {"projects":[{ "id":"15996" , "name":"2013-07-22-test" }]}
• WEBCOMBINID
• ウェブコンパイラ上のsketch.binのオブジェクトID
• grsakura-inspect.sh を実行して取得
• 例: sh grsakura-inspect.sh Ab7IatdwWUn8wgJV 15996
• {"projects":[{ "id":"15996" , "name":"2013-07-22-test" }]}
• {"structure":[{ "id":"985181" , "name":"gr_build" , "type":"1" },{ "id":"985187" ,
"name":"gr_common" , "type":"1" },{ "id":"985247" , "name":"gr_reference_e.html" ,
"type":"2" },{ "id":"985248" , "name":"gr_reference_j.html" , "type":"2" },{ "id":"1019989" ,
"name":"main.cpp" , "type":"2" },{ "id":"1019990" , "name":"main.h" ,
"type":"2" },{ "id":"985250" , "name":"makefile" , "type":"2" },{ "id":"1019991" ,
"name":"MEXU.cpp" , "type":"2" },{ "id":"1019992" , "name":"MEXU.h" ,
"type":"2" },{ "id":"985251" , "name":"sketch.bin" , "type":"2" },{ "id":"1019993" ,
"name":"stm.cpp" , "type":"2" },{ "id":"1041119" , "name":"stm.h" , "type":"2" }]}
21
APIキー
APIキー
APIキー