0
Skip to Content
Home
RapidPixel SDK
Consulting
Constant Robotics
Constant Robotics
Home
RapidPixel SDK
Consulting
Constant Robotics
Constant Robotics
Home
RapidPixel SDK
Consulting
Home ViscaCamera C++ lib. Software controller for VISCA protocol compatible cameras
viscacamera_thumbai.png Image 1 of
viscacamera_thumbai.png
viscacamera_thumbai.png

ViscaCamera C++ lib. Software controller for VISCA protocol compatible cameras

€400.00

The ViscaCamera C++ library version 1.0.0 is a software controller for VISCA (Trademark of Sony Corporation) compatible cameras and includes camera, lens and pan-tilt control interfaces.

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

The ViscaCamera C++ library version 1.0.0 is a software controller for VISCA (Trademark of Sony Corporation) compatible cameras and includes camera, lens and pan-tilt control interfaces.

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.

Technical support service technical_support_thumbai.png (Copy) technical_support_thumbai.png (Copy)
Technical support service
from €700.00
Options:

The ViscaCamera C++ library version 1.0.0 is a software controller for VISCA (Trademark of Sony Corporation) compatible cameras and includes camera, lens and pan-tilt control interfaces.

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.

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 ViscaCamera C++ library is a software controller for VISCA (Trademark of Sony Corporation) compatible cameras and includes camera, lens and pan-tilt control interfaces. The ViscaCamera library inherits Lens, Camera and PanTilt interfaces, so the library has set of three different interfaces to control camera, lens and pan-tilt. It includes source code of libraries: Lens interface library (provides interface and data structures to control lenses, Apache 2.0 license), PanTilt interface library (provides interface and data structures to control pan-tilt units, Apache 2.0 license), Camera interface library (provides interface and data structures to control cameras, Apache 2.0 license), Logger 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 ViscaParser library (provides functions to encode control commands and decode responses from VISCA-compatible cameras, the same license as ViscaCamera library). The ViscaCamera 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. It developed with C++17 standard and compatible with Linux and Windows.

Downloads

Programmer’s manual: DOWNLOAD

Lens + camera + pan-tilt control interface

class ViscaCamera :
public cr::camera::Camera,
public cr::lens::Lens,
public cr::pantilt::PanTilt
{
public:

    /// Class constructor.
    ViscaCamera();

    /// Class destructor.
    ~ViscaCamera();

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

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

    // #######################################
    // CAMERA CONTROL INTERFACE
    // #######################################

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

    /// Init camera by parameters structure.
    bool initCamera(cr::camera::CameraParams& params) override;

    /// Method closes serial port and stops all threads.
    void closeCamera() override;

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

    /// Get camera connection status.
    bool isCameraConnected() override;

    /// Set the camera parameter.
    bool setParam(cr::camera::CameraParam id, float value) override;

    /// Get the camera parameter.
    float getParam(cr::camera::CameraParam id) override;

    /// Get the camera params.
    void getParams(cr::camera::CameraParams& params) override;

    /// Execute camera command.
    bool executeCommand(cr::camera::CameraCommand id) override;

    // #######################################
    // LENS CONTROL INTERFACE
    // #######################################

    /// 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 camera 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;
    
    // #######################################
    // PANTILT CONTROL INTERFACE
    // #######################################
    
     /// Open pan-tilt device.
    bool openPanTilt(std::string initString) override;

    /// Init pan-tilt device with parameters structure.
    bool initPanTilt(cr::pantilt::PanTiltParams& params) override;

    /// Close pan-tilt controller connection.
    void closePanTilt() override;

    /// Get pan-tilt controller is initialized status.
    bool isPanTiltOpen() override;

    /// Get pan-tilt controller is connected status.
    bool isPanTiltConnected() override;

    /// Set the value for a specific library parameter.
    bool setParam(cr::pantilt::PanTiltParam id, float value) override;

    /// Get the value of a specific library parameter.
    float getParam(cr::pantilt::PanTiltParam id) override;

    /// Get the structure containing all library parameters.
    void getParams(cr::pantilt::PanTiltParams& params) override;

    /// Execute a PanTilt command.
    bool executeCommand(cr::pantilt::PanTiltCommand id,
                        float arg1 = 0.0f, float arg2 = 0.0f) override;
};

Simple example

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

int main(void)
{
    // Init camera controller.
    cr::visca::ViscaCamera controller;
    if (!controller.openCamera("/dev/ttyUSB0"))
        return -1;

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

        // Get all camera params.
        cr::camera::CameraParams cameraParams;
        controller.getParams(cameraParams);

        // 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;
        case 4:
            controller.setParam(cr::camera::CameraParam::BRIGHTNESS,
            cameraParams.brightness + 1);
            break;
        case 5:
            controller.setParam(cr::camera::CameraParam::BRIGHTNESS,
            cameraParams.brightness - 1);
            break;
        default:
            break;
        }
    }
    return 1;
}

You Might Also Like

HitachiCamera C++ lib. Software controller for HITACHI CCTV cameras
HitachiCamera C++ lib. Software controller for HITACHI CCTV cameras
€400.00
VentusCamera C++ lib. Software controller for Sierra-Olympia Ventus series thermal cameras.
VentusCamera C++ lib. Software controller for Sierra-Olympia Ventus series thermal cameras.
€400.00
Flc C++ lib. Software controller for Fujinon CCTV lenses.
Flc C++ lib. Software controller for Fujinon CCTV lenses.
€400.00
Olc C++ lib. Software controller for control Ophir® infrared lenses with advanced auto focus functions
Olc C++ lib. Software controller for control Ophir® infrared lenses with advanced auto focus functions
€1,000.00
FlirTau2Parser C++ lib. Protocol parser library for Flir Tau2 thermal cameras
FlirTau2Parser C++ lib. Protocol parser library for Flir Tau2 thermal cameras
€200.00

ABOUT US

ConstantRobotics conducts scientific research in video processing, control protocols, and data exchange. Our diverse team of engineers develops software libraries and applications to simplify complex problems. Customers can test our libraries on their own data before making a purchase. Detailed documentation is available on our website. Our main focus is creating real-time algorithms that run on any platform.

CONTACTS

ConstantRobotics Sp. z o.o. Warsaw, Poland, VAT ID: PL5252930273, info@constantrobotics.com

LICENSES FOR SOFTWARE

Our software libraries are distributed under perpetual licenses. We don't restrict distribution of software libraries as a part of your hardware and software products. Our library prices are the same for all our clients and are based on the following principle: you can create a counterpart of our algorithms with the same or better characteristics, but the cost of your own research will be significantly higher than buying ready-made libraries. By purchasing our libraries you get a solution with proven performance. Two licenses are available for our products: a perpetual license for the compiled version of the library and a perpetual license for the source code. You pay once at the time of purchase. Download licenses:

  • LICENSE FOR SOURCE CODE OF SOFTWARE

  • LICENSE FOR COMPILED VERSION OF SOFTWARE

SEND US MESSAGE

Thank you! We will connect you soon.


© 2025 ConstantRobotics

Privacy Policy | Terms & Conditions | Archive