Linux系统(Ubuntu)
在 Linux 上,需要的依赖可以通过以下方式安装
sudo apt install -y libudev-dev libusb-1.0-0-dev libhidapi-libusb0
sudo apt install -y libjpeg-dev zlib1g-dev libopenjp2-7 libtiff5
给普通用户配置可访问USB设备权限
sudo tee /etc/udev/rules.d/10-streamdeck.rules<< EOF
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users", TAG+="uaccess"
EOF
sudo udevadm control --reload-rules
并且在编译时需要加上 -ljpeg -lpthread -lusb-1.0 -std=c++11 -lpng
以及链接动态库
运行前还需要将动态库配置进环境变量
zlib库和libpng库下载
zlib库和libpng库的下载地址
zlib库下载的版本为:zlib-1.2.11
libpng库下载的版本为:libpng-1.6.37
解压下载压缩包并进入目录(zlib库和libpng库的相关配置不一定要按下面的来可自行搜索配置方法)
tar -xf zlib-1.2.11.tar.gz && cd zlib-1.2.11
运行 sudo ./configure 生成makefile 文件
sudo ./configure
运行 make
sudo make
最后
sudo make install
libpng库也一样进行如上操作
libjpeg库下载
下载地址下载jpegsrc.v9b.tar.gz
然后拷贝到虚拟机上
解压
tar -xzf jpegsrc.v9b.tar.gz
解压成功之后会生成 jpeg-9b 文件夹,也就是 libjpeg 源码文件夹,然后配置一下环境变量
使用
使用动态库时需要先定义一个DeviceManager
类对象(设备管理器类),再调用其中的 enumerate()
函数来遍历设备获得设备对象列表。
DeviceManager *manager = new DeviceManager();
auto streamDocks = manager->enumerate();
获取到设备对象列表以后,使设备时需要先调用open()
方法打开设备,再调用其它方法操作设备
auto it = StreamDocks->begin();
StreamDock *s = *it;
s->open();
// 设置亮度
s->setBrightness(100);