[geklärt] ptpcam Problem (Linux)

Fragen zur Bedienung und Funktionsweise des CHDKs
Forumsregeln
Überprüfe folgende Dinge:
Bist stets der Dokumentation gefolgt?
Hast du im Forum schon nach ähnlichen Problemen gesucht?
Hast du bei deiner Frage das Problem umfassend beschrieben?
Welche Kamera und CHDK-Version betrifft das Problem?

Probleme mit einem Skript sollten möglichst und wenn vorhanden in dem zugehörigen Thema zum Skript besprochen werden.

ptpcam Problem (Linux)

Beitragvon fehlfarbe » 09.01.2012, 22:44

Hallo Leute,

ich bin seit heute Besitzer einer Canon IXUS 60 und habe sofort das neuste CHDK-DE (Rev. 915, 100a) wie in der Anleitung beschrieben installiert.

Ich würde die Kamera gern über meinen kleinen Linux Server steuern um nachts automatische Langzeitaufnahmen (60s) vom Himmel zu machen und direkt auf den Rechner zu übertragen.

Leider hänge ich gerade etwas bei der Steuerung per ptpcam fest. Ich konnte das Programm mit einer "libptp-chdk.patch" Datei vom 13.10.2009 kompilieren (weiß nicht mehr genau wo ich die her hatte). Die anderen ptp Patches brachten Fehler und ließen sich nicht kompilieren. Meine Test mache ich gerade noch in einer Ubuntu 10.04 VM unter Win7 x64.

Wenn die Kamera im Wiedergabe Modus ist, kann ich mit "ptpcam --chdk" connecten. Leider bringen Befehle wie z.B. upload, download, mode usw. keine Antwort oder es kommt "unexpected return code 0x2ff". Befehle wie "ptpcam -G" funktionieren einwandfrei.

Ich vermute der Fehler liegt an der alten ptpcam Patch Version? Den Befehl "version" gibt es z.B. gar nicht.


Vielleicht hat jemand das Ganze unter Linux zum Laufen gebracht und kann mir ein wenig unter die Arme greifen? :)

Grüße
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)

Re: ptpcam Problem (Linux)

Beitragvon Nando » 09.01.2012, 22:58

Hallo,
ich habe vor kurzem ptpcam aus /chdkde/trunk/tools/ptpcam übersetzt und bei mir lief es ohne Fehlermeldung, zusammen mit aktuellem CHDK-DE.
Einen Patch habe ich nicht eingespielt.

bis dann,
Nando
Canon PowerShot SX200 IS 100D (seit Mitte Nov 2009), Canon PowerShot A1000 IS 100b
Nando
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 257
Registriert: 11.11.2009, 15:55

Re: ptpcam Problem (Linux)

Beitragvon fehlfarbe » 09.01.2012, 23:49

Hallo Nando,

super, ich hatte beim googlen immer nur Versionen gefunden, die mit in das Standard ptpcam einkompiliert werden. Mit der Version aus /chdkde/trunk/tools/ptpcam kann ich nun schon Fotos schießen :)

Beim Upload kommt leider "unexpected return code 0x2ff upload failed!" wie in dem thread hier.

Edit: Hab es heute früh noch mal probiert und es ging problemlos. Ich hab gestern vermutlich das Zielverzeichnis falsch angegeben (ohne A/..).

Grüße,
Marcus
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)

Re: ptpcam Problem (Linux)

Beitragvon fehlfarbe » 17.01.2012, 00:11

Hallo Leute,

ich habe noch mal eine Frage. Mittlerweile hab ich mir ein kleines Script zusammen gestellt, das die Kamera so weit steuert, dass die Einstellungen gesetzt werden, die Kamera auslöst, die Exif Daten schreibt und das Bild herunter lädt.

Ab und zu geht die Kamera allerdings beim Bilderdownload einfach aus und es gibt auch Übertragungsfehler.
Hat jemand eine Idee, woran das liegen kann? Anbei mal das Script:

Lua script:
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
@title TimelapseIntervalometer
--]]


--initialize variables
exptime = -10
wtime = 3
run = true;

-- get the exp value in sec
function print_Tv()
    tv_output = {"64s","50s","40s","32s","25s","20s","15s","13s","10s","8s","6s",
    "5s","4s","3.2s","2.5s","2s","1.6s","1.3s","1s","0.8s","0.6s","0.5s","0.4s",
    "0.3s","1/4s","1/5s","1/6s","1/8s","1/10s","1/13s","1/15s","1/20s","1/25s",
    "1/30s","1/40s","1/50s","1/60s","1/80s","1/100s","1/125s","1/160s","1/200s",
    "1/250s","1/320s","1/400s","1/500s","1/640s","1/800s","1/1000s","1/1250s",
    "1/1600s","1/2000s","1/2500s","1/3200s","1/4000s","1/5000s","1/6400s",
    "1/8000s","1/10000s"}

    tv_input = get_tv96() / 32
    ret = "Exposure: "..tv_output[tv_input+19]
    return ret
end

-- prints the ISO val
function print_iso()
    iso_val = {"HIGH ISO","AUTO","80","100","200","400","800"}
    iso = get_iso_mode()
   
    if iso<-1 then iso = -1 end
    if iso>4 then iso = 5 end

    ret = "ISO: "..iso_val[iso+2]
    return ret
