unit dtest06sunit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ScktComp, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Server1: TServerSocket;
StatusBar1: TStatusBar;
Label1: TLabel;
ListBox1: TListBox;
Button1: TButton;
SaveBox2: TButton;
Timer2: TTimer;
ListBox2: TListBox;
procedure Server1Listen(Sender: TObject;
Socket: TCustomWinSocket);
procedure Server1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Server1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Server1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure Server1ClientError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure SaveBox2Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Const
Clients: Integer = -1; //typisierte Variable Zahl der Clients
Zahl: Byte=0;
implementation
{$R *.DFM}
procedure TForm1.Server1Listen(Sender: TObject;
Socket: TCustomWinSocket);
begin
StatusBar1.Panels [0].Text :='Listen';
end;
procedure TForm1.Server1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
StatusBar1.Panels [0].Text :='Connected';
StatusBar1.Panels [1].Text :='';
Inc(Clients);
end;
procedure TForm1.Server1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
StatusBar1.Panels [0].Text :='Disconnected';
Dec(Clients);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Server1.Active := True;
Label1.Caption:='';
Left:=50;
Top:=50;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Server1.Active := False ;
end;
procedure TForm1.Server1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
i:Integer;
s, s1, s2,s3: string;
begin
// Label1.Caption := Server1.Socket.Connections [0].ReceiveText;
for i:= 0 to Clients Do begin
Application.ProcessMessages;
Try
Begin
s:=Server1.Socket.Connections [i].ReceiveText;
if s<>'' then begin
s1:=Server1.Socket.Connections[i].RemoteAddress;
s2:=s1+','+s;
ListBox1.Items.Add(s2);
Str(i+1,s3);
// 248 = F8
// StringReplace(s, 'ß', 'o', rfReplaceAll);
// StringReplace(s, 'ß', 'o');
s2:='
'+s3+' | '+s1+' | '+s+' |
';
ListBox2.Items.Strings[i]:=s2;
End
End;
Except
Break;
End;
end;
end;
procedure TForm1.Server1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
StatusBar1.Panels [0].Text :='Error:'+IntToStr(ErrorCode);
ErrorCode:=0;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:Integer;
begin
for i:= 0 to Clients Do begin
Server1.Socket.Connections [i].SendText(IntToStr(Zahl));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Clear;
ListBox2.Clear;
end;
procedure TForm1.SaveBox2Click(Sender: TObject);
var
f : TextFile;
i : Word;
begin
AssignFile (f,'dtest06alldata.htm');
Rewrite (f);
Writeln(f,' uC Messdaten ');
Writeln(f,'Messdaten vom Atmel Controller (alle Daten)
');
for i:=0 to ListBox1.Items.Count-1 do begin
WriteLn (f,'',ListBox1.Items [i], ' |
');
end;
Writeln(f,'
');
CloseFile (f);
AssignFile (f,'dtest06lastdata.htm');
Rewrite (f);
Writeln(f,' uC Messdaten ');
Writeln(f,'Messdaten vom Atmel Controller (aktuelle Werte)
');
for i:=0 to ListBox2.Items.Count-1 do begin
WriteLn (f,'Sensor ',i,' | ',ListBox2.Items [i], ' |
');
end;
Writeln(f,'
');
CloseFile (f);
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var
f : TextFile;
i : Word;
begin
AssignFile (f,'dtest06alldata.htm');
{$I-}
Rewrite (f);
{$I+}
if IoResult <> 0 then begin
ShowMessage ('Fehler beim Schreiben der Datei!');
end;
Writeln(f,' uC Messdaten ');
Writeln(f,'Messdaten vom Atmel Controller (alle Daten)
');
end;
Label1.Caption:='Info: Daten gespeichert';
end;
Writeln(f,'');
CloseFile (f);
AssignFile (f,'dtest06lastdata.htm');
{$I-}
Rewrite (f);
{$I+}
if IoResult <> 0 then begin
ShowMessage ('Fehler beim Schreiben der Datei!');
end;
Writeln(f,' uC Messdaten ');
Writeln(f,'Messdaten vom Atmel Controller (aktuelle Werte)
0) then begin
for i:=0 to ListBox2.Items.Count-1 do begin
WriteLn (f,ListBox2.Items [i]);
end;
end;
Writeln(f,'');
CloseFile (f);
end;
end.