|
前のページ:PlusG SMART Solution チュートリアル - サンプルを使った動作確認 目次 †目標を確認する。 †これから下記のアプリケーションを製作します。 プロジェクトを新しく作る。 †リソースエディターで既存のプロジェクトが開かれている場合、まずはこれを破棄します。[ファイル(F)]メニューを開いて[全てのリソース破棄]をクリックしてください。ツ全てのリソースが削除されます。 ツールバーの[新規ダイアログ]ボタンをクリックしてください。プロジェクトにダイアログが追加されます。 リソースツリーのルートノードをクリックしてください。[プロパティ]タブにアプリケーションのプロパティが表示されます。 プロパティを次の様に変更してください。
画面を作る。 †リソースツリーの[Dialog:Dialog]のプロパティを次の様に変更してください。
ウィジェットを配置する。 †リソースツリーの[Dialog:Top]が選択された状態で[挿入オブジェクト]タブ内の[FRAME]をダブルクリックしてください。 [Dialog:Top]の下に[Group:FRAME]が追加され、選択されます。プロパティを次の様に変更してください。
同様の手順で[Group:FRAME(frame1)]の下に[PICTURE]を追加してプロパティを次の様に変更してください。
[Group:FRAME(frame1)]の下に[LINEAR]を追加してプロパティを次の様に変更してください。
[Group:LINEAR(linear1)]の下に[TOGGLE]を2つ追加してプロパティを次の様に変更してください。
ウィジェットの動作を設定する。 †[Object:TOGGLE(sw1)]の[OnClick]プロパティの▼をクリックしてください。コマンドのリストが表示されます。 "CONDITION"をクリックしてください。[Object:TOGGLE(sw1)]の下に[Command:CONDITION]が追加されます。 プロパティを次の様に変更してください。
同様に[Object:TOGGLE(sw2)]の[OnClick]プロパティに[CONDITION]を追加して、プロパティを次の様に変更してください。
プロジェクトを保存する。 †[ファイル(F)]メニューを開いて[プロジェクトの保存(全てのリソース)]をクリックしてください。 ダイアログが表示されます。[ファイル名]に"Top"と入力して[保存]ボタンをクリックしてください。 #ref(): File not found: "dialog_save.png" at page "PlusG SMART Solution チュートリアル - アプリケーションの製作" スケルトンを出力する。 †[ファイル(F)]メニューを開いて[スケルトンの作成]をクリックしてください。 ダイアログが表示されます。以下の操作を行ってください。
テキストボックスに結果が表示されます。 スケルトンコードを編集する。 †テキストエディターでスケルトン出力フォルダの"TutorialDialogTop.h"を開いて以下の箇所を改訂/追記してください。 24行目付近 void ResourceToDevice(); ↓ void ResourceToDevice(PGJsonObject*); テキストエディターでスケルトン出力フォルダの"TutorialDialogTop.cpp"を開いて以下の箇所を改訂/追記してください。 3行目付近 (なし) ↓ #include <fcntl.h> 40行目付近、OnInit 関数内 ResourceToDevice(); ↓ //ResourceToDevice(); 87行目付近、OnCondition 関数内 ResourceToDevice(); ↓ //ResourceToDevice(); 97行目付近、OnUpdate(PGJsonObject*,PGJsonObject*, const SGString) 関数内 PGDialog::OnUpdate(to,from,sessionid); ↓ PGDialog::OnUpdate(to,from,sessionid); ResourceToDevice(to); 155行目付近、ResourceToDevice() 関数定義 ResourceToDevice() ↓ ResourceToDevice(PGJsonObject* to) 157行目付近、ResourceToDevice() 関数内 (なし) ↓ SGString name = to->GetValue("Name").GetString(); SGString attr = to->GetValue("Attr").GetString(); cout << "\n ResourceToDevice() " << "Name:" << name << " Attr:" << attr << endl; if(name == "sw1"){ char c = '?'; if(attr == "ON"){ c = '1'; } else{ c = '0'; } int fd = open("./sw1", O_WRONLY | O_CREAT, 0644); if(fd >= 0){ int l = write(fd, &c, sizeof(c)); if(l > 0){ } else{ perror("write"); } close(fd); } } else if(name == "sw2"){ char c = '?'; if(attr == "ON"){ c = '1'; } else{ c = '0'; } int fd = open("./sw2", O_WRONLY | O_CREAT, 0644); if(fd >= 0){ int l = write(fd, &c, sizeof(c)); if(l > 0){ } else{ perror("write"); } close(fd); } } ビルドする。 †SWEETを起動してください。 [プロジェクト]メニューを開いて[プロジェクトを開く]をクリックしてください。 ダイアログが開きます。スケルトン出力フォルダの"Tutorial.slpro"を選択して[開く]ボタンをクリックしてください。 プロジェクト]メニューを開いて[プロジェクト設定]をクリックしてください。 [プロジェクト設定]ダイアログが開きます。各項目をお使いの環境に合わせて変更して[OK]ボタンをクリックしてください。 ツールバーの[開発機ログイン]をクリックしてください。 ツールバーの[Makefile作成]をクリックしてください。 ツールバーの[セルフ]/[クロス]を「セルフ]に、[デバッグ]/[リリース]を[デバッグ]に変更して、[コンパイル]をクリックしてください。 ビルドが実行されます。 ビルドが異常終了すると[結果出力]タブにビルドエラーが表示されます。ソースコードや手順に誤りが無いか確認して修正してください。 実行する。 †[開発機コンソール]タブに切り替えてツールバーの[実行]ボタンをクリックしてください。 アプリケーションが実行されます。 メニューを開いて[TCP IPアドレス登録]にLinux PCのIPアドレスを設定してください。 接続すると先程作成したダイアログが表示されます。左側のトグルをタップしてください。 #ref(): File not found: "pgsmonitor_tutorial_top.png" at page "PlusG SMART Solution チュートリアル - アプリケーションの製作" Windows PCのSWEETの[開発機コンソール]タブにコマンド受信メッセージが表示されます。 [Ctrl]+[Z]キーを押してください。アプリケーションが一時停止します。 シェルで"ls"コマンドを実行してください。"sw1"と"sw2"というファイルが作成されています。 $ ls ... sw1 sw2 ... "cat sw1"コマンドを実行してください。'0'または'1'が表示されます。このファイルはアプリケーションのResourceToDevice関数に記述したコードによりsw1トグルの状態を反映するようになっています。 $ cat sw1 0 実際のアプリケーション開発では、このファイルに代わってデバイスファイルを読み書きする事で、周辺機器の制御ができます。 以上 |