[WIP]

- REFACTORING
- start acq sync
- documentation
- attribute lastFixedRoi
- improve debug info during wait for event
- included options for HS dimax family, CDI and double image
- function to get the subType model in dimax family
- minor modifications in attributes and sdk functions
- more information in memory segment debug for dimax
- calculation of nr max images for DIMAX HS
- CDI and Double Image (preparation)
- fix bug in switching between rolling and global shutter
- rolling shutter: fix bug / include all modes / improve
- CDI - double image / exclusive / fix buffer size
- improvement HWIO signals
- dimax / recording - fixed stop ram recording bug
- validation values in setHWIO signals
- pcoGetFramesMaxInSegment fix bug for dimaxHS
- added capsCamRam, capsMetadata, capsTimestamp
- get temp info, get/set cooling setpoint
- added sdk release
- attributes: getSdkRelease, getCameraName, getCameraNameBase, getCameraNameEx
- added hwbin and hwroi/hwbin
- updated double image mode
- include the option of open a cam with the serial nr
parent 218da5f2
......@@ -426,7 +426,7 @@
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories=""$(ProjectDir)..\..\..\..\include";"$(ProjectDir)..\..\..\..\..\..\common\include";"$(ProjectDir)..\..\..\..\..\..\hardware\include";"$(ProjectDir)..\..\..\..\..\..\third-party\Processlib\core\include\WindowSpecific";"$(ProjectDir)..\..\..\..\..\..\third-party\Processlib\core\include";"$(ProjectDir)..\..\..\..\sdkPco\include""
AdditionalIncludeDirectories=""$(ProjectDir)..\..\..\..\include";"$(ProjectDir)..\..\..\..\..\..\common\include";"$(ProjectDir)..\..\..\..\..\..\hardware\include";"$(ProjectDir)..\..\..\..\..\..\third-party\Processlib\core\include\WindowSpecific";"$(ProjectDir)..\..\..\..\..\..\third-party\Processlib\core\include";"$(ProjectDir)..\..\..\..\sdkPco\include";"$(ProjectDir)..\..\..\..\sdkPco""
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBLIMAPCO_EXPORTS;LIMA_PROCESSCORE_DLL;VS_PLATFORM=$(PlatformName);VS_CONFIGURATION=$(ConfigurationName);LIMA_PROCESSCORE_BUILD;WITH_GIT_VERSION"
GeneratePreprocessedFile="0"
RuntimeLibrary="2"
......@@ -489,6 +489,10 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\..\..\src\PcoBinCtrlObj.cpp"
>
</File>
<File
RelativePath="..\..\..\..\src\PcoBufferCtrlObj.cpp"
>
......@@ -501,6 +505,10 @@
RelativePath="..\..\..\..\src\PcoCameraSdk.cpp"
>
</File>
<File
RelativePath="..\..\..\..\src\PcoCameraSdkAdd.cpp"
>
</File>
<File
RelativePath="..\..\..\..\src\PcoCameraUtils.cpp"
>
......@@ -535,6 +543,10 @@
RelativePath="..\..\..\..\include\Pco.h"
>
</File>
<File
RelativePath="..\..\..\..\include\PcoBinCtrlObj.h"
>
</File>
<File
RelativePath="..\..\..\..\include\PcoBufferCtrlObj.h"
>
......@@ -543,6 +555,10 @@
RelativePath="..\..\..\..\include\PcoCamera.h"
>
</File>
<File
RelativePath="..\..\..\..\include\PcoCameraSdk.h"
>
</File>
<File
RelativePath="..\..\..\..\include\PcoCameraUtils.h"
>
......@@ -594,6 +610,10 @@
RelativePath="..\..\..\..\sdkPco\include\PCO_Structures.h"
>
</File>
<File
RelativePath="..\..\..\..\sdkPco\PcoSdkVersion.h"
>
</File>
<File
RelativePath="..\..\..\..\sdkPco\include\SC2_CamExport.h"
>
......@@ -633,6 +653,10 @@
RelativePath="..\..\..\..\cpInstall"
>
</File>
<File
RelativePath="..\..\..\..\doc\errors.log"
>
</File>
<File
RelativePath="..\..\..\..\doc\index.rst"
>
......@@ -641,6 +665,10 @@
RelativePath="..\..\..\..\doc\notes.txt"
>
</File>
<File
RelativePath="..\..\..\..\..\..\applications\tango\python\doc\camera\pco.rst"
>
</File>
<File
RelativePath="..\..\..\..\doc\pco_edge.rst"
>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -47,6 +47,8 @@ Intoduction
- **Interface buses**
- **Cameralink:** used by **PCO.dimax** and **PCO.edge**
- **Cameralink HS:** used by **PCO.edge**
- **USB3.0:** used by **PCO.edge**
- **GigE:** used by **PCO.2000** and **PCO.4000**
......@@ -56,7 +58,7 @@ Intoduction
- **OS supported**
- **Win7 Professional** (english) 32 bits SP1.
- **Win7 Professional** (english) 64 bits SP1.
......@@ -95,49 +97,55 @@ Prerequisites
.. code-block:: sh
Silicon Software Runtime 5.1.4
545a30a4aa07260072615257c5c983cd 58881018 DD_DCCLSISORT514WIN32_103.zip
ca22c0385fc63b92e259d28b11b65021 58930007 RuntimeSetup_v5.1.4_IA32.exe
Silicon Software Runtime 5.4.4
f8317c5145bac803f142c51b7c54ba27 RuntimeSetup_with_Applets_v5.4.4_Win64.exe
.. code-block:: sh
pco-sdk 1.15
===> select: silicon softwre section dll meIV
89619de780943569dcfc885cb0a720d8 11608288 SW_PCOSDKWIN_115.exe
bb030a743efd0954bb60b05dbfe3c45e 11560659 SW_PCOSDKWIN_115.zip
pco-sdk 1.20
eb73ab0495a66c068c408344e20c8ad9 read_me.txt
69a8f5667b71a8cf206d782e20f526ab SW_PCOSDKWIN_120.exe
.. code-block:: sh
camware 3.08
===> select: silicon softwre section dll meIV
8bd64a957c57287c4c30c0ce7811343e 12037008 SW_CAMWAREWIN32_308.exe
ecf7936f451ed3a17cabbff7aa4ec645 11993859 SW_CAMWAREWIN32_308.zip
CAMWARE v403_1
a9f8b2e465b7702ff727ba349ef327e8 SW_CAMWAREWIN64_403_1.exe
.. code-block:: sh
VC++ express edition 2008 with SP1
62f764849e8fcdf8bfbc342685641304 2728440 vcsetup.exe
VC++ compiler
Microsoft Visual Studio 2008
Version 9.0.30729.1 SP
Microsoft .NET Framework
Version 3.5 SP1
Installed Edition: Professional
Microsoft Visual C++ 2008 91605-270-4441125-60040
Microsoft Visual C++ 2008
.. code-block:: sh
GSL GNU Scientific Lib (required for Process Lib)
d0c114f842933622a156bfa757ee14c2 6476814 gsl-1.8.exe
Python
8d10ff41492919ae93a989aba4963d14 numpy-MKL-1.8.1.win-amd64-py2.7.exe
5a38820953d38db6210a90e58f85548d PyTango-8.0.4.win-amd64-py2.7.exe
b73f8753c76924bc7b75afaa6d304645 python-2.7.6.amd64.msi
.. code-block:: sh
Python / SIP / modules
80b1ef074a3b86f34a2e6b454a05c8eb 15227904 python-2.6.6.msi
267627e760277e5f6a74a83772a4f1d0 2342045 numpy-1.5.1.win32-py2.6-nosse.exe
97a9c9b88fac273e1dfb4de9d0dce4ea 27712518 PyQt-Py2.6-x86-gpl-4.8.6-1.exe
dc5200e3199947a9574014537905a4b7 3670016 PyTango-7.1.1.win32-py2.6.msi
pco edge CLHS / for firmware upgrade to 1.19
9790828ce5265bab8b89585d8b8e83a9 pco.programmer_edgeHS.exe
b9266e03a04ac9a9ff835311f0e27d94 pco_clhs_info.exe
7e2f767684fb4ffaf5a5fac1af0c7679 sc2_clhs.dll
2ed778785489846fd141f968dca3735b README.txt
6bdb7a27b0d7738762c878a33983dada /FW_pco.edge_CLHS_020_V01_19.ehs
.. code-block:: sh
GIT
a8ab298fb7a728d41f7d787aef7dc8d1 14026948 Git-1.7.7.1-preview20111027.exe
UTILS
38ba677d295b4b6c17368bb86b661103 FileZilla_3.22.1_win64-setup_bundled.exe
0377ccd0a3283617d161f24d080fb105 Git-1.9.0-preview20140217.exe
3cbd2488210b6e7b3e7fa1baf05022d4 MobaXterm_Setup_7.1.msi
- **Enviroment variables**
- **system variables**
......
......@@ -502,3 +502,45 @@ $ cat config
remote = origin
merge = refs/heads/master
#======================================================================
# 2013/10/07 - ram memory / bits per pixel ...
#======================================================================
The CRC bit is used, too. Thus you'll have to divide by 9.
It does not sum up exactly to 4GB since there is additional alignment and other memory use.
(14/8 bytes/pix) - 639 * 2048 * 2048 * 14 / 8 / (1024*1024*1024)= 4,36
(14/9 bytes/pix) - 639 * 2048 * 2048 * 14 / 9 / (1024*1024*1024)= 3,88 - why /9???
((14+1)/8 bytes/pix) - 639 * 2048 * 2048 * 15 / 8 / (1024*1024*1024) = 4,68
#----------
http://www.pco.de support@pco.de
- the camera has 4GB of ram
- from sdk functions i get
2097152 pages in RAM
1280 pix per page
14 bit per pix
but
(2 bytes / pix) - 2097152 * 1280 * 2bytes = 536870912 bytes
(14/8 bytes/pix) - 2097152 * 1280 * 14/8 = 4697620480 bytes
- for images of 2048 * 2048, i get the max img count = 639 (assigned all
the ram to 1 segment)
so
(2 bytes / pix) - 639 * 2048 * 2048 * 2 = 5360320512
(14/8 bytes/pix) - 639 * 2048 * 2048 * 14 / 8 = 4690280448
in any case these values are little more than 4GB (4294967296)
......@@ -32,23 +32,106 @@
#define _x86
#endif
#ifdef __linux__
#include <defs.h>
#include <stdint.h>
typedef uint32_t DWORD;
//typedef unsigned long DWORD;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef bool BOOL;
#ifndef HANDLE
typedef int HANDLE;
#endif
typedef short SHORT;
//typedef long LONG;
typedef uint64_t UINT64;
#ifndef ULLONG_MAX
#define LONG_MAX 2147483647L
#define ULONG_MAX 0xffffffffUL
#define ULLONG_MAX 0xffffffffffffffffULL /* maximum unsigned long long int value */
#endif
#define KBYTEF (1024.)
#define MBYTEF (KBYTEF * KBYTEF)
#define GBYTEF (KBYTEF * KBYTEF * KBYTEF)
#define far
#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
DECLARE_HANDLE(HWND);
#ifndef __TIMESTAMP__
#define __TIMESTAMP__
#endif
//#define sprintf_s(buffer, buffer_size, stringbuffer, ...) (snprintf(buffer, buffer_size, stringbuffer, __VA_ARGS__))
#define sprintf_s snprintf
#define _stricmp strcasecmp
#define strcpy_s(d, l, s) strncpy( (d), (s), (l) )
#define strncpy_s(d, s, l) strncpy( (d), (s), (l) )
#define strncpy_s4(d, l , s , n) strncpy( (d), (s), (l) )
#define VS_PLATFORM "osLinux"
#define VS_CONFIGURATION x64
#define localtime_s(stc, tm ) (localtime_r( (tm) , (stc) ))
#define sscanf_s sscanf
#define strtok_s strtok_r
typedef struct timeval TIME_USEC;
#define TIME_UTICKS struct timespec
#define UNUSED __attribute__((unused))
#else
#define UNUSED
typedef struct __timeb64 TIME_USEC;
#define TIME_UTICKS LARGE_INTEGER
#endif
#ifndef __linux__
#include "processlib/Compatibility.h"
#include "PCO_Structures.h"
#include "PCO_ConvStructures.h"
#include "Pco_ConvStructures.h"
#include "Pco_ConvDlgExport.h"
#include "sc2_SDKStructures.h"
#include "sc2_SDKStructures.h" // TODO
#include "sc2_common.h"
#include "SC2_CamExport.h"
#include "sc2_defs.h"
#include "SC2_SDKAddendum.h"
#include "PCO_errt.h"
#else
#include "processlib/Compatibility.h"
#include "sc2_common.h"
#include "sc2_defs.h"
#include "SC2_SDKAddendum.h"
#include "PCO_errt.h"
#endif
#include <math.h>
#define DWORD_MAX ULONG_MAX
#define DWORD_MAX 0xffffffff
#define ERR_SIZE 256
#define ERRMSG_SIZE (256+128)
......@@ -63,7 +146,11 @@
#define MSG4K (1024 * 4)
#define MSG8K (1024 * 8)
#define ID_TIMESTAMP "$Id: [" __DATE__ " " __TIME__ "] [" __TIMESTAMP__ "] [" __FILE__ "] $"
#define ID_FILE_TIMESTAMP "$Id: [" __DATE__ " " __TIME__ "] [" __TIMESTAMP__ "] [" __FILE__ "] $"
#ifndef __linux__
#define strncpy_s4 strncpy_s
#endif
typedef DWORD tPvUint32;
typedef int tPvErr;
......@@ -101,7 +188,7 @@ typedef int tPvErr;
{ \
if(__err__){ \
char ___buff___[ERRMSG_SIZE+1]; \
sprintf_s(___buff___, ERRMSG_SIZE, "LIMA_HW_EXC ===> %s PcoError[x%08x][%s]", __msg__, m_pcoData->pcoError, m_pcoData->pcoErrorMsg); \
sprintf_s(___buff___, ERRMSG_SIZE, "LIMA_HW_EXC ===> %s PcoError[0x%08x][%s] error[0x%08x]", __msg__, m_pcoData->pcoError, m_pcoData->pcoErrorMsg, __err__); \
DEB_ALWAYS() << ___buff___; \
throw LIMA_HW_EXC(Error, ___buff___); \
} \
......@@ -118,19 +205,55 @@ typedef int tPvErr;
} \
}
#ifndef __linux__
#define DEF_FNID static char *fnId =__FUNCTION__;
#define PCO_CHECK_ERROR(er, fn) (PcoCheckError(__LINE__, __FILE__, ( er ) , ( fn ) ))
#else
#define DEF_FNID const char *fnId __attribute__((unused)) =__FUNCTION__ ;
#define PCO_CHECK_ERROR(__err__ , __comments__) \
{ \
if(__err__) \
{ \
__err__ = PcoCheckError(__LINE__, __FILE__, __err__, fnId , __comments__); \
} \
}
#define PCO_CHECK_ERROR1(__err__ , __comments__) \
{ \
if(__err__) \
{ \
__err__ = m_cam.PcoCheckError(__LINE__, __FILE__, __err__, fnId , __comments__); \
} \
}
#endif
#define PRINTLINES { for(int i = 0; i<50;i++) printf("===== %s [%d]/[%d]\n", __FILE__, __LINE__,i); }
#define PCO_FN0(er,mg, fn) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( ), #fn ); }
#define PCO_FN1(er,mg, fn, x1) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1) ), #fn ); }
#define PCO_FN2(er,mg, fn, x1, x2) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2) ), #fn ) ; }
#define PCO_FN3(er,mg, fn, x1, x2, x3) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2),(x3) ), #fn ) ; }
#define PCO_FN4(er,mg, fn, x1, x2, x3, x4) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2),(x3),(x4) ), #fn ) ; }
#define PCO_FN5(er,mg, fn, x1, x2, x3, x4, x5) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2),(x3),(x4),(x5) ), #fn ) ; }
#define PCO_FN6(er,mg, fn, x1, x2, x3, x4, x5, x6) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2),(x3),(x4),(x5),(x6) ), #fn ) ; }
char * _sprintComment(char *comment, char *comment1 ="" , char *comment2 ="" );
//====================================================
// bypass win fn
//====================================================
#ifdef __linux
unsigned int * _beginthread( void (*) (void *), unsigned int, void*);
void _endthread(void);
void* CreateEvent(void*, bool,bool, void*);
DWORD WaitForMultipleObjects(DWORD, void**, bool, DWORD);
#define WAIT_OBJECT_0 0
#define WAIT_TIMEOUT 5
#endif
int _get_imageNr_from_imageTimestamp(void *buf,int shift);
#ifndef __linux__
int _get_time_from_imageTimestamp(void *buf,int shift,SYSTEMTIME *st);
#endif
#endif
//###########################################################################
// This file is part of LImA, a Library for Image Acquisition
//
// Copyright (C) : 2009-2012
// European Synchrotron Radiation Facility
// BP 220, Grenoble 38043
// FRANCE
//
// This is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, see <http://www.gnu.org/licenses/>.
//###########################################################################
#ifndef PCOBINCTRLOBJ_H
#define PCOBINCTRLOBJ_H
//#include "PcoCompatibility.h"
#include "lima/HwBinCtrlObj.h"
#include "PcoCamera.h"
#include "lima/Exceptions.h"
namespace lima
{
namespace Pco
{
/*******************************************************************
* \class BinCtrlObj
* \brief Control object providing Pco Bin interface
*******************************************************************/
class DLL_EXPORT BinCtrlObj : public HwBinCtrlObj
{
DEB_CLASS_NAMESPC(DebModCamera, "BinCtrlObj", "Pco");
public:
BinCtrlObj(Camera& cam);
virtual ~BinCtrlObj() {}
virtual void setBin(const Bin& bin);
virtual void getBin(Bin& bin);
//allow all binning
virtual void checkBin(Bin& bin);
private:
Camera& m_cam;
};
} // namespace Pco
} // namespace lima
#endif // PCOBINCTRLOBJ_H
......@@ -40,11 +40,12 @@ struct stcAllocBuff {
DWORD dwPcoAllocBufferSize[PCO_MAX_NR_ALLOCATED_BUFFERS]; // buffer allocated by PCO_AllocateBuffer
WORD *limaAllocBufferPtr[PCO_MAX_NR_ALLOCATED_BUFFERS]; // buffer allocated by Lima
WORD *limaAllocBufferPtr1[PCO_MAX_NR_ALLOCATED_BUFFERS]; // buffer allocated by Lima
DWORD dwLimaAllocBufferSize[PCO_MAX_NR_ALLOCATED_BUFFERS]; // buffer allocated by Lima
DWORD dwStatus[8]; // PCO_AddBufferEx status/error return
//HANDLE bufferEvent[PCO_MAX_NR_ALLOCATED_BUFFERS];
HANDLE bufferAllocEvent[PCO_MAX_NR_ALLOCATED_BUFFERS];
//HANDLE bufferAllocEvent[PCO_MAX_NR_ALLOCATED_BUFFERS];
void* bufferAllocEvent[PCO_MAX_NR_ALLOCATED_BUFFERS];
DWORD bufferAssignedFrameFirst[PCO_MAX_NR_ALLOCATED_BUFFERS];
DWORD bufferAssignedFrameLast[PCO_MAX_NR_ALLOCATED_BUFFERS];
......@@ -71,6 +72,21 @@ namespace lima
DEB_CLASS_NAMESPC(DebModCamera,"BufferCtrlObj","Pco");
private:
Camera* m_cam;
struct stcPcoData *m_pcoData;
SoftBufferCtrlObj::Sync *m_bufferSync;
Cond cond;
struct stcAllocBuff m_allocBuff;
unsigned long m_frames_per_buffer;
//-------------------------------------------------------------
int m_frame[2];
SyncCtrlObj* m_sync;
int m_requestStop, m_requestStopRetry;
int m_ImageBufferSize;
public:
BufferCtrlObj(Camera *cam);
void prepareAcq();
......@@ -82,34 +98,27 @@ namespace lima
//------------------------------------------------------------- moved from taco
int _xferImagDoubleImage();
int _xferImag();
int _xferImag_getImage();
int _xferImag_getImage_edge();
int _xferImagMult();
void * BufferCtrlObj::_getLimaBuffer(int lima_buffer_nb, Sync::Status &status);
void *_getLimaBuffer(int lima_buffer_nb, Sync::Status &status);
void _pcoAllocBuffersFree();
void _pcoAllocBuffersInfo(int &nr, DWORD &size);
void *_getFrameBufferPtr(int nb_frame, int &nb_allocated_buffers);
private:
SoftBufferCtrlObj::Sync *m_bufferSync;
Cond cond;
Camera* m_cam;
int _assignImage2Buffer(DWORD &dwFrameFirst, DWORD &dwFrameLast, DWORD dwRequestedFrames, int bufIdx, bool live_mode);
int _assignImage2Buffer(DWORD &dwFrameFirst, DWORD &dwFrameLast,
DWORD dwRequestedFrames, int bufIdx, bool live_mode, WORD wDoubleImage=0);
void _pcoAllocBuffers(bool max = false);
struct stcAllocBuff m_allocBuff;
unsigned long m_frames_per_buffer;
//-------------------------------------------------------------
HANDLE& m_handle;
int m_frame[2];
SyncCtrlObj* m_sync;
int m_requestStop, m_requestStopRetry;
int m_ImageBufferSize;
struct stcPcoData *m_pcoData;
};
}
}
#endif
#endif
\ No newline at end of file
This diff is collapsed.
/**************************************************************************
###########################################################################
This file is part of LImA, a Library for Image Acquisition
Copyright (C) : 2009-2011
European Synchrotron Radiation Facility
BP 220, Grenoble 38043
FRANCE
This is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>.
###########################################################################
**************************************************************************/
#ifndef PCOCAMERASDK_H
#define PCOCAMERASDK_H
#ifndef __linux
#define PCO_FN0(er,mg, fn) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( ), #fn ); }
#define PCO_FN1(er,mg, fn, x1) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1) ), #fn ); }
#define PCO_FN2(er,mg, fn, x1, x2) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2) ), #fn ) ; }
#define PCO_FN3(er,mg, fn, x1, x2, x3) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2),(x3) ), #fn ) ; }
#define PCO_FN4(er,mg, fn, x1, x2, x3, x4) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2),(x3),(x4) ), #fn ) ; }
#define PCO_FN5(er,mg, fn, x1, x2, x3, x4, x5) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2),(x3),(x4),(x5) ), #fn ) ; }
#define PCO_FN6(er,mg, fn, x1, x2, x3, x4, x5, x6) {mg = #fn; er = PcoCheckError(__LINE__, __FILE__, fn ( (x1),(x2),(x3),(x4),(x5),(x6) ), #fn ) ; }
#endif
#endif
\ No newline at end of file
......@@ -27,24 +27,6 @@
#include <time.h>
#include "processlib/Compatibility.h"
#define CAMINFO_ALL 0xffffffffffffffffLL
#define CAMINFO_BLOCK (0x1LL << 0)
#define CAMINFO_UNSORTED (0x1LL << 1)
#define CAMINFO_LOG (0x1LL << 2)
#define CAMINFO_PIXELRATE (0x1LL << 8)
#define CAMINFO_ADC (0x1LL << 9)
#define CAMINFO_FIRMWARE (0x1LL << 10)
#define CAMINFO_GENERAL (0x1LL << 11)
#define CAMINFO_VERSION (0x1LL << 12)
#define CAMINFO_DIMAX (0x1LL << 13)
#define CAMINFO_EXP (0x1LL << 14)
#define CAMINFO_ROI (0x1LL << 15)
#define CAMINFO_CAMERALINK (0x1LL << 16)
#define CAMINFO_CAMERATYPE (0x1LL << 17)
#define FILE_PCO_DLL "liblimapco.dll"
#define FILENAME_INSTALL_VERSION "INSTALL_VERSION"
#define FILEEXT_INSTALL_VERSION "txt"
......
......@@ -43,6 +43,7 @@ namespace lima
class BufferCtrlObj;
class SyncCtrlObj;
class RoiCtrlObj;
class BinCtrlObj;
class PcoHwEventCtrlObj;
class DLL_EXPORT Interface : public HwInterface
......@@ -77,8 +78,8 @@ namespace lima
BufferCtrlObj* m_buffer;
SyncCtrlObj* m_sync;
RoiCtrlObj* m_RoiCtrlObj;
BinCtrlObj* m_BinCtrlObj;
PcoHwEventCtrlObj* m_HwEventCtrlObj;
static RoiCtrlObj* m_RoiCtrlObjXXX;
};
} // namespace Pco
......
......@@ -85,11 +85,12 @@ namespace lima
void getStatus(HwInterface::StatusType&);
WORD xlatLimaTrigMode2PcoTrigMode(bool &ext_trig);
WORD xlatLimaTrigMode2PcoAcqMode();
void SyncCtrlObj::xlatLimaTrigMode2Pco(
lima::TrigMode limaTrigMode, WORD &pcoTrigMode, WORD &pcoAcqMode, bool &extTrig, int &err);
//BufferCtrlObj* _getBufferCtrlObj() {return m_buffer;}
void setExposing(pcoAcqStatus exposing) {m_exposing = exposing;}
void setExposing(pcoAcqStatus exposing);
void setStarted(bool started);
bool getStarted() {return m_started;}
pcoAcqStatus getExposing() {return m_exposing;}
......
#define PCO_SDK_VERSION "$Id: PCOSDK [1.20] $"
#define PCO_SDK_RELEASE "1.20"
......@@ -15,44 +15,86 @@ namespace Pco
void startAcq();
void reset(int);
void getMaxWidthHeight(unsigned int& width,unsigned int& height /Out/);
void getBytesPerPixel(unsigned int& pixbytes /Out/);
const char *talk(const char *cmd);
int getNbAcquiredFrames();
char *talk(char *cmd);
void getAcqTimeoutRetry(int &val /Out/);
void getMaxWidthHeight(unsigned int& width,unsigned int& height /Out/);
//--------------------------------------------------------
void getBytesPerPixel(unsigned int& pixbytes /Out/); // bytesPerPixel
void getAcqTimeoutRetry(int &val /Out/); // acqTimeoutRetry
void setAcqTimeoutRetry(int val);
void getAdc(int & adc /Out/);
void getAdc(int & adc /Out/); // adc
void setAdc(int val);
void getAdcMax(int & adc /Out/);
void getCamInfo(std::string &o_sn /Out/) ;
void getCamType(std::string &o_sn /Out/) ;
void getVersion(std::string &o_sn /Out/) ;
void getPixelRateInfo(std::string &o_sn /Out/) ;
void getClTransferParam(std::string &o_sn /Out/) ;
void getLastError(std::string &o_sn /Out/) ;
void getPixelRateValidValues(std::string &o_sn /Out/) ;
void getTraceAcq(std::string &o_sn /Out/) ;
void getAdcMax(int & adc /Out/); // adcMax
void getClTransferParam(std::string &o_sn /Out/) ; // clXferPar
void getLastError(std::string &o_sn /Out/) ; // last error
void getCocRunTime(double & coc /Out/);
void getFrameRate(double & frameRate /Out/);
void getTraceAcq(std::string &o_sn /Out/) ; // traceAcq
void getLastImgRecorded(int & img /Out/);
void getLastImgAcquired(int & img /Out/);
void getMaxNbImages(int & nr /Out/);
void getPcoLogsEnabled(int & enabled /Out/);
void getLastImgRecorded(unsigned long & img /Out/); // lastImgRecorded
void getLastImgAcquired(unsigned long & img /Out/); // lastImgAcquired
void getMaxNbImages(unsigned long & nr /Out/); // maxNbImages
void getCocRunTime(double & coc /Out/); // CocRunTime
void getFrameRate(double & frameRate /Out/); // frameRate
void getPixelRate(int & val /Out/);
void getCamInfo(std::string &o_sn /Out/) ; // camInfo
void getCamType(std::string &o_sn /Out/) ; // camType
void getVersion(std::string &o_sn /Out/) ; // version
void getPcoLogsEnabled(int & enabled /Out/); // pcoLogsEnabled
void getPixelRate(int & val /Out/); // pixelRate
void setPixelRate(int val);
void getRollingShutter(int & val /Out/);
void getPixelRateValidValues(std::string &o_sn /Out/) ; // pixelRateValidValues
void getPixelRateInfo(std::string &o_sn /Out/) ; // pixelRateInfo
void getRollingShutter(int & val /Out/); // rollingShutter
void setRollingShutter(int val);
void getRollingShutterInfo(std::string &o_sn /Out/) ; // rollingShutterInfo
void getLastFixedRoi(std::string &o_sn /Out/) ; // lastFixedRoi
void getCDIMode(int & val /Out/); // cdiMode
void setCDIMode(int val);
void getTemperatureInfo(std::string &o_sn /Out/);
void getCoolingTemperature(int & val /Out/);
void setCoolingTemperature(int val);