Протокол общения с фотоаппаратом

Тема в разделе "WASM.ELECTRONICS", создана пользователем Novi4ek, 6 авг 2007.

  1. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Здравствуйте, у меня есть фотоаппарат, я хотел бы попробовать написать драйвер для общения с ним по USB, можно ли где-то раздобыть какую-то документацию по его протоколу общения с компьютером?
    Не называю конкретную модель аппарата, т.к. интересует вообще возможность получения такого рода документаций (и не только для фотоаппаратов, но и других устройств, например принтеров).
     
  2. assorted

    assorted New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    227
    Если интересует информация по написанию и работе драйверов - она тут есть. Посмотри статьи. Информацию по протокрлу ни один произвотитель тебе точно не выдаст. Откуда такая идея фикс возникла?
     
  3. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    я сам в драйверах новичёк, но может это тебе поможет: DDK -> Device Technologies -> Display and Print Devices
    на счёт USB тоже можно рядом посмотреть
     
  4. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    А мы производителя спрашивать не будем :)
    Всё в достаточной мере стандартизировано, если не использовать расширения производителей.
    Но всё-таки надо знать какой фотоаппарат - а конкретно: при подключении он определяется как съёмный диск или как цифровая камера?
    В любом случае идём сюда: http://www.usb.org/developers/devclass_docs

    Если фотоаппарат работает как флешка, качаем это:
    Mass Storage Overview 1.2
    и это:
    Mass Storage Bulk Only 1.0
    а также это:
    SCSI2 Specification
    Всё, читаем и реализовываем.

    Если фотоаппарат определяется как цифровая камера, тогда качаем это:
    Still Image Capture Device Definition 1.0 and Errata as of 16-Mar-2007
    и это:
    PIMA 15740:2000 - это непосредственно набор команд цифровых фотокамер.
    Правда насчёт последнего документа - не знаю насколько легально он там лежит :)
    На офф. сайте денюжку просят, хотя раньше вроди бесплатно раздавали...
    Ну и потом этот документ был утверждён и перекочевал в ISOxxx (номер не помню) - но это уже точно только за деньги...
     
  5. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Кстати, ещё есть спецификация от Microsoft на MTP - Media Transfer Protocol.
    Расширение PTP (Picture Transfer Protocol - PIMA 15740:2000), не ограничивающееся только передачей фото.
    Обратно совместима с PTP и в ней описаны все команды протокола PTP плюс дополнительные.
    Используется в некоторых mp3 плеерах, например iRiver.
    Лежит тут: Media Transfer Protocol Specification
     
  6. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    2 assorted

    Да нет, интересует конкретно организация диалога со сторонними девайсами без отладки стандартных фирменных драйверов.

    2 cppasm спасибо за ответ, щас буду смотреть
     
  7. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    Novi4ek
    К фотоаппарату должно идти какое-то программное обеспечение, а
    в инструментах на WASM есть утилита USB Trace https://wasm.ru/baixado.php?mode=tool&id=360 .
    Сможете посмотреть весь обмен данными между фотоаппаратом и компьютером.
     
  8. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    t00x
    в комплекте идёт программное обеспечение для скачивания, редактирования фотографий и т.п., но на самом деле большинством фотоаппаратов можно полностью управлять с компьютера (т.е. настраивать режим съемки, фокусировать как автоматически так и внешним управлением, фотографировать, переводить в режим видеосъёмки\веб камеры и ещё много чего интересного).

    Novi4ek
    Некоторые фирмы (canon например) вывешивают и документацию и примеры такого программирования на своём сайте. У олимпуса эта инфа платная, правда её можно найти на неофициальном русском сайте олимпуса (гугл поможет), но мою модель фотоаппарата имеющиеся там экзамплы не поддерживают (и сайт давненько не обновлялся), так что опробовать все эти прелести мне пока не удалось :dntknw:
     
  9. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    Y_Mur
    не совсем полностью, многие функции пропущены.
    например, есть поток с фотоаппарата и его нельзя сохранять.

    ссылку плз.
     
  10. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Полностью стандартными командами управлять нельзя.
    Только базовые вещи - выдержка, диафрагма, фокусировка, баланс белого...
    Остальное - расширения производителей.
    Как минимум у Canon, Olympus, Nikon, Minolta есть свои расширения, да и у многих есть...
    Точно, ссылку в студию :)
    AFAIK ихнее расширение является закрытым и нигде не публиковалось.
    Есть только списки команд полученные реверсингом в большинстве случаев создателями драйверов под Linux.
    Я кстати тоже сейчас некоторые команды ихние исследую - интересное расширение например при скачивании фоток можно посмотреть она первый раз скачивается (т.е. новая) или уже раньше скачивалась.
    Ну и много там интересного.
    Мож кто смеяться будет, но я под DOS менеджер пишу для скачивания фото.
    USB стек уже сделал, сейчас вот протоколы изучаю.

    PS: кстати USBTrace не лучшая программа для мониторинга - не все пакеты ловит.
    Точнее не от всех драйверов.
     
  11. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    cppasm
    Вынужден разочаровать - "стандартных команд" для этого дела вообще не существует.

    Кэноновские DSLR не забудь поддержать :) А то родная софтина у меня корректно обновляться не хочет.
     
  12. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    А я тебя вынужден обрадовать :)
    Я ж ссылку давал - что почитать не судьба что-ли.
    Смотри PIMA 15740:2000.
    Это что такое?
     
  13. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    Canon PowerShot Series Transfer Protocol description
    http://www.graphics.cornell.edu/~westin/canon/index.html

    CanonSDK
    http://www.usa.canon.com/consumer/controller?act=SDKHomePageAct&keycode=Sdk_Lic&fcategoryid=320&modelid=10468&id=3464
     
  14. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    cppasm
    Цифровые Однообъективные Зеркальные фотокамеры. У Кэнона они отличаются тем, что кроме родного софта и последних версий Digicam с них никаким хреном фотки скачать невозможно.
     
  15. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    t00x это лиш подтверждает мои слова.
    Потому как "Canon PowerShot Series Transfer Protocol description" это не официальное описание - а труды 5 человек по реверсингу протокола.
    И очень часто там есть что-то вроди этого:
    К слову ихние догадки неправильные...
    И ИМХО формат команды там тоже неправильно описан - потому как расширения совместимы с PTP, а по ихнему описанию нет.
    Разве что это протокол не на те модели камер, но написано ведь PowerShot Series...
    А элементарно можно даже снифером убедиться что команды там не такие идут...
    Нормально расширения описаны (преимущественно в исходниках :) ) в libptp2 и libgphoto2 - по крайней мере то что я проверял соответствует действительности.
    Но опять же это не официальная документация, и поэтому на полноту не претендует.

    А "CanonSDK" там получить не реально, разве что ты представитель крупной компании по разработке ПО и их заинтересует сотрудничество...
    Тогда в ближайшем будущем поддержки ясен пень не будет :)
     
  16. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Вот что нашёл:
    Т.е. прямо написано что это reverse engineering.
    Только документация видно подустарела - в исходниках более точная информация.
     
  17. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    cppasm
    За PowerShot не скажу, ибо такого фотега не имел, а на 350D камера может соединяться с компом в двух режимах: PC и PTP. Второй худо-бедно стандартный, но первый вроде как рекомендуемый, ибо выставлен по умолчанию.
     
  18. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Ну PTP на 100% стандартный, если не читать расширения производителей.
    А насчёт двух режимов - у PowerShot нету такого (только PTP+расширения Canon), а у кого есть - там два режима это PTP и Mass Storage.
    Т.е. фотоаппарат работает либо как устройсво обработки изображений, либо как накопитель.
    А у тебя PC это что за режим?
    Или в режиме PC камера без драйверов вообще не определяется?
    Просто я читал где-то что некоторые производители Mass Storage называют PC (связь с ПК), а PTP - Print (поддерживается прямая печать на принтер)...

    PS: ну дык твой фотик PTP поддерживает - чего пугал сразу :)
    для скачки фоток большего не надо... И в режиме PTP он любым По поддерживаться должен, например WinXP SP2 имеет стандартные драйвера...
     
  19. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Есть тестовая версия программы для скачивания фото с цифровых камер под DOS.
    Пока максимальная скорость 12 Мб/с (USB 1.1).
    С моей камерой отлично работает.
    Нет желающих попробовать?
     
  20. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    USB 2.0 будет?

    P.S. в смысле некоторые фотоаппараты не поддерживают USB 1.1