1,SDK下载
SDK下载地址:
如下图:
此处下载两个 设备网络SDK_Linux64 V6.1.9.48_build20230410 与 设备网络SDK_ArmLinux64 V6.1.9.45_build20
设备网络SDK_ArmLinux64 V6.1.9.45 使用其中库(它没有提供示例demo)
设备网络SDK_Linux64 V6.1.9.48_build20230410 使用其中demo (不使用它的库,版本不对)
2,SDK编译
1,使用unzip 解压 SDK_Linux64 V6.1.9.48 取出其中的 consoleDemo 与 psdatacall_demo;
2,使用unzip 解压 HCNetSDKV6.1.9.45_build20220902_ArmLinux64_ZH_20240802154010.zip
3,将 HCNetSDKV6.1.9.45_build20220902_ArmLinux64_ZH_20240802154010 中库 全部拷贝到 consoleDemo/linux64/lib 同理拷贝到psdatacall_demo相应目录; 也可以将库都拷贝到/usr/lib 下;
consoleDemo编译过程
cd /home/nvidia/temp/consoleDemo/linux64/proj
修改Makefile:
root@ubuntu:/home/nvidia/temp/consoleDemo/linux64/proj# cat Makefile
#SDK测试程序
CXX = g++
CXXFLAGS = -Wall -Wno-strict-aliasing -Wno-unused-variable
#包含头文件路径
SUBDIR = $(shell ls ../../src -R | grep /)
SUBDIRS = $(subst :,/,$(SUBDIR))
INCPATHS = $(subst ../../,-I../../,$(SUBDIRS))
INCPATHS += -I../../include/
VPATH = $(subst : ,:,$(SUBDIR))./
SOURCE = $(foreach dir,$(SUBDIRS),$(wildcard $(dir)*.cpp))
#将cpp的路径名称的.cpp后缀换为.o
OBJS = $(patsubst %.cpp,%.o,$(SOURCE))
#取出.o的文件名,不带路径
OBJFILE = $(foreach dir,$(OBJS),$(notdir $(dir)))
#.o输出到.OBJ目录下
OBJSPATH = $(addprefix obj/,$(OBJFILE))
LIBPATH = ../lib/
LIBS = -Wl,-rpath=./:./HCNetSDKCom:../lib -lhcnetsdk
#EXE = ../lib/sdkTest
EXE = ./sdkTest
$(EXE):$(OBJFILE)
$(CXX) -L$(LIBPATH) -o $(EXE) $(OBJFILE) $(INCPATHS) $(LIBS)
$(OBJFILE):%.o:%.cpp
$(CXX) -c -o $@ $< $(INCPATHS) -pipe -g -Wall
#依赖文件
DPPS = $(patsubst %.cpp,%.dpp,$(SOURCE))
include $(DPPS)
%.dpp: %.cpp
g++ $(INCPATHS) -MM $(CPPFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
.PHONY:clean
clean:
rm -rf $(OBJFILE)
rm -rf $(DPPS)
rm -rf $(EXE)
root@ubuntu:/home/nvidia/temp/consoleDemo/linux64/proj#
修改所有的cpp 文件,将地址和用户名密码修改为设备自身的:
例如
编译:
输入make,如果没改Makefile 在lib 目录下
生成如下
运行
显示如下:
采集视频Demo:psdatacall_demo
问题:直接编译,可能缺少库,可以通过export 或者拷贝到/usr/lib 下解决
运行前修改Device.ini 内容为当前摄像头信息
运行过程:
结果视频:
播放ps.dat 成功表示采集成功。