AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Indy Client, Probleme beim Datenempfang
Thema durchsuchen
Ansicht
Themen-Optionen

Indy Client, Probleme beim Datenempfang

Ein Thema von Grizu · begonnen am 18. Sep 2016 · letzter Beitrag vom 28. Sep 2016
Antwort Antwort
Grizu

Registriert seit: 22. Aug 2016
20 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Indy Client, Probleme beim Datenempfang

  Alt 18. Sep 2016, 17:57
Hallo,

ich bräuchte mal ein wenig oder auch mehr Hilfe mit meinem Indy Client.

Das Senden funktioniert prima.

ich habe ein Problem beim Datenempfang.

Schicke ich ein einzelnes Kommando mit einem Button, dann bekomme ich eine Antwort. Siehe Bild Tracking Daten....(im Anhang).


Schickt dann das Gerät Daten, diese kommen schnell hintereinander, dann habe ich die gleiche Message mehrfach in meiner Datenbox stehen. Siehe 2. Bild.


Wie kann ich das verhindern?


Das empfangen läuft in einem eigenen Thread.

Delphi Version ist Berlin 10.1

Delphi-Quellcode:
procedure MSC_Client_Receive.Execute;
var
  TBuffer: TiDBytes;
  s : String;
  b : Byte;
  a,i, i1, track : integer;
begin
  if TStop then begin
    while not Terminated do
    begin
        try
             Main_Frm.msc_client.IOHandler.ReadBytes(BBuffer, -1, False);
             a := 0;
             a := Length(BBuffer);
             i1 := 0;
             s := '';
              for i := 1 to a do begin
                b := BBuffer[i1];
                 if b <> 3 then begin
                    if b = 2 then begin
                    i1 := i1 + 1;
                   end else begin
                   s := s + Chr(b);
                   i1 := i1 + 1;
                   end;

                end;
                  if b = 3 then begin
                    sMsg := s;
                        if sMsg <> 'then begin
                        Synchronize(UpdateRecordbox);
                        Synchronize(Update_RDT_Parameter);

                        track := Pos('sSN eCCTrackingData', sMsg);
                        if track > 0 then begin
                        Synchronize(UpdateTrackingData);
                        tracking_data_online.NewCreate(sMsg);
                        end;
                        end;
                  end;
              end;
            BBuffer := nil;
            SetLength(BBuffer,0);
            Main_Frm.msc_client.IOHandler.InputBuffer.Clear;

        except
        on e: exception do
        begin

        end;

        end;
    end;

   if not TStop then begin
   Terminate;
   end;
 end;
end;
Miniaturansicht angehängter Grafiken
tracking-data.jpg   mehrfach_daten.jpg  
  Mit Zitat antworten Zitat
Grizu

Registriert seit: 22. Aug 2016
20 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Indy Client, Probleme beim Datenempfang

  Alt 28. Sep 2016, 12:29
So habs gefunden. Eigentlich ganz simple.....habe nur den Buffer an der falschen Stelle zurückgesetzt...


so geht's:

Delphi-Quellcode:
if b = 3 then begin
                    sMsg := s;
                        if sMsg <> 'then begin
                        Synchronize(UpdateRecordbox);
                        Synchronize(Update_RDT_Parameter);

                        track := Pos('sSN eCCTrackingData', sMsg);
                        if track > 0 then begin
                        Synchronize(UpdateTrackingData);
                        tracking_data_online.NewCreate(sMsg);
                        end;
                        end;
                   a := 0;
                   BBuffer := nil;
                   SetLength(BBuffer,0);
                   Main_Frm.msc_client.IOHandler.InputBuffer.Clear;
                end;
              end;
  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:35 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