PS-SDK is a Software Development Kit for developers, which is intended for controlling Canon PowerShot cameras from a PC.
-
Using PS-SDK allows developers to implement following features in software:
- to manage a list of cameras connected to the PC;
- to establish connection with a camera and to close it;
- to manage camera settings and image shooting properties;
- to receive live-view image from camera viewfinder;
- to take photos;
- to download image files from the camera.
PS-SDK provides a C language interface for accessing digital cameras and data created by these cameras. PS-SDK is designed to provide standard methods of accessing different camera models and their data.
Modern Canon digital cameras do not provides capabilities for controlling cameras from the PC. By default only access to camera’s flash-card is possible.
To enable camera control features it is required to run additional software on the camera which should handle controlling commands and perform corresponding actions directly in the camera.
This task is performed by PS module component of the PS-SDK. When started, it switches the camera to PC-controlled mode and the camera becomes ready to process commands from the PC.
After finishing of the PS module, the camera returns to standard work mode.
System architecture
Communication with a camera in the Windows system is provided by WinUSB driver. The driver creates separate device entries for camera in pc-controlled mode and for the same camera in standard mode, therefore, from the system’s point of view, the camera in pc-controlled mode and the camera in standard mode are two independent devices.
To provide full-scale communication with a camera specific PTP protocol extension is added to it via PS module installation.
Such feature prevents any possible conflicts with software which use the camera in standard mode (when camera works without installed PS module).
PS-SDK architecture
- The SDK provides communication with WinUSB driver, generates PTP-command and sends it to the camera;
- PS-module in the camera receives command, executes it and, if necessary, send data back to the PC;
- The SDK receives data and decodes it.
Typical interaction with the camera consists of following steps:
Additionally, the SDK monitors camera’s internal events and reports them to client-side software.
PS-SDK objects
PS-SDK objects structure
- CameraManager – an enumeration of all compatible cameras connected to the system via USB interface.;
- CameraInfo – structure which describes given camera;
- Session – camera controlling object;
- FileList – collection with descriptions of files captured during the current session;
- FileInfo – structure which describes given captured file;
- Prop_Desc – structure which describes given property. Description includes possible values and various auxiliary information;
PS-SDK employs a hierarchical structure with a CameraManager object at the root in order to control and access cameras connected to the host PC. This hierarchical structure consists of the following elements:
System requirements
- Windows 10;
- Windows 8;
- Windows 7;
- 32/64-bit OS version support;
- RAM: 1Gb
- Hard disk space: 50 megabytes
- Camera connection interface: USB 2.0
- SD/SDHC Flash memory card for each camera
- SD/SDHC Card Reader
Supported cameras
- Canon PowerShot G15 revisions 100B/100E
- Canon PowerShot SX510 HS, revisions 100C/100D/101A
- Canon PowerShot SX170 IS, revisions 100A/101A
- Canon PowerShot A1400 revision 100B
- Canon PowerShot SX500 IS, revisions 100D/100C
- Canon PowerShot SX160 IS, revision 100A
- Canon PowerShot A4000 IS, revisions 101A/100C
- Canon PowerShot A810, revisions 100B/100D/100E
- Canon PowerShot SX40 HS, revisions 100G/100I
- Canon PowerShot A2200, revision 100D
- Canon PowerShot SX150 IS, revision 100A
- Canon PowerShot A800, revisions 100B/100C
- Canon PowerShot A800, revision 100B
- Canon PowerShot SX130 IS, revisions 101C /101D/101F
- Canon PowerShot A495, revisions 100E/100F
Supported camera properties
- shooting mode (read-only)
- image size
- image quality
- metering mode
- white balance mode
- flash mode
- red-eye mode
- ISO
- Aperture
- shutter speed
- exposure compensation
- flash compensation
- autofocus mode
- battery level (read-only)
- focusing zone
- optical zoom