AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DLL-Funktionsaufruf-Ende abwarten ohne Callback?
Thema durchsuchen
Ansicht
Themen-Optionen

DLL-Funktionsaufruf-Ende abwarten ohne Callback?

Ein Thema von SearchBot · begonnen am 8. Mai 2016 · letzter Beitrag vom 25. Mai 2016
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
311 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

DLL-Funktionsaufruf-Ende abwarten ohne Callback?

  Alt 8. Mai 2016, 00:38
Hallo,

ich habe eine DLL, mit der ich über USB Befehle an ein Messgerät sende.

Nun habe ich festgestellt, daß das Auslesen irgendwann/bald asynchron wird, d.h. ich frage zB den Errorstatus ab und erhalte nochmals (noch einige Male) einen Messwert als Antwort...

Ich habe bereits versucht, eine Reihe von Auslese-Abrufen auszuführen, aber das führt nicht zum Erfolg.

Also wird irgendwo ein Puffer geschrieben, den ich aber nicht löschen kann (weil ich es gerade noch nicht weiß, wie?!).
Ich vermute aber auch, daß ich zuviele Anfragen sende (oder diese sich vervielfachen?), obwohl ich eigentlich recht fix die Antwort bekomme.

Daher frage ich mich, ob ich den Funktionsaufruf in der DLL bis zu seinem Ende abwarten kann - die DLL hat aber keine Callback-Funktion (wenn ich mir mit TDump das so ansehe).

Mache ich einen Denkfehler oder gibt es eine simple Lösung (die ich beim Googeln nicht finden konnte)?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: DLL-Funktionsaufruf-Ende abwarten ohne Callback?

  Alt 8. Mai 2016, 03:36
Wenn der Funktionsaufruf zurückkehrt, läuft die Abarbeitung dieser Methode auch nicht mehr. Deshalb gibt es dort nichts, auf das du so allgemein warten kannst.

Bei Messergebnissen würde ich allerdings auch als Abfolge erwarten, dass ich diese anfordere und das Gerät dann anfängt diese zu senden, der Funktionsaufruf aber sofort zurückkehrt.

Zum Auslesen bliebe dann solange erneut aufrufen bis es einen Fehler oder keine neuen Daten mehr gibt, je nach Messart usw.

Gibt es denn keine Doku zu der Schnittstelle? Normalerweise kann doch der Hersteller da weiterhelfen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#3

AW: DLL-Funktionsaufruf-Ende abwarten ohne Callback?

  Alt 8. Mai 2016, 05:36
USB wird nicht das Problem sein, sondern die Geschwindigkeit des AD-Wandlers im Messgerät.
Deshalb:
In den Daten des Messgeräts nachsehen, wieviele Wandlungen/sec möglich sind.
Multimeter haben üblicherweise eine Abtastrate von 3x/Sekunde.

Geändert von t.roller ( 8. Mai 2016 um 19:47 Uhr)
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
311 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: DLL-Funktionsaufruf-Ende abwarten ohne Callback?

  Alt 25. Mai 2016, 11:47
Hallo,

ja - mein Fehler. Ich komme nicht so gut mit AnsiString, PAnsiString, AnsiChar, PAnsichar, string, shortstring, char und PChar klar.
Die Unterschiede hab ich noch nicht so klar verstanden (P.. ist nur die Adresse auf den Typ? )

Jedenfalls habe ich mit den Typen etwas "rumgespielt" und plötzlich hat es korrekt funktioniert
Danke für die Anregungen.
  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 12:42 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