Autor Beitrag
serasa
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 04.02.09 14:58 
Hallo zusammen,

meine kenntnisse bei delphi sind nicht besonders hoch entwickelt, allerdings wurde mir im rahmen eines projektes unseres dorfvereines eine recht komplexe aufgabe gestellt, und leider finde ich absolut keine ansätze das problem zu lösen.


nun zum thema des ganzen.

es soll ein paddelwettbewerb stanfinden. und es soll mithilfe eines pcs und einer kamera die ziellinie gefilmt werden.
das ganze soll mithilfe eines programmes stattfinden was ein signal von einem signalgeber (fernbedinung) automatisch anfangen die ziellinie zu filmen, dabei soll zeitlgiech eine stopuhr laufen.

das ganze wollte ich nun mithilfe von delphi programieren^^ leider fehlen mir infos ob das überhaupt möglich ist.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 04.02.09 15:49 
Hallo und :welcome: im Forum!

Soll nur gefilmt werden oder das Bild auch ausgewertet werden? Also soll automatisch erkannt werden, wenn die Ziellinie überquert wurde? Dann hättest du eine ganz schön schwere Aufgabe vor dir. Aber möglich ist auch das natürlich.

Nur das Abfilmen ist dagegen einfacher. Einzelbilder reichen ja mit dem entsprechenden Zeitstempel aus, oder?
www.delphi-forum.de/viewtopic.php?p=368362
www.delphipraxis.net/post442552.html
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 04.02.09 16:42 
nunja es soll gefilmt werden hinterher ausgewertet.

die aufnahme soll mit einem signal durch eine fernbedienung beginnen dabei muss eine art stopuhr mitlaufen. eine momentaufnahme soll es nicht werden. ab dem start des filmes soll die uhr laufen und mit der ziellinie gefilmt werden, damit sowohl zeit und auch ziellauf gefilmt werden .
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 04.02.09 18:13 
Unter dem ersten Link findest du auch Quelltext für das Erstellen eines Films, weiter unten gibt es dort zum Beispiel Projektversuche dazu.

Selbst ausprobiert habe ich dies bisher nicht.
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Do 05.02.09 18:58 
super das hat wirklich geholfen umzusetzen eine videoaufnahme sogar mit zeitmessung.

das nächste problem ist allerdings wie kann man ein signal per funk umsetzen das es delphi hinbekommt das signal als knopfdruck zu interpretieren?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 05.02.09 19:31 
Woher kommt denn wie das Signal im PC an? Ich meine, da gibt es sehr sehr viele Möglichkeiten. ;-)

Wenn es als Signal wie eine Multimediataste ankommt, ist es einfach. Oder wenn da eine Software dabei ist, die eine bestimmte Anwendung starten kann. Aber allgemein gibt es da nichts, da musst du schon etwas genauer werden.
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 06.02.09 17:12 
ich dachte das es an com lpt oder evt sogar an usb ankommen könnte es soll über einen druckknopf ausgelöst werden, das ist kein problem soweit die hardwareseite kann ich variieren, mir geht es nur um die software umsetzung^^ das ein buton über das signal die aufnahme und die stopihr startet^^ aufnahme ist soweit ok stopuhr genauso^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 06.02.09 18:12 
Die professionelle umfassende Lösung für so etwas ist TurboPower Async Professional:
sourceforge.net/projects/tpapro

Es gibt aber auch viel, wenn du nach "delphi serielle schnittstelle" oder "delphi parallele schnittstelle" oder so suchst:
www.delphipraxis.net...st992148.html#992148
Das ist einfacher einzubinden. ;-)

Und die allereinfachste Lösung: ;-)
Nimm eine Fernsteuerung wie es sie zu kaufen gibt. Die reicht meistens ca. 15 Meter weit ohne Probleme. Diese Fernsteuerungen lösen normalerweise (die billigen zumindest) nur einen Tastendruck aus um z.B. Präsentationen zu steuern, und du musst den dann nur abfangen.

Andere Möglichkeit (recht einfach, aber da wäre es schon besser eine Schnittstelle richtig anzusteuern):
Du nimmst eine alte Maus auseinander und ersetzt den Schalter einer Maustaste durch einen elektrischen Schalter, den du dann steuern kannst wie auch immer du willst. Dann noch das Programm maximieren, Mausklick abfangen, fertig. Aber das ist natürlich die unschönste Lösung. ;-)
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 16.03.09 14:08 
so muss mich leider doch nochmal melden^^

also ein programm was mir mein bild zeigt ist fertig und auch was mir das bild aufnimmt^^

nun kam ja die hardware seite hinzu da hatte ich mir viel überlegt und habe nun eine lösung gefunden.

ich habe mir ein relaise modul besorgt bei conrad 8 chanal usb optocoupler dieser hat ein und ausgänge. an die karte kommt nun ein tasteroder schalter heran.

im beispiel auf der cd ist ein program dabei welches mir zeigt was ein ausgang ist.

so im handbuch steht auch eine tabelle dort brauche ich denke diese input output funktionen.

dort gibt es die wahl liest ein bit von den eingängen des modules oder ließt 8 bitwert von den eingängen des modules dazu kommt eine funktion:
1 bit: ulong qapiextreaddl1
( ulong cardhandle, Ulong channel, ulong mode);
8 bit wert: ulong qapiextreaddl1
( ulong cardhandle, Ulong channel, ulong mode);

meine frage ist nun wie sage ich delphi das es aufnimmt sobald auf dem knopf gedrückt wird sowas wie in der art push record when 1 anliegt zb.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 16.03.09 14:41 
Je nach Implementierung musst du selbst immer abfragen oder die mitgelieferte DLL bietet dir eine Callbackfunktion, wenn sich etwas ändert.

