Aktuelle Zeit: 29.01.2020 00:22

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 10.12.2008 23:03 
Offline
Benutzeravatar

Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Susan20 hat geschrieben:
Nee, leider ist keine Doku bei den DLLs dabei. Ich glaube, Olympus will, dass man die Olympus-Abspielsoftware kauft und nicht, dass man sich was eigenes schreibt. :cry:

Gibt's von der Software irgendwie 'ne Demo oder sowas?

_________________
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 10.12.2008 23:08 
Offline
Benutzeravatar

Registriert: 28.07.2005 12:39
Du muesstest ja nur ein Callback fuer das Fenster anlegen und dort
WM_DVR_PUSHCHANGE abfangen. Aber dafuer benoetigst du einen
Header oder Doku usw.

_________________
Suche


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 11.12.2008 10:26 
Offline

Registriert: 28.02.2008 22:00
@Edel: Ich denke, dass die im C-Programm verwendeten Konstanten wie z.B. WM_DVR_PUSHCHANGE in der DLL festgelegt sind. Leider durchblicke ich den C-Code nicht, warum es einen Window-Callback gibt. Wenn ich zu Testzwecken einfach nur eine Meldung haben will wie "Rechte Fußtaste wurde gedrückt", dann brauche ich doch kein Fenster!?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 11.12.2008 11:38 
Offline
Benutzeravatar

Registriert: 28.07.2005 12:39
Der Treiber muss die Nachricht irgendwo hinschicken. Kann natuerlich
auch sein das du da einen Befehl hast um den Status manuell abzufragen.
Solange du aber nicht weisst welche Werte die Konstanten haben, sieht
das ganze recht duester aus. Was du brauchst ist ein Entweder nen SDK
oder vorhandene Software selber Debuggen z.B. mit Olly
http://www.ollydbg.de/

_________________
Suche


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 11.12.2008 11:43 
Offline

Registriert: 28.02.2008 22:00
Danke, edel, für den Tipp. Leider schaffe ich es heute nicht mehr, werde es aber morgen ausprobieren! :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 12.12.2008 12:23 
Offline

Registriert: 28.02.2008 22:00
@edel: Ich habe es geschafft, und zwar ohne ollydbg. Ich habe einfach Deine Tipps "Callback für Fenster" und "Header" aufgeschnappt. Aus dem Link auf das C-Programm (Danke, bobobo!) habe ich die Paramter rausgekriegt wie pointer auf integer-Var und Windows-Handle. Und dann habe ich über die EventwParam()-Funktion die Konstanten für die einzelnen Aktionen in Erfahrung gebracht und als Nebenprodukt gab es dann auch den Wert für den Event.

Nochmal vielen Dank an alle für die Hilfe. Hier ist der Code (klar, damit kann jetzt wahrscheinlich keiner etwas anfangen, trotzdem .... )

Code:
OpenLibrary(0, "drv_foot_pedal.dll")

inf = 0
erg = CallFunction(0, "GetFootSWInfo", @inf)
If erg = 7
   MessageRequester("Info", "Kein Fußschalter angeschlossen!")
   Goto ende
EndIf

#window = 0
OpenWindow(#window, 317, 319, 500, 200, "Fußschalter",  #PB_Window_SystemMenu); | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )

CreateGadgetList(WindowID(#window))
TextGadget(1, 50, 50, 200, 30, "Auf geht's!")

hdl.l = WindowID(#window)
CallFunction(0, "OpenUSBFootSW", hdl, 0)

#PEDAL_EVENT = 1525
#RIGHT_ON = 2
#RIGHT_OFF = 32770
#LEFT_ON = 4
#LEFT_OFF = 32772
#MIDDLE_ON = 8
#MIDDLE_OFF = 32776

Repeat
   event = WindowEvent(); WaitWindowEvent()
   If event  = #PEDAL_EVENT
       Select EventwParam()
          Case #RIGHT_ON
              SetGadgetText(1,"Rechter Fußtaster gedrückt!")
          Case #RIGHT_OFF
              SetGadgetText(1,"Rechter Fußtaster frei!")
          .
          .
          .
         EndSelect
 
    EndIf
Until event = #PB_Event_CloseWindow

ende:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 12.12.2008 12:47 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
@Susan20: Hier die obligatorische Klugscheisser-Antwort auf Deinen Code:

* Goto ist böse! Nicht verwenden!

* OpenLibrary() hat einen Rückgabewert, den man auswerten sollte.

* Wenn OpenLibrary(), dann auch CloseLibrary()

* Wenn es denn unbedingt WindowEvent() sein muss, dann auch noch ein
Delay() einbauen, weil es Dir sonst Deine CPU verbrutzelt und die anderen
Applilationen keine Luft mehr bekommen.

* Zu OpenUSBFootSW gibt es bestimmt auch noch ein entsprechendes Close*, oder?

Grüße ... Kiffi (ja, ich weiß, dass der Code nur für Dich ist, aber je mehr
Du es verinnerlichst, desto besser ;-))

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 12.12.2008 13:02 
Offline

Registriert: 28.02.2008 22:00
@Kiffi: Bin für jede Verbesserung dankbar. Ich will ja schließlich, dass es rund läuft. :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 13.12.2008 18:25 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Habe die Diskussion über Goto abgeschnitten.
Kiffi hat geschrieben:
* Goto ist böse! Nicht verwenden!


Besser ausgedrückt: Goto sollte man möglichst vermeiden.
Da bei unüberlegten Programmsprüngen unerklärliche Endlosschleifen als
auch Programmabbrüche entstehen könnten.

Also bitte hier keine weitere Goto-Diskussion mehr, damit das Thema von
Susan20 nicht verfehlt wird. Den Anhang habe ich im Mülleimer abgezwickt.

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye