Development status:
New development
Information status: Updated
Repository:
http://svn.code.sf.net/p/tango-ds/code/DeviceClasses/Acquisition/2D/Pco
Contact:
Class Description
- The Tango PCO ccd class uses the software development kid (SDK) for Windows
from PCO to access the ccd devices.
The SDK is capable to handle a series of different ccd cameras. The server was tested with a Pco4000 camera but should work also for the other cameras supported by the SDK.
The camera dependent parameters like the maximum image size for example is read directly from the hardware via the camera description structure of the SDK. These parameters are displayed in the status text.
Actually the server works only with one camera. To handle several cameras on the same PC, some extension is necessary.
Device server for PCO ccd cameras Device Description Pco Class
Revision: - Author:
The Tango PCO ccd class uses the software development kid (SDK) for Windows from PCO to access the ccd devices.
The SDK is capable to handle a series of different ccd cameras. The server was tested with a Pco4000 camera but should work also for the other cameras supported by the SDK.
Families: Acquisition
Key words: 2D
Language: Cpp
Contact:
Class interface
Attributes:
Name | Description |
---|---|
ImageTimeStampScalar: DevBoolean | — |
CoolingTempScalar: DevDouble | — |
CoolingTempSetScalar: DevShort | — |
ADCsScalar: DevShort | — |
PixelrateScalar: DevLong | — |
ROI_y_maxScalar: DevLong | — |
ROI_y_minScalar: DevLong | — |
ROI_x_maxScalar: DevLong | — |
ROI_x_minScalar: DevLong | — |
Binning_yScalar: DevShort | — |
Binning_xScalar: DevShort | — |
ImageCounterScalar: DevLong | — |
HeigthScalar: DevLong | — |
WidthScalar: DevLong | — |
FilePostfixScalar: DevString | — |
FileStartNumScalar: DevLong | — |
FilePrefixScalar: DevString | — |
FileDirScalar: DevString | — |
FileSavingScalar: DevBoolean | — |
TriggerModeScalar: DevShort | — |
DelayTimeScalar: DevDouble | — |
ExposureTimeScalar: DevDouble | — |
ImageScalar: DevEncoded | — |
Commands:
Name | Description |
---|---|
LiveInput: DevVoid Output: DevVoid |
Start a live acquisition. Image are aquired in an endless loop with the prepositioned parameters. The Stop command ends the live acquisition. |
StartStandardAcqInput: DevVoid Output: DevVoid |
Start an acquisition with the prepositioned parameters |
StopInput: DevVoid Output: DevVoid |
Stop the current acquisition. |
ResetInput: DevVoid Output: DevVoid |
Reset a FAULT state and set the binning to 1 and the ROI to the full image size. |
StatusInput: DevVoid Output: DevString |
This command gets the device status (stored in its device_status data member) and returns it to the caller. |
StateInput: DevVoid Output: State |
This command gets the device state (stored in its device_state data member) and returns it to the caller. |
Pipes:
Properties:
Please log in to comment.
Generated
README
Before compiling, you will have to install: - The pco.sdk, available from http://www.pco.de/de/software/
The Tango server was tested using SW_PCOSDKWIN_114_0002.zip: other releases should also work.
- The Silicon Software Runtime Environment from http://www.silicon-software.com/download.html (eg RuntimeSetup_v5.1.4_IA32.exe or RuntimeSetup_v5.1.4_AMD64.exe, depending whether you want to compile a 32- or 64-bit application).
- ImageMagick headers and libraries, available from http://www.imagemagick.org/script/binary-releases.php The Tango server was tested using ImageMagick-6.7.3-3-Q16-windows-x64-dll.exe (32-bit) and ImageMagick-6.7.3-3-Q16-windows-x64-dll.exe (64-bit): other releases should also work, but you will have to change the headers and libraries path in MAKEFILE.
- HDF5 headers and libraries, available from http://www.hdfgroup.org/HDF5/ The Tango server was tested using HDF5-1.8.7_win_x86.zip (32-bit) and HDF5-1.8.7_win_x64.zip (64-bit); they were unzipped and moved respectively to "C:Program Files (x86)" and "C:Program Files". Other releases should also work, but you will have to change the headers and libraries path in MAKEFILE.
- There is data type incompatibility between ImageMagick and HDF5 on Windows 32-bit. This might be solved by future releases of the packages. See below, "Known problems (and solutions)"
- Tango must be installed. As of today, Tango for 64-bit windows only has lib, bin and headers. MAKEFILE assumes Tango has been unzipped in "C:Program Filestango-win-x64-bin-dist-msvc-2010". This may change in future.
- The Tango server can be compiled using Visual Studio. As of today Tango 32-bit ships libraries for Visual C++ 2005 (VC8) and 2008 (VC9). This may change in future, in this case the MAKEFILE will need to be changed.
How to compile: - To compile a 64-bit executable Pco.exe, you will need the also MS Windows
SDK. Open the "Windows SDK Command Prompt", go to the directory containing the Pco source files and then run "nmake win64".
- To compile a 32-bit version of the Pco.exe, use Visual Studio C++ 2005 (VC8) or 2008 (VC9). Open e.g. the "Visual Studio 2008 Command Prompt", go to the source directory and then run "nmake win32".
How to run Pco.exe: - First of all, the pco.sdkbin (or pco.sdkbin64 for a 64-bit executable)
directory must be in the path. This also applies to ImageMagick and HDF5 bin directories.
- Open a command prompt, go to the directory containing the Pco.exe, and run the command "Pco.exe <device name>"
Known problems (and solutions):
- With currently used versions of ImageMagick (ImageMagick-6.7.3-3-Q16) and HDF5 (HDF5-1.8.7) there is a data type incompatibility on Windows 32-bit. The first package defines ssize_t as type "long", whereas the latter as type "int". Even if the data types have the same size (sizeof(int) == sizeof(long) == 4) they are incompatible. On Windows 64-bit both packages define ssize_t to be "long long". The solution is to replace to follwing lines of "C:Program Files (x86)HDF5-1.8.7_win_x86includeH5public.h":
#if H5_SIZEOF_SSIZE_T==0 /* Undefine this size, we will re-define it in one of the sections below / #undef H5_SIZEOF_SSIZE_T #if H5_SIZEOF_SIZE_T==H5_SIZEOF_INT typedef int ssize_t; # define H5_SIZEOF_SSIZE_T H5_SIZEOF_INT #elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG typedef long ssize_t; # define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG #elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG_LONG typedef long long ssize_t; # define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG_LONG #else / Can't find matching type for ssize_t */ # error "nothing appropriate for ssize_t" #endif #endif
with
/* Define the ssize_t type if it not is defined / #if H5_SIZEOF_SSIZE_T==0 #undef H5_SIZEOF_SSIZE_T #if H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG_LONG typedef long long ssize_t; # define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG_LONG #elif H5_SIZEOF_SIZE_T==H5_SIZEOF_LONG typedef long ssize_t; # define H5_SIZEOF_SSIZE_T H5_SIZEOF_LONG #elif H5_SIZEOF_SIZE_T==H5_SIZEOF_INT typedef int ssize_t; # define H5_SIZEOF_SSIZE_T H5_SIZEOF_INT #else / Can't find matching type for ssize_t */ # error "nothing appropriate for ssize_t" #endif #endif
(This trick solves the conflict between ImageMagick and HDF5, but may introduce conflicts with other packages!)
- There is also a problem with the pixel rate on pco.edge, on which the server was tested. Currently images cannot be acquired with a pixel rate of 286 MHz and full image size (2560 x 2160 pixels). The images will be corrupted, and moreover the camera will not be accessible any more and need to be switched off and on. For a full image size a pixel rate of 95 MHz must be used (leading to a maximum framerate of about 30 Hz). The 286 MHz pixel rate can only be used with 4 megapixels or less.
A. Parenti Hamburg, 20.01.2012
Updated:
The device class has been updated.
You can see previous version here .
22 Feb 2018, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
16 Feb 2018, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
20 Apr 2017, Piotr Goryl
Updated:
The device class has been updated.
You can see previous version here .
23 Feb 2017, Piotr Goryl
Created:
The device class has been added to catalogue.