• Herzlich willkommen im "neuen" DSLR-Forum!

    Wir hoffen, dass Euch das neue Design und die neuen Features gefallen und Ihr Euch schnell zurechtfindet.
    Wir werden wohl alle etwas Zeit brauchen, um uns in die neue Umgebung einzuleben. Auch für uns ist das alles neu.

    Euer DSLR-Forum-Team

  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • DSLR-Forum Fotowettbewerb neu erfunden!
    Nach wochenlanger intensiver Arbeit an der Erneuerung des Formates unseres internen Fotowettbewerbes ist es Frosty als Moderator
    und au lait als Programmierer gelungen, unseren Wettbewerb auf ein völlig neues Level zu heben!
    Lest hier alle Infos zum DSLR-Forum Fotowettbewerb 2.0
    Einen voll funktionsfähigen Demowettbewerb kannst du dir hier ansehen.
  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2024
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien der Eigenmarken "Upscreen", "Brotec", "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs April 2024.
    Thema: "Sprichwörtlich"

    Nur noch bis zum 30.04.2024 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
WERBUNG

FileReceiver für die Transcend WiFI SD Karte

Sven_A

Themenersteller
Hallo Zusammen,

wie bereits hier angekündigt hab ich die letzten Tage damit verbracht das Protokoll der Transcend WiFI SD Karte nach zu bauen. Nachdem ich den Netzwerkverkehr zwischen App und Karte belauscht und analysiert hatte gings ans Nachbauen mit Perl.

Ich hatte bis Freitag keine Ahnung von Perl (und hab auch jetzt nicht deutlich mehr davon...), daher ist es sehr gut möglich das einem erfahrenem Programmierer die Haare zu Berge stehen. Wer da mehr weiß wie ich darf sich gerne bei mir melden und mir helfen den Code aufzuräumen.

Im Moment hab ich das Script soweit das ich es auf meiner Linuxmaschine ausführen kann.
Es sucht im lokalen Netz nach der Transcend Karte. Wenn es diese gefunden hat aktiviert es wie die OriginalApp den "Shoot&View" Modus der Karte. Wird ein Bild gemacht informiert die Karte mein Skript über das neue Bild, das Verzeichniss und den Dateinamen.

Mein Skript startet dann im Hintergrund einen Download des Bildes per wget.

Während das Skript läuft überwacht es ständig die Verbindung zur Karte, und sollte diese auch neu Aufbauen wenn sie verloren geht.

Was BENÖTIGT wird:
Ihr braucht auf alle Fälle einen Perlinterpreter, ebenso muss wget installiert sein.
Bei mir läuft es auf einem Linux Mint in der 64 Bit ausführung mit installiertem wget.

Was es NICHT tut:
Die Bilder werden (noch?) NICHT auf dem Ziel-PC angezeigt. Sie werden lediglich im aktuellen Verzeichniss abgelegt.

ACHTUNG: Das Skript befindet sich im Moment noch in einer sehr frühen Entwicklungsphase und enthält vermutlich mehr Fehler als der zukünftige Berliner Großflughafen.

Wer will bekommt das Skript von mir per eMail zum testen. Ich übernehme aber keine Garantie dafür das es das tut was es soll. Wer das Skript von mir zum testen bekommt sollte mir doch bitte auch Feedback geben ob es bei ihm klappt und wo es ggf. Probleme gibt. Ebenso würde mich Interessieren ob es auch mit der 32 GB Version läuft und welche Softwareversion eure Transcendkarte hat.

Wer das Script will darf mir gerne seine eMailadresse per PN schicken.

Gruß,
Sven
 
Hallo Sven,

ich habe die 32GB Version und seit gestern die Firmware 1.7 drauf. Mit dieser ist es jetzt möglich die IP-Adresse der Karte zu konfigurieren.
Heute bin ich auf deinen Thread gestossen. Ich hab auf meinem W7-Rechner Perl und wget installiert und dein Skript angepasst. Leider findet das Script die Karte im Netz nicht (firewall hatte ich testweise deaktiviert).
Auf der Karte ist DirectMode eingestellt und ich bin mit dem Netz der Karte verbunden. Broadcast ist im Script korrekt eingestellt.
Hast du eine Idee was ich eventuell falsch mache?
Dein Projekt finde ich Klasse, weil es die Möglichkeit bietet den nach meiner Meinung größten Nachteil gegenüber den Eye-Fi Karten auszuräumen. (y)

Gruß, Thomas
 
