Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi async Fragen (https://www.delphipraxis.net/53228-async-fragen.html)

marabu 13. Sep 2005 07:54

Re: async Fragen
 
Bevor ich dir einen Ringpuffer entwerfe - den Ringpuffer brauchst du, wenn dein Messgerät kontinuierliche oder auch periodische Datenströme produziert. Wenn die Kommunikation mit dem Gerät immer nur nach dem Muster kurze Frage knappe Antwort stattfindet, dann besteht keine Gefahr, dass Daten überschrieben werden, bevor sie von dir verarbeitet wurden.

Also: arbeitest du mit Datenströmen? Will heißen, kannst du das Gerät in einen Dauersendemodus schalten, so daß Zeit-Messreihen übermittelt werden, die erst durch ein Kommando von dir wieder beendet werden?

marabu

xeus 13. Sep 2005 08:20

Re: async Fragen
 
also die kommunikation ist wie folgt aufgebaut:

ich sende 10 bytes

1. Empfängeradresse, (da es mehr geräte sind)
2. Commando (welche info will ich)
3-8. sind zusätzliche parameter zum commando
9-10 ist fürs clc

auf diese anfrage bekomme ich eine antwort mit acht bytes

1. transmissionstate
2. status
3-6. parameter
7-8 clc


ich will die inhalte der bytes eigentlich nur in labels und einem memo darstellen. wenn ich dann wieder eine anfrage stell, sollen die labels gelöscht und der neue wert angezeigt werden. im memo am besten add line

marabu 13. Sep 2005 08:24

Re: async Fragen
 
Sieht nach einem rein sequentiellen Vorgehen aus. Du kannst mit dem einen dynamischen Puffer arbeiten. Gefahr für einen Datenverlust besteht nur bei Nebenläufigkeit. Viel Erfolg.

marabu

xeus 13. Sep 2005 08:41

Re: async Fragen
 
hhaaaaa, du willst mich doch bitte jetzt nich damit allein lassen;schlurz

wenn ich deine prozedur anwende, liefert er
mir leider nur byte 7 und 8 (wobei er es als byte 0 und 1 anzeigt), die anderen werden im memo nicht mit aufgelistet.

bin fast am verzweifeln!!!

xeus 13. Sep 2005 08:54

Re: async Fragen
 
supeer habs geschaft, dass er mir sämtliche bytes anzeigt. das einzige manko ist jetzt nur noch, das er abwechselnd vor jedes byte 'byte0, byte1' anzeigt, kann ich die empfangenen bytes nicht jeweils in eine integer hinterlegen? um sie dann in labels anzeigen zu lassen?

marabu 13. Sep 2005 09:05

Re: async Fragen
 
Sicher doch - alles was du willst:

Delphi-Quellcode:
begin
  Label1.Caption := IntToStr(ReceiveBuffer1[0]);
  Label2.Caption := CardToDual(ReceiveBuffer1[1]);
  Label3.Caption := IntToHex(ReceiveBuffer1[2], 2);
  ...
end;
marabu

Sharky 13. Sep 2005 09:10

Re: async Fragen
 
Zitat:

Zitat von marabu
Sicher doch - alles was du willst:

:shock:
Jetzt zeigt er Byte1 und Byte2 ja nicht als Dezimalzahl an ;-)
Entschuldigung. Das musste sein.

xeus 13. Sep 2005 09:12

Re: async Fragen
 
mit der methode komm ich irgendwie nicht klar, kannst du mir bitte zeigen, wie ich z.b. memo die erste zeile (den wert) in eine variable setzen kann... usw?;

weil mit deiner methode bringt er mir die reihung durcheinander

nochmals vielen dank

marabu 13. Sep 2005 09:18

Re: async Fragen
 
Die Ausgabe im Memo ist doch nur ein Beispiel für eine Visualisierung gewesen. So, wie die Daten ins Memo geschrieben werden, kannst du sie natürlich überall hin schreiben. Wenn du sie gerne auf einer Label-Komponente anzeigen möchtest, dann sagst du halt nicht Memo.Lines.Add() sondern:

Delphi-Quellcode:
 CLCLabel.Caption := IntToStr(ReceiveBuffer1[7]);
Auf jeden Fall holst du dir den Wert nicht aus dem Memo, sondern direkt aus deinem Puffer.

marabu

xeus 13. Sep 2005 09:19

Re: async Fragen
 
WUNDERFULL danke du profi. werd dich heut mit sicherheit noch öffter nerven. bis jetzt herzlichen dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Seite 2 von 5     12 34     Letzte »    

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