Programm-Beispiel in DELPHI

Funktionen des einfachen Beispiels:

Oberfläche des laufenden Programms:

Bedienoberfläche des Testprogramms (screenshot)
nach oben

Der Quellcode in Delphi:

unit UPCPTSystem;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, ExtCtrls;

type
  TCPTtest = class(TForm)
    ButtonEnde: TButton;
 ............
    procedure ButtonAnzDelClick(Sender: TObject);
    procedure ButtonBBSInitClick(Sender: TObject);
  private
    { Private-Deklarationen}
  public
    { Public-Deklarationen}
  end;

type TDataFeld  = ARRAY[0..16] OF Char;
     TData = packed record
       Error  : Byte;
       Status : Byte;
       DataArray : TDataFeld;
     end;

var  CPTtest: TCPTtest;

const LogDatei='CPTtest.log';

implementation
uses TMR_DLL_Schnittstelle;
{$R *.DFM}

procedure TCPTtest.ButtonEndeClick(Sender: TObject);
begin
  Showmessage ('Die LOG-Datei '+LogDatei+' steht im Verzeichnis'+^M
               +ExtractFilePath(Paramstr(0)));
  close;
end;

procedure TCPTtest.ButtonStartClick(Sender: TObject);
var result        : Integer;
    Systemnummer  : Byte;
    Knotennummer  : Byte;
    error, status : Byte;
    Kette         : Byte;
    daten_sw      : TDataFeld;
    Txx           : string;
const NoErr = 0;
begin

  Panel1.Caption:='Meldungen vom Terminal (Knoten)';
  InfoListe.lines.add('Terminaltest: Test der Verdbindung Software-DLL-Terminal.');
  InfoListe.lines.add('------------------------------------------------------------');
  {System und Knotennummer aus den Eingabefeldern übernehmen}
  Systemnummer:=strtoint(systemNr.text);
  InfoListe.lines.add('Systemnummer = ' + systemNr.text);
  Knotennummer:=strtoint(KnotenNr.text);
  InfoListe.lines.add('Knotennummer = ' + KnotenNr.text);
  InfoListe.lines.add('');
  {bbs_System initialisieren}
  result:=init_bbs;
  InfoListe.lines.add('Init_bbs(''BITBUS.INI'');');
  Txx:='System konnte nicht initialisiert werden';
  if result = 0 then begin
      InfoListe.lines.add('+ System ist initialisiert');
  end;
  if result <> NoErr then begin
    showmessage(Txx);
    InfoListe.lines.Add('FEHLER Nummer: '+inttostr(result)+Txx);
    InfoListe.lines.savetofile(LogDatei);
    halt;
  end;
  {System(Systemnummer) öffnen}
  result:=open_system(Systemnummer);
  if result = 0 then begin
    InfoListe.lines.add('+ System ist geöffnet');
  end;
  Txx:='System '+systemNr.text+' konnte nicht geöffnet werden';
  if result <> NoErr then begin
    showmessage(Txx);
    InfoListe.lines.Add('FEHLER Nummer: ' + inttostr(result) + '        '+Txx);
    InfoListe.lines.savetofile(LogDatei);
    exit;
  end;
  {Verbindung zum Terminal aufbauen}
  result:=cpt_test_connection(systemnummer, Knotennummer);
  if result = 0 then begin
    InfoListe.lines.add('+ Terminal ist erreichbar');
  end;
  Txx:='Terminal '+KnotenNr.text+' ist nicht erreichbar';
  if result <> NoErr then begin
    label4.Caption:=inttostr(result);
    showmessage(Txx);
    InfoListe.lines.Add('FEHLER Nummer: ' + inttostr(result) + '        '+Txx);
    InfoListe.lines.savetofile(LogDatei);
    exit;
  end;
  label4.Caption:='Der Terminaltest hat fehlerfrei funktioniert';
  InfoListe.lines.Add('+ Der Terminaltest hat fehlerfrei funktioniert');
  {Datenkette auslesen und darstellen}
  Kette:=StrToInt(KettenNr.Text);
  {data:=cpt_getfirst(system,terminal,Kette);}
  cpt_getfirst_sw(systemnummer, Knotennummer, Kette, error, status, @daten_sw);
  InfoListe.lines.add('');
  InfoListe.lines.add('Lesen der Kette '+KettenNr.text+' aus dem Terminal');
  InfoListe.lines.add('++++++++++++++++++');
  Txx:='Kette '+KettenNr.text+' konnte nicht gelesen werden';
  if error <> NoErr then begin
    showmessage(Txx);
    InfoListe.lines.Add('FEHLER Nummer: ' + inttostr(error) + '        '+Txx);
    InfoListe.lines.savetofile(LogDatei);
    exit;
  end;
  while error = 0 do begin
        //ShowMessage(Daten_SW);
        InfoListe.lines.Add(Daten_SW);
        cpt_getnext_sw(error, status, @daten_sw);
  end;
  InfoListe.lines.add('+ ok +++++++++++++');
  InfoListe.lines.add('');
  InfoListe.lines.savetofile(LogDatei);
 {System wieder schließen Test beenden}
  result:=close_system(Systemnummer);
  if result <> No_Err then begin
    label4.Caption:=inttostr(result);
    InfoListe.lines.Add('FEHLER Nummer: ' + inttostr(result) + '        System konnte nicht geschlossen werden');
    InfoListe.lines.savetofile(LogDatei);
  end;
  exit_bbs;
end;

procedure TCPTtest.ButtonAnzDelClick(Sender: TObject);
begin
  InfoListe.lines.Clear;
end;

procedure TCPTtest.ButtonBBSInitClick(Sender: TObject);
begin
    Panel1.Caption:='Inhalt der BITBUS.INI:';
    InfoListe.lines.Loadfromfile('c:\windows\bitbus.ini');
end;

end.
 
nach oben

Dieses Beispiels verdeutlicht Ihnen, wie einfach die Integration derTerminals ist.
Auf dieser Basis schreiben Sie leicht eigene Applikationen!

Für andere Programmiersprachen habe wir entsprechende "Include"-Dateien...




  MENUE
© 2011ff: m.zinth, munderkingen, germany
BITBUS® ist ein eingetragenes Warenzeichen der Intel Corp., USA; WINDOWS® ist ein eingetragenes Warenzeichen der Microsoft Corp., USA