Hallo,

Oh, Version 1.7 habe ich noch garnicht drauf. Danke für den Hinweis.
Du könntest mal Probieren anstatt Broadcastadresse dort direkt die Adresse der Karte einzutragen, das macht für die Karte keinen Unterschied.
Wenn das Skript die Karte dann noch immer nicht findet hat sich entweder die Antwort in 1.7 geändert, oder mein Skript mag die 32 GB Version nicht. Probier das mal und geb mir bescheid.

Ich werde mich die Tage mal mit 1.7 beschäftigen.

Gruß,
Sven
 
Hallo Sven,

ja, das funktioniert.
Jetzt stolpere ich momentan über wget. Nachdem ich die Installationsfiles von ...\GNUWin32\bin\ nach ...\Windows\System32 geschoben hatte, wurde wget zwar durch das Script ausgeführt, bricht aber mit folgenden Fehler ab. Hast du da auch noch eine Idee? :)

Gruß, Thomas
 

Anhänge

Wenn das Skript die Karte jetzt findet gibts unter Windows vermutliche Probleme beim Senden des Broadcastes. Vermutlich verhindert Windows das. Muss ich selber mal testen.

Ich vermute das er jetzt daran scheitert den WGET im Hintergrund auszuführen. Hier "teilt" sich das Skript eigentlich auf, die Hauptroutine läuft weiter, während ein Teil mit dem Herunterladen per WGET beschäftigt ist.

In Zeile 120 wird der WGET Befehl zusammengebasteln:
my $wget = join("","wget -bqc http://",$User,":",$Password,"@",$CardIP,$datagram1,);

Entferne da mal das b (=background) aus -bqc, so das die Zeile wie folgt aussieht:
my $wget = join("","wget -qc http://",$User,":",$Password,"@",$CardIP,$datagram1,);

Dann wartet das Skript bis WGET fertig ist, und lauscht erst dann wieder ob von der Karte was neues gemeldet wird. Eigentlich kannst du dann auch Probehalber das q rausnehmen (=quiet), dann siehst du den Output von WGET während des Transfers:
my $wget = join("","wget -c http://",$User,":",$Password,"@",$CardIP,$datagram1,);

Ein zweites Bild das während des Downloadvorganges aufgenommen wird hat das Skript in meinen Tests so meistens mitbekommen, das hängt in irgendeinem Cache, mehr Bilder bekommt das Skript dann aber nicht mit. Sobald die Downloads abgeschlossen sind läuft das aber wieder, und Bilder die dann gemacht werden werden auch wieder geladen.

Gruß,
Sven
 
Quatsch, das wird nichts bringen.

Das Teilen (Fork) findet in Zeile 121 statt:
system($wget);

Ersetze das mal durch
exec($wget);

Trotzdem in Zeile 120 mal das b rausnehmen, wenn du schon wartest kannst du auch SEHEN was passiert ;)

Der Rest meiner Ausführung war aber sonst korrekt.

Gruß,
Sven
 
Super, funktioniert!! Foto landet im Script-Verzeichnis.(y)
Jetzt beendet sich aber das Script nach Empfang des ersten Fotos. Weitere Fotos werden auch nach Neustart des Scripts nicht transferiert.
 
Jetzt läuft es richtig.
In Zeile 120 das b raus und in 121 das system drin lassen.
Klasse, herzlichen Dank!!! Jetzt muss ich an den Grill, die Familie ruft;)
Falls ich noch irgend etwas testen soll, immer gern.
Bis dann, Gruß, Thomas
 
Hi Thomas,

seltsam. Eigentlich findet die Teilung, also das "forken", nur beim Aufruf über "system" statt, und das ist was dein Perlinterpreter dir um die Ohren haut. Schön zu wissen dass und wie das läuft. Danke dafür!

Könntest du mir kurz umreisen was du getan hast um das unter Windows laufen zu lassen? Welchen Perlinterpreter hast du bei dir im Windows genommen?

1.7 Werde ich mir die Woche mal anschauen.

Gruß,
Sven
 
