AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Windows Error Code 87 bei ComPort Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Error Code 87 bei ComPort Abfrage

Ein Thema von Hidden Bandit · begonnen am 20. Jul 2018 · letzter Beitrag vom 20. Jul 2018
Antwort Antwort
Hidden Bandit

Registriert seit: 19. Jul 2018
9 Beiträge
 
Delphi 2007 Enterprise
 
#1

Windows Error Code 87 bei ComPort Abfrage

  Alt 20. Jul 2018, 10:10
Delphi-Version: 2007
Hallo,

mit dem Programm, an dem ich gerade arbeite sollen Einstellungsparameter für die Datenabfrage über einen ComPort ermittelt werden. Dazu wählt der Benutzer zu Beginn aus diversen Checklistboxen die BaudRaten, Databits, StopBits, Paritäten und FlowControls, welche das Programm dann prüfen soll.

Nach dem drücken des Knopfes "Test Starten" führt das Programm für jede mögliche Kombination aus den zuvor ausgewählten Parametern auf jedem angeschlossenem ComPort eine Datenabfrage durch und wertet die empfangenen Signale aus, indem es diese die Zeichen der empfangenen Signale darauf prüft, ob nur die Ziffern 0 bis 9 oder '.' oder ',' vorhanden sind.
Sollte der Messwert nur aus den genannten Zeichen bestehen, werden die Einstellungsparameter in einer AdvancedStringGrid ausgegeben (AdvStringGrid2). In der AdvStringGrid 1 werden alle Messwerte unabhängig von ihrer Richtigkeit mit den Entsprechenden Parametern ausgegeben.

Soweit funktioniert das Programm auch, aber bei meistens wenn viele zu prüfende Parameter eingestellt sind, bricht das Programm ab und es wird der Windows Error Code 87 ausgegeben, welcher die Beschreibung "The parameter is incorrect" hat. Und zugegebenermaßen habe ich keine Ahnung, was den Fehler auslöst und geschweige denn wie man ihn lösen könnte/müsste.
Außerdem scheint der Fehler nicht bei einer bestimmten Prüfparameterkombination aufzutreten, oder zumindest nicht immer wieder bei der selben.


Die Datenabfrage ist derzeit so eingestellt, dass sie bei Mahr Messgeräten über DTR funktioniert, sollte jedoch in der Verbindung zwischen dem Mahr Messgerät (Speziell Mahr Messschieber und Messschrauben) und dem PC zum Beispiel noch ein Mitutoyo Adapter zwischengeschaltet sein oder sollte die Abfrage der Messwerte von einem Mitutoyo Messgerät erfolgen sollen, müsste Mindestens das Datenabfragesignal angepasst werden.
Bei mir ist das Datenabfragesignal derzeit so:
Delphi-Quellcode:
  comport1.SetDTR(false);
  sleep(100);
  comport1.setdtr(true);

Der Quellcodeausschnitt sollte nur zum Beschreiben des Datenabfragesignals dienen, der Quelltextteil, in dem wahrscheinlich der Fehler liegt, ist mehrere Hundert Zeilen lang. Den gesammten Projektordner habe ich als .zip angehängt.

Ich hoffe, dass die Frage icht zu schwierig ist

Danke schonmal im Vorraus!
Angehängte Dateien
Dateityp: zip v8.zip (1,04 MB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Hidden Bandit

Registriert seit: 19. Jul 2018
9 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Windows Error Code 87 bei ComPort Abfrage

  Alt 20. Jul 2018, 10:57
Der ganze Fehler Code/Text lautet : "setcommstate function failed (win error code 87)"
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Windows Error Code 87 bei ComPort Abfrage

  Alt 20. Jul 2018, 12:10
Die Suchmaschine meines Vertrauens lieferte mir folgendes:
Zitat:
Remarks

The SetCommState function uses a DCB structure to specify the desired configuration. The GetCommState function returns the current configuration.

To set only a few members of the DCB structure, you should modify a DCB structure that has been filled in by a call to GetCommState. This ensures that the other members of the DCB structure have appropriate values.

The SetCommState function fails if the XonChar member of the DCB structure is equal to the XoffChar member.

When SetCommState is used to configure the 8250, the following restrictions apply to the values for the DCB structure's ByteSize and StopBits members:

The number of data bits must be 5 to 8 bits.
näheres findest Du hier

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Hidden Bandit

Registriert seit: 19. Jul 2018
9 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Windows Error Code 87 bei ComPort Abfrage

  Alt 20. Jul 2018, 12:54
Besten dank,
leider verstehe ich nicht viel von dem, was in dem Link steht.

Aber trdm danke
  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:08 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