[CAMERA PROGRAMMER'S MANUAL] EMERGENT VISION TECHNOLOGIES INC March 3, 2013

Similar documents
AVT PvAPI. Programmers Reference Manual. Version 1.24 November 22, 2010

AVT PvAPI Programmers Reference Manual

ArduCAM USB Camera SDK

Video capture using GigE Vision with MIL. What is GigE Vision

[CAMERA USER'S MANUAL] EMERGENT VISION TECHNOLOGIES INC March 3, 2013

ArduCAM USB Camera C/C++ SDK

10GiGE CAmeRAS. Speed is everything.

ArduCAM USB Camera SDK

NVJPEG. DA _v0.2.0 October nvjpeg Libary Guide

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4

OptimiData. JPEG2000 Software Development Kit for C/C++ Reference Manual. Version 1.6. from

SCD - Scorpion Camera Drivers Specification Documentation

NVJPEG. DA _v0.1.4 August nvjpeg Libary Guide

Coyote. Software Guide

Communications API. TEAM A : Communications and Integration Group. April 15, 1995

Programming refresher and intro to C programming

NI-IMAQdx Function Reference Help

NOTE: Debug and DebugSingle are the only MPI library configurations that will produce trace output.

This document outlines what is new with MIL s USB3 Vision system and explains the current limitations and particularities.

BATS Europe FAST PITCH Specification

C# SDK Wrapper Silicon Software Runtime

Using USB3 Vision Cameras with National Instruments' Vision Acquisition Software

Copyright 2017 Sony IP&S Inc. XC-SDK 2018 Overview

AcquisitionApplets. User Documentation. Acq_DualBaseAreaRGB for microenable 5 marathon/lightbridge VCL

To obtain the current global trace mask, call meitraceget(...). To modify the global trace mask, call meitraceset(...).

Manta G-223. Description. GigE camera with CMOSIS/ams CMV2000 CMOS sensor. Benefits and features:

.NET Wrapper SDK Descriptor

AcquisitionApplets. User Documentation. Acq_SingleCLHSx2AreaRAW for microenable 5 marathon AF2

Unlike the methods of all other objects in the MPI, Control object methods are not thread-safe. Error Messages

JAI SDK Software Development Kit and Control Tool

#include <tobii/tobii.h> char const* tobii_error_message( tobii_error_t error );

PDF Document structure, that need for managing of PDF file. It uses in all functions from EMF2PDF SDK.

Artemis SDK. Copyright Artemis CCD Limited October 2011 Version

Call DLL from Limnor Applications

AcquisitionApplets. User Documentation. Acq_SingleFullAreaBayer for microenable 5 marathon/lightbridge VCL

Release Notes Coaxlink Driver 3.2

Manta G Megapixel GigE Vision camera with Sony ICX655 CCD sensor. Benefits and features: Options:

PusleIR Multitouch Screen Software SDK Specification. Revision 4.0

C++\CLI. Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017

Test Applet. User Documentation. FrameGrabberTest for microenable 5 marathon AF2

Developer manual. (Onvif Client Library) Happytimesoft Technology Co.,LTD

AET60 BioCARDKey. Application Programming Interface. Subject to change without prior notice

Test Applet. User Documentation. FrameGrabberTest for microenable 5 AQ8-CXP6B

SBIG ASTRONOMICAL INSTRUMENTS

Remote Procedure Call Implementations

Airence C Library v1.2 for Windows

vsphere Guest Programming Guide VMware vsphere Guest SDK 4.0

AVT Vimba. AVT Vimba User Guide for Linux Jun-25 V1.2. Allied Vision Technologies GmbH Taschenweg 2a D Stadtroda / Germany

BlackBerry Software Development Kit Version 2.5. System Utilities API Reference Guide

SpiNNaker Application Programming Interface (API)

Multimedia Retrieval Exercise Course 2 Basic of Image Processing by OpenCV

Mellanox Scalable Hierarchical Aggregation and Reduction Protocol (SHARP) API Guide. Version 1.0

Prosilica GT. 1.2 Megapixel machine vision camera for extreme environments. Benefits and features:

elastique efficient time stretching SDK by zplane.development (c) 2017 zplane.development GmbH & Co. KG

Manta G-917. Description. 9.2 Megapixel GigE compliant machine vision camera. Benefits and features:

UniFinger Engine SDK Reference Manual Version 3.0.0

C Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:

WDF File Access Library

Basler. Area Scan Cameras

Basler. New: 1 Megapixel Camera. Innovative, Slim Design, Extremely 60 Frames

PVR File Format. Specification

Prosilica GT. Description. 2.1 Megapixel industrial camera for extended temperature ranges. Benefits and features:

FishEye-SDK Network Camera. Library Edition V API Reference Guide

grib_api.h File Reference

ATS-GPU-BASE. Version February 11, 2019

Programmer's Reference Manual

libquadflash API 1 General Operations

Defining Unified CCX CTI Messages

Basic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable

Prosilica GT. Description. 6.1 Megapixel machine vision camera with GigE interface. Benefits and features:

Mako G G-503. Gigabit Ethernet camera, ON Semiconductor CMOS sensor, 14 fps. Benefits and features:

SOCKETLIB. Requirements

CS2141 Software Development using C/C++ C++ Basics

Advanced Digital Machine Vision Cameras. GigE/USB3 Application. Quick Start. Application Notes. Rugged Machine Vision. Rev D

RM0327 Reference manual

Manta G-505. Description. GigE Vision camera with the 5 Megapixel Sony ICX625 CCD sensor. Benefits and features:

CS242 COMPUTER PROGRAMMING

C Programming SYLLABUS COVERAGE SYLLABUS IN DETAILS

What s an API? Do we need standardization?

CUDA. Schedule API. Language extensions. nvcc. Function type qualifiers (1) CUDA compiler to handle the standard C extensions.

GigE Vision camera with Sony ICX285 EXview HAD CCD sensor

LogiCORE IP Image Noise Reduction v2.0 Bit Accurate C Model

PvAPI 1.26 Release Notes

The New C Standard (Excerpted material)

VGA machine vision camera with GigE Vision interface

Vision Cam PS / SM2-D

IDKit - Fingerprint Identification SDK

Objectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments

Platform Objects. Introduction. Methods. meiplatformalloc meiplatformassertset

BASIC ELEMENTS OF A COMPUTER PROGRAM

Model 2600 Family Programming Guide August 21, 2008

BioTac C Library Manual for Cheetah

PHYTEC-USB-CAM Series communication protocol

2.8 Megapixel GigE camera with Sony ICX674 CCD sensor

AET60 API version 1.4 February Introduction...3 Features...3 Application Programming Interface...4

P.G.TRB - COMPUTER SCIENCE. c) data processing language d) none of the above