Da es sehr genau gemessen sein soll, Windows aber kein Echtzeitbetriebssystem ist, bleibt dir vermutlich nur die ständige Abfrage des Wertes. Da auf dem Rechner ja nix anderes laufen wird in der Zeit, ist das auch kein Problem.

Du machst also eine Schleife mit der Abfrage des Wertes und Application.ProcessMessages (damit dein Programm noch reagiert). Die erste der Funktionen kann dafür ja schon reichen, denn es geht ja nur um 1 Bit. Genauso kannst du aber die zweite nehmen, denn etwas anderes wird an den Eingängen ja ohnehin nicht verändert (nehme ich an).
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 16.03.09 15:01 
das klingt gerade ziehmlich fach chinesisch irgendwie versteh ich nicht was ich da wie schreiben soll^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 16.03.09 15:05 
In Delphi übersetzt sieht die Funktion ja so aus:
ausblenden Delphi-Quelltext
1:
function QApiExtReadDl1(cardhandle, channel, mode: ULONG): ULONG;					
Du gibst also ein Handle zu der geöffneten Karte, sowie Channel und Mode an. Dann bekommst du einen entsprechenden Wert zurück.

Da sind doch auch Delphi-Header dabei, oder? Wenn da ein Beispiel für Delphi dabei ist, würde ich das stark vermuten. Denn sonst müsstest du die Funktionen selbst übersetzen und deklarieren.
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 16.03.09 15:10 
wenn ich die werte einlese bei dem schalter wie kann ich dann die auslösung einbringen? ansich soll ja der schalter beim umlegen die aufnahme aktivieren


QLIB 1.9.8s QLIB für Windows XP/2000/NT4.0/ME/98/95
32-Bit-Version der QUANCOM Treiber Library - Ermöglicht den Zugriff auf die Hardware über die QLIB Programmierschnittstelle ( API ) - Die QLIB enthält die Treiber und die Include Dateien um z.B. von Visual-Basic, Visual-C, LabView, Delphi, Borland-C, MS Excel, MS Access und Sun Java ( Watchdogkarten ) auf die Hardware zuzugreifen. [Download 69,5MB]


das wäre mit drauf
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 16.03.09 15:13 
So in der Art sollte das klappen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Label1.Caption := 'Bereit, warte...';
while QApiExtReadDl1(...) = 0 do
  Application.ProcessMessages;
ShowMessage('ausgelöst');
Welche Werte du da zurückbekommst, müsstest du ausprobieren, aber ich gehe davon aus, dass es 0 ist und wenn am Eingang Spannung anliegt ungleich 0 ist.

Eine Abbruchmöglichkeit am Rechner mit einem Knopf oder so müsste auch noch rein vermutlich. ;-)
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 16.03.09 15:20 
danke dir^^ morgen mache ich mal testläufe mit gesammelter ausrüstung^^ danke dir vielmals ^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 16.03.09 15:47 
Also wenn ich das richtig sehe, dann wären die passenden Delphi-Demos für deine Karte diese:
ausblenden Quelltext
1:
2:
C:\Program Files\QUANCOM\Qlib32\Samples\usbopto\usbopto8\delphi_app_digital_in
C:\Program Files\QUANCOM\Qlib32\Samples\usbopto\usbopto8\delphi_digital_in

Auf jeden Fall liegt dort eine qlib.pas mit den Delphiübersetzungen dabei.

Die Beispiele musst du dafür natürlich mit installiert haben.
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 17.03.09 18:00 
so es hat nun alles soweit geklapt mein program nimmt ein video auf und spielt es auch wieder ab^^
da freu ich mich sehr darüber, nun steh ich aber immernoch vor der schaltkarte habe diese heute mit usb verbunden auch einen schalter angebracht mit 5v. laut dem testprogram wird es erkannt aber irgendwie schaffe ich es nicht einzubauen das die aufnahme startet.


Label1.Caption := 'Bereit, warte...';
while QApiExtReadDl1(...) = 0 do
Application.ProcessMessages;
ShowMessage('ausgelöst');

dort steht ja das das program auf den wert 0 wartet von der karte wenn der wert0 ankommt kommt die meldung ausgelöst aber leider bekomm ich nichtmal das hin.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 17.03.09 18:02 
Das Demoprogramm, dessen Pfad ich gepostet habe, benutzt soweit ich mich erinnere auch andere Funktionen dafür als die von dir gepostete.
Da müsstest du einmal schauen wie genau das da ausgelesen wird und das in dein Programm übernehmen.

Was genau passiert denn in dem Testprogramm, wenn du den Schalter betätigst?
serasa Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 17.03.09 18:04 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Das Demoprogramm, dessen Pfad ich gepostet habe, benutzt soweit ich mich erinnere auch andere Funktionen dafür als die von dir gepostete.
Da müsstest du einmal schauen wie genau das da ausgelesen wird und das in dein Programm übernehmen.

Was genau passiert denn in dem Testprogramm, wenn du den Schalter betätigst?


habe ein fenster dort wähle ich die opto karte aus und unten ist ein graues feld mit input und output, habe auf input geklemmt und sobald man den schalter umlegt erscheint ein häkchen.

aber auch selbst wenn ich rausbekomme was anliegt wo füge ich das denn ein den code?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 17.03.09 18:10 
Du müsstest einen Knopf für das Starten haben. Daraufhin wartet das Programm darauf, dass du abbrechen drückst (boolsche Variable z.B.) oder das Signal zum Starten ankommt.

Wenn nicht abgebrochen wurde (laut Variable), dann wurde gestartet und du kannst normal weitermachen.