Skip to main content

PTP / IP client

Project description

Getting started

pip package

pip install ptpip

d5300 sample file

from ptpip.client import PtpIpClient
from ptpip.report.html_device import HtmlDeviceReportGenerator

async def usePtpIpClient(client: PtpIpClient):
    device = await client.getDeviceInfo()
    props = []
    for idx, prop in enumerate(device.properties):
        prop_desc = await client.getDevicePropDesc(
            prop=prop,
            delay=0
        )
        props.append(prop_desc)

    discoveredProps = await client.discoverDevicePropDesc(device, delay=0)

    html = HtmlDeviceReportGenerator(device, props, discoveredProps) \
        .generate()

    reportFileName = 'd5300.html'
    f = open(reportFileName, 'w')
    f.write(html)
    f.close()

    print('Report saved ! ' + reportFileName)

    setExposureIndexResponse = await client.setDevicePropValue(
        prop = DevicePropertyType.ExposureIndex.value,
        propType = PropertyType.Uint16,
        value = 3200
    )

    print('setExposureIndexResponse: ' + str(setExposureIndexResponse))

    exposureIndex = await client.getDevicePropValue(
        prop = DevicePropertyType.ExposureIndex.value,
        propType = PropertyType.Uint16
    )

    print('Exposure index : ' + str(exposureIndex))

PtpIpClient(usePtpIpClient)

OR use CLI

# Main Help
python3 console.py --help

# Generate full device report
python3 console.py device  --discover=True --more=True --report=d5300.html

# Get device property description for ExposureIndex
python3 console.py propdesc --name=ExposureIndex

# Get device property value for ExposureIndex
python3 console.py getprop --debug=False --name=ExposureIndex

# Set device property value for ExposureIndex to 6400
python3 console.py setprop --debug=False --name=ExposureIndex --value=6400

# Take a picture with current device configuration and redirect output to cap.jpg
python3 console.py capture --debug=False > cap.jpg

# Take a picture with current device configuration and save it to cap.jpg
python3 console.py capture --debug=False --output=cap.jpg

# List all storage ids
python3 console.py storageids

# Show storage info
python3 console.py storage --id=65537

# Count objects in given storage
python3 console.py numobjects --id=65537

# Lists all Jpeg files on main storage (SDCard) (including example 689504257 handle)
python3 console.py objhandles --id=65537 --formatname=ExifJpeg

# Show object info
python3 console.py objinfo --handle=689504257

# Show object format supported properties
python3 console.py formatprops --name=ExifJpeg --names=True

# Live view writing in cap.jpg at 60 fps
python3 console.py liveimg --output=cap.jpg --fps=60

# Show cap.jpg at 60fps in terminal using Viu : https://github.com/atanunq/viu
while true; do $(viu cap.jpg); sleep 0.016666666666666666; done;

Sample report for Nikon d5300

References

https://github.com/mmattes/ptpip
http://www.gphoto.org/doc/ptpip.php
https://github.com/Fimagena/libptp
https://github.com/whoozle/android-file-transfer-linux/tree/master/mtp/ptp
https://github.com/Parrot-Developers/sequoia-ptpy/blob/master/ptpy/ptp.py https://api.ricoh/docs/theta-web-api/property/still_capture_mode/

https://manualzz.com/download/46005016 D5000 MTP Specifications
https://www.usb.org/sites/default/files/MTPv1_1.zip
https://github.com/gphoto/libgphoto2/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ptpip-0.0.10.tar.gz (40.1 kB view details)

Uploaded Source

Built Distribution

ptpip-0.0.10-py3-none-any.whl (72.7 kB view details)

Uploaded Python 3

File details

Details for the file ptpip-0.0.10.tar.gz.

File metadata

  • Download URL: ptpip-0.0.10.tar.gz
  • Upload date:
  • Size: 40.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/3.7.2 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.2

File hashes

Hashes for ptpip-0.0.10.tar.gz
Algorithm Hash digest
SHA256 4c24c0fef36460290bf3866d663d04e321d696415e68291e202e877452693bb6
MD5 185dccdbbf16452f16335cf105e4c761
BLAKE2b-256 6200928ceada4c37ec2fb53fa03dad8a636f32b50fd62da42b1e26f324569d19

See more details on using hashes here.

File details

Details for the file ptpip-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: ptpip-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 72.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/3.7.2 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.2

File hashes

Hashes for ptpip-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 304755342438d8fad943a80696a9b0cee4d24b342bc1d6535d664069bd1fba10
MD5 e62b6227e89af87c2952643a0cf6a687
BLAKE2b-256 fc3a588812f5223487727a5cb33ba329221d01535025ca47cd2f4794bc754601

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page