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純正のスマホアプリがありますけどね。
コメント