Как идентифицировать 2 однотипных камеры gphoto2
Предположим, у меня есть 2 камеры одного и того же типа, как мне правильно использовать одну камеру в отличие от другой, если я не знаю, к какому порту они подключены?
Я знаю, что вы можете выбрать камеру по имени, но у них обоих одинаковое имя. Я знаю, что вы можете выбирать по приводу, но я не могу с уверенностью определить, к какому порту пользователь подключил камеры.
Это означает, что я должен перебирать камеры и выбирать правильную на основе сводки. К сожалению, я не могу сказать, что существует статическое уникально идентифицирующее свойство для камеры, если она того же типа, что и другая подключенная камера.
Если я наберу gphoto2 --camera-summary, я получу:
Camera summary:
Manufacturer: Canon Inc.
Model: Canon EOS Rebel T6i
Version: 3-1.0.0
Vendor Extension ID: 0xb (1.0)
Capture Formats: JPEG
Display Formats: Association/Directory, Script, DPOF, MS AVI, MS Wave, JPEG, CRW, Unknown(b103), Unknown(bf02), Defined Type, Unknown(b104), Unknown(b105), Unknown(b982)
Device Capabilities:
File Download, File Deletion, File Upload
No Image Capture, No Open Capture, Canon EOS Capture, Canon EOS Shutter Button
Canon Wifi support
Storage Devices Summary:
store_00020001:
StorageDescription: SD
VolumeLabel: None
Storage Type: Removable RAM (memory card)
Filesystemtype: Digital Camera Layout (DCIM)
Access Capability: Read-Write
Maximum Capability: 31902400512 (30424 MB)
Free Space (Bytes): 21192966144 (20211 MB)
Free Space (Images): -1
Device Property Summary:
Model ID(0xd049):(read only) (type=0x6) 2147484563
Property 0xd402:(read only) (type=0xffff) 'Canon EOS Rebel T6i'
Property 0xd407:(read only) (type=0x6) 1
Property 0xd406:(readwrite) (type=0xffff) 'Unknown Initiator'
Property 0xd303:(read only) (type=0x2) 1
Battery Level(0x5001):(read only) (type=0x2) Enumeration [100,0,75,0,50] value: 100% (100)
Который не включает в себя свойство, как серийный номер.
Я также попробовал gphoto2 --get-config serialnumber, но получил странный результат:
Label: Serial Number
Type: TEXT
Current: None
Любая помощь будет отличной, спасибо за чтение!
2 ответа
Что касается общего с внешними устройствами: возможно
lsusb
или же
lsusb -v
покажет вам некоторые различия.
Другим способом было бы сравнить вывод
udevadm --env
при подключении камер.
Изменить: довольно простое решение для камеры состоит в том, чтобы установить разные имена владельцев с
gphoto2 --set-config ownername=cameraX
и читать это с
gphoto2 --get-config ownername
Эта возможность зависит от модели камеры, вероятно, все Canon EOS будут поддерживать изменение имени владельца, камеры других производителей могут предоставлять аналогичные индивидуальные настройки.
Если никакие индивидуальные настройки, кроме iso, скорости затвора и т. Д., Невозможны, обходным путем является создание папки во внутренней памяти камеры. Извлеките свою SD-карту и создайте папку:
gphoto2 --mkdir MYINDIVIDUALFOLDERNAME
Это можно увидеть с помощью:
gphoto2 --list-folders
Помогает отобразить список всех моделей камер и портов, к которым они подключены. Затем вы можете перебирать их, используя такую команду, как:
gphoto2 --camera=Canon\ EOS\ 1100D --port=usb:001,018 --capture-image
Что отправляет команду --capture-image только на камеру, подключенную к
usb:001,018
Или более общее представление:
gphoto2 --camera=$CAMERA --port=$PORT $COMMAND
где можно указать $CAMERA и $PORT. Таким образом мне удалось управлять чуть менее 50 камерами с моего ПК.
Вы спрашиваете, как выполнить итерацию, если не знаете порт? Вы можете разобрать команду
gphoto2 --auto-detect
.