00001 /* 00002 |============================================================================== 00003 | Copyright (C) 2006-2011 Allied Vision Technologies. All Rights Reserved. 00004 | 00005 | Redistribution of this header file, in original or modified form, without 00006 | prior written consent of Allied Vision Technologies is prohibited. 00007 | 00008 |============================================================================= 00009 | 00010 | File: PvRegIo.h 00011 | 00012 | Project/lib: PvAPI 00013 | 00014 | Target: Win32, Linux, QNX 00015 | 00016 | Description: Camera register I/O. 00017 | 00018 | Notes: These functions can cause corruption to the internal state of 00019 | PvAPI. Use with caution. Sample code provided for accessing 00020 | certain registers. See siotest, CamMemory, GetXMLFile 00021 | 00022 |============================================================================== 00023 | 00024 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED 00025 | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, 00026 | NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 | DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 00028 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00029 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 00030 | OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00031 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00032 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00033 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 | 00035 |============================================================================== 00036 | dd/mon/yy Notes 00037 |------------------------------------------------------------------------------ 00038 | 10/Feb/06 Original. 00039 | 04/Jun/07 Licence changes 00040 |============================================================================== 00041 */ 00042 00043 #ifndef PVREGIO_H_INCLUDE 00044 #define PVREGIO_H_INCLUDE 00045 00046 #ifdef __cplusplus 00047 extern "C" { 00048 #endif 00049 00050 //===== INCLUDE FILES ========================================================= 00051 00052 #include <prosilica_gige_sdk/PvApi.h> 00053 00054 //===== #DEFINES ============================================================== 00055 00056 #define PvRegisterRead _Pv_Factory_Test_10 00057 #define PvRegisterWrite _Pv_Factory_Test_11 00058 #define PvMemoryRead _Pv_Factory_Test_12 00059 #define PvMemoryWrite _Pv_Factory_Test_13 00060 00061 //===== TYPE DEFINITIONS ====================================================== 00062 00063 //===== FUNCTION PROTOTYPES =================================================== 00064 00065 /* 00066 * Function: PvRegisterRead() 00067 * 00068 * Purpose: Read camera registers. A backdoor command. 00069 * 00070 * Arguments: 00071 * 00072 * [ IN] tPvHandle Camera, Handle to the camera 00073 * [ IN] unsigned long NumReads Number of registers to read 00074 * [ IN] const unsigned long* pAddressArray, Array of addresses, NumReads long 00075 * [OUT] unsigned long* pDataArray, Data is returned here; array 00076 * must be NumReads long 00077 * [OUT] unsigned long* pNumComplete, Number of registers successfully 00078 * read; if an error occurs this 00079 * is less than NumReads; may be 00080 * NULL 00081 * 00082 * Return: ePvErrSuccess if no error, otherwise likely to be any of the 00083 * following error codes: 00084 * 00085 * ePvErrBadHandle, the handle of the camera is invalid 00086 * ePvErrUnplugged, the camera has been unplugged 00087 * ePvBadParameter, NumReads is incorrect 00088 * pPvAccessDenied, read is not permitted (or register does 00089 * not exist) 00090 */ 00091 tPvErr PVDECL _Pv_Factory_Test_10(tPvHandle Camera, 00092 unsigned long NumReads, 00093 const unsigned long* pAddressArray, 00094 unsigned long* pDataArray, 00095 unsigned long* pNumComplete); 00096 00097 00098 /* 00099 * Function: PvRegisterWrite() 00100 * 00101 * Purpose: Write camera registers. A backdoor command. 00102 * 00103 * Arguments: 00104 * 00105 * [ IN] tPvHandle Camera, Handle to the camera 00106 * [ IN] unsigned long NumWrites Number of registers to write 00107 * [ IN] const unsigned long* pAddressArray, Array of addresses, NumWrites long 00108 * [ IN] const unsigned long* pDataArray, Array of data, NumWrites long 00109 * [OUT] unsigned long* pNumComplete, Number of registers successfully 00110 * written; if an error occurs this 00111 * is less than NumWrites; may be 00112 * NULL 00113 * 00114 * Return: ePvErrSuccess if no error, otherwise likely to be any of the 00115 * following error codes: 00116 * 00117 * ePvErrBadHandle, the handle of the camera is invalid 00118 * ePvErrUnplugged, the camera has been unplugged 00119 * ePvBadParameter, NumWrites is incorrect 00120 * pPvAccessDenied, write is not permitted (or register does 00121 * not exist) 00122 */ 00123 tPvErr PVDECL _Pv_Factory_Test_11(tPvHandle Camera, 00124 unsigned long NumWrites, 00125 const unsigned long* pAddressArray, 00126 const unsigned long* pDataArray, 00127 unsigned long* pNumComplete); 00128 00129 00130 00131 /* 00132 * Function: PvMemoryRead() 00133 * 00134 * Purpose: Read camera memory (READMEM_CMD). A backdoor command. 00135 * 00136 * Arguments: 00137 * 00138 * [ IN] tPvHandle Camera, Handle to the camera 00139 * [ IN] unsigned long Address, Address 00140 * [ IN] unsigned long Size, Size of read in bytes; must 00141 * be a multiple of 4 00142 * [OUT] unsigned char* pDataBuffer Data is returned here; buffer 00143 * must be Size bytes long 00144 * 00145 * Return: ePvErrSuccess if no error, otherwise likely to be any of the 00146 * following error codes: 00147 * 00148 * ePvErrBadHandle, the handle of the camera is invalid 00149 * ePvErrUnplugged, the camera has been unplugged 00150 * ePvBadParameter, Size is incorrect 00151 * pPvAccessDenied, read is not permitted (or register does 00152 * not exist) 00153 */ 00154 tPvErr PVDECL _Pv_Factory_Test_12(tPvHandle Camera, 00155 unsigned long Address, 00156 unsigned long Size, 00157 unsigned char* pDataBuffer); 00158 00159 00160 /* 00161 * Function: PvMemoryWrite() 00162 * 00163 * Purpose: Write camera memory (WRITEMEM_CMD). A backdoor command. 00164 * 00165 * Arguments: 00166 * 00167 * [ IN] tPvHandle Camera, Handle to the camera 00168 * [ IN] unsigned long Address, Address 00169 * [ IN] unsigned long Size, Size of write in bytes; must 00170 * be a multiple of 4 00171 * [ IN] const unsigned char* pDataBuffer, Data buffer, Size bytes long 00172 * [OUT] unsigned long* pSizeComplete, Number of bytes successfully 00173 * written; if an error occurs this 00174 * is less than Size; may be 00175 * NULL 00176 * 00177 * Return: ePvErrSuccess if no error, otherwise likely to be any of the 00178 * following error codes: 00179 * 00180 * ePvErrBadHandle, the handle of the camera is invalid 00181 * ePvErrUnplugged, the camera has been unplugged 00182 * ePvBadParameter, Size is incorrect 00183 * pPvAccessDenied, write is not permitted (or register does 00184 * not exist) 00185 */ 00186 tPvErr PVDECL _Pv_Factory_Test_13(tPvHandle Camera, 00187 unsigned long Address, 00188 unsigned long Size, 00189 const unsigned char* pDataBuffer, 00190 unsigned long* pSizeComplete); 00191 00192 00193 //===== DATA ================================================================== 00194 00195 00196 #ifdef __cplusplus 00197 } 00198 #endif 00199 00200 #endif // PVREGIO_H_INCLUDE 00201