学習リモコンで受信

BUFFALOのPC-OP-RS1を利用してデータを受信してみる(参考:スーの道具箱)。シリアル通信にはDelphi 4用通信コンポーネント(Windows95/98/Me / プログラミング)を使用。

受信してcsvに落とすプログラムhttp://hp.vector.co.jp/authors/VA013135/receive_rc.zip。まだその先の送信作ってないけど。

かなり適当な通信部分。

try
try
ReceiveForm := TReceiveForm.Create(Application);
ReceiveForm.rs232c.portname := COMCombo.Text;

if(not ReceiveForm.rs232c.rsopen)then Raise Exception.Create('error -- open');
if(not ReceiveForm.rs232c.rswritechar(Chr($72)))then Raise Exception.Create('error -- write');
if(not ReceiveForm.rs232c.rsreadchar(c))then Raise Exception.Create('error -- read');
if(c <> Chr($59))then Raise Exception.Create('error -- not Y($59)');
if(ReceiveForm.ShowModal = mrCancel)then Raise Exception.Create('cancel');
if(not ReceiveForm.rs232c.rsreadchar(c))then Raise Exception.Create('error -- read');
if(c <> Chr($53))then Raise Exception.Create('error -- not S($53)');

if(not ReceiveForm.rs232c.rsread(data, 240))then Raise Exception.Create('error -- read');
data[240] := #0;
if(not ReceiveForm.rs232c.rsreadchar(c))then Raise Exception.Create('error -- read');
if(c <> Chr($45))then Raise Exception.Create('error -- not E($45)');
ReceiveForm.rs232c.rsclose;

ListItem := DataListView.Items.Add;
ListItem.Caption := name;
ListItem.SubItems.Add(DataToStr(data));
except
on e: Exception do
MessageDlg(e.Message, mtError, [mbOK], 0);
end;
finally
ReceiveForm.Free;
end;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です