AVT相机arm版本SDK

This commit is contained in:
zhangpeng
2025-04-30 09:26:04 +08:00
parent 837c870f18
commit 78a1c63a95
705 changed files with 148770 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,100 @@
<?xml version="1.0" standalone="no" ?>
<Settings>
<!--
Use this to activate logging and set filename for logging (path can be absolute or relative to TL)
Default behavior if omitted: Logging is deactivated
-->
<!-- <LogFileName>VimbaCSITL.log</LogFileName> -->
<!--
CSI logging: Use this to activate logging and set filename(path can be absolute or relative to TL)
Default behavior if omitted: Logging is deactivated
-->
<!-- <MediaLogFileName>VimbaCSI.log</MediaLogFileName> -->
<!--
Append messages to log file or reset log file at each transport layer restart (if logging is enabled)
True: Always append log messages
False: Reset log file at each transport layer restart
Default behavior if omitted: Reset log file at each transport layer restart
-->
<!-- <AppendLog>True</AppendLog> -->
<!--
Activate less pedantic function parameter checks (needed for some TL consumers)
True: Tolerant function parameter checks
False: Pedantic function parameter checks
Default behavior if omitted: Pedantic function parameter checks (GenTL compliant behavior)
-->
<TolerateTypeNullptr>True</TolerateTypeNullptr>
<!--
Emulate unsupported device access modes (needed for some TL consumers)
True: Emulation on
False: Emulation off
Default behavior if omitted: Emulation off (GenTL compliant behavior)
-->
<EmulateAccessModes>True</EmulateAccessModes>
<!--
Enable the repeated device enumeration.
True: Activate repeated device enumeration every <EnumerationInterval>
False: Deactivate repeated device enumeration. Devices are enumerated only once.
Default behavior if omitted: False
-->
<!-- <EnableEnumeration>False</EnableEnumeration> -->
<!--
Interval for each device enumeration loop (in milliseconds)
Decimal and hexadecimal numbers (prefixed with "0x") can be used
Default behavior if omitted: Use 10000ms
-->
<!-- <EnumerationInterval>10000</EnumerationInterval> -->
<!--
Number of frames to use for intermediate frame buffering. Values
greater than 0 mean that no zero copy is possible anymore.
Decimal and hexadecimal numbers (prefixed with "0x") can be used
Default behavior if omitted: 0 (No intermediated frame buffering)
-->
<!-- <DriverBuffersCount>3</DriverBuffersCount> -->
<!-- Enter manual settings for each camera port -->
<Ports>
<!-- ID specifies the port identifier of this specific port -->
<Port ID="Port:0x01_Bus:0x04_Address:0x3C">
<!--
CSI lane count used during streaming of a device on this port.
Supported values: 1, 2, 3, 4
Decimal and hexadecimal numbers (prefixed with "0x") can be used
Default behavior if omitted: Maximum supported lane count will be used
-->
<!--<CSILaneCount>4</CSILaneCount>-->
<!--
CSI clock frequency (in Hz) used during streaming of a device on this port.
The clock frequency actually used may be less if the desired value is
not supported exactly.
Decimal and hexadecimal numbers (prefixed with "0x") can be used
Default behavior if omitted: Maximum supported clock frequency will be used
-->
<!--<CSIClockFrequency>395000000</CSIClockFrequency>-->
</Port>
</Ports>
<!--
Set the folder in which remote device XML files will be cached
Default behavior if omitted: XML files will be cached
-->
<XMLCacheFolder>XMLCache</XMLCacheFolder>
</Settings>

View File

@@ -0,0 +1,72 @@
===========================================================================
Vimba CSI Transport Layer - Release Notes
Version: 1.0.1
Date: January 2022
===========================================================================
--------------------------------
Components and Version Reference
--------------------------------
Vimba GenIcam Transport Layer modules
-------------------------------------
CSI-2 Transport Layer (VimbaCSITL.cti) 1.0.1*
-----------------------------
Supported hardware and driver
-----------------------------
NVIDIA Jetson AGX Xavier and Xavier NX with JetPack 4.5.1 (L4T 32.5.1)
and driver for Allied Vision Alvium cameras:
https://github.com/alliedvision/linux_nvidia_jetson
Supported CSI-2 camera models and more information:
https://alliedvision.com/fileadmin/content/documents/products/software/software/embedded/Getting_started_with_GenICam_for_CSI.pdf
------------
Installation
------------
Before installing Vimba, please install JetPack 4.5.1 (L4T 32.5.1) and the
driver for Allied Vision Alvium cameras:
https://github.com/alliedvision/linux_nvidia_jetson
The Vimba CSI Transport Layer is part of the Vimba SDK. For more information,
see the Vimba Manual.
-------------------------------------------------------
Correlations with other Allied Vision Software Packages
-------------------------------------------------------
Please refer to the Vimba SDK Release Notes.
-------------------------------------------------------
Known issues
-------------------------------------------------------
- Please use “alloc and announce” for best performance, see the AsynchrounousGrab example.
(C++: Program.Config.h, optional parameter /x, C: Program.c, optional parameter /x, Python:
optional parameter /x).
- Switching the camera from GenICam for CSI-2 to V4L2 or vice versa requires rebooting the board
- Exposure times greater than approx. 1 second: Stopping acquisition may cause an error. Please
close and open the camera to start streaming again.
- Executing the Device Reset GenICam command leads to camera communication failures.
- Not all ROIs work when Mono8 is applied.
- When a ROI or a different pixel format is applied and the camera is closed and opened again, image
acquisition doesnt start in some cases. To enable image acquisition again, open the camera with
Vimba Viewer (even if you set the ROI with a third-party viewer). In some cases, rebooting
the board is necessary.
- Issues that may occur occasionally:
- AGX Xavier: Camera stays in locked state after camera handle is closed
Changes in Vimba 6.0.0:
-----------------------
Vimba CSITL new release
----------------------------------------
Allied Vision Technical Support
----------------------------------------
Contact us:
https://www.alliedvision.com/contact

