AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi wie bei OnTimeout mit AsyncPro daten holen
Thema durchsuchen
Ansicht
Themen-Optionen

wie bei OnTimeout mit AsyncPro daten holen

Ein Thema von roadrunner2022 · begonnen am 21. Nov 2003 · letzter Beitrag vom 25. Nov 2003
Antwort Antwort
roadrunner2022

Registriert seit: 5. Okt 2003
8 Beiträge
 
#1

wie bei OnTimeout mit AsyncPro daten holen

  Alt 21. Nov 2003, 12:05
hallo leute!

ich habe folgendes problem. ich habe ein rießen projekt laufen, in dem ich die APRO 4 verwende. ich empfange über die serielle schnittstelle datenpakete.

ich kann aber keine end contition setzten, weill: das packet hört zwar mit ETX (03h) auf, es kann aber 03h auch im datenpaket vorkommen. auch die länge weiss ich nicht (bzw. weiss sie schon, sie steht im 2. byte, aber dei länge kann 256 übersteigen und somit stimmt die längenangabe nicht).

jetzt habe ich mich durch die pdf's durchgewühlt und den event OnTimeOut gefunden. dort steht auch drinnen, dass man die bisher gesammelten daten mit GetCollectedString bzw., GetCollectedData bekommt


ABER

GetCollectedData ist eine procedure und erwartet sich data : pointer und size : integer. beides bekomme ich aber nicht bei dem event. diese beiden werte bekomme ich nur, wenn die end contition zutrifft (was sie ja nicht tut). ausserdem weiss ich nicht von welchen typ der rückgabewert ist.

ich habe mir jetzt in den event u.a. eine ausgabe auf mein MEMO fenster geschrieben und einen break point gesetzt, er fällt aber nie in den breakpoint hinein, und somit auch keine ausgabe am memo.

ich habe schon mit verschieden time out werten experimentiert. z.z. steht er auf 15 (was ca. 15 ms entspricht).

warum kriege ich das nciht zum laufen! HILFE bin ich so blöd oder stelle ich mich nur so an.

mfg roadrunner2022
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: wie bei OnTimeout mit AsyncPro daten holen

  Alt 21. Nov 2003, 15:16
Hallo RR!

Das ist doch kein Problem. Zur Not diese Asyncpro Geschichte aus dem Projekt kicken und die Datenübertragung via WINAPI sauber in nen Thread auslagern.

Wie ist denn dieses GetCollectedData genau deklariert?

(1) GetCollectedData(Data:Pointer; Size:Integer) oder
(2) GetCollectedData(Data:Pointer; Var Size:Integer) In Fall 2 bekommst Du also die Anzahl der empfangenen Bytes zurück und bist aus dem gröbsten raus.
In Fall 1 erwartet die Fkt wahrscheinlich die Grösse des Speichers, den Data bereitstellt.

Würde das Teil so aufrufen:

Delphi-Quellcode:
Var
  Data:PChar;
  Size:Integer;
Begin
  Size:=2048;
  Data:=PChar(GlobalAlloc(GPRT,Size));
  Try
    GetCollectedData(Data,Size);
    // Jetzt munter auswerten, was in Data steht
    ...
  Finally
    GloablFree(DWord(Data));
  End;
End;
Viel Erfolg + schönes WE

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
roadrunner2022

Registriert seit: 5. Okt 2003
8 Beiträge
 
#3

Re: wie bei OnTimeout mit AsyncPro daten holen

  Alt 25. Nov 2003, 15:51
dankeschön jetzt hab ichs gecheckt hoffe ich.

ich habe zwar jetzt den time out event zum laufen gebracht, aber

-) er verschluckt mir immer das erste zeichen (wenn er auf ein zeichen triggert, nämlich genau das triggerzeichen, obwohl die include funktion gesetzt ist)

-)wenn ich ihm sage, dass er bei jedem zeichen triggern soll, habe ich das problem, dass der event nach ablaufen des countersfeuert, auch wenn keine zeichen übertragen worden sind. dabei steht dann der data pointer auf $FFFFFFFF -> absturz

-) wenn ich den event zum compilieren deaktiviere, und erst nach dem senden meines befehls aktiviere (weill ich ja eine antwort erwarte), funktioniert es auch nicht. es werden die zeichen im terminal angezeigt aber wenn der evet auftritt steht der data pointer auf $2 -> absturz.

also bitte leuchte ich checke es nicht. was mache den falsch.

ich bin schon am überlegen ob ich nicht das TComPort benutze, aber da schreibt er immer dass er die dsgintf. irgendwas datei nicht finden kann (sie ist ja auch nicht im source.zip.

bin ich so blöd?

recht herzlichen dank für die hilfe. mfg roadrunner2022
  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 01:50 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