Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Oszilloskop-aber wie anzeigen? (https://www.delphipraxis.net/10876-oszilloskop-aber-wie-anzeigen.html)

Borti 27. Okt 2003 11:15


Oszilloskop-aber wie anzeigen?
 
Hi!
Ich bin grad dabei meinen PC zu einem Oszilloskop auszubauen. Die Datenübernahme über den LPT-Port klappt schon, aber jetzt hapert’s an meinen Programmierkenntnissen. Ich will mir so einen Bildschirm kreieren, wie bei einem echten Oszilloskop. Das heißt, dass meine aktueller Wert am rechten Rand meines Anzeigefeldes eingespeist wird und die vorhergehenden einfach eins nach links verschoben wird und verschwindet, sobald er den linken Rand erreicht. Weiß von euch einer eine Komponente mit der man das ohne viel Aufwand realisieren kann? Ich hab’s schon mal bei TChart versucht, aber das Verschieben der Werte verbraucht zu viele Ressourcen und mein Rechner kommt mit der LPT-Abfrage nicht mehr hinterher (ca. 1000 mal pro Sekunde). Vielleicht hab ich’s auch einfach viel zu kompliziert gemacht. Ich würd’ mich freuen, wenn mir von euch einer helfen könnte.
Ciao,
Borti

Robert Marquardt 27. Okt 2003 11:28

Re: Oszilloskop-aber wie anzeigen?
 
Na da bekommst du immer Schwierigkeiten. Bei 1 Millisekunde fuer alles wird es schwierig fuer Windows.
Lager doch erst mal die Datenerhebung in einen Thread hoher Prioritaet aus.
Die Anzeige kannst du dann langsamer machen. Schneller als 100 Hertz muss es nicht sein, da kaum ein Monitor schneller darstellt.
Fuer die Anzeige koennte man einen xyGraph verwenden, auch wenn der schon ziemlich alt ist und nicht mit Text-DFMs zurechtkommt.

Gandalfus 27. Okt 2003 11:44

Re: Oszilloskop-aber wie anzeigen?
 
Alles mit Tcanvas selber zeichnen. esrat auf ein Hintergrung TBitmap und das das bild auf das Formular kopieren.

Borti 27. Okt 2003 11:56

Re: Oszilloskop-aber wie anzeigen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
so, hier kommt mein Code!
ich hab ihn jetzt noch auf die Schnelle zusammengestöpselt, könnt daher noch Fehler enthalten.
Er kann erstmal nur einen Pin vom LPT abfragen und kennt daher nur die Zustände 1 und 0. Wird noch erweitert, aber will erstmal sehen, ob's überhaupt möglich ist das genze grafisch darzustellen.

teebee 27. Okt 2003 11:57

Re: Oszilloskop-aber wie anzeigen?
 
Verbessere mich, wenn ich falsch liege, meine letzten Oszilloskoperfahrungen liegen etwas zurück...
Eine Komponente kenn ich leider auch nicht...

Ich dachte aber, dass bei einem Oszilloskop der Elektronenstrahl mit einer festen (wählbaren) Frequenz von immer wieder von links nach rechts läuft und über die Spannung am Eingang die Amplitude reguliert wird.

D.h. ein klassisches Oszilloskop schiebt nicht den ganzen Inhalt nach links, sondern übermalt das Bild immer wieder neu, durch das Nachleuchten ensteht bei der richtigen Frequenz dann ein stehendes Bild (bei einem entsprechenden Signal).

Programmiertechnisch könntest Du das (allerdings ohne extra Komponente...) so lösen, dass Du Deinen 'Elektronenstrahl' mit einer bestimmten Geschwindigkeit über Deinen 'Schirm' laufen lässt, und bei jeder neuen x-Position einfach die aktuelle Spannung einliest, und entsprechend Deine Linie zeichnest. Vorher müssen noch die alten Bilddaten gelöscht werden (auf der aktuellen x-Position über die gesamte y-Achse).

Kann ein Speicheroszilloskop den von Dir beschriebenen Effekt? Das würdest Du mit BitBlt(WinAPI) hinbekommen, indem Du den gesamten Bereich Deines Schirms um ein Pixel nach links schiebst, sowas geht im Allgemeinen recht schnell.

Ciao, teebee

Tim.exe 27. Okt 2003 12:17

Re: Oszilloskop-aber wie anzeigen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Liegt das an mir oder an der Demo???

s14 27. Okt 2003 12:45

Re: Oszilloskop-aber wie anzeigen?
 
@tim.exe

An der Demo, da ist der Pfad zur DLL vollständig angegeben :pale:

Borti 27. Okt 2003 16:54

Re: Oszilloskop-aber wie anzeigen?
 
an Robert Marquardt: Was für einen xygraph? Ich kenn nur Chartfx!
an teebee: ich hab jetzt was du gemeint hast mit dem verschieben ausprobiert. klappt soweit ganz gut, aber wie krieg ich da jetzt mein Coordinatensystem rein? ird da bitmap nicht immer größer, da ich es zwar über den rand der form hinausschiebe, aber den überstehenden bereich nicht abschneide?(du hattest recht mit deinen Oszi! wie ein speicheroszi aussieht- keine Ahnung! war mir zu teuer, daher mach ich's mir ja selbst)

Kann mir einer mal ein gutes Tutorial zu bitmaps, canvas etc. verraten? (Das ist mein erster versuch auf diesem gebiet)
Danke, Borti

InSys 27. Okt 2003 21:41

Re: Oszilloskop-aber wie anzeigen?
 
Hi Borti!
Schau mal Bei den TMS-Kompo's
unter www.tmssoftware.com nach, ob da was brauchbares dabdei ist.

teebee 28. Okt 2003 07:19

Re: Oszilloskop-aber wie anzeigen?
 
Um zu verhindern, dass das Bild über den Rand hinausgeschoben wird, wählst Du als zu verschiebenden Ausschnitt nicht das komplette Bild, sondern lässt die linke Pixelspalte weg. Diesen um eine Spalte schmaleren Ausschnitt verschiebst Du nun um eine Spalte nach links, löschst die rechte Spalte und kannst dort neu zeichnen.

Ciao, teebee


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr.
Seite 1 von 2  1 2      

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