Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Zugriff auf USB Camera (https://www.delphipraxis.net/55144-zugriff-auf-usb-camera.html)

romancer 17. Okt 2005 11:27


Zugriff auf USB Camera
 
Hallo Leute,

ich versuche, auf meine Digitalkamera 'Canon PowerShot G1' am
USB zuzugreifen. Das klappt soweit auch ganz gut mittels CreateFile.

In der MSDN-Library zur API steht auch ne ganze Menge, um die Deskriptoren
zu ermitteln und so. Aber nun möchte ich mittels meiner eigenen Software
automatisch den Kamera-Auslöser aktivieren, und am besten das gemachte
Bild auch gleich in meinem Programm anzeigen.

Da das Gerät die 'usbscan.sys' nutzt, müsste es doch als USB-Klassengerät
fest definierte Funktionen zum Bild machen und übertragen geben, oder?
Allerdings finde ich in dieser Richtung nüscht in der MSDN-Library.

Meine Frage ist also, wie kann ich die Funktionen zum auslösen und zum
übertragen des Bildes ermitteln? Geht das mittels ReadFile / WriteFile, oder
muss ich mittels DeviceIOControl irgendwas bewegen?

Wär super, wenn mir jemand die Richtung weisen könnte, oder Codeschnipsel hätte.
Ich such mir jetzt schon seit Tagen diesbezüglich den Wolf.

thx.

Robert Marquardt 17. Okt 2005 12:16

Re: Zugriff auf USB Camera
 
USBSCAN.SYS duerfte bedeuten das das Geraet in der "Still Image" Class ist und einen TWAIN-Treiber bereitstellt.
Ich wuerde es also erst mal mit einer TWAIN-Komponente versuchen.

Es besteht die Moeglichkeit das die Fernsteuerung der Kamera auch in einem HID-Geraet ausgelagert ist.
Schau mal im Device Manager nach ob sich dort ein HID-Geraet mit verraeterischem Namen herumtreibt wenn die Kamera angesteckt ist.

romancer 17. Okt 2005 13:20

Re: Zugriff auf USB Camera
 
Hallo,

danke für den Tipp. Über die TWAIN-Schnittstelle lässt sich tatsächlich was machen :-)

Allerdings hab ich damit bislang noch nicht gearbeitet. Mittels der DelphiTwain - Komponente
von Gustavo Daud lässt sich sehr simpel auf die Speicherkarte zugreifen und die Bilder
runterladen, mittels 'acquiring images'.

Aber damit ist mein eigentliches Haupt-Problem nicht gelöst. Ich finde in der TWAIN-Spezifikation
keinen Ansatz, die Kamera auch auszulösen, also Bilder zu erstellen. Ist das mit TWAIN überhaupt
möglich?

Vielleicht kann mir da ja auch noch jemand nen Hint geben.

thx.

Robert Marquardt 17. Okt 2005 13:34

Re: Zugriff auf USB Camera
 
Ein USB-Geraet kann sich auch als mehrere Geraete anmelden.
Schau mal nach was der Geraetemanager anzeigt.

(warum lesen die Leute eigentlcih imer nur die halbe Antwort?)

romancer 17. Okt 2005 13:46

Re: Zugriff auf USB Camera
 
Hätte ich vielleicht noch dazu sagen sollen ...

Nein, kein HID. Die Kamera taucht nur als Bildbearbeitungsgerät im Gerätemanager auf.
Auch die Hilfe-Datei zu TWAIN vom Kamera-Hersteller (Canon) liefert mir lediglich
Details zum Datentransfer und zur Bildmanipulation bereits gemachter Bilder.

Bietet TWAIN denn da noch Möglichkeiten? Oder ist der Ansatz über die API vielleicht
doch machbar? Oder gibt es noch andere Ansatzmöglichkeiten?

Robert Marquardt 17. Okt 2005 13:57

Re: Zugriff auf USB Camera
 
Das ist schwer zu sagen. Das haengt vom TWAIN-Treiber ab.
Fuer alle anderen Zugaenge braucht man wahrscheinlich Dokumentation vom Hersteller.

romancer 17. Okt 2005 14:19

Re: Zugriff auf USB Camera
 
Also bringen mir die 'Device-Descriptors' keine Info?
Ich hätte ja eigentlich gedacht/gehofft, das die Funktionen
nennen wie z.B. 'ReleaseShutter' o.ä., die ich dann nur aufrufen
brauch, bzw. das so etwas über 'usbscan.sys' standardmässig definiert
ist.

Wenn der Hersteller diesbezüglich schon nix in seiner Hilfedatei bzgl.
TWAIN nennt, dann ist von dieser Seite wohl auch nicht mehr Hilfe
zu erwarten.

Irgendwie wird das doch zu machen sein. Immerhin hab ich bereits
(leider kostenpflichtige) Software gesehen, die das kann (z.B. PSRemote von breezesys.com)

Trotzdem besten Dank für die Hilfestellung bis hierher.
Vielleicht weiss ja sonst noch jemand einen Ansatz.

Jedenfalls geb ich noch nicht auf.

thx.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 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