OpenCores
URL https://opencores.org/ocsvn/cheap_ethernet/cheap_ethernet/trunk

Subversion Repositories cheap_ethernet

[/] [cheap_ethernet/] [trunk/] [FPGAUDP/] [main.pas] - Rev 3

Compare with Previous | Blame | View Log

unit main;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdUDPClient, IdBaseComponent, IdComponent, IdUDPBase,
  IdUDPServer, IdSocketHandle, Math, IdTCPServer, IdTCPConnection,
  IdTCPClient;
 
type
  TForm1 = class(TForm)
    IdUDPServer1: TIdUDPServer;
    Memo1: TMemo;
    IdUDPClient1: TIdUDPClient;
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button2: TButton;
    Button3: TButton;
    Button5: TButton;
    Button4: TButton;
    Button6: TButton;
    procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
      ABinding: TIdSocketHandle);
    procedure ButtonsClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
var
  cnt: Integer = 0;
 
const
  CmdDone	      =	0;
  CmdStatus			= 1;
  CmdLEDCtrl		= 2;
  CmdSetConfig	= 3;
  CmdSwChanged	= 4;
  CmdDataEcho		= 5;
 
 
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  S, T: String;
  i, l: Integer;
begin
  Memo1.Lines.Add(IntToStr (cnt) + ') Received ' + IntToStr (AData.Size) + ' bytes:');
  cnt := cnt + 1;
  l := min (AData.Size, 32);
  SetLength (S, l);
  AData.Read (S[1], l);
  T := '';
  for i := 0 to l - 1 do
    T := T + IntToHex (Ord (S[i + 1]), 2) + ' ';
  Memo1.Lines.Add (T + #13#10);
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
  IdUDPServer1.Active := True;
end;
 
procedure TForm1.ButtonsClick(Sender: TObject);
var
  S, T: String;
  i: Integer;
begin
  cnt := cnt + 1;
  IdUDPClient1.Host := Edit1.Text;
  case (TButton(Sender).Tag) of
    0: S := Chr(CmdLEDCtrl) + #1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0;
    1: S := Chr(CmdLEDCtrl) + #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0;
    2: S := Chr(CmdSetConfig) + #1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0;
    3: S := Chr(CmdSetConfig) + #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0;
    4: S := Chr(CmdStatus) + #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0;
    5: S := Chr(CmdDataEcho) + #1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17;
  end;
  for i := 0 to Length (S) - 1 do
    T := T + IntToHex (Ord (S[i + 1]), 2) + ' ';
  Memo1.Lines.Add(IntToStr (cnt) + ') Sending ' + IntToStr (Length (S)) + ' bytes:');
  Memo1.Lines.Add (T);
  IdUDPClient1.Send (S);
end;
 
end.
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.