AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Abfragen des Input

Ein Thema von christheg · begonnen am 22. Mär 2009 · letzter Beitrag vom 23. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2   
christheg

Registriert seit: 22. Mär 2009
6 Beiträge
 
Delphi 7 Personal
 
#1

Abfragen des Input

  Alt 22. Mär 2009, 04:35
Hallo zusammen,

ersteinmal Hallo an alle wirklich nettes Forum was ihr hier habt^^


so nun zum Thema, hoffe ich hab den richtigen Forenteil erwischt^^


Es geht darum , ich habe mir eine USB Optokopler Karte geholt, weil ich gerne versuche starten wollte mit Signal über Eingängen die von draußen kommen mit meinem Delphi etwas auszulösen^^.
So habe mir diese Karte besorgt und es gab ein beispiel Porgramm dazu, dieses Funktioniert auch Tadelos, allerdings steig ich nicht dahinter wie die das Programiert haben.

Ich habe versucht mit dem ersten Eingang der karte ein Porgramm zu schreiben, auf Knopfdruck bzw Schalterumlegung soll erscheinen Hallo Welt, nur irgendwie gelingt mir das nicht, ich würde mich über hilfe sehr freuen.

Habe das Mitgeliferte Programm angehangen.

Danke schonmal im voraus^^
Angehängte Dateien
Dateityp: zip usbopto8_delphi_app_digital_in_696.zip (19,1 KB, 15x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Abfragen des Input

  Alt 22. Mär 2009, 10:44
Hi,

also ich finde das Programm ist sehr einfach aufgebaut. Zeige mal deinen Code, damit wir rausfinden können woran es hapert.

Wichtig scheint mir zu sein, dass die Inputs mit Hilfe eines Timer immer wieder abgefragt werden. Es passiert also nix von alleine.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
christheg

Registriert seit: 22. Mär 2009
6 Beiträge
 
Delphi 7 Personal
 
#3

Re: Abfragen des Input

  Alt 22. Mär 2009, 11:06
code habe ich noch keinen, wollte eigentlich einfach nur hallo welt schreiben lassen auf knopfdruck also

hatte mir gedacht anfrangs:


Delphi-Quellcode:
Label1.Caption := 'Bereit, warte...';
while QApiExtReadDl1(...) = 0 do
  Application.ProcessMessages;
ShowMessage('Hallo Welt');
aber wollt er nicht, zur timer abfrage, die wollte ich eigentlich komplet weglassen einmal ausgelöst soll es bis manuelle pc eingabe dableiben.

In deren Programmbeispiel hab ich mich garnicht zurecht gefunden

Gruß Christian.
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Abfragen des Input

  Alt 22. Mär 2009, 11:55
Ok, also versuchen wir es mal zusammen.

Zunächst scheint mir wichtig zu sein, das Gerät zu öffnen und ein Handle zu bekommen

  handle := QAPIExtOpenCard(USBOPTO8, device); device ist eine Gerätenummer von 0 - 7, versuch es mal mit 0.

dann sollte es möglich sein die inputs zu lesen

    lines := QAPIExtReadDI32(handle, 0, 0); lines liefert dir 8 inputs auf einmal, jeder ist ein bit und kann mit
Delphi-Quellcode:
    if (lines and (1 shl j)) <> 0 then
       // input an
    else
      // input ist aus
    ;
wobei j von 0 - 7 geht, auf seinen Zustand geprüft werden.

und am Ende wieder das Gerät schliessen
   QAPIExtCloseCard(handle); Das erste im FormCreate, das letzte im FormDestroy. In der Mitte deine Prozedur zu erkennen der Aktion.

Versuchs mal.
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
christheg

Registriert seit: 22. Mär 2009
6 Beiträge
 
Delphi 7 Personal
 
#5

Re: Abfragen des Input

  Alt 22. Mär 2009, 12:36
irgendwi versteh ich das nicht^^

wo die befehle hinmüssen und die vereinbarungen. könntest du mir ein beispiel für mein hallo welt schreiben, tappe komplett im dunkeln bei dem ganzen.

Grüße Christian
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Abfragen des Input

  Alt 22. Mär 2009, 13:12
Na eigentlich solltst Du das selber können.
Du hast doch schon mal ein Programm geschrieben oder ?

Also ich will mal nicht so sein....

Achtung in der qlib.pas sind noch ein paar Fehler drin. Habe sie korrigiert.
Ich kann es natürlich nicht testen, da ich deine Hardware nicht habe.

Versuchs. Die Dll zu der Karte sollte im Windows Verzeichnis oder im Programmverzeichnis liegen.

Gruss
Angehängte Dateien
Dateityp: zip 2009-03-22-welt_158.zip (8,1 KB, 5x aufgerufen)
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
christheg

Registriert seit: 22. Mär 2009
6 Beiträge
 
Delphi 7 Personal
 
#7

Re: Abfragen des Input

  Alt 22. Mär 2009, 13:37
danke dir^^ ja habe schon programme geschrieben allerdings stehe ich noch weit am anfang vieles ist für mich eher neu und ich will auch daran lernen^^


eine frage habe ich allerdings wozu ist dieses formdestroy eigentlich gut? hatte als ich selber versucht habe das program zu kürzen diese funktion entfern dachte immer die wäre unnütz
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Abfragen des Input

  Alt 22. Mär 2009, 16:13
Hi,

unnütz ist sie sicher nicht, sonst gäbe es sie nicht

FormDestroy wird aufgerufen, kurz bevor das Form halt freigegeben wird. Hier kann man notwendige Aufräumarbeiten durchführen, z.B. Speicher oder Handles freigeben, den/die man am Anfang (FormCreate) reserviert hat. Es ist einfach das logische Gegenstück zu FormCreate.

Ich Empfehle dir mal ein paar Tutorials zu studieren, das bringt dich sicherlich konzeptionell weiter. Verwende die Forensuche Hier im Forum suchenTutorials oder auch hier [dt:f12f890d28]Tutorials[/dt:f12f890d28], da wirst du sicherlich fündig.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
christheg

Registriert seit: 22. Mär 2009
6 Beiträge
 
Delphi 7 Personal
 
#9

Re: Abfragen des Input

  Alt 22. Mär 2009, 19:39
so hab nun bischen rumgespielt (ganzen tag schon) möchte auch gerne das bischen anders probieren, nun hab ich ein altes schulprojekt mal rausgegraben, und will nun das mit dem abfragen einbasteln.

Delphi-Quellcode:
procedure TForm1.StartesequenzielleAufnahme1Click(Sender: TObject);
begin
  Aufnahme:=true; AnsichtUpdate1Click(self); //aktualisiere Menüs
  if form1.IniEinzelbild then begin
     // Foto - Sequenz
     timer1.Interval:=form1.IniIntervall*1000;
     TimerStatus:=TSBildFolge;
     timer1.Enabled:=true;
  end else begin
     // Video - Folge
     TimerStatus:=TSvideoFolge;
     repeat
       label1.Caption:='Videoaufnahme';
       NextDateiname;
       EinVideo; // aufnehmen
       Timer1.Interval:=form1.IniEinzelVideoDauer*1000;
       timer1.Enabled:=true;
       repeat
         Application.ProcessMessages; //Abbruchmöglichkeit 1
       until TimerStatus<>TSvideoFolge;
       label1.Caption:='Videoerholpause';
       EinVideoStop; // erholen
       Timer1.Interval:=form1.IniErholzeit;
       timer1.Enabled:=true;
       repeat
         Application.ProcessMessages; //Abbruchmöglichkeit 1
         label1.Caption:=inttostr(timer1.interval)+'x'+inttostr(Timerstatus);
       until TimerStatus<>TSvideoFolgePause;
     until TimerStatus=TSStopAnforderung; // abbruch?
     Aufnahme:=false;
     AnsichtUpdate1Click(self);
  end;
end;
das ist die prozedur die ich damit auslösen will

also muss ich das nun folgendermaßen einbinden:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 while QAPIExtReadDI32(handle, 0, 0) = 0 do
    Application.ProcessMessages;
     label1.Caption:='Videoaufnahme';
       NextDateiname;
       EinVideo; // aufnehmen
       Timer1.Interval:=form1.IniEinzelVideoDauer*1000;
       timer1.Enabled:=true;
 

end;

end.

ist das nun richtig gedacht oder komplet falsch?
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Abfragen des Input

  Alt 22. Mär 2009, 21:04
Sagen wir mal so: "Es ist nicht elegant, aber würde wohl gehen."

Du solltest mal über das Programmkonzept nachdenken.
Wenn ich erst einen Button klicken soll, um dann noch darauf zu warten dass ein Schalter umgelegt wird, ist hier eine Aktion zu viel da.

Ich denke dass lässt sich schöner lösen. Aber das ist halt deine Aufgabe als Entwickler, ein Konzept zu erstellen.

Versuch es mal nicht mit "Try and Error", sondern mit "Concept and Realisation".

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:21 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