学習リモコンで受信
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;
Leave a Reply