AGB  ·  Datenschutz  ·  Impressum  







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

TApdComPort Exception

Ein Thema von DaCoda · begonnen am 8. Sep 2024 · letzter Beitrag vom 14. Sep 2024
Antwort Antwort
Seite 1 von 2  1 2      
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#1

TApdComPort Exception

  Alt 8. Sep 2024, 19:50
Hallo,
ich habe in meinem Projekt Kommunikation mit einem Arduino an "COM3" mit Asynch-Pro (TApdComPort). Das läuft alles so weit auch richtig gut.

Nur wenn man das Kabel abzieht (während der Port aktiv ist) bekomme ich eine Exception, die ich (bis jetzt) nicht abfangen und somit auch nicht behandeln kann.
Meine Recherche hat hierzu bis jetzt leider nichts funktionierendes gebracht.

Hat jemand von Euch da Erfahrung und einen Tipp ???

Danke
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TApdComPort Exception

  Alt 8. Sep 2024, 20:03
Hast du denn mal den Stacktrace angeschaut, wenn die Exception auftritt? Da sollte sich doch eine Stelle finden lassen, an der man eingreifen kann.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

AW: TApdComPort Exception

  Alt 8. Sep 2024, 21:20
Du meinst das USB-Kabel ... nicht das Serielle-Kabel?
Letzteres bekommt ja niemand mit.

Hast du eine der anderen Komponenten versucht?
CommunicationLab (nee)
TComPortDrv
TMS Async
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Sep 2024 um 21:23 Uhr)
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#4

AW: TApdComPort Exception

  Alt 9. Sep 2024, 05:37
Ja, wenn man das USB-Kabel zieht. Dann wird der Asynch-Pro ja praktisch der COM-port weggerissen... Mein Problem liegt vermutlich tiefer im System und gar nicht
in der Asynch-Pro Komponente. Aber da bin ich gerade etwas ratlos.

Andere Komponenten habe ich bis jetzt nicht probiert. Mal schauen, wie ich das löse.

Danke erst einmal für Eure Vorschläge
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

AW: TApdComPort Exception

  Alt 9. Sep 2024, 11:00
Ach ja, die oben genannten verstecken sich aktuell im GetIt.

Es gab dort doch auch mal einen TComPort oder war's TSerialPort ... aber scheinbar nicht mehr.
https://github.com/CWBudde/ComPort-Library
https://sourceforge.net/projects/comport/
Ich glaub davon haben wir eine Version im Programm. Ich kann mich jetzt nicht erinnern, dass es knallte, wenn das USB-Gerät gezogen wurde, aber normals macht das bei uns auch niemand.
Und meißtens verwenden wir eine DLL für den Zugriff auf die meist verwendetsten Geräte. Nur in selten Fällen direkt via ComPort auf ältere, bzw. andere alternative Geräte.




Am Billigesten kann man ja mit CreateFile (oder AssignFile, TFileStream, ...) den Port öffnen.
'\\.\COM3'
Das Lesen aber leider im Thread (es ist leider nicht sicher zu lesen oder den Buffer zu prüfen, z.B. in einem Timer oder manuell im direkt z.B. nach dem Senden, ohne dass es hängen bleibt, falls/wenn grade keine Daten vorhanden sind und man vorher nicht definitiv sagen kann ob und wie viele Daten rein kommen)

Aber wenn man nur sendet und praktisch nichts empfangen muß, dann geht das super und man hat die minimalste Implementation.
BAUD usw. zu setzen kann man sich oft sparen, da meistens die Defaults/Systemvorgaben reichen und am Ende heutzutage selten wirklich seriell Daten übertragen werden, womit die physischen BAUD irrelevant sind.
(ja, ich weiß dass USB auch seriell ist, aber das taktet sich selbst, inkl. Fehlerprüfung usw.)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 9. Sep 2024 um 11:10 Uhr)
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#6

AW: TApdComPort Exception

  Alt 10. Sep 2024, 15:40
Vielen Dank erst einmal für Eure Tipps.

Ich habe es bis jetzt nicht hinbekommen, aber vernachlässige das erst einmal für diesen Moment.
Stecker ziehen kann ja aber passieren, deshalb werde ich da dann später noch mal weiter forschen

Eventuell kann man den Arduino ja auch ohne den "Virtuellen - Comport" ansprechen, direct über USB... Mal schauen.

Ich werde dann ggf. noch mal die Ergebnisse hier posten.
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TApdComPort Exception

  Alt 11. Sep 2024, 21:24
Ich habe es bis jetzt nicht hinbekommen
Ohne den passenden Stacktrace lässt sich dazu nicht viel sagen, da ich keine passende Hardware mehr zum Testen habe.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#8

AW: TApdComPort Exception

  Alt 11. Sep 2024, 23:04
TCommPortDriver aus'm GetIt
Integerüberlauf in TCommPortDriver.OutFreeSpace, erst dann, wenn ich nach dem Trennen was senden will (beim Reset/Clear des ComErrors) ... die Komponente verträgt es nicht, dass neuerdings in neuen Delphi-Projekten standardmäßig die Bereichs-/Überlaufprüfungen aktiv sind.
Ohne die Checks meckert nix.

Roboterarm mit zwei irgendwelchen CP210x (selbstinstallierter Treiber)

'nen Arduino hab ich grad nicht zur Verfügung (abgesehn von einem ATiny85 von Digispark, aber der hat 'nen uralten Spezialtreiber und wäre eh nicht repräsentativ)
Meine Testboards mit CP2102 oder 'nem chinesischen CH340 oder CH341A (mit eigenen Treibern), sowie einem FT232RL bzw. PL2303 mit Standardtreibern vom Windows ... die müsste ich erstmal suchen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (11. Sep 2024 um 23:15 Uhr)
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#9

AW: TApdComPort Exception

  Alt 12. Sep 2024, 10:25
Ich habe jetzt mal MadExcept benutzt und der zeigt mir dann an, siehe beigefügtes Bild.

Mich bringt das aber auch nicht wirklich weiter
Miniaturansicht angehängter Grafiken
unbenannt.png  
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
143 Beiträge
 
Delphi 12 Athens
 
#10

AW: TApdComPort Exception

  Alt 14. Sep 2024, 13:20
Ich habe im Netz einen Lösungsansatz gefunden, der für meine Zwecke nützlich war.

Code:
uses AwUser;

type
TReaderException = procedure(ExceptObject: TObject; ExceptAddr: Pointer) of object;

type
TForm1 = class(TForm)
private
FOnReaderException:TReaderException;
procedure OnReaderException(ExceptObject: TObject; ExceptAddr: Pointer);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FOnReaderException:=OnReaderException;
// Set global exception handler for AsyncPro
GShowExceptionHandler:=@FOnReaderException;
end;

procedure TMainWin.OnReaderException(ExceptObject: TObject;
ExceptAddr: Pointer);
begin
// Eigenes Exception-Handling
end;
Vielleicht ist das ja für Andere auch nützlich...
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:52 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