GigE Vision Cameras. Key Features. Dimension (Unit : mm) Pin map (H/W Rev 2.0 이상 ) LED Indicator. back Pannel. Download (File name)

SDK-S User Manual K-21-A ( ) 1 Copyright 2013 B&W Tek, Inc.

Application Program Interface Document

CSCI 1061U Programming Workshop 2. C++ Basics

Transcription:

[CAMERA PROGRAMMER'S MANUAL] EMERGENT VISION TECHNOLOGIES INC 1.0.2 March 3, 2013 SUITE #239-552A CLARKE ROAD, COQUITLAM, V3J 0A3, B.C. CANADA WWW.EMERGENTVISIONTEC.COM

Table of Contents CONTACT... 4 LEGAL... 5 OVERVIEW... 6 USING THE DRIVER... 7 PLATFORM... 7 PROGRAMMING LANGUAGES... 7 USING THE API... 8 EXAMPLE CODE... 8 LIST AVAILABLE CAMERAS... 8 OPENING A CAMERA... 8 CAMERA ATTRIBUTES... 9 FRAME QUEUING... 10 ERROR CODES... 11 STRUCTURES... 12 FUNCTION REFERENCE... 14 EVT_CAMERAOPEN... 14 EVT_CAMERACLOSE... 15 EVT_CAMERAGETPARAMATTR... 16 EVT_CAMERAGETUINT32PARAM... 17 EVT_CAMERASETUINT32PARAM... 18 EVT_CAMERAGETUINT32PARAMMAX... 19 EVT_CAMERAGETUINT32PARAMMIN... 20 EVT_CAMERAGETUINT32PARAMINC... 21 EVT_CAMERAGETINT64PARAM... 22 EVT_CAMERASETINT64PARAM... 23 EVT_CAMERAGETINT64PARAMMAX... 24 EVT_CAMERAGETINT64PARAMMIN... 25 EVT_CAMERAGETINT64PARAMINC... 26 EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 2

EVT_CAMERAGETBOOLPARAM... 27 EVT_CAMERASETBOOLPARAM... 28 EVT_CAMERAEXECUTECOMMAND... 29 EVT_CAMERAGETSTRINGPARAM... 30 EVT_CAMERAGETENUMPARAM... 31 EVT_CAMERASETENUMPARAM... 32 EVT_CAMERAGETENUMPARAMRANGE... 33 EVT_CAMERAOPENSTREAM... 34 EVT_CAMERACLOSESTREAM... 35 EVT_ALLOCATEFRAMEBUFFER... 36 EVT_RELEASEFRAMEBUFFER... 37 EVT_CAMERAQUEUEFRAME... 38 EVT_CAMERAGETFRAME... 39 EVT_FRAMECONVERT... 40 EVT_LISTDEVICES... 42 EVT_FRAMESAVE... 43 EVT_AVIOPEN... 44 EVT_AVICLOSE... 45 EVT_AVIAPPEND... 46 DOCUMENT HISTORY... 47 EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 3

Contact Emergent Vision Technologies Canada Headquarters) Suite #239-552A Clarke Road, Coquitlam,B.C. V3J 0A3 CANADA info@emergentvisiontec.com www.emergentvisiontec.com Technical Support info@emergentvisiontec.com EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 4

Legal Trademarks All trademarks appearing in this document are protected by law. Warranty The information provided is supplied without any guarantees or warranty. Copyright All texts, pictures, files, and graphics are protected by copyright and other laws protecting intellectual property. It is not permitted to copy or modify them for and use. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 5

Overview This document is the programmer s reference manual for Emergent Vision Technologies cameras. The Emergent Vision Technologies API interface supports all 10GE cameras from Emergent. The API driver interface is a user DLL/SO which communicates with the network drivers for control GVCP) and receives image data GVSP) directly from the Myricom driver. On Windows the API interface is through.dll and on Linux through.so. Your Application API ie. EmergentCameraAPIs.h) API DLLs ie. EmergentCamera.dll/.so) GVSP TCP/IP Driver for GVCP) Myricom Driver EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 6

Using the Driver Platform The Emergent Vision Technologies driver is supported on the following platforms: Windows 7 64bit) Linux 64bit) Our driver supports the Myricom 10G PCIe single and dual port NICs with custom Myricom NIC firmware and driver for optimal CPU utilization and latency. Programming Languages Main Header File: EmergentCameraAPIs.h See: <installation directory>\esdk\include Main Library FileWindows): EmergentCamera.lib See: <installation directory>\esdk\lib Main DLL/SO File: EmergentCamera.dll/.so See: <installation directory>\esdk\bin All files are included in the SDK and the examples in the following section illustrate their inclusion and usage. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 7

Using the API Example Code C++ example code is included in the \EVT\eSDK\examples directory. Examples are provided to demonstrate and exercise all functions in this document and all camera functionality and are thus an excellent resource to software developers. All example projects can be opened, compiled and run using the Visual Studio Express 2010 software or in Linux using provided makefiles and g++. The following examples are provided: EVT_DeviceInformation EVT_AnalogControl EVT_ImageFormatControl EVT_AcquisitionControl EVT_TransportLayerControl EVT_GPIO EVT_BenchmarkHS EVT_BenchmarkHS_Dual EVT_BenchmarkHS_MultiThread EVT_BenchmarkHSAVI List Available Cameras Function EVT_CameraList will enumerate all Emergent Vision Technologies cameras connected to the system. Opening a Camera A camera must be opened to control and capture images. Function EVT_CameraOpen is used to open the camera. The camera must be closed with EVT_CameraClose as the application is finished. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 8

Camera Attributes Attributes are used to control and monitor various aspects of the driver and camera. See EVT Camera and Driver Attributes document for the complete description of camera attributes. Attribute Type Get Set Range Enumeration EVT_CameraGetEnumParam EVT_CameraSetEnumParam EVT_CameraGetEnumParamRange UInt32 EVT_CameraGetUInt32Param EVT_CameraSetUInt32Param EVT_CameraGetUInt32ParamMin EVT_CameraGetUInt32ParamMax EVT_CameraGetUInt32ParamInc Int64 EVT_CameraGetInt64Param EVT_CameraSetInt64Param EVT_CameraGetInt64ParamMin EVT_CameraGetInt64ParamMax EVT_CameraGetInt64ParamMin String EVT_CameraGetStringParam N/A N/A Boolean EVT_CameraGetBoolParam EVT_CameraSetBoolParam N/A Command N/A EVT_CameraExecuteCommand N/A Table 1: Functions for Reading and Writing Attributes The EVT API currently defines the following attribute types tpvdatatype): Enumeration Uint32 Boolean Int64 String Command A set of values. Values are represented as strings. 32-bit unsigned value. A simple Boolean value true,false) 64-bit signed value A string null terminated, char[]). Valueless; a function executes when the attribute is written. For example, to change the exposure time, set attribute Exposure: EVT_CameraSetUInt32Param Camera, "Exposure", 1000 // 1000 µs EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 9

Frame Queuing Frames are class objects containing image data and related info. See CEmergentFrame in emergentframe.h. Users are responsible for managing frame queues. To create a frame, simply declare as in the examples: CEmergentFrameevtFrame; Or CEmergentFrame evtframes[10]; //Declares an array of frames. To queue a frame, do as follows: CEmergentFrame evtframe; EVT_AllocateFrameBuffer&camera,&evtFrame,EVT_FRAME_BUFFER_ZERO_COPY EVT_CameraQueueFrame&camera, &evtframe //Queue the frame. Where camera is of type CEmergentCamera opened with EVT_CameraOpen) To receive a queued up frame into the application, do as follows: EVT_CameraGetFrame&camera, &evtframe, 100//Timeout in milliseconds Or EVT_CameraGetFrame&camera, &evtframe, EVT_INFINITE //Timeout infinite To release memory for a frame, do as followsfor pre-allocated frame): EVT_ReleaseFrameBuffer&camera, &evtframe For high-speed image capture, it is suggested that multiple frames are queued up at any given time to deal with fluctuations in system callsparticularly on Windows). A maximum of 511 frame buffers can be queued up at any given time per NIC port or until host runs out of memory. Image buffers are filled in the order they are queued. Re-queue new frames as the old frames complete. This and many other elements of programming are illustrated in the provided examples. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 10

Error Codes Most Emergent API functions return an EVT_ERROR type error code. Errors are listed with each function in the Function Reference section of this document. Following are descriptions of error codes that might be returned: EVT_ERROR_SRCH EVT_ERROR_INTR EVT_ERROR_IO EVT_ERROR_AGAIN EVT_ERROR_NOMEM EVT_ERROR_INVAL EVT_ERROR_NOT_SUPPORTED EVT_ERROR_DEVICE_CONNECTED_ALRD EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_GENICAM_ERROR EVT_ERROR_GENICAM_NOT_MATCH EVT_ERROR_GENICAM_OUT_OF_RANGE EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GVSP_DATA_CORRUPT EVT_ERROR_MYRICOM_INIT EVT_ERROR_OS_OBTAIN_ADAPTER EVT_ERROR_SDK Function successful Parameter not found Signal was received File IO error Timeout expired Out of memory Data in deviceinfo is corrupt Buffer type is not supported Device already opened Device not opened Generic GenICam error Parameter type does not match. Parameter value out of range Socket operation failed GVCP ACK error Frame data corrupt Failed to initialize Myricom API Failed to get host adpater information Unexpected SDK error General error EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 11

Structures CEmergentFrame enum PIXEL_FORMAT pixel_type; //See emergentframebase.h for types unsigned int size_x; //All from GVSP header unsigned int size_y; unsigned int offset_x; unsigned int offset_y; unsigned int padding_x; unsigned int padding_y; unsigned int trailer_size_y; unsigned short frame_id; //aka block_id from GVSP header unsigned char* imageptr; //The image data pointer int convertcolor; //See emergentframebase.h for types int convertbitdepth; //See emergentframebase.h for types GigEVisionDeviceInfo //All from GigEVision specification bootstrap registers unsigned short specversionmajor; unsigned short specversionminor; unsigned int devicemode; char macaddress[18]; unsigned int ipconfigoptions; unsigned int ipconfigcurrent; char currentip[16]; char currentsubnetmask[16]; char defaultgateway[16]; char manufacturername[32]; EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 12

char modelname[32]; char deviceversion[32]; char manufacturerspecifiedinfo[48]; char serialnumber[16]; char userdefinedname[16]; char hostinterfaceip[16]; EvtParamAttribute. datatype EDataTypeUnsupported = -1, EDataTypeUInt32, EDataTypeInt64, EDataTypeBoolean, EDataTypeCommand, EDataTypeFloat, EDataTypeString, EDataTypeEnumeration, EDataTypeEnumEntry, EDataTypeCategory CEmergentAVIFile char filename[256], int codec, //FourCC codec code. double fps, //Frames per second. int width, //Width and height resolution) of AVI file. int height, bool iscolor //TRUE for color, FALSE for mono sensors. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 13

Function Reference EVT_CameraOpen Open the EVT Camera EVT_ERROREVT_CameraOpen GigEVisionDeviceInfo* deviceinfo, const char* xmlfilename = NULL deviceinfo: xmlfilename: Handle to a GigEVisionDeviceInfo structure Local camera XML file. Omit or NULL to use in-camera XML file. EVT_ERROR_DEVICE_CONNECTED_ALRD EVT_ERROR_INVAL EVT_ERROR_NOMEM EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK Call EVT_CameraClose) to close camera when done. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 14

EVT_CameraClose Closes the EVT Camera EVT_ERROREVT_CameraClose EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK Call EVT_CameraOpen) before closing camera. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 15

EVT_CameraGetParamAttr Get the information such as data type for a particular attribute. EVT_ERROREVT_CameraGetParamAttr const char* name, struct EvtParamAttribute* attr name: attr: Attribute name Attribute information returned in this structure EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 16

EVT_CameraGetUInt32Param Get the value of a UInt32 attribute. EVT_ERROREVT_CameraGetUInt32Param const char* name, unsigned int* val name: val: Attribute name Attribute value returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 17

EVT_CameraSetUInt32Param Set the value of a UInt32 attribute. EVT_ERROREVT_CameraSetUInt32Param const char* name, unsigned int val name: val: Attribute name Attribute value EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 18

EVT_CameraGetUInt32ParamMax Get the maximum value of UInt32attribute. EVT_ERROREVT_CameraGetUInt32ParamMax const char* name, unsigned int* max name: max: Attribute name Attribute maximum value returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 19

EVT_CameraGetUInt32ParamMin Get the minimum value of a UInt32 attribute. EVT_ERROREVT_CameraGetUInt32ParamMin const char* name, unsigned int* min name: min: Attribute name Attribute minimum value returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 20

EVT_CameraGetUInt32ParamInc Get the increment step of a UInt32 attribute. EVT_ERROREVT_CameraGetUInt32ParamInc const char* name, unsigned int* inc name: inc: Attribute name Attribute increment step returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 21

EVT_CameraGetInt64Param Get the value of an Int64 attribute. EVT_ERROREVT_CameraGetInt64Param const char* name, long long* val name: val: Attribute name Attribute value returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 22

EVT_CameraSetInt64Param Set the value of an Int64attribute. EVT_ERROREVT_CameraSetInt64Param const char* name, long long val name: val: Attribute name Attribute value EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 23

EVT_CameraGetInt64ParamMax Get the maximum value of an Int64 attribute. EVT_ERROREVT_CameraGetInt64ParamMax const char* name, long long* max name: max: Attribute name Attribute maximum value returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 24

EVT_CameraGetInt64ParamMin Get the minimum value of an Int64 attribute. EVT_ERROREVT_CameraGetInt64ParamMin const char* name, long long* min name: min: Attribute name Attribute minimum value returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 25

EVT_CameraGetInt64ParamInc Get the increment step of an Int64 attribute. EVT_ERROREVT_CameraGetInt64ParamInc const char* name, unsigned long long* inc name: inc: Attribute name Attribute increment step returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 26

EVT_CameraGetBoolParam Get the value of a Booleanattribute. EVT_ERROREVT_CameraGetBoolParam const char* name, bool* val name: val: Attribute name Attribute value returned EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 27

EVT_CameraSetBoolParam Set the value of a Boolean attribute. EVT_ERROREVT_CameraSetBoolParam const char* name, bool val name: val: Attribute name Attribute value EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 28

EVT_CameraExecuteCommand Execute a command attribute. EVT_ERROREVT_CameraExecuteCommand const char* name name: Command attribute to be executed EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 29

EVT_CameraGetStringParam Get the value of a string attribute. EVT_ERROREVT_CameraGetStringParam const char* name, char* buffer, unsigned long buffersize, unsigned long* valuesize name: buffer: buffersize: valuesize: Attribute name Buffer for returned string attribute Size of buffer provided Actual size of returned string attribute EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 30

EVT_CameraGetEnumParam Get the value of an Enumeration attribute. EVT_ERROREVT_CameraGetEnumParam const char* name, char* buffer, unsigned long buffersize, unsigned long* valuesize name: buffer: buffersize: valuesize: Attribute name Buffer for returned enum attribute Size of buffer provided Actual size of returned string attribute EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 31

EVT_CameraSetEnumParam Set the value of an Enumeration attribute. EVT_ERROREVT_CameraSetEnumParam const char* name, const char* buffer name: buffer: Attribute name Enum attribute value EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 32

EVT_CameraGetEnumParamRange Get the range of an Enumeration attribute. EVT_ERROREVT_CameraGetEnumParamRange const char* name, char* buffer, unsigned long buffersize, unsigned long* valuesize name: buffer: buffersize: valuesize: Attribute name Buffer for returned enum attributes. Comma separated list. Size of buffer provided Actual size of returned enum attribute comma separated list. EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SRCH EVT_ERROR_GENICAM_ERROR EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_GENICAM_NOT_MATCH EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 33

EVT_CameraOpenStream Open stream channel on host side. EVT_ERROREVT_CameraOpenStream CEmergentCamera* camera EVT_ERROR_DEVICE_NOT_CONNECTED EVT_ERROR_SOCK EVT_ERROR_GVCP_ACK EVT_ERROR_MYRICOM_INIT EVT_ERROR_INVAL EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 34

EVT_CameraCloseStream Closes stream channel on host side. EVT_ERROREVT_CameraCloseStream CEmergentCamera* camera EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 35

EVT_AllocateFrameBuffer Allocate memory for the image. EVT_ERROREVT_AllocateFrameBuffer CEmergentFrame* frame, int buffer_type frame: buffer_type: Image frame object EVT_FRAME_BUFFER_DEFAULT EVT_FRAME_BUFFER_ZERO_COPY EVT_ERROR_NOT_SUPPORTED EVT_ERROR_INVAL EVT_ERROR_NOMEM Use EVT_FRAME_BUFFER_ZERO_COPY for frame for EVT_CameraGetFrame and EVT_CameraQueueFrame as this buffer type is needed for transfer of image data from the NIC with highest efficiency. For all other frames such as the destination frame of EVT_FrameConvert when converting received frames use EVT_FRAME_BUFFER_DEFAULT as this performs standard memory allocation. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 36

EVT_ReleaseFrameBuffer Release memory previously allocated with EVT_AllocateFrameBuffer) EVT_ERROREVT_ReleaseFrameBuffer CEmergentFrame* frame frame: Image frame from camera. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 37

EVT_CameraQueueFrame Place an image buffer into the frame queue. EVT_ERROREVT_CameraQueueFrame CEmergentFrame* frame frame: Camera image frame to queue. EVT_ERROR_INVAL EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 38

EVT_CameraGetFrame Get frame from the camera. Block calling thread until frame is received. EVT_ERROREVT_CameraGetFrame CEmergentFrame* frame, int milliseconds frame: milliseconds: Image frame from camera. Time to wait in milliseconds. Use EVT_INFINITE to block indefinitely. EVT_ERROR_INVAL EVT_ERROR_AGAIN EVT_ERROR_INTR EVT_ERROR_NOMEM EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 39

EVT_FrameConvert Convert a frame using the provided parameters. EVT_ERROREVT_FrameConvert CEmergentFrame* src, CEmergentFrame* dst, int bit_convert, int color_convert src: dst: bit_convert: color_convert: Image frame to convert Image frame result. Parameter to define conversion of number of bits per pixel. Parameter to define color conversion. bit_convert can be one of the following: EVT_CONVERT_NONE, EVT_CONVERT_8BIT color_convert can be one of the following: EVT_COLOR_CONVERT_NONE EVT_COLOR_CONVERT_NEARESTNEIGHBOR_RGB EVT_COLOR_CONVERT_NEARESTNEIGHBOR_BGR EVT_COLOR_CONVERT_BILINEAR_RGB EVT_COLOR_CONVERT_BILINEAR_BGR EVT_COLOR_CONVERT_TO_RGB EVT_COLOR_CONVERT_TO_BGR EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 40

EVT_FrameConvert can perform three tasks and all are wrapped up into a single API function call for efficiency purposes. Those three tasks are: 1. Unpacking raw packed frame data from the camera into PC usable format such as taking a 10 bit packed format which has two 10 bit pixels over 3 bytes) and unpacking this into 16 bits per pixel. This operation is always performed for the applicable formats. The mono8 format ie. is one which no unpacking operation is performed. 2. Bit converting the data such as converting 10 bits per pixel to 8 bits per pixel. Specify the operation through the bit_convert parameter. 3. Color converting the data. For YUV, BGR, and RGB formats, convert to RGB/BGR optionsare available.for raw bayer formats such as BayerGB8 and BayerGB10, bayer interpolationoptions are available. Specify the operation through the color_convert parameter. Omitting the smaller details for claritysee examples for complete usage). Here are some usage examples. //Using the frame data in src provides the raw data from the camera in whichever //format is selected. For mono8, mono10, RGB8Packed this is all most applications need. EVT_CameraGetFramecamera, src, INFINITE //This provides the unpacked data //ie. 10 bit packed format mono10packed will be converted to 16 bits per pixel. EVT_FrameConvertsrc, dst, EVT_CONVERT_NONE, EVT_COLOR_CONVERT_NONE //This does the same but downgrades 10 bits to 8 bits per pixel after unpacking. EVT_FrameConvertsrc, dst, EVT_CONVERT_8BIT, EVT_COLOR_CONVERT_NONE //This unpacks a YUV camera format image and converts to RGB EVT_FrameConvertsrc, dst, EVT_CONVERT_NONE, EVT_COLOR_CONVERT_TO_RGB //This takes raw bayer from the camera ie. Format BayerGB8 or BayerGB10) //and bayer interpolates the frame with bi-linear method to RGB format. EVT_FrameConvertsrc,dst,EVT_CONVERT_NONE, EVT_COLOR_CONVERT_BILINEAR_RGB //Same but downgrades 10bpp to 8bpp applicable to BayerGB10) EVT_FrameConvertsrc, dst,evt_convert_8bit, EVT_COLOR_CONVERT_BILINEAR_RGB EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 41

EVT_ListDevices Lists all devices connected to Ethernet ports and fills in deviceinfo for each. EVT_ERROREVT_ListDevices GigEVisionDeviceInfo* deviceinfo, unsigned int buflen, unsigned int* actualnum, unsigned int* copiednum deviceinfo: buflen: actualnum: copiednum: Pointer to array of GigEVisionDeviceInfo objects one for as many devices in system or buflen devices) Number of devices in system. Match with number of GigEVisionDeviceInfo objects for first parameter. How many devices were actually found. How many devices were copied to GigEVisionDeviceInfo objects. EVT_ERROR_OS_OBTAIN_ADAPTER EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 42

EVT_FrameSave Save image to file in selected format. EVT_ERROREVT_FrameSave CEmergentFrame* frame, char* filename, int filetype, int align frame: filename: filetype: align: Image frame to save to file File name to use for saved file a char array. Format to save image in. File type format can be one of: EVT_FILETYPE_RAW EVT_FILETYPE_BMP EVT_FILETYPE_TIF For bit depths less that are not 8 or 16 bits, this parameter determines whether to left align the pixel data before shifting. EVT_ALIGN_LEFT EVT_ALIGN_NONE EVT_ERROR_INVAL EVT_ERROR_IO EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 43

EVT_AVIOpen Open new AVI file for which to append images. EVT_ERROR EVT_AVIOpen CEmergentAVIFile* avifile avifile: CEmergentAVIFile to open See esdk examples for detailed functional sample usage but to note that prior to calling the open function that certain parameters must be setup as follows: CEmergentAVIFile avifile; avifile.iscolor = TRUE; //or FALSE if mono. avifile.fps = 200; //The frame rate for the AVI. avifile.codec = EVT_CODEC_NONE; //The fourcc codec code. EVT_CODEC_NONE = 0. avifile.width = 2048; //The width and heightie. resolution) avifile.height = 2048; strcpy_savifile.filename, "C:\\myavifile.avi" //Set file name string. 256 char max. EVT_AVIOpen&aviFile //Now can open the file. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 44

EVT_AVIClose Close and complete AVI file. EVT_ERROR EVT_AVIClose CEmergentAVIFile* avifile avifile: CEmergentAVIFile to close EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 45

EVT_AVIAppend Append image to AVI file opened with EVT_AVIAppend. EVT_ERROR EVT_AVIAppend CEmergentAVIFile* avifile, CEmergentFrame* frame avifile: frame: CEmergentAVIFile for which to append frame. Image frame to append to AVI file See esdk examples for detailed functional sample usage but to note that the frames that will be appended must match the parameters setup for EVT_AVIOpen. EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 46

Document History Version Date Description 1.01 29 May 2012 Initial Version 1.02 3 March 2013 Adding Linux Details EVT- CAMERA PROGRAMMER'S MANUAL - 1.0.2 47