117
Vimba_6_0/VimbaCSITL/Install.sh Executable file
View File

@@ -0,0 +1,117 @@
#!/bin/bash
#==============================================================================
# Copyright (C) 2013 - 2021 Allied Vision Technologies. All Rights Reserved.
#
# Redistribution of this file, in original or modified form, without
# prior written consent of Allied Vision Technologies is prohibited.
#
#------------------------------------------------------------------------------
#
# File: Install.sh
#
# Description: Setup script for creating a startup script that exports the
# GENICAM_GENTL32_PATH and GENICAM_GENTL64_PATH variable
#
#------------------------------------------------------------------------------
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE,
# NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#==============================================================================
CWD=$(dirname $(readlink -f $0))
UNAME=$(uname -m)
if [ ${UNAME} = i386 ]
then
ARCH=x86
WORDSIZE=32
elif [ ${UNAME} = i486 ]
then
ARCH=x86
WORDSIZE=32
elif [ ${UNAME} = i586 ]
then
ARCH=x86
WORDSIZE=32
elif [ ${UNAME} = i686 ]
then
ARCH=x86
WORDSIZE=32
elif [ ${UNAME} = x86_64 ]
then
ARCH=x86
WORDSIZE=both
elif [ ${UNAME} = amd64 ]
then
ARCH=x86
WORDSIZE=both
elif [ ${UNAME} = armv6l ]
then
ARCH=arm
WORDSIZE=32
elif [ ${UNAME} = armv7l ]
then
ARCH=arm
WORDSIZE=32
elif [ ${UNAME} = aarch64 ]
then
ARCH=arm
WORDSIZE=$(getconf LONG_BIT)
else
echo "Error: Incompatible system architecture found." 1>&2
exit 1
fi
# Make sure our script is only being run with root privileges
if [ "$(id -u)" != "0" ];
then
echo "Error: This script must be run with root privileges." 1>&2
exit 1
fi
TL_NAME=VimbaCSITL
PROFILE_FOLDER=/etc/profile.d
if [ ${WORDSIZE} = 32 ] || [ ${WORDSIZE} = both ]
then
TL_PATH_32BIT=$CWD/CTI/${ARCH}_32bit
if [ -d "$TL_PATH_32BIT" ]; then
TL_SCRIPT_32BIT=${PROFILE_FOLDER}/${TL_NAME}_32bit.sh
echo "Registering GENICAM_GENTL32_PATH"
printf "#!/bin/sh\n\n#Do not edit this file manually because it may be overwritten automatically.\nexport GENICAM_GENTL32_PATH=\$GENICAM_GENTL32_PATH:\"%s\"" $TL_PATH_32BIT > $TL_SCRIPT_32BIT
chmod +x $TL_SCRIPT_32BIT
fi
fi
if [ ${WORDSIZE} = 64 ] || [ ${WORDSIZE} = both ]
then
TL_PATH_64BIT=$CWD/CTI/${ARCH}_64bit
if [ -d "$TL_PATH_64BIT" ]; then
TL_SCRIPT_64BIT=${PROFILE_FOLDER}/${TL_NAME}_64bit.sh
echo "Registering GENICAM_GENTL64_PATH"
printf "#!/bin/sh\n\n#Do not edit this file manually because it may be overwritten automatically.\nexport GENICAM_GENTL64_PATH=\$GENICAM_GENTL64_PATH:\"%s\"" $TL_PATH_64BIT > $TL_SCRIPT_64BIT
chmod +x $TL_SCRIPT_64BIT
fi
fi
LIMITS_DIR=/etc/security/limits.d
VIMBA_GROUP=vimba
mkdir -p "${LIMITS_DIR}"
echo -e "@${VIMBA_GROUP}\t-\trtprio\t99" >"${LIMITS_DIR}/${VIMBA_GROUP}.conf"
groupadd vimba 2>/dev/null
USERNAME="$(getent passwd 1000 | cut -d: -f1)"
echo "Done"
echo -e '\033[31mIMPORTANT:\033[0m For best performance, add all users who will use the CSI transport layer to group '"'"'vimba'"'"
echo " for example: sudo usermod -a -G vimba ${USERNAME:-${USER}}"
echo "Please log off once before using the CSI transport layer"

