Pixet SDK: Difference between revisions
No edit summary |
|||
Line 3: | Line 3: | ||
Each API contain 3 groups of using type: | Each API contain 3 groups of using type: | ||
== Basic measuring and settings == | == Core/Basic measuring and settings == | ||
* Settings of the device | * Settings of the device | ||
* Getting information about the device | * Getting information about the device | ||
* Single-frame measurement | * Single-frame measurement | ||
* Multi-frame measurement | * Multi-frame measurement | ||
* Continuous frame measurement (endless repeats and without dead time on some devices, Mpx3 and Tpx2 for example) | |||
* Data-driven (pixel mode) measurement (Tpx3 only) | * Data-driven (pixel mode) measurement (Tpx3 only) | ||
[[File:Basic-measuring-example.png|none|alt=Basic measuring example|Basic measuring example]] | * Synchronized measurement | ||
* TDI imaging - | |||
* Basic image bad pixel correction | |||
* Beam hardening correction (Xray imaging has a very non-linear relationship between the thickness of the material and the intensity of the transmitted radiation. First, low-energy radiation is captured, followed by components that are significantly more penetrating.) | |||
[[File:Basic-measuring-example.png|frame|none|alt=Basic measuring example|Basic measuring example]] | |||
<br> | <br> | ||
Line 16: | Line 21: | ||
* Measuring with online searching for clusters | * Measuring with online searching for clusters | ||
* Getting informations about clusters - Time of arrival, energy, size, ... | * Getting informations about clusters - Time of arrival, energy, size, ... | ||
[[File:Clustering-example.png|none|alt=Clustering example|Clustering example]] | [[File:Clustering-example.png|frame|none|alt=Clustering example|Clustering example]] | ||
<br> | <br> | ||
Line 22: | Line 27: | ||
* Cluster processing with convert each cluster to pixel and create image | * Cluster processing with convert each cluster to pixel and create image | ||
* Getting spectrum information from whole chip or from selected area | * Getting spectrum information from whole chip or from selected area | ||
[[File:SpectralImg-example.png|alt=Spectral Imaging examles|Spectral Imaging examles]]<br> | [[File:SpectralImg-example.png|frame|none|alt=Spectral Imaging examles|Spectral Imaging examles]]<br> | ||
<br> | <br> | ||
= Binary (C) APIs = | = Binary (C) APIs = | ||
This APIs contains binary libraries, DLLs for Windows and SOs for Linux.<br> | This APIs contains binary libraries, DLLs for Windows and SOs for Linux.<br> | ||
It is intended to be '''easily used from C/C++''', but it is also possible to use it from many other languages, e.g. '''C#''', '''kotlin''', ... and can be imported to the '''LabView'''.<br> | It is intended to be '''easily used from C/C++''', but it is also possible to use it from many other languages, e.g. '''C#''', '''Visual Basic''', '''kotlin''', ... and can be imported to the '''LabView'''.<br> | ||
This API was created as simplified, for ease of use, for example in industry, so it is not object-oriented, for example.<br> | This API was created as simplified, for ease of use, for example in industry, so it is not object-oriented, for example.<br> | ||
Binary libraries are available in 32 and 64 bit versions for PCs and for ARMs and can be used on PC, RPi and some Android phones<br> | Binary libraries are available in 32 and 64 bit versions for PCs and for ARMs and can be used on PC, RPi and some Android phones<br> | ||
<br> | |||
The libraries are exportes in C style: | |||
* Windows DLLs - extern "C" __declspec(dllexport) | |||
* Linus SOs - extern "C" __attribute__ ((visibility("default"))) | |||
<br> | <br> | ||
The binary API has parts: | The binary API has parts: | ||
Line 76: | Line 85: | ||
= Auxilliary files = | = Auxilliary files = | ||
If you want using some our API, you need an auxilliary files: | If you want using some our API, you need an auxilliary files: | ||
[[File:Dirrectory-minimalistic-api-prg.png|right|alt=Directory of minimalistic program using binary API and working on computer with Visual Studio installed|Directory of minimalistic program using binary API and working on computer with Visual Studio installed]] | [[File:Dirrectory-minimalistic-api-prg.png|frame|right|alt=Directory of minimalistic program using binary API and working on computer with Visual Studio installed|Directory of minimalistic program using binary API and working on computer with Visual Studio installed]] | ||
* The '''pixet.ini file''' located in the program starting directory. | * The '''pixet.ini file''' located in the program starting directory. | ||
* '''hwlib file(s)''' listed in the pixet.ini. | * '''hwlib file(s)''' listed in the pixet.ini. |
Revision as of 10:49, 8 June 2023
Overview
We provide SDK for our products. Currently it has binary and python API.
Each API contain 3 groups of using type:
Core/Basic measuring and settings
- Settings of the device
- Getting information about the device
- Single-frame measurement
- Multi-frame measurement
- Continuous frame measurement (endless repeats and without dead time on some devices, Mpx3 and Tpx2 for example)
- Data-driven (pixel mode) measurement (Tpx3 only)
- Synchronized measurement
- TDI imaging -
- Basic image bad pixel correction
- Beam hardening correction (Xray imaging has a very non-linear relationship between the thickness of the material and the intensity of the transmitted radiation. First, low-energy radiation is captured, followed by components that are significantly more penetrating.)
Cluster processing
- Searching for clusters in saved data
- Measuring with online searching for clusters
- Getting informations about clusters - Time of arrival, energy, size, ...
Spectral imaging
- Cluster processing with convert each cluster to pixel and create image
- Getting spectrum information from whole chip or from selected area
Binary (C) APIs
This APIs contains binary libraries, DLLs for Windows and SOs for Linux.
It is intended to be easily used from C/C++, but it is also possible to use it from many other languages, e.g. C#, Visual Basic, kotlin, ... and can be imported to the LabView.
This API was created as simplified, for ease of use, for example in industry, so it is not object-oriented, for example.
Binary libraries are available in 32 and 64 bit versions for PCs and for ARMs and can be used on PC, RPi and some Android phones
The libraries are exportes in C style:
- Windows DLLs - extern "C" __declspec(dllexport)
- Linus SOs - extern "C" __attribute__ ((visibility("default")))
The binary API has parts:
Core/basic API
With the pxcore library, allowing basic measurements and device settings.
Files:
- pxcapi.h API header file
- pxcore.dll or pxcore.so binary libraries for Windows or Linux
- pxcore.lib static linging file for easier using on Windows (compile time only)
See Binary core API
Clustering API
With the pxproc library, designed for searching and processing clusters. Processing is possible online during measurement, or offline by processing data from files.
Files:
- clusteringapi.h API header file
- pxproc.dll or pxproc.so binary libraries for Windows or Linux
- pxproc.lib static linging file for easier using on Windows (compile time only)
Spectral Imaging API
Also with the pxproc library, which, after cluster processing, additionally creates frames, where a single pixel is created from each cluster. And energy spectrum graphs can also be easilly generated. From the entire surface or a selected section.
Files:
- spectraimgapi.h API header file
- pxproc.dll or pxproc.so binary libraries for Windows or Linux
- pxproc.lib static linging file for easier using on Windows (compile time only)
See Binary Spectral Imaging API
Python API
The Python API was created primarily for scientific purposes, so it is quite extensive and fully object-oriented. It can be used either directly using Python installed on the computer or from a small IDE integrated in the Pixet program.
API files list:
- pypixet.pyd - Basic API file for all basic device functions like as settings, measuring and get status information.
- pypxproc.pyd - Pixel processing, used by Clustering and Spectral imaging objects.
- pypixetgui.pyd - API for using the Pixet GUI. programmer can create windows, dialogs, graphs, ... (Usable only if started from the IDE integrated in the Pixet program)
This API also using the pxcore and pxproc libraries.
See Python API
Auxilliary files
If you want using some our API, you need an auxilliary files:
- The pixet.ini file located in the program starting directory.
- hwlib file(s) listed in the pixet.ini.
- Drivers for some devices properly installed on the computer.
- Additional files required for some devices. Typically FPGA firmwares. Located in the program starting directory.
- system libraries used by SDK libraries (pxcore.dll depends on: mfc110.dll, mfcloop.dll, msvcp120.dll, msvcp140.dll, msvcr110.dll, msvcr120.dll, vccorlib140.dll, vcruntime140.dll). This is not needed when the program is running from a development environment, or on a computer where the environment is installed. Don't forget to add the files when exporting for use on another computer.
- Device factory configuration XML file(s) for individual device. Located by pixet.ini settings, default is the "factory" subdirectory of the program starting directory.
- Location for saving the current configuration, with write enabled. Located by pixet.ini settings, default is the "configs" subdirectory of the program starting directory.
- Location for storing log files, with write enabled. Located by pixet.ini settings, default is the "logs" subdirectory of the program starting directory.
Notes:
- Devices without proper configuration loaded can working, but it measuring strange things.
- For simple test You can copy your executable file to the Pixet working directory. But it is better to create a separate directory (directories) for development, to avoid chaos in files.
See Files and directories: Main directory of the API-using programs