AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wert wird nicht richtig eingelesen

Ein Thema von skaven · begonnen am 24. Okt 2004 · letzter Beitrag vom 25. Okt 2004
Antwort Antwort
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#1

Wert wird nicht richtig eingelesen

  Alt 24. Okt 2004, 11:20
Hallo zusammen, übermittel einen Fahrbefehl mittels rs232 au einen servomotor, das funktioniert auch, in dem selben zyklus übermittel ich einen weiteren befehl und lesen dann direkt die antwort aus. Ich bekomme leider keinen korrekten Antwortbefehl zurück, nur aus einer 5 stelligen Zahlenkette max. 3 stellen.

Wie kann das ? Muß ich eine Zeitverzögerung zwischen dem übermitteln udn auslesen der daten haben?

Liegen die Zeitfenster, schreiben und lesen zu nah beieinander?

Hänge Euch mal mein Programm an, wäre nett wenn Ihr mir ein paar Tips geben könntet.

Danke schon mal.

Delphi-Quellcode:
procedure TForm1.DateieinlesenClick(Sender: TObject);
var
   Liste : TStringList;
   i, x, differenzwert : Integer;
   data, filename : string;
   F: TextFile;
   prdwerte : array of integer;
begin
//Init
  Liste := TStringList.Create;

//Main Proc
  if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen } 
    begin
      filename := OpenDialog1.FileName;
      try
        Liste.LoadFromFile(filename);
        for i := 0 to Liste.Count-1 do
          begin
          apdcomport1.putstring(Liste[i]);
          apdcomport1.putstring(#13);
          repeat
            apdcomport1.putstring('prd');
            apdcomport1.putstring(#13);
            //repeat
            //until data = '-->';
            Setlength(prdwerte,length(prdwerte)+length(data));
            data_length:=length(data);//länge nehmen
          for x:=1 to data_length do
           begin
            prdwerte[Length(prdwerte) - Length(Data)] := strtoint(Data[x]);
            delete(data,0,1); //durch das löschen verringert sich die länge von data und der index beim nächsten durchlauf ist erhöht...
           end;
         until data_length<=10;
          end
      finally
      end;
    end;
  Liste.Free;
end;

procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
  Data: String;
  I: Integer;
begin
  data := '';
  for I:= 0 to Count-1 do
    Data :=data + ApdComPort1.GetChar;
  Memo1.text:= data;
end;

end.
[edit=Admin]Code-Tags korrigiert. Mfg, Daniel[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Wert wird nicht richtig eingelesen

  Alt 25. Okt 2004, 08:18
Was sollen wir dazu sagen. Probier es einfach mal aus mit einer Pause. Die kannst du mit Delay machen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz