[PTP] ptpCamGui - USB-Kamerasteuerung inkl. Datei-Download/Upload

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon msl » 27.01.2011, 20:15

Hallo wim,

vielen Dank für Test und GUI-Hinweise. Letzteres wird bei nächster Gelegenheit mit berücksichtigt.

Mit dem Layout für die Kamera-Steuertasten bin ich noch nicht so glücklich. Es entspricht ja dem Layout der meisten A-Klasse-Kameras (5xx, 6xx, 7xx). Mir ist dabei bewusst, dass viele Kameras andere Tastenbelegungen haben. Insbesondere die [ERASE]-Taste ist nicht so weit verbreitet.

Solange es keine Möglichkeit gibt, das Tastaturlayout der jeweiligen Kamera auszulesen, wird es sicherlich nur eine statische Kompromiss-Lösung geben.

Sollte eine Taste trotz Verfügbarkeit nicht funktionieren, liegt es aber nicht an ptpCamGui. Möglicherweise liegt ein Problem in der Portierung vor. Z.B. könnte der Key-Map in der plattformabhängigen kbd.c ungünstig angepasst worden sein.

Einen wichtigen Schritt in Sachen CHDK-Steuerung ist mit den letzten beiden Änderungen (Rev. 561 + Rev. 562) erfolgt. Damit lassen sich jetzt theoretisch alle CHDK-Menü-Einstellungen auch von der GUI aus steuern.

Vielleicht gibt es auch noch andere Ideen, die mit ptpCamGui realisiert werden können. Videosteuerung und Datenübertragung von der Kamera zum PC stehen schon auf dem Plan.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon TZocker » 28.01.2011, 19:56

Wie währe es mit einer Lösung übers interface. Bei der man die Camera über eine liste auswählen kann.

ps könntet ihr wieder die ptp gui als Anhang posten.

mfg
Canon A 650 IS
TZocker
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 51
Registriert: 12.06.2009, 16:20
Kamera(s): A 650

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon msl » 28.01.2011, 21:21

TZocker hat geschrieben:könntet ihr wieder die ptp gui als Anhang posten.

Das GUI-Paket ist nach wie vor im Eröffnungsbeitrag inkl. aller notwendigen Informationen zur Bedienung verfügbar.

In der neuesten Version ist ein [Reboot]-Schalter hinzugekommen, der einen Neustart der Kamera ermöglicht. Das ist z.B. nützlich, wenn man eine (neue) CHDK-Version auf die Kamera hochlädt.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon whim » 28.01.2011, 22:01

Hallo msl,

Danke für die Erläuterungen (hier, und im internationalen Forum !)

@TZocker
Nochmal Entschuldigung, hatte einfach vergessen mich ein Bericht zu bestellen bei PN Eintreffen

Gruß wim
Benutzeravatar
whim
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 88
Registriert: 21.01.2011, 14:20
Kamera(s): A590(101b) - A620 - A630 - ixus70_sd1000(101b) - ixus870_sd880(101a) - ixus300_sd4000

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon rudi » 28.01.2011, 23:00

Hallo zusammen,
msl hat geschrieben:rudi wird sich bestimmt wundern. ... Er hat wohl im Augenblick nicht so viel Zeit, sich um CHDK zu kümmern.

Ja. Ich bin hocherfreut über den Fortgang der GUI sowie der CHDK-Shell und über den kompetenten Zugang von wim in unserem Forum. =D>

... und gekümmert habe ich mich auch:
Hier habe ich einen Lösungsvorschlag gegen das zur Zeit notwendige Neustarten der ptpcam.exe bei jeder Kamerakommunikation. Vergebens habe ich versucht die ptpcam-Konsole mit dem AutoIt Run-Befehl für die ganze Zeit der GUI-Sitzung offen zu halten.

Meine Lösung beruht auf einer DLL als "Adapter" zwischen dem GUI und der ptpcam.exe. Eine DLL lässt sich mit AutoIt problemlos handhaben. Diese startet und beendet die ptpcam.exe selbständig und stellt die Funktionen zum Übergeben von Befehlen an die Kamera, sowie das Auslesen der Ausgabe und der Fehlerausgabe bereit. Weiterhin können die Bereitschaft der Konsole Befehle zu empfangen und der Verbindungsstatus zur Kamera abgefragt werden. Als Zugabe ist die aktuelle ptpcam.exe mit in der DLL integriert, so dass diese nicht im aktuellen Verzeichnis vorhanden sein muss. Nur in diesem Fall wird die ptpcam.exe beim Verbinden der GUI mit der DLL im aktuellen Verzeichnist erstellt und am Ende auch wieder gelöscht.