end


-- add exif data (temp...)
require "EXIFModule"
function addExif()

    P = JPEGImage
    ImgDir = "A/DCIM/101CANON/"
    ImgNumber = get_exp_count()
    No = tostring(ImgNumber)
    ImgFileName = "IMG_"..string.rep("0", 4-string.len(No))..No..".JPG"
    P:new(ImgDir..ImgFileName)
    P:SetUserComment("Temp: "..get_temperature(0).."C "..print_Tv().." "..print_iso())
    write_usb_msg(ImgFileName) --send filename to pc

end

-- delete old images
function delfileson(path)
  local fd,c,i,fpath,stat=os.listdir(path),0
  if fd~=nil and #fd>0 then
    for i=1, #fd do
      fpath=path .. "/" .. fd[i]
      stat=os.stat(fpath)
      if stat~=nil and stat.is_file==true and os.remove(fpath)~=nil then
        c=c+1
      else
        break
      end
    end
  end
  print("deleted all in "..path)
  return c
end


while run do
    --delete files
    --write_usb_msg("delete old files...")
    delfileson("A/DCIM/101CANON")
    sleep(1000)


    -- set props
    set_prop(16,2) --Tv mode
    set_tv96_direct(exptime*32) -- exposure time
    --set_prop(12,1) -- manual focus
    set_focus(65000) --infinite focus
    set_aflock(1) -- sperre AF
    set_iso_mode(3) -- ISO200
    set_backlight(0) --display light off
    --set_prop(24,1) --image size

    -- shoot and set efix data
    shoot()
    addExif()

    -- wait
        sleep(wtime*1000)

    -- get new commands
    --[[cmd=read_usb_msg()
    if cmd~=nil then

        if cmd=="quit" then --quit program
            run=false
            shut_down()

        elseif cmd=="exp" then -- read new exptime
            cmd2=read_usb_msg()
            while cmd2 == nil do
                if cmd2~=nil then
                    exptime = cmd2
                    write_usb_msg("new exptime "..cmd2)
                end
            end

        elseif cmd=="wtime" then -- read new wtime
            cmd2=read_usb_msg()
            while cmd2 == nil do
                if cmd~=nil then
                    wtime = cmd2
                    write_usb_msg("new wtime "..cmd2)
                end
            end

        else
            write_usb_msg("unbekannter Befehl: "..cmd)
        end
    end
    --]]


    -- wait until image is downloaded
    ready = nil
    while ready == nil do
        sleep(1000)
        ready = read_usb_msg()
    end


end

print("Und Tschuess")
shut_down()
Erstellt in 0.012 Sekunden, mit GeSHi 1.0.8.9


Und der Bash Teil:
Syntax: [ Download ] [ Verstecken ]
Benutze Bash Syntax Highlighting
#!/bin/bash

#initialize, upload script and start it!
./ptpcam --chdk <<EOF
mode 1
upload ./test2.lua A/CHDK/SCRIPTS/test2.lua
lua cls()
lua print("starte Skript")
lua loadfile("A/CHDK/SCRIPTS/test2.lua")()
EOF


sleep 2


while [ 1 -eq 1 ]
do

   
    #wait for processed image and start download
    out=`./getm.sh`
    while ! [[ "$out" =~ .*IMG_[0-9]{1,5}\.JPG.* ]]
    do
        sleep 3
        out=`./getm.sh`
    done

    echo "download image..."
    newname=`date +%Y-%m-%d_%H-%M-%S`
    ./ptpcam -G &> /dev/null
    mv ./${out:14:12} JPG/${newname}.jpg &> /dev/null
    rm ./*.JPG &> /dev/null

    sleep 2
    ./putm.sh &> /dev/null #send ok

    #EXIF
    ./jhead -v JPG/${newname}.jpg | grep "UserComment.*"
   
done
Erstellt in 0.007 Sekunden, mit GeSHi 1.0.8.9


2012-01-16_14-18-55.jpg
Übertragungsfehler



Grüße,
Marcus
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)

Re: ptpcam Problem (Linux)

Beitragvon rudi » 17.01.2012, 22:12

Hallo fehlfarbe,

Versuche mal das Bild nicht über den PTP-Befehl
Code: Alles auswählen
ptpcam -G
zu laden. Statt dessen mittels CHDK-PTP-Befehl "download".
Etwa so:
Code: Alles auswählen
ptpcam --chdk="download A/DCIM/100CANON/IMG_1705.JPG IMG_1705.JPG"
Weitere Infos zur Kommandozeilenschnittstelle sind hier am Ende des Beitrags.

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

Re: ptpcam Problem (Linux)

Beitragvon fehlfarbe » 17.01.2012, 23:48

Hallo Rudi,

danke, ich glaube mit dem Befehl scheint es zu klappen! Die Übertragungsfehler treten ab und zu noch mal auf, also die JPGs werden etwas verunstaltet aber die Verbindung scheint nicht mehr abzubrechen. Ich werde mal weiter testen und das Projekt, wenn es fertig wird, natürlich mal posten :)

Grüße,
Marcus
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)


Zurück zu Probleme

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast