前のページ:PlusG SMART Solution チュートリアル - サンプルを使った動作確認

目次

目標を確認する。

これから下記のアプリケーションを製作します。

application_vision.png

プロジェクトを新しく作る。

リソースエディターで既存のプロジェクトが開かれている場合、まずはこれを破棄します。[ファイル(F)]メニューを開いて[全てのリソース破棄]をクリックしてください。ツ全てのリソースが削除されます。

resourceeditor_file_clear.png

ツールバーの[新規ダイアログ]ボタンをクリックしてください。プロジェクトにダイアログが追加されます。

resourceeditor_toolbar_newdialog.png

リソースツリーのルートノードをクリックしてください。[プロパティ]タブにアプリケーションのプロパティが表示されます。

resourceeditor_root_property.png

プロパティを次の様に変更してください。

resourceeditor_application_properties.png


プロパティ
NameTutorial

画面を作る。

リソースツリーの[Dialog:Dialog]のプロパティを次の様に変更してください。

resourceeditor_dialog_properties.png


プロパティ
NameTop
TemplateTypeShared
TargetLayoutWidth100
TargetLayoutHeight100

ウィジェットを配置する。

リソースツリーの[Dialog:Top]が選択された状態で[挿入オブジェクト]タブ内の[FRAME]をダブルクリックしてください。

resourceeditor_addobject_frame.png

[Dialog:Top]の下に[Group:FRAME]が追加され、選択されます。プロパティを次の様に変更してください。

プロパティ
Nameframe1
WidthPARENT
HeightPARENT

同様の手順で[Group:FRAME(frame1)]の下に[PICTURE]を追加してプロパティを次の様に変更してください。

resourceeditor_addobject_picture.png


プロパティ
Namepicture1
WidthPARENT
HeightPARENT
Filepict_frame.9.png

[Group:FRAME(frame1)]の下に[LINEAR]を追加してプロパティを次の様に変更してください。

resourceeditor_addobject_linear.png


プロパティ
Namelinear1
WidthPARENT
HeightPARENT
Padding10,20,10,20
AlignCENTER|MIDDLE

[Group:LINEAR(linear1)]の下に[TOGGLE]を2つ追加してプロパティを次の様に変更してください。

resourceeditor_addobject_toggle.png


プロパティ
Namesw1
Height20
Weight1
FileOfftogl70sw_off.9.png
FileOntogl70sw_on.9.png


プロパティ
Namesw2
Height20
Weight1
FileOfftogl70sw_off.9.png
FileOntogl70sw_on.9.png

ウィジェットの動作を設定する。

[Object:TOGGLE(sw1)]の[OnClick]プロパティの▼をクリックしてください。コマンドのリストが表示されます。

resourceeditor_onclick_list.png

"CONDITION"をクリックしてください。[Object:TOGGLE(sw1)]の下に[Command:CONDITION]が追加されます。

resourceeditor_sw1_condition.png

プロパティを次の様に変更してください。

プロパティ
Namesw1

同様に[Object:TOGGLE(sw2)]の[OnClick]プロパティに[CONDITION]を追加して、プロパティを次の様に変更してください。

プロパティ
Namesw2

プロジェクトを保存する。

[ファイル(F)]メニューを開いて[プロジェクトの保存(全てのリソース)]をクリックしてください。

resourceeditor_file_saveproject.png

ダイアログが表示されます。[ファイル名]に"Top"と入力して[保存]ボタンをクリックしてください。

#ref(): File not found: "dialog_save.png" at page "PlusG SMART Solution チュートリアル - アプリケーションの製作"

スケルトンを出力する。

[ファイル(F)]メニューを開いて[スケルトンの作成]をクリックしてください。

resourceditor_file_makeskelton.png

ダイアログが表示されます。以下の操作を行ってください。

  • 出力フォルダに任意のフォルダを入力する。
  • 右側のチェックボックスの全てにチェックを点ける。
  • [すべてのダイアログ]ラジオボタンをクリックして選択する。 操作が終わったら[スケルトン作成]ボタンをクリックしてください。
    makeskeltondialog.png

テキストボックスに結果が表示されます。

makeskeltondialog_after_make.png

スケルトンコードを編集する。

テキストエディターでスケルトン出力フォルダの"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を起動してください。

sweet_shortcut.png

[プロジェクト]メニューを開いて[プロジェクトを開く]をクリックしてください。

sweet_project_open.png

ダイアログが開きます。スケルトン出力フォルダの"Tutorial.slpro"を選択して[開く]ボタンをクリックしてください。

sweet_dialog_openproject_tutorial.png

プロジェクト]メニューを開いて[プロジェクト設定]をクリックしてください。

sweet_menu_project_setting.png

[プロジェクト設定]ダイアログが開きます。各項目をお使いの環境に合わせて変更して[OK]ボタンをクリックしてください。

sweet_dialog_projectsetting.png

ツールバーの[開発機ログイン]をクリックしてください。

sweet_toolbar_logindev.png

ツールバーの[Makefile作成]をクリックしてください。

sweet_toolbar_makemakefile.png

ツールバーの[セルフ]/[クロス]を「セルフ]に、[デバッグ]/[リリース]を[デバッグ]に変更して、[コンパイル]をクリックしてください。

sweet_toolbar_self_debug_compile.png

ビルドが実行されます。
ビルドが正常終了すると[結果出力]タブに「ビルドが正常に終了しました。」と表示されます。

sweet_build_nend.png

ビルドが異常終了すると[結果出力]タブにビルドエラーが表示されます。ソースコードや手順に誤りが無いか確認して修正してください。

実行する。

[開発機コンソール]タブに切り替えてツールバーの[実行]ボタンをクリックしてください。

sweet_toolbar_run.png

アプリケーションが実行されます。
AndroidのPGSMonitorを起動してください。

pgsmonitor.png

メニューを開いて[TCP IPアドレス登録]にLinux PCのIPアドレスを設定してください。

pgsmonitor_ipsetting.png

接続すると先程作成したダイアログが表示されます。左側のトグルをタップしてください。

#ref(): File not found: "pgsmonitor_tutorial_top.png" at page "PlusG SMART Solution チュートリアル - アプリケーションの製作"

Windows PCのSWEETの[開発機コンソール]タブにコマンド受信メッセージが表示されます。

sweet_developconsole_receivedcommand.png

[Ctrl]+[Z]キーを押してください。アプリケーションが一時停止します。

sweet_developconsole_break.png

シェルで"ls"コマンドを実行してください。"sw1"と"sw2"というファイルが作成されています。

$ ls
... sw1 sw2 ...

"cat sw1"コマンドを実行してください。'0'または'1'が表示されます。このファイルはアプリケーションのResourceToDevice関数に記述したコードによりsw1トグルの状態を反映するようになっています。

$ cat sw1
0

実際のアプリケーション開発では、このファイルに代わってデバイスファイルを読み書きする事で、周辺機器の制御ができます。

application_driveimage.png

以上

Last-modified: 2013-07-02 (火) 18:52:42 (3949d)