Zum Testen befindet sich neben der DLL auch AutiIt-Programm (mit Quellen) im Anhang. Dieses Verfügt über je eine Taste zum Verbinden und Lösen der DLL, eine Taste zum Übertragen des Befehls aus dem Eingabefeld und einer Taste zum Übertragen des ptpcam-Befehls RESET. Im Textfeld sind alle Vorgänge der Kommunikation protukolliert.

Gruß rudi
Dateianhänge
dlltest.zip
ptpcam-Zugriff über DLL
(485.53 KiB) 527-mal heruntergeladen
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon msl » 28.01.2011, 23:36

Hallo rudi,

Respekt! =D>

die DLL-Version arbeitet sehr gut. Damit sollte sich die GUI-Benutzung merklich verbessern. Es wird ja immer wieder von langsamen Zugriffszeiten berichtet.

Ich selbst hatte weniger mit Timing-Problemen zu tun. Mit der DLL-Version ist aber trotzdem eine wesentlich bessere Reaktionszeit festzustellen.

Vielen Dank für die geleistete Entwicklungsarbeit.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon whim » 29.01.2011, 00:53

Hallo rudi,

Bravo ! =D>

Ich habe noch eine Frage zu:
Vergebens habe ich versucht die ptpcam-Konsole mit dem AutoIt Run-Befehl für die ganze Zeit der GUI-Sitzung offen zu halten.

Hast du schon versucht das Kommando ein "@ComSpec & " /k " voranzustellen ?
Local $con = Run(@ComSpec & " /k " & $CMD_FILENAME & ' --chdk='& '"' & $command & '"', "", @SW_HIDE , $STDOUT_CHILD + $STDERR_CHILD)

Gruß wim

Nachschrift: Ich habe das selbst nicht versucht, weil ich eigentlich nur weiss wie ptpcam zu kompilieren;
benutzen (wie in: sich auskennen mit der verfuegbare Parameter usw.) kann ich es nicht, oder, noch starker:
obwohl ich schon seit 5 Jahren Canon P&S benutze, habe ich erst vor einer Woche zum 1. Mal ein USB Kabel
angeschlossen ... LOL
Benutzeravatar
whim
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 88
Registriert: 21.01.2011, 14:20
Kamera(s): A590(101b) - A620 - A630 - ixus70_sd1000(101b) - ixus870_sd880(101a) - ixus300_sd4000

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon rudi » 29.01.2011, 06:50

Hi wim,

whim hat geschrieben:Hast du schon versucht das Kommando ein "@ComSpec & " /k " voranzustellen ?
Ja, auch das. Wenn ich die ptpcam.exe offenhalten möchte, benötige ich den Interaktiven Modus mit einem StdIn. Dieser hat sich trotz aller Versuche immer nach der Befehlsabarbeiung geschlossen.

Sollte man die DLL-Lösung weiterverfolgen? Die DLL ist aber nicht in C geschriebn.

Gruß rudi
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon msl » 29.01.2011, 09:37

Hallo rudi,

ich gehe mal davon aus, dass die DLL nicht in C geschrieben wurde, weil es nicht (so einfach) geht. Der Einsatz der ptpcam-DLL wäre schon wünschenswert. Die Vorteile im Zusammenhang mit der GUI sind unübersehbar. Damit verabschieden wir uns aber von einem offenen System.

Gäbe es nicht die Möglichkeit ptpcam.exe+DLL+ptpCamGui. Dann könnte ptpcam.exe wie bisher weiterentwickelt werden (wichtig für Linux u.a. andere GUI-Konzepte) und eine DLL stellt das notwendige Verbindungsglied zur GUI dar. Die DLL-Datei könnte man dann irgendwo fest ablegen (sicherste Variante Downloadbereich Forum), damit alle Zugriff haben (inkl. CHDK-Shell).

Ich sehe das wie immer aus der Anwendersicht. Das Konzept DLL hat mich aber total überzeugt.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon TZocker » 29.01.2011, 11:01

msl hat geschrieben:In der neuesten Version ist ein [Reboot]-Schalter hinzugekommen, der einen Neustart der Kamera ermöglicht. Das ist z.B. nützlich, wenn man eine (neue) CHDK-Version auf die Kamera hochlädt.

Gruß msl


