PTP / IP client
Project description
Getting started
pip install ptpip
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;
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)
Built Distribution
ptpip-0.0.10-py3-none-any.whl
(72.7 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c24c0fef36460290bf3866d663d04e321d696415e68291e202e877452693bb6 |
|
MD5 | 185dccdbbf16452f16335cf105e4c761 |
|
BLAKE2b-256 | 6200928ceada4c37ec2fb53fa03dad8a636f32b50fd62da42b1e26f324569d19 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 304755342438d8fad943a80696a9b0cee4d24b342bc1d6535d664069bd1fba10 |
|
MD5 | e62b6227e89af87c2952643a0cf6a687 |
|
BLAKE2b-256 | fc3a588812f5223487727a5cb33ba329221d01535025ca47cd2f4794bc754601 |