Aquos LC-45W5をパケットで制御する(続〃)Windows アプリケーション編

C++ Builder CEでLC-45W5をコントロールするよ

まずは外観から

こんな感じの単純なプログラムを作る。一応ネットワークプログラムということになります。”Send”ボタンをクリックするとパケットがAquosへ送出されて、電源がオンになります。、まず部品を配置します。新規プログラムのまっさらなフォームにEdit1,Edit2,Button1,Label1を配置します。IDEの右下のパレットからドラグアンドドロップでフォームに置きます。あ、IdTCPClient1も忘れずに。配置して、初期文字列やボタンのキャプションを設定した状態が、

こんな風にIDEのデザインからは見えます。ロジックは簡単で、というかロジックというほどの流れではないですが。”Send”ボタンがクリックされたら、IP アドレス192.168.0.114のポート10002へ接続し、指定された文字データを投げて、かえってくるステータス文字列を受けて、それをLabel1に表示するだけ。Unit1.cppを以下にまるごと掲載します。エラーチェックはしていません。

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

AnsiString comm = "POWR1   \x0d";

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{

	IdTCPClient1->Host = Edit1->Text;
	IdTCPClient1->Port = StrToInt(Edit2->Text);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::SendClick(TObject *Sender)
{
	TIdBytes recbuf;
	String text;



	// connect
	 IdTCPClient1->Connect();

	// send packet

	IdTCPClient1->IOHandler->Write(comm);

	// parse input

	IdTCPClient1->IOHandler->ReadBytes(recbuf,-1);

	AnsiString response = BytesToString(recbuf,0,20);

	Label1->Caption = response;

	IdTCPClient1->Disconnect();

}
//---------------------------------------------------------------------------

大袈裟ではありますが、アプリケーション化しておけば、ダブルクリック一発で動きますから、できてしまえば便利に使えます。もっとも多機能化すると、

というSharp純正のスマホアプリがありますけどね。

コメント