Wie währe es mit einer Option bzw Routine die es ermöglicht die aktuelle Version von CHDK-De Herunterzuladen und gleich auf der Camera zu installieren?

Ich habe mir mal den spaß erlaubt den shoot modus zu starten mit Default (Die Kamera wahr auf REC gestellt). Objektive fährt aus und danach bleibt die Kamera hängen. Wenn wunderts????

Was mich noch am PTP GUI stört das der X butten in win XP nicht funktioniert (bzw sehr sehr langsam). BSP wenn ich die kamera nach benutzung einfach entferne dann fragt das gui immer die abfrage schleife ab die sich aber nicht beenden lässt. Dann hilft nur noch der task manager.

Zu dem stört mich das das gui nicht automatisch den dienst CAlib8 (oder so) nicht beendet.
Canon A 650 IS
TZocker
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 51
Registriert: 12.06.2009, 16:20
Kamera(s): A 650

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon Belichter » 29.01.2011, 13:14

Hallo TZocker,
TZocker hat geschrieben:...Wenn wunderts????

Mich.

Shoot geht auch wenn der Schalter an der Kamera nicht auf "M" steht.
Steht der Schalter auf "Video", startet eine Videoaufnahme.

Oder hab ich was falsch verstanden?

Ich habe aber auch schon mal die GUI über den Taskmanager beenden müssen,
das hab ich aber auf meine Tests geschoben, wenn es irgendwie reproduzierbar wäre,
hätte ich das gepostet.

Vielleicht können wir einen 'Wunschliste'-Thread aufmachen?

bis dann
IXUS 970 IS 100b
Belichter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 170
Bilder: 11
Registriert: 21.05.2009, 09:21
Wohnort: Solingen
Kamera(s): ixus 970 IS 100b

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon whim » 29.01.2011, 14:20

Hallo rudi & msl, (und TZocker & Belichter)

Damit verabschieden wir uns aber von einem offenen System.

Das glaube ich nicht, ich sehe die DLL mehr als Teil des ptpCamGui; ein (hypothetisches?) Linux GUI hätte nicht
zwangsläufig die gleiche ptpcam Steuerungsprobleme, und benötigte dann vielleich gar keinen 'Vermittler'
Gäbe es nicht die Möglichkeit ptpcam.exe+DLL+ptpCamGui. Dann könnte ptpcam.exe wie bisher weiterentwickelt werden (wichtig für Linux u.a. andere GUI-Konzepte) und eine DLL stellt das notwendige Verbindungsglied zur GUI dar.

Das ist ein gutes Idee, aber hat rudi das nicht schon berücksichtigt ? Ich meine, er hat hier geschrieben:
Als Zugabe ist die aktuelle ptpcam.exe mit in der DLL integriert, so dass diese nicht im aktuellen Verzeichnis vorhanden sein muss. Nur in diesem Fall wird die ptpcam.exe beim Verbinden der GUI mit der DLL im aktuellen Verzeichnist erstellt und am Ende auch wieder gelöscht.

Da bezieht sich "Nur in diesem Fall" doch auf "nicht ... vorhanden sein muss.", das heisst, die ptpcam.exe würde nie überschrieben, oder habe ich da etwas falsch verstanden ? Falls es stimmt, bleibt vom msl's Vorschlag eigentlich nur das
Vorteil eines kleineres Dateigrößes der DLL.
Apropos die DLL: Falls sie separat zur Download angeboten wird, wird 'ptpCamGui-neu' sie selbst bei Bedarf nachladen ?

@TZocker, Belichter
Würde das Hauptfenster veilleicht durch ein dahinter 'verstecktes' Berichtfenster blockiert (ist mir schon passiert) ?

Gruß wim

PS @TZocker: CAlib8 (oder so) ... hat vielleicht etwas met Zertikate zu tun (CA = "Certificate Authority") ? ptpCamGui
und ptpcam starten keine Dienste (vielleicht aber hat Windows es zur Ueberpruefung der 'libusb' Treiberinstallation
gestartet)
Benutzeravatar
whim
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 88
Registriert: 21.01.2011, 14:20
Kamera(s): A590(101b) - A620 - A630 - ixus70_sd1000(101b) - ixus870_sd880(101a) - ixus300_sd4000

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon rudi » 29.01.2011, 15:51

Hallo zusammen,
msl hat geschrieben:Damit verabschieden wir uns aber von einem offenen System.
Das ist mir bewusst, daher habe ich den Lösungsvorschlag zur Diskussion angeboten.

In C bin ich nicht so fit und für Pascal besitze ich eine lizensierte Entwicklungsumgebung. Möglicherweise kann jemand die DLL nach C portieren, dann währe ja alles wieder gut.
Sollten wir uns für die DLL entscheiden, dann stelle ich diese mit Quellen in meinen assembla-Bereich ein. Damit sollte die Öffentlichkeit, Transparenz, Aktualität und ein fester Downloadpfad gewährleistet sein.

whim hat geschrieben:Da bezieht sich "Nur in diesem Fall" doch auf "nicht ... vorhanden sein muss.", das heisst, die ptpcam.exe würde nie überschrieben, oder habe ich da etwas falsch verstanden ?
Genau so ist es. Existiert bereits eine ptpcam.exe im Verzeichnis, dann bleibt diese unberührt und wird in jedem Fall verwendet. Damit ist eine aktuellere oder veränderte ptpcam.exe kein Problem. Auch sollten Erweiterungen in der Funktionalität der ptpcam.exe durch die DLL nicht behindert werden. Bis auf Ausnahmen werden die Befehle und ihre Antworten nicht in der DLL abgeändert.
Die Ausnahmen sind:
  • 'quit' wird grundsätzlich unterbunden
  • bei nicht angeschlossener oder ausgeschalteter Kamera sind nur 'r', 'reset', 'h' und 'help' zulässig
  • der Dateinename "ptpcam.exe" ist erforderlich
  • die Bereitschaft der Konsole muss durch '< >' und '<conn>' gekennzeichnet sein

whim hat geschrieben:Falls sie separat zur Download angeboten wird, wird 'ptpCamGui-neu' sie selbst bei Bedarf nachladen ?
Das ist eine gute Idee, setzt aber eine bestehende Verbindung voraus. Da kann die GUI sich dann auch gleich noch selber aktualisieren. Ein Thema für die Wunschliste.

whim hat geschrieben:@TZocker, Belichter
Würde das Hauptfenster veilleicht durch ein dahinter 'verstecktes' Berichtfenster blockiert (ist mir schon passiert) ?
Das Problem ist eine übergeordnete Fehlerbehandlung in AutoIt. Diese gibt es anscheinend da nicht. Daher muss jeder Fehler direkt dort behandelt werden, wo er auftritt. Also kann man entweder jeden erdenklichen Fehler abfangen oder es wird nur an wichtigen Stellen intensiver geprüft. Da muss aber noch nachgebessert werden.

Gruß rudi
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon whim » 29.01.2011, 16:38

Hallo rudi,

rudi hat geschrieben:Das Problem ist eine übergeordnete Fehlerbehandlung in AutoIt. Diese gibt es anscheinend da nicht. Daher muss jeder Fehler direkt dort behandelt werden, wo er auftritt. Also kann man entweder jeden erdenklichen Fehler abfangen oder es wird nur an wichtigen Stellen intensiver geprüft. Da muss aber noch nachgebessert werden.

Ist es nicht einfach ein "Z-Order" problem ?
whim hat geschrieben:Beim Experimentieren ist mir weiter aufgefallen, daß 'MsgBox'en verdeckt werden, wenn mann das Hauptfenster
aktiviert - weil MsgBox'en sowieso das Programm anhalten, könnte mann sie vielleicht besser das 'On Top' Attribut
einpflanzen (einfach bei MsgBox am 1. parameter "262144+" voranstellen)


Gruß wim
Benutzeravatar
whim
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 88
Registriert: 21.01.2011, 14:20
Kamera(s): A590(101b) - A620 - A630 - ixus70_sd1000(101b) - ixus870_sd880(101a) - ixus300_sd4000

Re: grafische Bedienoberfläche (GUI) für PTP-Interface-Funkt

Beitragvon TZocker » 29.01.2011, 17:03

@ PS @TZocker: CAlib8 (oder so) ... hat vielleicht etwas met Zertikate zu tun (CA = "Certificate Authority") ? ptpCamGui
und ptpcam starten keine Dienste (vielleicht aber hat Windows es zur Ueberpruefung der 'libusb' Treiberinstallation
gestartet)

ne das ist der dienst des canon treibers. Daher muss er beendet werden bevor libusb starten kann.

PS Da auto it eine sleep funktion hat, wäre es schön wenn man damit eine verzögerte schleife für den shoot befehl machen könnte.
Canon A 650 IS
TZocker
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 51
Registriert: 12.06.2009, 16:20
Kamera(s): A 650

VorherigeNächste

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 24 Gäste