Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Com-Schnittstelle / Problem beim Empfang


gezschongezahlt - Fr 19.12.08 16:51
Titel: Com-Schnittstelle / Problem beim Empfang
Guten Tag,
ich bin neu hier im Forum.
Ich habe folgendes Problem:
Ich arbeite mit der Komponente ApdComPort und steuere
damit ein Messmodul(ct'Lab) über die serielle Schnittstelle an.
Das mit dem senden klappt schon mal (es blinkt eine LED, wenn was ankommt).
Daraufhin müsste eine Antwort kommen,
womit ich nun zu meinem Problem komme;
diese kann ich nicht empfangen/abfangen.
Im Grunde läuft es mom noch darauf hinaus,
eine Art Terminal nachzubauen..


hier geschieht das senden...

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure v24putString(s:String);
var i:Integer;
   begin

   if ApdComPort.OutBuffFree >= (length(s)+2then
     begin

        ApdComPort.PutString(s+#13#10); 

     end ;
end;


mit diesem Event wollte ich die Daten Emfangen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
  s: String;
  I: Word;
begin
 showmessage('Empfangen!!');
  s:='';
  for I := 1 to Count do
    s := s + ApdComPort.GetChar;
    showmessage(s);
    Memo1.Lines.Add(s);

end;


Wäre für jede Hilfe sehr dankbar!


Xentar - Sa 20.12.08 16:07

Bedeutet dieses blinken der LED dass überhautp Daten ankommen, oder lässt sich daran auch erkennen, ob die Daten korrekt sind?
Wenn das womöglich nur eine Empfangsbestätigung von "irgendwelchen" Daten ist: Baudrate, Stopbits, Parität und sowas richtig eingestellt? Überträgst du auch die richtigen Daten?

Wird das Event überhaupt durchlaufen? (Haltepunkt)


gezschongezahlt - Sa 20.12.08 16:20

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Bedeutet dieses blinken der LED dass überhautp Daten ankommen, oder lässt sich daran auch erkennen, ob die Daten korrekt sind?
Wenn das womöglich nur eine Empfangsbestätigung von "irgendwelchen" Daten ist: Baudrate, Stopbits, Parität und sowas richtig eingestellt? Überträgst du auch die richtigen Daten?

Wird das Event überhaupt durchlaufen? (Haltepunkt)


Das LED blinkt wenn IRGENDWAS ankommt (mit einem carriage return linefeed am ende).
Es kommt immer eine Rückmeldung, auch wenn etwas ungültiges geschickt worden ist (comanderror).
Baudrate ect. sind richtig eingestellt, und protokolle hab ich auch schon alle möglichen ausprobiert (None und xon/xoff funktieren).
Das Probelem ist ja, dass das Event NIE ausgelöst wird.
Desswegen auch das "showmessage('Empfangen!!'); " im ApdComPort1TriggerAvail teil.