该帖子
我从命令行启动airnef。
python airnefcmd.py --ipaddress 192.168.188.84 --action getfiles --realtimedownload only --downloadexec open @pf@ --transferorder newestfirst --outputdir "/Users/besi/Desktop"
我连接相机后,显示了一些关于我的连接的信息:
已建立到192.168.188.84:15740的连接
相机型号“佳能EOS 200D”,序列号“XXXXXXXXX”
现在airnef告诉我:
等待实时照片从相机下载。
按 退出 |
我拍了一张照片,它按预期进行了下载:
正在下载“IMG_0084.JPG”:96%
Airnef随后显示了有关此图像的更多信息:
/Users/besi/Desktop/IMG_0084.JPG [大小= 4,602,357] 在1.94秒内(2.26 MB/s)
我再拍了一些照片,但它们没有被下载,软件停留在提示处:
等待实时照片从相机下载。按 退出 \
源代码
源代码可在Airnef网站上获取。我为解决此问题创建了一个Github存储库: https://github.com/besi/airnef
代码卡住的地方在airnefcmd.py:3203
更新:论坛帖子
更新:调试
第一张名为IMG_0182的照片已成功下载。
在调试输出中,我可以看到正在拍摄新照片,但跳过下载,因为之前的图片已经下载:
查看 airnef.log:433:
filename = DCIM\100CANON\IMG_0183.JPG
captureDateSt = 20180926T071759
modificationDateStr= 20180926T071758
发现了一个名为
IMG_0183.JPG
的新图像。Skipping IMG_0182.JPG - already downloaded this session
旧的下载图片似乎阻止了当前图片的进一步处理。
Skipping 100CANON - object is not file - MTP_OBJFORMAT_Assocation (0x3001)
Skipping DCIM - object is not file - MTP_OBJFORMAT_Assocation (0x3001)
Waiting for realtime photos from camera to download. Press <ctrl-c> to exit -execMtpOp: MTP_OP_GetObjectHandles - CmdReq payload:
现在我们又进入了循环,等待更多的图片。 当拍摄新图片时,同样的过程会再次发生。
--downloadhistory ignore
(可能会多次下载每个文件),或者--rtd_mtppollingmethod_newobjdetection numobjs
,或者作为解决方法,找到一种方法在下载完成后从相机中删除文件。 - CristiFatinumobjs
参数与--transferorder oldestfirst
结合使用就可以解决问题了。您可以添加一个答案,我会很乐意接受的。 - Besitransferorder
的默认值是oldestfirst
。因此,尽管rtd_mtppollingmethod_newobjdetection
标志确实可以解决问题,但一旦启用了newestfirst
,它就不再起作用。这意味着这确实是一个幸运的组合。很可能这是一个bug,我在testcams论坛中指出了这一点。 - Besi