AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Datenverlust bei ReadFile auf virtuellen COM-Port
Thema durchsuchen
Ansicht
Themen-Optionen

Datenverlust bei ReadFile auf virtuellen COM-Port

Ein Thema von BlackGuest · begonnen am 3. Nov 2014 · letzter Beitrag vom 3. Nov 2014
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Datenverlust bei ReadFile auf virtuellen COM-Port

  Alt 3. Nov 2014, 17:09
Im Prinzip ist es ja ganz einfach:

Wenn du die empfangenen Daten prüfen kannst (Länge und/oder Prüfziffer) dann sende die Anfrage so lange, bis du eine korrekte Antwort bekommst. Fehler können bei einer Übertragung immer auftauchen, egal über welches Medium auch immer.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

AW: Datenverlust bei ReadFile auf virtuellen COM-Port

  Alt 3. Nov 2014, 17:32
Hast Du den Code vom Microcontroller?

Wie lange ist die erzwungene Pause zwischen SENDEN und EMPFANGEN?
  Mit Zitat antworten Zitat
BlackGuest

Registriert seit: 30. Jan 2009
52 Beiträge
 
Delphi XE7 Professional
 
#3

AW: Datenverlust bei ReadFile auf virtuellen COM-Port

  Alt 3. Nov 2014, 17:53
Wenn du die empfangenen Daten prüfen kannst (Länge und/oder Prüfziffer) dann sende die Anfrage so lange, bis du eine korrekte Antwort bekommst. Fehler können bei einer Übertragung immer auftauchen, egal über welches Medium auch immer.
Mache ich ja, aber die Häufigkeit des Fehlers ist zu groß. Eine gewissen Timeoutzeit muss ich dem Ganze aber einräumen. Wenn jeder 10. Datensatz falsch ist, dann dauert das Ganze ewig, was nur ein paar sekunden dauert, wenn die Übertragung fehlerfrei abläuft. Es sind auch keine direkten Übertragungsfehler.

Zitat:
Hast Du den Code vom Microcontroller?
Wie lange ist die erzwungene Pause zwischen SENDEN und EMPFANGEN?
Ja, habe ich. Ist allerdings die Standardimplementation, die beim Compiler dabei war. Ich will nicht ausschließen, dass die nicht 100%-ig konform ist und das Problem dadurch auftaucht. Nur bevor ich mich da durchwühle nehme ich Testweise lieber einen anderen Compiler.

Momentan ist keine Pause dazwischen. Also (fast9 direkt nach dem Senden versuche ich mit Readfile Daten zu lesen.

Gruß
BlackGuest
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

AW: Datenverlust bei ReadFile auf virtuellen COM-Port

  Alt 3. Nov 2014, 18:56
Zitat:
Wie lange ist die erzwungene Pause zwischen SENDEN und EMPFANGEN?
Momentan ist keine Pause dazwischen. Also (fast direkt nach dem Senden versuche ich mit Readfile Daten zu lesen.

Gruß
BlackGuest

Mach mal ein SLEEP(50); dazwischen.
  Mit Zitat antworten Zitat
BlackGuest

Registriert seit: 30. Jan 2009
52 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Datenverlust bei ReadFile auf virtuellen COM-Port

  Alt 3. Nov 2014, 19:12
Hatte ich auch schon alles versucht. Hat nix gebracht.

Ich glaube ich fresse einen Besen!
Es scheint jetzt zu funktionieren. Egal mit welchem Rechner. Das Problem lag eindeutig am Zusammenspiel der Treiber. Der auf der Mikrocontrollerseite war wahrscheinlich nicht sauber implementiert. Ich habe jetzt eine neuere Version getestet und siehe da es scheint zu gehen.
Da muss man erst mal drauf kommen, wenn es auf dem einen Rechner funktioniert und auf dem anderen nicht. Die Probleme sind hauptsächlich mit PCs aufgetreten, die mit Windows 8 liefen. Liegt aber wahrscheinlicher an der eingebauten USB-Hardware.

OK, falls jemand ähnliche Probleme hat, ich verwende den CCS Compiler. V4.124 verursacht die beschriebenen Probleme. Mit V4.137 funktioniert alles.

Danke für Eure Geduld und Hilfe.

Gruß
BlackGuest
  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 03:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz