# ADLINK Vision Software (AVS)

Function Reference Manual

Manual Revision: 1.0

Revision Date: February 7, 2022

Part No: 50M-00060-1000

# Revision History

<table><tr><td>Revision</td><td>Release Date</td><td>Description of Change(s)</td></tr><tr><td>1.0</td><td>2022-02-07</td><td>Initial release</td></tr></table>

# Preface

Copyright © 2022 ADLINK Technology, Inc.

This document contains proprietary information protected by copyright. All rights are reserved. No part of this manual may be reproduced by any mechanical, electronic, or other means in any form without prior written permission of the manufacturer.

# Disclaimer

The information in this document is subject to change without prior notice in order to improve reliability, design, and function and does not represent a commitment on the part of the manufacturer.

In no event will the manufacturer be liable for direct, indirect, special, incidental, or consequential damages arising out of the use or inability to use the product or documentation, even if advised of the possibility of such damages.

# Environmental Responsibility

ADLINK is committed to fulfill its social responsibility to global environmental preservation through compliance with the European Union's Restriction of Hazardous Substances (RoHS) directive and Waste Electrical and Electronic Equipment (WEEE) directive. Environmental Protection is a top priority for ADLINK. We have enforced measures to ensure that our products, manufacturing processes, components, and raw materials have as little impact on the environment as possible. When products are at their end of life, our customers are encouraged to dispose of them in accordance with the product disposal and/or recovery programs prescribed by their nation or company.

# Trademarks

Product names mentioned herein are used for identification purposes only and may be trademarks and/or registered trademarks of their respective companies.

# Conventions

Take note of the following conventions used throughout this manual to make sure that users perform certain tasks and instructions properly.

![A graphic icon depicting a white document with faint horizontal lines and a large, red checkmark overlaid on the right side.](.avs-flr-50m-00060-1000-10/c128e7d09b82f1154d6baf9c5adf062948213a9c178731537a3fea831e24671d.jpg)
NOTE:

Additional information, aids, and tips that help users perform tasks.

![The image shows a yellow triangular warning sign with a thick black border. In the center is a large black exclamation point.](.avs-flr-50m-00060-1000-10/6209658dcfafa7c8e266e27c96edc55fafc69cdafa0ce3a4f2162fa11e93e503.jpg)
CAUTION:

Information to prevent minor physical injury, component damage, data loss, and/or program corruption when trying to complete a task.

![The image features a red, upward-pointing triangle containing a white exclamation mark in its center.](.avs-flr-50m-00060-1000-10/40f5ae9257a8f1436ed8dd4998f171662a03d26274e619450a13d02142bbb4a8.jpg)
WARNING:

Information to prevent serious physical injury, component damage, data loss, and/or program corruption when trying to complete a specific task.

# Table of Contents

# Revision History...... ii

# Preface ...... iii

# 1 Introduction ..... 1

1.1 Environment.. 1
1.2 AVS Installation .. 1
1.3 AVS Functions & Parameters .... 2
1.4 AVS Sample Programs.. 2
1.5 AVS Installation Folder .. 3
1.5.1 Linux ... . 3
1.5.2 Windows .... . 4
1.6 Sample Reference Code ... 5
1.6.1 Include Header File... 5
1.6.2 Get Product Handle . . 6

# 2 AVS Parameters Reference...... 7

2.1 Product Name..... 7
2.2 Product Features .. 7
2.3 Edge Trigger ... 8
2.4 PoE .. 8
2.5 PoE Power Management.. 9
2.6 AVS Error Code .. . 10

# 3 Function Library .......... . 11

3.1 List of Functions.... . 11
3.2 Function Library .. . 13
3.2.1 Common .. .. 13
3.2.2 USB Port Control . .. 19
3.2.3 External Power Supply .... . 21
3.2.4 Power over Ethernet .. . 23
3.2.5 Trigger over Ethernet... .. 30

Important Safety Instructions..... 43

Getting Service ........ . 47

# 1 Introduction

ADLINK Vision Software (AVS) is the application programming interface (API) for ADLINK vision products. AVS allows developers to build applications in Linux and Windows operating systems via C/C++, C#/VB.NET support. Along with the APIs, AVS also includes product drivers and a set of sample programs and documentation.

# 1.1 Environment

<table><tr><td>Platform</td><td>x86, x86-x64</td></tr><tr><td rowspan="2">OS</td><td>Linux: Ubuntu 12.04 LTS (kernel 3.13) and above</td></tr><tr><td>Windows: 7/10</td></tr><tr><td rowspan="2">Programming Language</td><td>Linux: C/C++</td></tr><tr><td>Windows: C/C++, C#, VB.NET</td></tr></table>

# 1.2 AVS Installation

<table><tr><td>Linux</td><td>Debian, DKMS are a must for AVS.$sudo apt-get install dkms$tar xvf AVS-SDK_xxx.tar$cd AVS-SDK_xxx$./install.sh</td></tr><tr><td>Windows</td><td>Execute AVS-SDK_x.x.x.xxxx.exe</td></tr></table>

# 1.3 AVS Functions & Parameters

<table><tr><td>AVS Function</td><td>Description</td><td>Installation Folder</td></tr><tr><td>General SDK functions</td><td>Retrieves product handle and device information</td><td>\AVS_SDK.h</td></tr><tr><td>Feature functions</td><td>Basic functions</td><td>\Feature\*.h</td></tr><tr><td>AVS Parameter Reference</td><td>AVS parameters are grouped by C/C++ enumerations</td><td>\Common\I_common.h</td></tr></table>

# 1.4 AVS Sample Programs

<table><tr><td>Type</td><td>Description</td></tr><tr><td>GUI samples</td><td>An entry point for quickly performing samples with a GUI interface. (Windows only)</td></tr><tr><td>Console samples</td><td>Applications that can be run from a command prompt in Windows and Linux.</td></tr></table>

# 1.5 AVS Installation Folder

# 1.5.1 Linux

<table><tr><td>Type</td><td>Installation Folder</td><td>File</td><td>Description</td></tr><tr><td rowspan="3">Include</td><td>/usr/local/include/ADLINK/AVS</td><td>AVS_SDK.h</td><td>Header file required for General SDK functions</td></tr><tr><td>/usr/local/include/ADLINK/AVS/Common/</td><td>I_common.h</td><td>Header file required for AVS parameters</td></tr><tr><td>/usr/local/include/ADLINK/AVS/Feature/</td><td>ExPowerSupply.h PowerController.h PoE.h ToE.h Fan.h</td><td>Header file required for basic functions</td></tr><tr><td>Library</td><td>/usr/local/lib/</td><td>libAVS_SDK.so libAVS_Product.so libAVS_CoreSDK.so</td><td>Exports API function definitions, required for Visual C/C++ applications</td></tr><tr><td>Sample Program</td><td>/usr/local/src/ADLINK/AVS/Sample</td><td colspan="2">Build Sample$cd /usr/local/src/ADLINK/AVS/Sample$make Execute Sample$cd /usr/local/src/ ADLINK/AVS/Sample/bin $sudo ./AVS_GetSDKInfo</td></tr></table>

# 1.5.2 Windows

<table><tr><td>Type</td><td>Installation Folder</td><td>File</td><td>Description</td></tr><tr><td rowspan="3">Include</td><td>\ADLINK\AVS\Include\ C++</td><td>AVS_SDK.hI_common.hExPowerSupply.hPowerController.h</td><td>Header file required for all C/C++ applications</td></tr><tr><td>\ADLINK\AVS\Include\ VB.NET</td><td>AVS_SDK.vbI_common.vbExPowerSupply.vbPowerController.vb</td><td>Function definitions required for all VB.Net applications</td></tr><tr><td>\ADLINK\AVS\Include\ C#</td><td>AVS_SDK.csI_common.csExPowerSupply.csPowerController.cs</td><td>Function definitions required for all C# applications</td></tr><tr><td>DLL</td><td>\ADLINK\AVS\DII</td><td>AVS_SDK.dllAVS_Product.dllAVS_CoreSDK.dll</td><td>Dynamic link library files required for all applications</td></tr><tr><td>Library</td><td>\ADLINK\AVS\DII</td><td>AVS_SDK.lib</td><td>Exports API function definitions, required for all Visual C/C++ applications</td></tr><tr><td>Sample Program</td><td>\ADLINK\AVS\Sample</td><td colspan="2">Console: SampleGUI.exeGUI: VC++, C#/VB.NET</td></tr></table>

# 1.6 Sample Reference Code

# 1.6.1 Include Header File

This code sample shows how to include a header file.

```c
#ifdef __linux__
#include "/usr/local/include/ADLINK/AVS/AVS_SDK.h"
#include "/usr/local/include/ADLINK/AVS/Common/I_common.h"
#elif _WIN32
#include "Include/C++/AVS_SDK.h"
#include "Include/C++/Common/I_common.h"
#endif
```

# 1.6.2 Get Product Handle

This code sample shows how to get the product handle and product Information.

```txt
using namespace std;
/*Show SDK Information*/
char buffer[256];
if (AVS_GetSDKInfo(buffer, sizeof(buffer)) == AVS_FUN_SUCCESS)
cout &lt;&lt; buffer &lt;&lt; endl;
...
/*Show Product Information*/
unsigned int nums = AVS_GetProductNums();
if (nums &lt;= 0)
{
    cout &lt;&lt; "Find no device!" &lt;&lt; endl;
    return 0;
}

void* handle;
unsigned int devIndex = 0;
handle = AVS_GetProductHandle(devIndex);
if (!handle)
{
    cout &lt;&lt; "AVS_GetProductHandle Error\n" &lt;&lt; endl;
    return 0;
}

if (AVS_GetProductInfo(handle, buffer,
    sizeof(buffer)) == AVS_FUN_SUCCESS)
    cout &lt;&lt; buffer &lt;&lt; endl;
...
```

# 2 AVS Parameters Reference

AVS parameters are grouped by enumerations and can be found in the header file “I\_common”.

# 2.1 Product Name

ADLINK vision products supported by AVS SDK are grouped by AVS\_PRODUCT\_TYPE.

&lt;table&gt;<tr><td>String Identifier</td><td>Product Name</td></tr><tr><td>AVS_PRODUCT_UNKNOWN</td><td>Unknown product</td></tr><tr><td>AVS_PRODUCT_PCIEGIE72</td><td>PCIe-GIE72</td></tr><tr><td>AVS_PRODUCT_PCIEGIE74</td><td>PCIe-GIE74</td></tr><tr><td>AVS_PRODUCT_PCIEGIE72PRO</td><td>PCIe-GIE72 PRO</td></tr><tr><td>AVS_PRODUCT_PCIEGIE74PRO</td><td>PCIe-GIE74 PRO</td></tr><tr><td>AVS_PRODUCT_PCIEU304</td><td>PCIe-U304</td></tr><tr><td>AVS_PRODUCT_PCIEU308</td><td>PCIe-U308</td></tr><tr><td>AVS_PRODUCT_PCIEU312</td><td>PCIe-U312</td></tr><tr><td>AVS_PRODUCT_PCIE10GPOE</td><td>PCIe-10GPoE</td></tr></table>

# 2.2 Product Features

AVS parameters are grouped by AVS\_FEATURE\_TYPE.

<table><tr><td>String Identifier</td><td>Product Feature</td></tr><tr><td>AVS_FEATURE_POWERCONTROLLER</td><td>USB3 Power Management</td></tr><tr><td>AVS_FEATURE_POE</td><td>Power over Ethernet (PoE)</td></tr><tr><td>AVS_FEATURE_TOE</td><td>Trigger over Ethernet (ToE)</td></tr><tr><td>AVS_FEATURE_DIO</td><td>Digital Input / Output</td></tr><tr><td>AVS_FEATURE_EXTERNALPOWERSUPPLY</td><td>External power supply detection</td></tr><tr><td>AVS_FEATURE_NUMS</td><td>The number of the product feature</td></tr></table>

# 2.3 Edge Trigger

Edge Trigger parameters are defined by AVS\_ EDGETRIGGER\_TYPE.

<table><tr><td>String Identifier</td><td>Parameter</td></tr><tr><td>AVS_EDGETRIGGER_RISINGEDGE</td><td>Signal rising edge trigger</td></tr><tr><td>AVS_EDGETRIGGER_FALLINGEDGE</td><td>Signal falling edge trigger</td></tr><tr><td>AVS_EDGETRIGGER_CHANGINGEDGE</td><td>Signal changing edge trigger</td></tr><tr><td>AVS_EDGETRIGGER_NUMS</td><td>The number of the edge trigger type</td></tr></table>

# 2.4 PoE

PoE parameters are defined by AVS\_POEPROPERTY\_TYPE.

<table><tr><td>String Identifier</td><td>Parameter</td></tr><tr><td>AVS_POEPROPERTY_POEHWSETTING</td><td>Power sourcing equipment (PSE) hardware setting</td></tr><tr><td>AVS_POEPROPERTY_POEINITIALSTATE</td><td>Power sourcing equipment (PSE) initial power</td></tr><tr><td>AVS_POEPROPERTY_OVERTEMPERATURE</td><td>Check if the device temperature is over the high temperature (degrees C)</td></tr><tr><td>AVS_POEPROPERTY_CURRENTTEMPERATURE</td><td>Get the current temperature</td></tr><tr><td>AVS_POEPROPERTY_CONSUMEPOWER</td><td>The consumer power (Watt)</td></tr><tr><td>AVS_POEPROPERTY_REMAINPOWER</td><td>The left power (Watt)</td></tr><tr><td>AVS_POEPROPERTY_POWERBUDGET</td><td>The total power budget (Watt)</td></tr><tr><td>AVS_POEPROPERTY_NUMS</td><td>The number of the PoE property</td></tr></table>

# 2.5 PoE Power Management

PoE Power Management parameters are defined by AVS\_POEPORTPROPERTY\_TYPE.

<table><tr><td>String Identifier</td><td>Parameter</td></tr><tr><td>AVS_POEPORTPROPERTY_CURRENT</td><td>The current of a port (A)</td></tr><tr><td>AVS_POEPORTPROPERTY_VOLT</td><td>The voltage of a port (V)</td></tr><tr><td>AVS_POEPORTPROPERTY_POECLASS</td><td>The power class of a port</td></tr><tr><td>AVS_POEPORTPROPERTY_POWERGOOD</td><td>Check if the power is good on a port</td></tr><tr><td>AVS_POEPORTPROPERTY_LASTPOWERSTATE</td><td>Retrieve the last power state of a port. If the PoE status of a port is currently off, this function is used to retrieve the port&#x27;s last PoE status, which is used to determine the PoE cut off status.</td></tr><tr><td>AVS_POEPORTPROPERTY_NUMS</td><td>The number of the PoE port properties</td></tr></table>

# 2.6 AVS Error Code

An AVS error code is defined by AVS\_FUN\_RETURNVAL. No error occurs if the API returns a value >= 0, or a negative value.

<table><tr><td>Error Code</td><td>Definition</td><td>Description</td></tr><tr><td>0</td><td>AVS_FUN_SUCCESS</td><td>Execution successful</td></tr><tr><td>-1</td><td>AVS_FUN_FAILED</td><td>Execution failed</td></tr><tr><td>-5</td><td>AVS_FUN_NOTDEFINED</td><td>Unsupported function</td></tr><tr><td>-11</td><td>AVS_FUN_INVALIDPARA</td><td>The parameters are invalid</td></tr><tr><td>-13</td><td>AVS_FUN_NOTINIT</td><td>The object is not initialized</td></tr><tr><td>-100</td><td>AVS_FUN_BUSY</td><td>The system is busy. The device has timed out, or is not currently able to reply.</td></tr></table>

# 3 Function Library

# 3.1 List of Functions

<table><tr><td>Category (Header File)</td><td>Function</td><td>Product</td></tr><tr><td rowspan="8">Common (AVS_SDK.h)</td><td>AVS_GetProductNums()</td><td rowspan="8">All Products</td></tr><tr><td>AVS_GetSDKInfo()</td></tr><tr><td>AVS_GetProductHandle()</td></tr><tr><td>AVS_GetProductInfo()</td></tr><tr><td>AVS_GetProductType()</td></tr><tr><td>AVS_GetProductSN()</td></tr><tr><td>AVS_GetFeatureList()</td></tr><tr><td>AVS_GetCardID()</td></tr><tr><td rowspan="3">USB Port Control (PowerController.h)</td><td>AVS_PowCtrlGetPortNums()</td><td rowspan="3">PCIe-U300 Series</td></tr><tr><td>AVS_PowCtrlSetPortEnable()</td></tr><tr><td>AVS_PowCtrlGetPortEnable()</td></tr><tr><td rowspan="2">External Power Supply (ExPowerSupply.h)</td><td>AVS_ExPowSupGetNums()</td><td rowspan="2">All Products</td></tr><tr><td>AVS_ExPowSupGetState()</td></tr><tr><td rowspan="9">Power over Ethernet (PoE.h)</td><td>AVS_PoEGetPortNums()</td><td rowspan="9">PCIe-GIE Series PCIe-10G Series</td></tr><tr><td>AVS_PoESetPortEnable()</td></tr><tr><td>AVS_PoEGetPortEnable()</td></tr><tr><td>AVS_PoESetPowConsumCalcModel()</td></tr><tr><td>AVS_PoEGetPowConsumCalcModel()</td></tr><tr><td>AVS_PoESetProtectTempRange()</td></tr><tr><td>AVS_PoEGetProtectTempRange()</td></tr><tr><td>AVS_PoEGetProperty()</td></tr><tr><td>AVS_PoEGetPortProperty()</td></tr><tr><td rowspan="17">Trigger over Ethernet (ToE.h)</td><td>AVS_ToEGetPortNums()</td><td rowspan="17">PCIe-GIE7x PRO, PCIe-10G Series</td></tr><tr><td>AVS_ToESendActionCommand()</td></tr><tr><td>AVS_ToESetActionCommand()</td></tr><tr><td>AVS_ToEGetActionCommand()</td></tr><tr><td>AVS_ToESetTriggerSource()</td></tr><tr><td>AVS_ToEGetTriggerSource()</td></tr><tr><td>AVS_ToESetTriggerEnable()</td></tr><tr><td>AVS_ToEGetTriggerEnable()</td></tr><tr><td>AVS_ToESetTriggerActivation()</td></tr><tr><td>AVS_ToEGetTriggerActivation()</td></tr><tr><td>AVS_ToESetOneTriggerAllMode()</td></tr><tr><td>AVS_ToEGetOneTriggerAllMode()</td></tr><tr><td>AVS_ToESetExTriggerDebounce()</td></tr><tr><td>AVS_ToEGetExTriggerDebounce()</td></tr><tr><td>AVS_ToEGetExTriggerDebounceUnit()</td></tr><tr><td>AVS_ToEGetTriggerCount()</td></tr><tr><td>AVS_ToEResetTriggerCount()</td></tr></table>

# 3.2 Function Library

AVS supports the C/C++/C#/VB.NET programming languages. The following are examples of the C/C++ library.

# 3.2.1 Common

These functions are used to get the product handle and retrieve device information.

# 3.2.1.1 AVS\_GetProductNums

<table><tr><td>Function Name</td><td>AVS_GetProductNums</td></tr><tr><td>Purpose</td><td>This function returns the total number of products installed in the system.</td></tr><tr><td>Category</td><td>Common</td></tr><tr><td>Header File</td><td>AVS_SDK.h</td></tr><tr><td>Syntax (C/C++)</td><td>unsigned int AVS_GetProductNums()</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2"></td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">Returns the total number of devices if return value &gt;= 0. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.1.2 AVS\_GetSDKInfo

<table><tr><td>Function Name</td><td>AVS_GetSDKInfo</td></tr><tr><td>Purpose</td><td>This function returns the SDK version information (e.g., driver version, SDK version)</td></tr><tr><td>Category</td><td>Common</td></tr><tr><td>Header File</td><td>AVS_SDK.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_GetSDKInfo(char* data, unsigned int bufsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">data: A string buffer indicating the parameters and information provided. Each parameter and information is split by a break line character &#x27;\n&#x27;. The format is Parameter Name:Parameter Information &#x27;\n&#x27; For example:Driver version:0.2.0.0929SDK version:1.3.6.0121bufsize: Indicates the size of the “data” buffer. The suggested value is 256.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">Returns the total number of devices if return value &gt;= 0. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.1.3 AVS\_GetProductHandle

<table><tr><td>Function Name</td><td>AVS_GetProductHandle</td></tr><tr><td>Purpose</td><td>Initializes the specified device and gets its handle. This should be called before other functions except those with no handle parameter.</td></tr><tr><td>Category</td><td>Common</td></tr><tr><td>Header File</td><td>AVS_SDK.h</td></tr><tr><td>Syntax (C/C++)</td><td>void* AVS_GetProductHandle(unsigned int index)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">index: Indicates the number of devices, beginning at 0 for the number of the first card, with the second card 1, and so on. This value should be less than (total numbers of the cards -1). The total number of the cards is acquired from AVS_GetProductNums.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.1.4 AVS\_GetProductInfo

<table><tr><td>Function Name</td><td>AVS_GetProductInfo</td></tr><tr><td>Purpose</td><td>This function returns all the product information. (e.g., firmware version, product number)</td></tr><tr><td>Category</td><td>Common</td></tr><tr><td>Header File</td><td>AVS_SDK.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_GetProductInfo(void* handle, char* data, unsigned int bufsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.data: A string buffer indicating the parameters and information provided. Each parameter and information is split by a break line character &#x27;\n&#x27;. The format is Parameter Name:Parameter Information &#x27;\n&#x27;For example:Product:PCIe-10GPoECPLDVersion:20210119_1610MCUVersion:2.3PN:91-64216-000ESN:0123456789PCBVersion:1MAC0:00:30:64:35:c4:26MAC1:00:30:64:35:c4:26Bufsize: Indicates the size of the “data” buffer. The suggested value is 256.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.1.5 AVS\_GetProductType

<table><tr><td>Function Name</td><td>AVS_GetProductType</td></tr><tr><td>Purpose</td><td>Get the product type.</td></tr><tr><td>Category</td><td>Common</td></tr><tr><td>Header File</td><td>AVS_SDK.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_GetProductType(void* handle)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">Returns AVS_PRODUCT_TYPE. No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.1.6 AVS\_GetProductSN

<table><tr><td>Function Name</td><td>AVS_GetProductSN</td></tr><tr><td>Purpose</td><td>This function gets the product serial number (SN).</td></tr><tr><td>Category</td><td>Common</td></tr><tr><td>Header File</td><td>AVS_SDK.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_GetProductSN(void* handle, char* data, unsigned int bufsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.data: Pointer of an allocated character buffer into the function copies the string Bufsize: Indicates the size of the “data” buffer. The suggested value is 32.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.1.7 AVS\_GetFeatureList

<table><tr><td>Function Name</td><td>AVS_GetFeatureList</td></tr><tr><td>Purpose</td><td>This function gets the product feature list.</td></tr><tr><td>Category</td><td>Common</td></tr><tr><td>Header File</td><td>AVS_SDK.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_GetFeatureList(void* handle,AVS_FEATURE_TYPE* list, unsigned int listsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.list: Pointer of an allocated buffer into the function copies the string.listsize: Indicates the size of the “list” buffer. The suggested value is AVS_FEATURE_NUMS (AVS_FEATURE_NUMS is defined in I_common.h).</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.1.8 AVS\_GetCardID

<table><tr><td>Function Name</td><td>AVS_GetCardID</td></tr><tr><td>Purpose</td><td>This function gets a numeric card ID that corresponds to the handle.</td></tr><tr><td>Category</td><td>Common</td></tr><tr><td>Header File</td><td>AVS_SDK.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_GetCardID(void* handle, int* id)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.id: Indicates the card ID set by switch SW1, a value from 0 to 15. Card ID and SW1 switch settings correlate as shown. Refer to the table below.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

<table><tr><td rowspan="2">Card ID (id)</td><td colspan="4">Hardware Switch</td></tr><tr><td>4</td><td>3</td><td>2</td><td>1</td></tr><tr><td>0</td><td>off</td><td>off</td><td>off</td><td>off</td></tr><tr><td>1</td><td>off</td><td>off</td><td>off</td><td>on</td></tr><tr><td>2</td><td>off</td><td>off</td><td>on</td><td>off</td></tr><tr><td>3</td><td>off</td><td>off</td><td>on</td><td>on</td></tr><tr><td>4</td><td>off</td><td>on</td><td>off</td><td>off</td></tr><tr><td>5</td><td>off</td><td>on</td><td>off</td><td>on</td></tr><tr><td>6</td><td>off</td><td>on</td><td>on</td><td>off</td></tr><tr><td>7</td><td>off</td><td>on</td><td>on</td><td>on</td></tr><tr><td>8</td><td>on</td><td>off</td><td>off</td><td>off</td></tr><tr><td>9</td><td>on</td><td>off</td><td>off</td><td>on</td></tr><tr><td>10</td><td>on</td><td>off</td><td>on</td><td>off</td></tr><tr><td>11</td><td>on</td><td>off</td><td>on</td><td>on</td></tr><tr><td>12</td><td>on</td><td>on</td><td>off</td><td>off</td></tr><tr><td>13</td><td>on</td><td>on</td><td>off</td><td>on</td></tr><tr><td>14</td><td>on</td><td>on</td><td>on</td><td>off</td></tr><tr><td>15</td><td>on</td><td>on</td><td>on</td><td>on</td></tr></table>

# 3.2.2 USB Port Control

This feature is used to control the power device.

# 3.2.2.1 AVS\_PowCtrlGetPortNums

<table><tr><td>Function Name</td><td>AVS_PowCtrlGetPortNums</td></tr><tr><td>Purpose</td><td>This function gets a number of ports that correspond to the handle.</td></tr><tr><td>Category</td><td>USB Port Control</td></tr><tr><td>Header File</td><td>PowerController.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PowCtrlGetPortNums(void* handle, unsigned int* nums)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.nums: Number of ports.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.2.2 AVS\_PowCtrlSetPortEnable

<table><tr><td>Function Name</td><td>AVS_PowCtrlSetPortEnable</td></tr><tr><td>Purpose</td><td>Controls power auto/off.</td></tr><tr><td>Category</td><td>USB Port Control</td></tr><tr><td>Header File</td><td>PowerController.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PowCtrlSetPortEnable(void* handle, int* list, unsigned int listsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.list: An array to control power auto/off of each port. The index of the array corresponds to the index of port, the element of the array indicates to enable or disable the power.listsize: The array must contain nums elements (nums is acquired from the return value of AVS_PowCtrlGetPortNums).</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.2.3 AVS\_PowCtrlGetPortEnable

<table><tr><td>Function Name</td><td>AVS_PowCtrlGetPortEnable</td></tr><tr><td>Purpose</td><td>Retrieves power auto/off.</td></tr><tr><td>Category</td><td>USB Port Control</td></tr><tr><td>Header File</td><td>PowerController.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PowCtrlGetPortEnable(void* handle, int* list, unsigned int listsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.list: An array for receiving the power status from the ports.listsize: The array must contain nums elements (nums is acquired from the return value of AVS_PowCtrlGetPortNums).</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.3 External Power Supply

These functions are used for the status of the external power supply cables.

# 3.2.3.1 AVS\_ExPowSupGetNums

<table><tr><td>Function Name</td><td>AVS_ExPowSupGetNums</td></tr><tr><td>Purpose</td><td>Get the number of the connected external power cable.</td></tr><tr><td>Category</td><td>External Power Supply</td></tr><tr><td>Header File</td><td>ExPowerSupply.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ExPowSupGetNums(void* handle, unsigned int* nums)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.nums: Number of the connected external power cable.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.3.2 AVS\_ExPowSupGetState

<table><tr><td>Function Name</td><td>AVS_ExPowSupGetState</td></tr><tr><td>Purpose</td><td>Get the detection results of external power supply cables.</td></tr><tr><td>Category</td><td>External Power Supply</td></tr><tr><td>Header File</td><td>ExPowerSupply.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ExPowSupGetState(void* handle, int* statelist, unsigned int listsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.statelist: An array for detecting results of external power cables. “0” indicates power is not supplied, the other values indicate power is supplied.listsize: The array must contain nums elements (nums is acquired from the return value of AVS_ExPowSupGetNums).</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.4 Power over Ethernet

This feature is for SmartPoE, the PoE power management functions.

# 3.2.4.1 AVS\_PoEGetPortNums

<table><tr><td>Function Name</td><td>AVS_PoEGetPortNums</td></tr><tr><td>Purpose</td><td>Retrieve the number of the power over Ethernet.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoEGetPortNums(void* handle, unsigned int* nums)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.nums: Return the number of the power over Ethernet.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.4.2 AVS\_PoESetPortEnable

<table><tr><td>Function Name</td><td>AVS_PoESetPortEnable</td></tr><tr><td>Purpose</td><td>Controls power auto/off.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoESetPortEnable(void* handle, int* list, unsigned int listsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.list: An array for setting the power status of the ports.Assign a list to enable or disable each port.* 0 to disable power or other to enable power.listsize: The array must contain nums elements (nums is acquired from the return value of AVS_PoEGetPortNums).</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.4.3 AVS\_PoEGetPortEnable

<table><tr><td>Function Name</td><td>AVS_PoEGetPortEnable</td></tr><tr><td>Purpose</td><td>Retrieves PoE state.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoEGetPortEnable(void* handle, int* list, unsigned int listsize)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.list: An array for receiving the power status of the ports.listsize: The array must contain nums elements (nums is acquired from the return value of AVS_PoEGetPortNums).</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.4.4 AVS\_PoESetPowConsumCalcModel

<table><tr><td>Function Name</td><td>AVS_PoESetPowConsumCalcModel</td></tr><tr><td>Purpose</td><td>Controls power budget mode.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoESetPowConsumCalcModel(void* handle, int usePowClassBudget)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.usePowClassBudget:0: calculate the Consumed Power Budget by PoE power consumption.1: calculate the Consumed Power Budget by PoE Class.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.4.5 AVS\_PoEGetPowConsumCalcModel

<table><tr><td>Function Name</td><td>AVS_PoEGetPowConsumCalcModel</td></tr><tr><td>Purpose</td><td>Retrieves power budget mode.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoEGetPowConsumCalcModel(void* handle, int* usePowClassBudget)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.usePowClassBudget:0: calculate the Consumed Power Budget by PoE power consumption.1: calculate the Consumed Power Budget by PoE Class.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.4.6 AVS\_PoESetProtectTempRange

<table><tr><td>Function Name</td><td>AVS_PoESetProtectTempRange</td></tr><tr><td>Purpose</td><td>Controls High Temperature (HT) and Recovery Temperature (RT).When HT is reached, automatically shuts down PoE power until the temperature sensor falls below RT.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoESetProtectTempRange(void* handle, int high_temperature, int recovery_temperature)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.high_temperature: High temperature setting, more than or equal to 80°C, not exceeding 130°C, and at least 10°C higher than the Recovery Temperature setting.recovery_temperature: Recovery temperature setting, equal to or exceeding 70°C and at least 10°C lower than the high_temperature setting.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.4.7 AVS\_PoEGetProtectTempRange

<table><tr><td>Function Name</td><td>AVS_PoEGetProtectTempRange</td></tr><tr><td>Purpose</td><td>Retrieves of High Temperature and Recovery Temperature.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoEGetProtectTempRange(void* handle, int high_temperature, int recovery_temperature)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.high_temperature: High Temperature setting.recovery_temperature: Recovery Temperature setting.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.4.8 AVS\_PoEGetProperty

<table><tr><td>Function Name</td><td>AVS_PoEGetProperty</td></tr><tr><td>Purpose</td><td>Retrieves PoE properties.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoEGetProperty(void* handle,AVS_POEPROPERTY_TYPE property, float* value)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.property &amp; value: Refer to the following table.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

<table><tr><td>Property</td><td>Value</td></tr><tr><td>AVS_POEPROPERTY_POEHWSETTING</td><td>0: PoE-PSE HW setting disabled1: PoE-PSE HW setting enabled</td></tr><tr><td>AVS_POEPROPERTY_POINITIALSTATE</td><td>0: PoE-PSE should be turned off when powered on1: PoE-PSE should be turned on when powered on</td></tr><tr><td>AVS_POEPROPERTY_OVERTEMPERATURE</td><td>0: no interrupt1: over temperature interrupt arise</td></tr><tr><td>AVS_POEPROPERTY_CURRENTTEMPERATURE</td><td>Thermal temperature in °C.</td></tr><tr><td>AVS_POEPROPERTY_CONSUMEPOWER</td><td>Consumed power budget in W.</td></tr><tr><td>AVS_POEPROPERTY_REMAINPOWER</td><td>Remaining available power in W.</td></tr><tr><td>AVS_POEPROPERTY_POWERBUDGET</td><td>Total Budget in W.</td></tr><tr><td>AVS_POEPROPERTY_NUMS</td><td></td></tr></table>

# 3.2.4.9 AVS\_PoEGetPortProperty

<table><tr><td>Function Name</td><td>AVS_PoEGetPortProperty</td></tr><tr><td>Purpose</td><td>Retrieves PoE port properties.</td></tr><tr><td>Category</td><td>Power over Ethernet</td></tr><tr><td>Header File</td><td>PoE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_PoEGetPortProperty(void* handle, unsigned int port, AVS_POEPORTPROPERTY_TYPE property, float* value)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.port: Indicates port number from 0 to N-1. (N is the number of port)property &amp; value: Refer to the following table.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

<table><tr><td>String Identifier</td><td>Value</td></tr><tr><td>AVS_POEPORTPROPERTY_CURRENT</td><td>Port PoE power current (unit: A)</td></tr><tr><td>AVS_POEPORTPROPERTY_VOLT</td><td>Port PoE power voltage (unit: V)</td></tr><tr><td>AVS_POEPORTPROPERTY_POECLASS</td><td>Port PoE Class</td></tr><tr><td>AVS_POEPORTPROPERTY_POWERGOOD</td><td>Port Power Good means the power is on and stable.</td></tr><tr><td>AVS_POEPORTPROPERTY_LASTPOWERSTATE</td><td>0: PoE power off1: PoE power on</td></tr></table>

# 3.2.5 Trigger over Ethernet

ToE sends preconfigured ToE action commands to a GigE Vision camera when detecting a rising/falling edge of an external trigger signal. Users can also force the software ToE action commands via AVS SDK. The following shows the basic steps.

<table><tr><td>Procedure</td><td>AVS Function Name</td></tr><tr><td>1. Select Trigger Source</td><td>AVS_ToESetTriggerSource</td></tr><tr><td>2. Configure Action Command</td><td>AVS_ToESetActionCommand</td></tr><tr><td>3. Set Trigger Activation</td><td>AVS_ToESetTriggerActivation</td></tr><tr><td>4. Enable ToE function</td><td>AVS_ToESetTriggerEnable</td></tr><tr><td>5. Manually send ToE</td><td>AVS_ToESendActionCommand</td></tr><tr><td>6. ToE counters</td><td>AVS_ToEGetTriggerCount</td></tr></table>

# 3.2.5.1 AVS\_ToEGetPortNums

<table><tr><td>Function Name</td><td>AVS_ToEGetPortNums</td></tr><tr><td>Purpose</td><td>Retrieves the number of ToE ports.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEGetPortNums(void* handle, unsigned int* nums)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.nums: Number of ToE ports.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.2 AVS\_ToESendActionCommand

<table><tr><td>Function Name</td><td>AVS_ToESendActionCommand</td></tr><tr><td>Purpose</td><td>Sends a software ToE action command over the selected port.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToESendActionCommand(void* handle, unsigned int port)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.port: Indicates port number from 0 to N-1. (N is the number of port)-1 indicates to send ToE action command over all ports.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.3 AVS\_ToESetActionCommand

<table><tr><td>Function Name</td><td>AVS_ToESetActionCommand</td></tr><tr><td>Purpose</td><td>Configures ToE action command for each port.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToESetActionCommand(void* handle, unsigned int port, unsigned long devicekey, unsigned long groupkey, unsigned long groupmask)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.port: Indicates port number from 0 to N-1. (N is the number of port)Devicekey: 32-bit number of your choice, the key must be unique among all cameras in the network segment. The Devicekey on the camera should be the same on the card.Groupkey: A 32-bit number of your choice used to define a group of devices on which an action should be executed. If the action group key on the camera and the action group key in the protocol message are identical, the camera executes the corresponding action. The Groupkey on the camera should be the same on the card.Groupmask: A 32-bit number of your choice used to filter out a sub-group of cameras belonging to a group of cameras. The cameras belonging to a sub-group execute an action at the same time. The Groupmask on the camera should be the same on the card.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.4 AVS\_ToEGetActionCommand

<table><tr><td>Function Name</td><td>AVS_ToEGetActionCommand</td></tr><tr><td>Purpose</td><td>Retrieves ToE action command for each port.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEGetActionCommand(void* handle, unsigned int port, unsigned long* devicekey, unsigned long* groupkey, unsigned long* groupmask)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.port: Indicates port number from 0 to N-1. (N is the number of port)Devicekey: Retrieves Devicekey on the card.Groupkey: Retrieves Groupkey on the card.Groupmask: Retrieves Groupmask on the card.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.5 AVS\_ToESetTriggerSource

<table><tr><td>Function Name</td><td>AVS_ToESetTriggerSource</td></tr><tr><td>Purpose</td><td>Configures ToE function source.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToESetTriggerSource(void* handle, int source)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.source:0: Software trigger source1: External hardware trigger source</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.6 AVS\_ToEGetTriggerSource

<table><tr><td>Function Name</td><td>AVS_ToEGetTriggerSource</td></tr><tr><td>Purpose</td><td>Acquires ToE function source.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEGetTriggerSource(void* handle, int *source)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.source:0: Software trigger source1: External hardware trigger source</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.7 AVS\_ToESetTriggerEnable

<table><tr><td>Function Name</td><td>AVS_ToESetTriggerEnable</td></tr><tr><td>Purpose</td><td>Enable ToE function.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToESetTriggerEnable(void* handle, int enable)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.enable:0: Disable ToE function1: Enable ToE function</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.8 AVS\_ToEGetTriggerEnable

<table><tr><td>Function Name</td><td>AVS_ToEGetTriggerEnable</td></tr><tr><td>Purpose</td><td>Retrieves ToE function.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEGetTriggerEnable(void* handle, int *enable)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.enable:0: Disable ToE function1: Enable ToE function</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.9 AVS\_ToESetTriggerActivation

<table><tr><td>Function Name</td><td>AVS_ToESetTriggerActivation</td></tr><tr><td>Purpose</td><td>Retrieves ToE function status.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToESetTriggerActivation(void* handle,AVS_EDGETRIGGER_TYPE edgetrigger)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.edgetrigger: Set the edge trigger mode AVS_EDGETRIGGER_TYPE. Refer to following table.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

<table><tr><td>String Identifier</td><td>Parameter</td></tr><tr><td>AVS_EDGETRIGGER_RISINGEDGE</td><td>Signal rising edge trigger</td></tr><tr><td>AVS_EDGETRIGGER_FALLINGEDGE</td><td>Signal falling edge trigger</td></tr><tr><td>AVS_EDGETRIGGER_CHANGINGEDGE</td><td>Signal changing edge trigger</td></tr></table>

# 3.2.5.10 AVS\_ToEGetTriggerActivation

<table><tr><td>Function Name</td><td>AVS_ToEGetTriggerActivation</td></tr><tr><td>Purpose</td><td>Acquires ToE trigger activation mode of ToE, specifying that the source trigger is considered valid on the rising or falling edge.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEGetTriggerActivation (void* handle, AVS_EDGETRIGGER_TYPE* edgetrigger)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle. edgetrigger: Refer to following table.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

<table><tr><td>String Identifier</td><td>Parameter</td></tr><tr><td>AVS_EDGETRIGGER_RISINGEDGE</td><td>Signal rising edge trigger</td></tr><tr><td>AVS_EDGETRIGGER_FALLINGEDGE</td><td>Signal falling edge trigger</td></tr><tr><td>AVS_EDGETRIGGER_CHANGINGEDGE</td><td>Signal changing edge trigger</td></tr></table>

# 3.2.5.11 AVS\_ToESetOneTriggerAllMode

<table><tr><td>Function Name</td><td>AVS_ToESetOneTriggerAllMode</td></tr><tr><td>Purpose</td><td>Sets ToE trigger mode, where 4 to 4 mode indicates that each pin of the DI performs corresponding port action command to active, and 1 to 4 mode indicates that DI_0 performs all port action commands to active.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToESetOneTriggerAllMode(void* handle, int *enable)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.enable:0: N to N mode (N is the number of port)1: 1 to N mode (N is the number of port)</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.12 AVS\_ToEGetOneTriggerAllMode

<table><tr><td>Function Name</td><td>AVS_ToEGetOneTriggerAllMode</td></tr><tr><td>Purpose</td><td>Acquires ToE trigger mode, where 4 to 4 mode indicates that each pin of the DI performs corresponding port action command to active, and 1 to 4 mode indicates that DI_0 performs all port action commands to active.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToESetOneTriggerAllMode(void* handle, int *enable)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.enable:0: N to N mode (N is the number of port)1: 1 to N mode (N is the number of port)</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.13 AVS\_ToESetExTriggerDebounce

<table><tr><td>Function Name</td><td>AVS_ToESetExTriggerDebounce</td></tr><tr><td>Purpose</td><td>Sets trigger de-bounce time for filtering the external trigger.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToESetExTriggerDebounce(void* handle, unsigned long debounce)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle. debounce: Set the debounce time, input range: 0x0 - 0xFFFFFFF.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.14 AVS\_ToEGetExTriggerDebounce

<table><tr><td>Function Name</td><td>AVS_ToEGetExTriggerDebounce</td></tr><tr><td>Purpose</td><td>Acquires trigger de-bounce time for filtering the external trigger.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEGetExTriggerDebounce(void* handle, unsigned long* debounce)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle. debounce: The debounce time, range: 0x0 - 0xFFFFF.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.15 AVS\_ToEGetExTriggerDebounceUnit

<table><tr><td>Function Name</td><td>AVS_ToEGetExTriggerDebounceUnit</td></tr><tr><td>Purpose</td><td>Acquires trigger de-bounce unit in nano second.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEGetExTriggerDebounceUnit(void* handle, unsigned long* nanosec)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle. nanosec: Time in nano second.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.16 AVS\_ToEGetTriggerCount

<table><tr><td>Function Name</td><td>AVS_ToEGetTriggerCount</td></tr><tr><td>Purpose</td><td>Acquires trigger count, directing 16-bit counter to count triggers originating from hardware or software and ToE commands sent from the card.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEGetTriggerCount(void* handle, unsigned int port, unsigned int* triggerincount, unsigned int* triggeroutcount)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.port: Indicates port number from 0 to N-1. (N is the number of port)triggerincount: Number of triggers from hardware trigger or software trigger (Valid value: 0 to 65535)triggeroutcount: Number of action commands from the card (Valid value: 0 to 65535)</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2 AVS Parameters Reference for more information about return codes.</td></tr></table>

# 3.2.5.17 AVS\_ToEResetTriggerCount

<table><tr><td>Function Name</td><td>AVS_ToEResetTriggerCount</td></tr><tr><td>Purpose</td><td>Resets trigger count, with trigger counters reset to 0.</td></tr><tr><td>Category</td><td>Trigger over Ethernet</td></tr><tr><td>Header File</td><td>ToE.h</td></tr><tr><td>Syntax (C/C++)</td><td>int AVS_ToEResetTriggerCount (void* handle)</td></tr><tr><td colspan="2">Parameter(s)</td></tr><tr><td colspan="2">handle: Acquired from the return value of AVS_GetProductHandle.</td></tr><tr><td colspan="2">Return Code</td></tr><tr><td colspan="2">No error occurs if the return value &gt;= 0, or a negative value. See Chapter 2AVS Parameters Reference for more information about return codes.</td></tr></table>

This page intentionally left blank.

# Important Safety Instructions

For user safety, please read and follow all instructions, Warnings, Cautions, and Notes marked in this manual and on the associated device before handling/operating the device, to avoid injury or damage.

S'il vous plaît prêter attention stricte à tous les avertissements et mises en garde figurant sur l'appareil , pour éviter des blessures ou des dommages.

X Read these safety instructions carefully
X Keep the User’s Manual for future reference
X Read the Specifications section of this manual for detailed information on the recommended operating environment
X The device can be operated at an ambient temperature of 50ºC
X When installing/mounting or uninstalling/removing device; or when removal of a chassis cover is required for user servicing:
Z Turn off power and unplug any power cords/cables
Z Reinstall all chassis covers before restoring power

X To avoid electrical shock and/or damage to device:

Z Keep device away from water or liquid sources
Z Keep device away from high heat or humidity
Z Keep device properly ventilated (do not block or cover ventilation openings)
Z Always use recommended voltage and power source settings
Z Always install and operate device near an easily accessible electrical outlet
Z Secure the power cord (do not place any object on/over the power cord)
Z Only install/attach and operate device on stable surfaces and/or recommended mountings

X If the device will not be used for long periods of time, turn off and unplug from its power source

X Never attempt to repair the device, which should only be serviced by qualified technical personnel using suitable tools

X A Lithium-type battery may be provided for uninterrupted backup or emergency power.

![The image displays a standard warning sign featuring a yellow triangle with a black border. Inside the triangle is a large black exclamation point. Below the triangle, the word 'CAUTION:' is printed in black capital letters on a white background.](.avs-flr-50m-00060-1000-10/bd062e753f34fb5a29681bf2d0ae56c43e5dd87467d7f4c521fa027f4a02b902.jpg)

Risk of explosion if battery is replaced with one of an incorrect type; please dispose of used batteries appropriately.

Risque d’explosion si la pile est remplacée par une autre de type incorrect. Veuillez jeter les piles usagées de façon appropriée.

X The device must be serviced by authorized technicians when:

Z The power cord or plug is damaged
Z Liquid has entered the device interior
Z The device has been exposed to high humidity and/or moisture
Z The device is not functioning or does not function according to the User’s Manual
Z The device has been dropped and/or damaged and/or shows obvious signs of breakage

Disconnect the power supply cord before loosening the thumbscrews and always fasten the thumbscrews with a screwdriver before starting the system up

X It is recommended that the device be installed only in a server room or computer room where access is:

Z Restricted to qualified service personnel or users familiar with restrictions applied to the location, reasons therefor, and any precautions required
Z Only afforded by the use of a tool or lock and key, or other means of security, and controlled by the authority responsible for the location

X If PoE (Power over Ethernet) is enabled for the device, the system can ONLY be deployed indoors. Unless otherwise noted, the PoE system is NOT designed to withstand the rigors of outdoor use.

![Yellow triangular warning sign with black smoke symbol indicating hot weather](.avs-flr-50m-00060-1000-10/fddd86e719be2c339115a7624a78b7f531f1b0661ce63cc2f7dadbe586138d72.jpg)

# BURN HAZARD

Touching this surface could result in bodily injury. To reduce risk, allow the surface to cool before touching.

# RISQUE DE BRÛLURES

Ne touchez pas cette surface, cela pourrait entraîner des blessures.

Pour éviter tout danger, laissez la surface refroidir avant de la toucher.

This page intentionally left blank.

# Getting Service

Ask an Expert: http://askanexpert.adlinktech.com

# ADLINK Technology, Inc.

No. 66, Huaya 1st Rd., Guishan District

Taoyuan City 333411, Taiwan

Tel: +886-3-216-5088

Fax: +886-3-328-5706

Email: service@adlinktech.com

# Ampro ADLINK Technology, Inc.

6450 Via Del Oro

San Jose, CA 95119-1208, USA

Tel: +1-408-360-0200

Toll Free: +1-800-966-5200 (USA only)

Fax: +1-408-600-1189

Email: info@adlinktech.com

# ADLINK Technology (China) Co., Ltd.

300 Fang Chun Rd., Zhangjiang Hi-Tech Park

Pudong New Area, Shanghai, 201203 China

Tel: +86-21-5132-8988

Fax: +86-21-5132-3588

Email: market@adlinktech.com

# ADLINK Technology GmbH

Hans-Thoma-Straße 11

D-68163 Mannheim, Germany

Tel: +49-621-43214-0

Fax: +49-621 43214-30

Email: emea@adlinktech.com

Please visit the Contact page at www.adlinktech.com for information on how to contact the ADLINK regional office nearest you:
[🔗 Link to the original document](.avs-flr-50m-00060-1000-10/avs-flr-50m-00060-1000-10.pdf)