Ich habe "ActivePerl 5.16.3 Build 1603 (64-bit)" und "Wget 1.11.4" installiert. Wget ließ sich aber erst über die Kommandozeile aufrufen nachdem ich sämtliche Dateien aus dem bin-Ordner der Installation nach \Windows\System32\ kopiert hatte. Dann dein Skript wie von dir beschrieben konfiguriert (IP-Adresse der Karte als Broadcast eingetragen) und in Zeile 120 den Schalter 'b' gelöscht. Ein erster Test mit drei in Sekundenabstand gemachten Fotos beförderte alle drei in das Verzeichnis in welchem das Skript ausgeführt wurde. Das Skript habe ich, der Formatierung wegen, mit Wordpad bearbeitet und gespeichert.
Sven, würde eventuell die Möglichkeit bestehen dass Fotos seit des letzten Transfers erkannt werden (ähnlich wie es ShutterSnitch auf dem Ipad macht) und im Nachhinein transferiert werden können? Aber ich denke dass das dann ein anderer als der Shoot&View Modus wäre.

Gruß, Thomas
 
Hi Thomas,

schau dir mal an was ich hier geschrieben hatte:
https://www.dslr-forum.de/showpost.php?p=11055241&postcount=159

Mit WGET kann man prinzipiell ein Spiegelverzeichniss erstellen, das ist dann vollständig unabhängig von meinem Skript, PERL oder Shoot&View. Das einzige was du machen musst ist den WGET Befehl alle X Sekunden auszuführen. Entweder über eine Batch-Datei oder über den Windows Taskplaner.

Gruß,
Sven
 
Coole Sache!
Meine 32GB Karte ist noch unterwegs, aber ich möchte mir dieses Tool schonmal anschauen. Hat jemand erfahrung mit der Einrichtung unter OSX?

Viele Grüße
 
Hi Instinct,

Perl sollte auf OSX schon drauf sein.

Was du brauchst ist WGET, das kommt nicht standartmässig mit. Eine Anleitung hab ich auf die Schnelle hier gefunden, allerdings hab ich KEINE Ahnung von OSX, daher völlig ohne Gewähr!
http://dirk-weise.de/2009/02/wget-fur-mac-os-x-installieren/

Alternativ: Unter OSX gibts CURL. Kann angeblich das selbe wie WGET. Da müsste jemand den Richtigen Befehl in Zeile 120 zusammensetzen, so das mein Skript den entsprechenden CURL-Befehl anstelle von WGET aufruft. Müsste theoretisch auch gehen...

Gruß,
Sven
 
Hey, danke für die Info,

ich werde mir das mal ansehen. Wenn das mit Lightroom nicht zufriedenstellend zusammen läuft, werde ich mir wohl oder übel ein Tool schreiben müssen, dass die übertragenen Bilder direkt als Vollbild-Diashow anzeigt.

Viele Grüße
Instinct
 
Hi Thomas,

schau dir mal an was ich hier geschrieben hatte:
https://www.dslr-forum.de/showpost.php?p=11055241&postcount=159

Mit WGET kann man prinzipiell ein Spiegelverzeichniss erstellen, das ist dann vollständig unabhängig von meinem Skript, PERL oder Shoot&View. Das einzige was du machen musst ist den WGET Befehl alle X Sekunden auszuführen. Entweder über eine Batch-Datei oder über den Windows Taskplaner.

Gruß,
Sven

Hallo Sven,

die Welt kann so schön sein(y)
Dein Wget-Aufruf hat mir in einem Rutsch die Jpeg's der Karte auf den Rechner kopiert und ein nachfolgender Test mit einem gelöschten und einem neuen Foto auf der Karte hat das neue kopiert, die gelöschte Entsprechung auf dem PC aber nicht angefasst. Wunderbar :)

Herzlichen Dank und Gruß, Thomas
 
Vielen Dank für Deine Mühe, das guck ich mir die Tage mal an! (y)
 
@Instinct: Geb mir dann bitte eine kurze Info ob du das am MAC hinbekommen hast.

@Thomas: Freut mich das ich helfen konnte.

@Stoecky: Auch an dich die Bitte: Kurzes Feedback geben ;)

Gruß,
Sven
 
ich habe die 32GB Version und seit gestern die Firmware 1.7 drauf. Mit dieser ist es jetzt möglich die IP-Adresse der Karte zu konfigurieren.
Darf ich da mal kurz nachhaken: die 1.7 hab ich jetzt auch drauf, aber die Option zur Konfiguration der IP hab ich nicht gefunden :confused: Default ist ja 192.168.11.254, darunter hab ich mich angemeldet. In dem HTTP Interface find ich aber nichts zu Verstellen. Überseh ich was?
 
Wenn du das Webinterface der Karte aufgerufen hast kannst du über Settings - WiFi-Settings die IP-Adresse der Karte konfigurieren.
 
WERBUNG
Zurück
Oben Unten