安装
基本上按照安装包里面的INSTALL
文件的说明安装就行,他说你缺啥你就补充啥,基本上就可以了,按照文件描述的的流程一步步执行就基本ok,我安装的文件包名为egrabber-linux-x86_64-22.1.0.1
。
然后我的一点基本的安装流程如下:
Memento
在官方文件里面有基本描述安装方法,可装可不装。
sudo apt install libsdl1.2debian libtinfo5
sudo apt install apt-file
sudo apt update
sudo ./install.sh -m path/to/coaxlink.ko
. /opt/euresys/egrabber/shell/setup_gentl_paths.sh
export GENICAM_GENTL64_PATH=/opt/euresys/egrabber/lib/x86_64[:...]
export EURESYS_COAXLINK_GENTL64_CTI=/opt/euresys/egrabber/lib/x86_64/coaxlink.cti
export EURESYS_EGRABBER_LIB64=/opt/euresys/egrabber/lib/x86_64
export EURESYS_DEFAULT_GENTL_PRODUCER=coaxlink
最后,重启或者注销。
第一个程序:读取基本的采集卡和相机信息
EGenTLTest.cpp
#include <iostream>
#include <EGenTL.h>
// 1
void listCards()
{
Euresys::EGenTL gentl;
GenTL::TL_HANDLE tl = gentl.tlOpen();
uint32_t numCards = gentl.tlGetNumInterfaces(tl);
for (uint32_t n = 0; n < numCards; ++n)
{
std::string id = gentl.tlGetInterfaceID(tl, n);
std::cout << "[" << n << "] " << id << std::endl;
}
}
int main()
{
try
{
listCards();
}
catch (const std::exception &e)
{
std::cout << "error: " << e.what() << std::endl;
}
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -mavx2")
#
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/out/bin)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/out/lib)
project(EuresysTest VERSION 0.0.1
LANGUAGES CXX)
set(INC_DIRS "")
set(LINK_DIRS "")
list(APPEND INC_DIRS "/opt/euresys/egrabber/include")
list(APPEND LINK_DIRS "/opt/euresys/egrabber/lib/x86_64")
include_directories(${INC_DIRS})
link_directories(${LINK_DIRS})
add_executable(EGenTLTest
EGenTLTest.cpp)
target_link_libraries(EGenTLTest ${CMAKE_DL_LIBS})
编译之后直接跑

成功跑出了我的采集卡信息,说明我的驱动安装,以及代码编写都基本通过。
网友评论