Overview
The FlirBosonCamera C++ library is a software controller for the FLIR Boson camera. The FlirBosonCamera library inherits the Camera interface. It depends on the following libraries: Camera (provides interface and data structures to control cameras, source code included, Apache 2.0 license), Logger logging library (provides functions to print log information in console and files, Apache 2.0 license) and the BosonSdk library. The FlirBosonCamera library provides a simple interface to be integrated into any C++ project. The library repository (folder) is provided as source code and doesn’t have third-party dependencies that need to be specially installed in the OS. It is developed with the C++17 standard and is compatible with Linux and Windows.
Documentation
Documentation: GO TO DOCUMENTATION
Camera control interface
class FlirBosonCamera : public cr::camera::Camera
{
public:
/// Get FlirBosonCamera class version.
static std::string getVersion();
/// Open camera controller.
bool openCamera(std::string initString) override;
/// Initialize camera controller by parameters class.
bool initCamera(CameraParams& params) override;
/// Close camera controller.
void closeCamera() override;
/// Get camera open status.
bool isCameraOpen() override;
/// Get camera connection status.
bool isCameraConnected() override;
/// Set the camera controller param.
bool setParam(CameraParam id, float value) override;
/// Get the camera controller param.
float getParam(CameraParam id) override;
/// Get the camera controller params.
void getParams(CameraParams& params) override;
/// Execute camera controller action command.
bool executeCommand(CameraCommand id) override;
/// Decode and execute command.
bool decodeAndExecuteCommand(uint8_t* data, int size) override;
};
Simple example
#include <iostream>
#include "FlirBosonCamera.h"
int main(void)
{
// Init camera controller.
cr::camera::FlirBosonCamera controller;
if (!controller.openCamera("USBBOSON"))
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);
switch (option)
{
case 1:
controller.setParam(cr::camera::CameraParam::BRIGHTNESS,
cameraParams.brightness + 1);
break;
case 2:
controller.setParam(cr::camera::CameraParam::BRIGHTNESS,
cameraParams.brightness - 1);
break;
default:
break;
}
}
return 0;
}