CONST
  cDPDis_Pkt = 16;  //'10';
  cDPDis_0   = 237; //'ED';
  cDPDis_1   = 72;  //'48';
  cDPDis_2   = 230; //'E6';
  cDPDis_3   = 110; //'6E';
  cDPDis_4   = 75;  //'4B';
  cDPDis_5   = 47;  //'2F';
  cDPDis_6   = 175; //'AF';
  cDPDis_7   = 104; //'68';
  cDPDis_8   = 239; //'EF';
  cDPDis_9   = 111; //'6F';

  AddrBroadcast = 'FFFF';

  AntwOK = 'FD';//46 + 44;
  AntwBad= 'FE';//46 + 45;

type EExceptions = class(Exception);
var lCom : tComport;

//################################################# Funktionen
function StrToHex4(s : string) : String;
begin
  Result := s;
  while length(Result)<4 do
    Result := '0' + Result;
end;

function Checksum(s : string) : String;
var
 i : integer;
 sum : longint;
begin
  sum := 0;
  for i:=1 to length(s) do
    inc(sum, ord(s[i]));

  Result := IntToHex((sum mod 256),2);
end;

function ValidDPDisAnzeige(Value : string; laenge : integer) : Boolean;
var i      : integer;
    i2     : integer;
begin
  Result := false;
  i2 := 0;
  if (Value<>'') then begin
    Result := true;
    for i := 1 to length(Value) do
      if not (Value[i] in DPDisChars) then
        Result := false
      else if Value[i]<>'.' then
        inc(i2);
    if Result then
      Result := (i2=laenge)
  end;
end;