固件升级

介绍

Zivid为其相机提供持续的更新。更新包括了在主机上运行的部分和相机本身。 Zivid SDK会定期更新,以改进主机上的图像处理。 SDK里还包括了最新的相机固件。相机固件的更新频率低于主机软件的频率。这些更新将提高稳定性、鲁棒性和采集速度。

本教程将介绍如何在Zivid相机上执行固件更新。

每个SDK版本都与相机固件相匹配,SDK将确保相机运行与之兼容的固件。

Zivid Studio

当Zivid Studio连接到相机时,它会检查相机是否有匹配的固件。如果固件不匹配,它将进行自动更新。

更多信息

命令行界面

可以通过命令行界面工具 ZividFirmwareUpdater 手动更新相机上的固件。执行后,该工具将:

  1. 获取连接到计算机的相机的列表。

  2. 连接到列表中的一台相机。

  3. 查询相机当前固件版本。

  4. 如果不匹配则进行更新。

  5. 对列表中的其他相机执行步骤2-4。


运行 ZividFirmwareUpdater

按下键盘上的Win+R键启动命令提示符,键入 cmd 后点击 Enter

../../_images/run-cmd-windows.png

导航到您安装Zivid软件的文件夹:

cd C:/Program Files/Zivid/bin

运行 ZividFirmwareUpdater

ZividFirmwareUpdater.exe

ZividFirmwareUpdater 是适用于Ubuntu系统的 Zivid-Tools 软件包的一部分。当您安装Zivid SDK和Studio时,它可能并未一同安装。按照以下步骤安装 Zivid-Tools

ZividFirmwareUpdater 可以在 /usr/bin/ 中找到。

按下键盘上的 Ctrl + Alt + T 键打开终端窗口:

mkdir -p Zivid
cd Zivid
zividVersion=$(curl -L https://www.zivid.com/software/latest_version)
wget https://www.zivid.com/hubfs/softwarefiles/releases/${zividVersion}/u22/zivid-tools_${zividVersion}_amd64.deb
wget https://www.zivid.com/hubfs/softwarefiles/releases/${zividVersion}/u20/zivid-tools_${zividVersion}_amd64.deb
wget https://www.zivid.com/hubfs/softwarefiles/releases/${zividVersion}/u18/zivid-tools_${zividVersion}_amd64.deb

备注

Support for Ubuntu 16.04 is removed since SDK 2.7. To see Ubuntu 16.04 instructions for an earlier SDK version, change the Knowledge Base version in the top left corner.

sudo apt install ./zivid-tools_${zividVersion}_amd64.deb

现在您可以运行 ZividFirmwareUpdater 了:

usr/bin/ZividFirmwareUpdater
将固件从1.6.6 更新到1.6.7

将固件从1.6.6 更新到1.6.7

更多信息
无需更新

无需更新

将固件从版本1.6.7回滚到版本1.6.6。

将固件从版本1.6.7回滚到版本1.6.6。

可以从 此处 找到 ZividFirmwareUpdater 的源代码。

Zivid API

Zivid Studio和ZividFirmwareUpdater CLI在Zivid SDK中使用了相同的API。您也可以在算法中使用这些API。

检查是否需要更新固件

跳转到源

source

int main()
{
    try
    {
        Zivid::Application zivid;

        auto cameras = zivid.cameras();
        for(auto &camera : cameras)
        {
            if(!Zivid::Firmware::isUpToDate(camera))
            {
                std::cout << "Firmware update required" << std::endl;
            }
            else
            {
                std::cout << "Skipping update of camera " << camera.info().serialNumber()
                          << ", model name: " << camera.info().modelName()
                          << ", firmware version: " << camera.info().firmwareVersion() << std::endl;
            }
        }
    }

    return EXIT_SUCCESS;
}

更新固件

跳转到源

source

int main()
{
    try
    {
        Zivid::Application zivid;

        auto cameras = zivid.cameras();
        for(auto &camera : cameras)
        {
            if(!Zivid::Firmware::isUpToDate(camera))
            {
                std::cout << "Updating firmware on camera " << camera.info().serialNumber()
                          << ", model name: " << camera.info().modelName()
                          << ", firmware version: " << camera.info().firmwareVersion() << std::endl;
                Zivid::Firmware::update(camera, [](double progressPercentage, const std::string &stageDescription) {
                    std::cout << std::round(progressPercentage) << " % : " << stageDescription
                              << (progressPercentage < 100 ? "..." : "") << std::endl;
                });
            }
            else
            {
                std::cout << "Skipping update of camera " << camera.info().serialNumber()
                          << ", model name: " << camera.info().modelName()
                          << ", firmware version: " << camera.info().firmwareVersion() << std::endl;
            }
        }
    }

    return EXIT_SUCCESS;
}

小技巧

固件会根据SDK版本进行更新。因此,当较旧的SDK版本与具有较新固件版本的相机一起使用时,相机固件会回滚到旧版本。