Flc C++ lib. Software controller for Fujinon CCTV lenses.

€300.00

Flc C++ library version 3.0.1 is a software controller for Fujinon lenses. These lenses provide control interface over serial port.

LICENSE: We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: DOWNLOAD LICENSE. You can buy technical support service for this product.

Add To Cart
Technical support service
Options:

Purchase options

You can by this software online by card or you can buy the software by bank transfer. Bank transfer available only for companies. To buy software by bank transfer please send us request to info@constantrobotics.com. Also, you can buy technical support service for this product.

Overview

The Flc C++ library version 3.0.1 is a software controller for Fujinon lenses. These lenses provide control interface over serial port. The Flc library inherits Lens interface. It includes source code of libraries: Lens interface library (provides interface and data structures to control lenses, Apache 2.0 license), Logger logging library (provides function to print log information in console and files, Apache 2.0 license), SerialPort library (provides functions to work with serial ports, Apache 2.0 license) and FujiProtocolParser library (provides functions to encode control commands and decode responses from Fujinon lenses). The Flc library provides simple interface to be integrated in any C++ projects. The library repository (folder) provided by source code and doesn't have third-party dependencies to be specially installed in OS (excepts test application which depends on OpenCV open source library to provide user interface). It developed with C++17 standard and compatible with Linux and Windows.

Downloads

Programmer’s manual: DOWNLOAD

Lens + camera control interface

class Flc : public cr::lens::Lens
{
public:

    /// Get class version.
    static std::string getVersion();

    /// Decode and execute command.
    bool decodeAndExecuteCommand(uint8_t* data, int size) override;

    /// Open controller serial port.
    bool openLens(std::string initString) override;

    /// Init lens by parameters structure.
    bool initLens(cr::lens::LensParams& params) override;

    /// Closes serial port and stops all threads.
    void closeLens() override;

    /// Get serial port status.
    bool isLensOpen() override;

    /// Get lens connection status.
    bool isLensConnected() override;

    /// Set lens parameter.
    bool setParam(cr::lens::LensParam id, float value) override;

    /// Get lens parameter.
    float getParam(cr::lens::LensParam id) override;

    /// Get the lens parameters.
    void getParams(cr::lens::LensParams& params) override;

    /// Execute lens command.
    bool executeCommand(cr::lens::LensCommand id, float arg = 0) override;

    /// Add video frame for auto focus purposes. Not supported.
    void addVideoFrame(cr::video::Frame& frame) override;
};

Simple example

#include <iostream>
#include "Flc.h"

int main(void)
{
    // Init camera controller.
    cr::fuji::Flc controller;
    if (!controller.openCamera("/dev/ttyUSB0;9600;50"))
        return -1;

    while (true)
    {
        // Main dialog.
        int option = -1;
        std::cout << "Options (1:Zoom tele, 2:Zoom wide, 3:Zoom stop) : ";
        std::cin >> option;

        // Get all lens params.
        cr::lens::LensParams lensParams;
        controller.getParams(lensParams);

        switch (option)
        {
        case 1: // Zoom tele.
            controller.executeCommand(cr::lens::LensCommand::ZOOM_TELE);
            break;
        case 2: // Zoom wide.
            controller.executeCommand(cr::lens::LensCommand::ZOOM_WIDE);
            break;
        case 3: // Zoom stop.
            controller.executeCommand(cr::lens::LensCommand::ZOOM_STOP);
            break;
        default:
            break;
        }
    }
    return 1;
}
FujiProtocolParser C++ lib. Protocol parser library for Fujinon CCTV lenses
€160.00
FujiSxParser C++ lib. Protocol parser library for Fujinon SX series CCTV cameras.
€200.00
ViscaCamera C++ lib. Software controller for VISCA protocol compatible cameras
€400.00
FlirTau2Parser C++ lib. Protocol parser library for Flir Tau2 thermal cameras
€100.00
KowaProtocolParser C++ lib. Protocol parser library for KOWA low-light cameras.
€30.00