AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL einbinden octopus.dll

Offene Frage von "multi-man"
Ein Thema von multi-man · begonnen am 22. Jul 2008 · letzter Beitrag vom 5. Aug 2008
Antwort Antwort
Seite 3 von 4     123 4      
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: DLL einbinden octopus.dll

  Alt 25. Jul 2008, 20:43
@Wal: Der Referenzparameter ist ja nur nebensächlich. Ob der schon bekannte Zeiger wieder zurückgeliefert wird oder nicht ist völlig schnuppe. Wichtig ist nur, dass man selber für das Speicherreservieren sorgen muss.

@multi-man: Deinen Codeauszug habe ich mir auch schon angesehen. Prinzipell sieht das alles schonmal gut aus. Dort werden viele Hürden genommen, wo es schon Fehler hageln könnte.
Aber wenn es mit Phyton geht warum sollte das dann nicht auch Delphi gehen? Das ist sehr mysteriös.
Weil an der besagten Stelle alle verfügbaren USB-Geräte durchgegangen werden und nach der PID und VID gesucht wird.

Da habe ich leider auch grad keinen Einfall mehr.
  Mit Zitat antworten Zitat
multi-man

Registriert seit: 10. Jul 2008
16 Beiträge
 
Delphi 7 Professional
 
#22

Re: DLL einbinden octopus.dll

  Alt 25. Jul 2008, 20:52
Zitat von omata:
Aber wenn es mit Phyton geht warum sollte das dann nicht auch Delphi gehen? Das ist sehr mysteriös.
Weil an der besagten Stelle alle verfügbaren USB-Geräte durchgegangen werden und nach der PID und VID gesucht wird.

Da habe ich leider auch grad keinen Einfall mehr.
Wenn ich das wüsste ...

Ich kann mir nur vorstellen, dass der record octopus_context falsch ist, aber ich kapier einfach nicht, wie der aussehen soll ...

in octopus.h ist er ja so beschrieben:

Code:
struct octopus_context {
   // USB specific
   /// libusb's usb_dev_handle
   struct usb_dev_handle *usb_handle;

   /// String representation of last error
   char *error_str;
};
und in usb.h steht ja
Code:
struct usb_dev_handle;
typedef struct usb_dev_handle usb_dev_handle;
Wobei ich sagen muss dass ich die deklaration in usb.h garnicht verstehe, dafür ist mein c zu schlecht ...

lg
  Mit Zitat antworten Zitat
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#23

Re: DLL einbinden octopus.dll

  Alt 25. Jul 2008, 23:06
Zitat von multi-man:
Zitat von omata:
Aber wenn es mit Phyton geht warum sollte das dann nicht auch Delphi gehen? Das ist sehr mysteriös.
Weil an der besagten Stelle alle verfügbaren USB-Geräte durchgegangen werden und nach der PID und VID gesucht wird.

Da habe ich leider auch grad keinen Einfall mehr.
Wenn ich das wüsste ...

Ich kann mir nur vorstellen, dass der record octopus_context falsch ist, aber ich kapier einfach nicht, wie der aussehen soll ...

in octopus.h ist er ja so beschrieben:

Code:
struct octopus_context {
   // USB specific
   /// libusb's usb_dev_handle
   struct usb_dev_handle *usb_handle;

   /// String representation of last error
   char *error_str;
};
und in usb.h steht ja
Code:
struct usb_dev_handle;
typedef struct usb_dev_handle usb_dev_handle;
Wobei ich sagen muss dass ich die deklaration in usb.h garnicht verstehe, dafür ist mein c zu schlecht ...

lg
Und das ist ja was ich gemeint habe, im Delphi-Header für usb_dev_handle steht:
Delphi-Quellcode:
pusb_dev_handle = pointer; // struct usb_dev_handle;
 // typedef struct usb_dev_handle usb_dev_handle;
Wal
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: DLL einbinden octopus.dll

  Alt 25. Jul 2008, 23:32
Zitat von Wal:
Und das ist ja was ich gemeint habe, im Delphi-Header für usb_dev_handle steht:
Delphi-Quellcode:
pusb_dev_handle = pointer; // struct usb_dev_handle;
 // typedef struct usb_dev_handle usb_dev_handle;
Und was soll das nun konkret heißen?
Wenn der usb_handle ein Pointer ist, dann war meine Annahme einen Integer zunehmen ja nicht so abwegig. Das ist die gleiche Größe im Speicher und ob der nun aus Delphi heraus dereferenziert werden kann oder nicht ist doch egal, weil der Zugriff doch sowieso nur durch die Dll erfolgt. Damit reicht es doch den Speicher dafür bereit zustellen und genau das ist hier bis jetzt passiert.
  Mit Zitat antworten Zitat
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#25

Re: DLL einbinden octopus.dll

  Alt 30. Jul 2008, 16:31
Habe heute das OctopusCan bekommen, bei mir funzt das Ganze ohne Fehlermeldung mit dem Code von Omata.
Er übergibt mir bei Init und Open jeweils 1.

Wal
  Mit Zitat antworten Zitat
multi-man

Registriert seit: 10. Jul 2008
16 Beiträge
 
Delphi 7 Professional
 
#26

Re: DLL einbinden octopus.dll

  Alt 30. Jul 2008, 19:51
@Wal:

Kannst Du mal den kompletten Code posten, vielleicht hab ich ja irgendwie nen Fehler gemacht ..

Welche LibUSB hast du denn auf dem PC ?

Welche Firmware auf dem octopus ?

Ich bekomme bei open und init auch ne 1 zurück, aber im error_str steht dann bei mir "can't set configuration for given usb device"
und beim versuch einen Pin zu schalten, kommt "communication error" in den error_str

LG
  Mit Zitat antworten Zitat
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#27

Re: DLL einbinden octopus.dll

  Alt 30. Jul 2008, 20:01
Ich nutze den SVN. Habe aber auch den Fehler, das ich kein Pin schalten kann. Der Fehler wird im Octopus-Forum beschrieben, aber die alternativen Firmware funzt bei mir auch nicht.

Wal
  Mit Zitat antworten Zitat
multi-man

Registriert seit: 10. Jul 2008
16 Beiträge
 
Delphi 7 Professional
 
#28

Re: DLL einbinden octopus.dll

  Alt 30. Jul 2008, 20:20
hmm, ja ist schon merkwürdig ...

Also mit Python funzt es es ja bei mir wunderbar, habe auch schon probiert, mit python4delphi den code im wrapper auszuführen, aber auch dabei kommt eine exception raus ...
  Mit Zitat antworten Zitat
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#29

Re: DLL einbinden octopus.dll

  Alt 2. Aug 2008, 06:06
Habe hier ein simples Programm geschrieben um eine Led anzusteuern.
Werde mal versuchen eine Compo daraus zu machen. Hauptsache man sieht mal was.
Nehme direkt die LibUSB und ohne die Octopus.dll.

Wal

Neue Version unten.
  Mit Zitat antworten Zitat
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#30

Re: DLL einbinden octopus.dll

  Alt 2. Aug 2008, 10:53
Eine verbesserte Version, der demo.c im Ordner Demos nachempfunden.

Wal
Angehängte Dateien
Dateityp: zip octopususb_2_185.zip (224,6 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 22:15 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