View File

@@ -0,0 +1,69 @@
#!/bin/sh
#==============================================================================
# Copyright (C) 2017 Allied Vision Technologies. All Rights Reserved.
#
# Redistribution of this file, in original or modified form, without
# prior written consent of Allied Vision Technologies is prohibited.
#
#------------------------------------------------------------------------------
#
# File: SetGenTLPath.sh
#
# Description: This script sets the GENICAM_GENTL32_PATH and
# GENICAM_GENTL64_PATH environment variable for the current shell
# only.
# This can become necessary when running a Vimba application under
# a not logged-in user like a service.
#
# Note: This script needs to be executed sourced. That is, using the
# same shell the application will be launched in. This is done
# by calling the script with the built-in shell command source
# or . (period), e.g. . SetGenTLPath.sh
#
#------------------------------------------------------------------------------
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE,
# NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#==============================================================================
CWD=$(dirname $(readlink -f $_))
UNAME=$(uname -m)
if [ ${UNAME} = aarch64 ]
then
ARCH=arm
elif [ ${UNAME} = amd64 ] || [ ${UNAME} = x86_64 ]
then
ARCH=x86
else
echo "
Error: Incompatible system architecture found." 1>&2
exit 1
fi
if [ "$_" = "$0" ]
then
echo "
Please asure to run this script using the 'source' shell command.
This is done through: '. SetGenTLPath.sh'
Please note the whitespace.
Further help can be found by typing 'help source' or 'help .' in your shell.
"
exit 1
fi
TL_PATH_64BIT=$CWD/CTI/${ARCH}_64bit
echo "
Setting the GENICAM_GENTL64_PATH to $TL_PATH_64BIT for this shell only."
export GENICAM_GENTL64_PATH=:$TL_PATH_64BIT
echo " Done
"

112
Vimba_6_0/VimbaCSITL/Uninstall.sh Executable file
View File

@@ -0,0 +1,112 @@
#!/bin/sh
#==============================================================================
# Copyright (C) 2013 - 2020 Allied Vision Technologies. All Rights Reserved.
#
# Redistribution of this file, in original or modified form, without
# prior written consent of Allied Vision Technologies is prohibited.
#
#------------------------------------------------------------------------------
#
# File: Uninstall.sh
#
# Description: Setup script for deleting a startup script that exports the
# GENICAM_GENTL32_PATH and GENICAM_GENTL64_PATH variable
#
#------------------------------------------------------------------------------
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE,
# NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#==============================================================================
CWD=$(dirname $(readlink -f $0))
UNAME=$(uname -m)
if [ ${UNAME} = i386 ]
then
ARCH=x86
WORDSIZE=32
elif [ ${UNAME} = i486 ]
then
ARCH=x86
WORDSIZE=32
elif [ ${UNAME} = i586 ]
then
ARCH=x86
WORDSIZE=32
elif [ ${UNAME} = i686 ]
then
ARCH=x86
WORDSIZE=32
elif [ ${UNAME} = x86_64 ]
then
ARCH=x86
WORDSIZE=both
elif [ ${UNAME} = amd64 ]
then
ARCH=x86
WORDSIZE=both
elif [ ${UNAME} = armv6l ]
then
ARCH=arm
WORDSIZE=32
elif [ ${UNAME} = armv7l ]
then
ARCH=arm
WORDSIZE=32
elif [ ${UNAME} = aarch64 ]
then
ARCH=arm
WORDSIZE=$(getconf LONG_BIT)
else
echo "Error: Incompatible system architecture found." 1>&2
exit 1
fi
# Make sure our script is only being run with root privileges
if [ "$(id -u)" != "0" ];
then
echo "Error: This script must be run with root privileges." 1>&2
exit 1
fi
TL_NAME=VimbaCSITL
PROFILE_FOLDER=/etc/profile.d
if [ ${WORDSIZE} = 32 ] || [ ${WORDSIZE} = both ]
then
TL_PATH_32BIT=$CWD/CTI/${ARCH}_32bit
if [ -d "$TL_PATH_32BIT" ]; then
TL_SCRIPT_32BIT=${PROFILE_FOLDER}/${TL_NAME}_32bit.sh
if [ -f "$TL_SCRIPT_32BIT" ]; then
echo "Unregistering GENICAM_GENTL32_PATH"
rm $TL_SCRIPT_32BIT
else
echo "Could not unregister $TL_NAME 32bit because it was not registered"
fi
fi
fi
if [ ${WORDSIZE} = 64 ] || [ ${WORDSIZE} = both ]
then
TL_PATH_64BIT=$CWD/CTI/${ARCH}_64bit
if [ -d "$TL_PATH_64BIT" ]; then
TL_SCRIPT_64BIT=${PROFILE_FOLDER}/${TL_NAME}_64bit.sh
if [ -f "$TL_SCRIPT_64BIT" ]; then
echo "Unregistering GENICAM_GENTL64_PATH"
rm $TL_SCRIPT_64BIT
else
echo "Could not unregister $TL_NAME 64bit because it was not registered"
fi
fi
fi
echo "Done"